@ohif/app 3.7.0-beta.4 → 3.7.0-beta.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/{192.bundle.a692060cb8ee9076ddee.js → 192.bundle.b2863bbbf41f16203af7.js} +4 -4
  2. package/dist/{199.bundle.69d1b0419e63f5546281.js → 199.bundle.af3f8b331f3b030fe4b1.js} +2 -7
  3. package/dist/{208.bundle.9123fc7f84b459723777.js → 208.bundle.a27d931468daecfff934.js} +4 -4
  4. package/dist/{270.bundle.4564621556b0f963a004.js → 270.bundle.2d215f8720350f03e171.js} +133 -122
  5. package/dist/{283.bundle.326b6ad7c2dc105fd0b8.js → 283.bundle.76f6d48710f450ccd0f3.js} +58 -33
  6. package/dist/{331.bundle.bd0c13931a21d53086c9.js → 389.bundle.38df7e54d2f632cfa7a0.js} +123 -74
  7. package/dist/{404.bundle.0de1e82fef0a0cd2c34e.js → 404.bundle.02cea2f3b08cdbe8ceee.js} +9 -16
  8. package/dist/{351.bundle.da314e071dcf5e888085.js → 468.bundle.84576e0c0e8a7bdcfb90.js} +117 -85
  9. package/dist/{55.bundle.5f5e5ef9087b0beee35c.js → 55.bundle.fe53f3784bfe7db4a5a5.js} +6 -6
  10. package/dist/{569.bundle.0ed8d8178ffd43fe1c34.js → 569.bundle.e77c17d37a65e5dedfed.js} +23 -12
  11. package/dist/{581.bundle.360d26f97b37da8faec3.js → 581.bundle.15078e71fe52b53f48b3.js} +7 -6
  12. package/dist/{616.bundle.3f5157b8b6911d95e8ec.js → 616.bundle.b159e7f111ada286d862.js} +6 -6
  13. package/dist/{707.bundle.fec5dc4210086c7f617d.js → 625.bundle.7e4bece1b4ef5dc300a8.js} +79 -105
  14. package/dist/{642.bundle.478ce6f500f977507924.js → 642.bundle.ac0c06c27fc4366de343.js} +2 -2
  15. package/dist/{728.bundle.d13856835357400fef82.js → 728.bundle.5bef7c8643b42d70a79f.js} +11 -10
  16. package/dist/{744.bundle.bbf06d38d4e6cc5127a1.js → 744.bundle.0be683bc1498cc0d89ef.js} +64 -91
  17. package/dist/{790.bundle.45eaa69aab86f0048f1c.js → 790.bundle.18db48c8d89ce04e57bc.js} +4 -4
  18. package/dist/{799.bundle.ca18bdf4abe4d9abea26.js → 799.bundle.d8e50f1fd6bf4fa3a5e1.js} +56 -8
  19. package/dist/{82.bundle.579b84883e04e040cc03.js → 82.bundle.9affd6d9fbce4d32e826.js} +143 -112
  20. package/dist/{917.bundle.c88ce40fac58f95c68d1.js → 917.bundle.cba9223eb2a6dfea6066.js} +2 -2
  21. package/dist/945.min.worker.js +1 -1
  22. package/dist/945.min.worker.js.map +1 -1
  23. package/dist/{953.bundle.9e3a7225f07336bfcb41.js → 953.bundle.95b0621f1da8dfeaed8a.js} +4 -3
  24. package/dist/{973.bundle.7e3f2870f5ae0400fa85.js → 973.bundle.fa8a13ecc41ff54fb82b.js} +2 -2
  25. package/dist/{976.bundle.45373bcb38773e2c10c9.js → 976.bundle.19dac9a84b453d2c4dbb.js} +7 -7
  26. package/dist/{984.bundle.ed28bde89cb27e6ae9cd.js → 984.bundle.3623bc3bc26748a21d00.js} +9 -9
  27. package/dist/app-config.js +7 -7
  28. package/dist/{app.bundle.976f90a2d39df9f3146e.js → app.bundle.6987d8f46ddf4345d40a.js} +1483 -739
  29. package/dist/app.bundle.css +1 -1
  30. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  31. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  32. package/dist/google.js +6 -5
  33. package/dist/index.html +1 -1
  34. package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.17eee78bdafa44cbb47d.worker.js} +2 -2
  35. package/dist/index.worker.17eee78bdafa44cbb47d.worker.js.map +1 -0
  36. package/dist/sw.js +1 -1
  37. package/package.json +19 -19
  38. package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
  39. /package/dist/{351.css → 468.css} +0 -0
  40. /package/dist/{50.bundle.222e93034cacb51bee8b.js → 50.bundle.7def59ad0bc69d63790b.js} +0 -0
  41. /package/dist/{707.css → 625.css} +0 -0
@@ -29,8 +29,8 @@ __webpack_require__.d(utils_namespaceObject, {
29
29
 
30
30
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
31
31
  var dicomweb_client_es = __webpack_require__(75935);
32
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
33
- var src = __webpack_require__(48501);
32
+ // EXTERNAL MODULE: ../../core/src/index.ts + 103 modules
33
+ var src = __webpack_require__(87754);
34
34
  // EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
35
35
  var sortStudy = __webpack_require__(87853);
36
36
  ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
@@ -991,65 +991,69 @@ const metadataProvider = src.classes.MetadataProvider;
991
991
  * @param {string|bool} singlepart - indicates of the retrieves can fetch singlepart. Options are bulkdata, video, image or boolean true
992
992
  */
993
993
  function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
994
- const {
995
- qidoRoot,
996
- wadoRoot,
997
- enableStudyLazyLoad,
998
- supportsFuzzyMatching,
999
- supportsWildcard,
1000
- supportsReject,
1001
- staticWado,
1002
- singlepart
1003
- } = dicomWebConfig;
1004
- const dicomWebConfigCopy = JSON.parse(JSON.stringify(dicomWebConfig));
1005
- const qidoConfig = {
1006
- url: qidoRoot,
1007
- staticWado,
1008
- singlepart,
1009
- headers: userAuthenticationService.getAuthorizationHeader(),
1010
- errorInterceptor: src/* errorHandler */.Po.getHTTPErrorHandler()
1011
- };
1012
- const wadoConfig = {
1013
- url: wadoRoot,
1014
- staticWado,
1015
- singlepart,
1016
- headers: userAuthenticationService.getAuthorizationHeader(),
1017
- errorInterceptor: src/* errorHandler */.Po.getHTTPErrorHandler()
1018
- };
1019
-
1020
- // TODO -> Two clients sucks, but its better than 1000.
1021
- // TODO -> We'll need to merge auth later.
1022
- const qidoDicomWebClient = staticWado ? new StaticWadoClient(qidoConfig) : new dicomweb_client_es.api.DICOMwebClient(qidoConfig);
1023
- const wadoDicomWebClient = staticWado ? new StaticWadoClient(wadoConfig) : new dicomweb_client_es.api.DICOMwebClient(wadoConfig);
994
+ let dicomWebConfigCopy, qidoConfig, wadoConfig, qidoDicomWebClient, wadoDicomWebClient, getAuthrorizationHeader, generateWadoHeader;
1024
995
  const implementation = {
1025
996
  initialize: _ref => {
1026
997
  let {
1027
998
  params,
1028
999
  query
1029
1000
  } = _ref;
1030
- const {
1031
- StudyInstanceUIDs: paramsStudyInstanceUIDs
1032
- } = params;
1033
- const queryStudyInstanceUIDs = src.utils.splitComma(query.getAll('StudyInstanceUIDs'));
1034
- const StudyInstanceUIDs = queryStudyInstanceUIDs.length && queryStudyInstanceUIDs || paramsStudyInstanceUIDs;
1035
- const StudyInstanceUIDsAsArray = StudyInstanceUIDs && Array.isArray(StudyInstanceUIDs) ? StudyInstanceUIDs : [StudyInstanceUIDs];
1036
- return StudyInstanceUIDsAsArray;
1001
+ if (dicomWebConfig.onConfiguration && typeof dicomWebConfig.onConfiguration === 'function') {
1002
+ dicomWebConfig = dicomWebConfig.onConfiguration(dicomWebConfig, {
1003
+ params,
1004
+ query
1005
+ });
1006
+ }
1007
+ dicomWebConfigCopy = JSON.parse(JSON.stringify(dicomWebConfig));
1008
+ getAuthrorizationHeader = () => {
1009
+ const xhrRequestHeaders = {};
1010
+ const authHeaders = userAuthenticationService.getAuthorizationHeader();
1011
+ if (authHeaders && authHeaders.Authorization) {
1012
+ xhrRequestHeaders.Authorization = authHeaders.Authorization;
1013
+ }
1014
+ return xhrRequestHeaders;
1015
+ };
1016
+ generateWadoHeader = () => {
1017
+ let authorizationHeader = getAuthrorizationHeader();
1018
+ //Generate accept header depending on config params
1019
+ let formattedAcceptHeader = src.utils.generateAcceptHeader(dicomWebConfig.acceptHeader, dicomWebConfig.requestTransferSyntaxUID, dicomWebConfig.omitQuotationForMultipartRequest);
1020
+ return {
1021
+ ...authorizationHeader,
1022
+ Accept: formattedAcceptHeader
1023
+ };
1024
+ };
1025
+ qidoConfig = {
1026
+ url: dicomWebConfig.qidoRoot,
1027
+ staticWado: dicomWebConfig.staticWado,
1028
+ singlepart: dicomWebConfig.singlepart,
1029
+ headers: userAuthenticationService.getAuthorizationHeader(),
1030
+ errorInterceptor: src/* errorHandler */.Po.getHTTPErrorHandler()
1031
+ };
1032
+ wadoConfig = {
1033
+ url: dicomWebConfig.wadoRoot,
1034
+ staticWado: dicomWebConfig.staticWado,
1035
+ singlepart: dicomWebConfig.singlepart,
1036
+ headers: userAuthenticationService.getAuthorizationHeader(),
1037
+ errorInterceptor: src/* errorHandler */.Po.getHTTPErrorHandler()
1038
+ };
1039
+
1040
+ // TODO -> Two clients sucks, but its better than 1000.
1041
+ // TODO -> We'll need to merge auth later.
1042
+ qidoDicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(qidoConfig) : new dicomweb_client_es.api.DICOMwebClient(qidoConfig);
1043
+ wadoDicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(wadoConfig) : new dicomweb_client_es.api.DICOMwebClient(wadoConfig);
1037
1044
  },
1038
1045
  query: {
1039
1046
  studies: {
1040
1047
  mapParams: mapParams.bind(),
1041
1048
  search: async function (origParams) {
1042
- const headers = userAuthenticationService.getAuthorizationHeader();
1043
- if (headers) {
1044
- qidoDicomWebClient.headers = headers;
1045
- }
1049
+ qidoDicomWebClient.headers = getAuthrorizationHeader();
1046
1050
  const {
1047
1051
  studyInstanceUid,
1048
1052
  seriesInstanceUid,
1049
1053
  ...mappedParams
1050
1054
  } = mapParams(origParams, {
1051
- supportsFuzzyMatching,
1052
- supportsWildcard
1055
+ supportsFuzzyMatching: dicomWebConfig.supportsFuzzyMatching,
1056
+ supportsWildcard: dicomWebConfig.supportsWildcard
1053
1057
  }) || {};
1054
1058
  const results = await search(qidoDicomWebClient, undefined, undefined, mappedParams);
1055
1059
  return processResults(results);
@@ -1059,10 +1063,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1059
1063
  series: {
1060
1064
  // mapParams: mapParams.bind(),
1061
1065
  search: async function (studyInstanceUid) {
1062
- const headers = userAuthenticationService.getAuthorizationHeader();
1063
- if (headers) {
1064
- qidoDicomWebClient.headers = headers;
1065
- }
1066
+ qidoDicomWebClient.headers = getAuthrorizationHeader();
1066
1067
  const results = await seriesInStudy(qidoDicomWebClient, studyInstanceUid);
1067
1068
  return processSeriesResults(results);
1068
1069
  }
@@ -1071,10 +1072,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1071
1072
 
1072
1073
  instances: {
1073
1074
  search: (studyInstanceUid, queryParameters) => {
1074
- const headers = userAuthenticationService.getAuthorizationHeader();
1075
- if (headers) {
1076
- qidoDicomWebClient.headers = headers;
1077
- }
1075
+ qidoDicomWebClient.headers = getAuthrorizationHeader();
1078
1076
  search.call(undefined, qidoDicomWebClient, studyInstanceUid, null, queryParameters);
1079
1077
  }
1080
1078
  }
@@ -1093,8 +1091,8 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1093
1091
  */
1094
1092
  directURL: params => {
1095
1093
  return utils_getDirectURL({
1096
- wadoRoot,
1097
- singlepart
1094
+ wadoRoot: dicomWebConfig.wadoRoot,
1095
+ singlepart: dicomWebConfig.singlepart
1098
1096
  }, params);
1099
1097
  },
1100
1098
  bulkDataURI: async _ref2 => {
@@ -1102,6 +1100,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1102
1100
  StudyInstanceUID,
1103
1101
  BulkDataURI
1104
1102
  } = _ref2;
1103
+ qidoDicomWebClient.headers = getAuthrorizationHeader();
1105
1104
  const options = {
1106
1105
  multipart: false,
1107
1106
  BulkDataURI,
@@ -1121,14 +1120,10 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1121
1120
  sortFunction,
1122
1121
  madeInClient = false
1123
1122
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1124
- const headers = userAuthenticationService.getAuthorizationHeader();
1125
- if (headers) {
1126
- wadoDicomWebClient.headers = headers;
1127
- }
1128
1123
  if (!StudyInstanceUID) {
1129
1124
  throw new Error('Unable to query for SeriesMetadata without StudyInstanceUID');
1130
1125
  }
1131
- if (enableStudyLazyLoad) {
1126
+ if (dicomWebConfig.enableStudyLazyLoad) {
1132
1127
  return implementation._retrieveSeriesMetadataAsync(StudyInstanceUID, filters, sortCriteria, sortFunction, madeInClient);
1133
1128
  }
1134
1129
  return implementation._retrieveSeriesMetadataSync(StudyInstanceUID, filters, sortCriteria, sortFunction, madeInClient);
@@ -1137,10 +1132,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1137
1132
  },
1138
1133
  store: {
1139
1134
  dicom: async (dataset, request) => {
1140
- const headers = userAuthenticationService.getAuthorizationHeader();
1141
- if (headers) {
1142
- wadoDicomWebClient.headers = headers;
1143
- }
1135
+ wadoDicomWebClient.headers = getAuthrorizationHeader();
1144
1136
  if (dataset instanceof ArrayBuffer) {
1145
1137
  const options = {
1146
1138
  datasets: [dataset],
@@ -1170,7 +1162,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1170
1162
  },
1171
1163
  _retrieveSeriesMetadataSync: async (StudyInstanceUID, filters, sortCriteria, sortFunction, madeInClient) => {
1172
1164
  const enableStudyLazyLoad = false;
1173
-
1165
+ wadoDicomWebClient.headers = generateWadoHeader();
1174
1166
  // data is all SOPInstanceUIDs
1175
1167
  const data = await retrieveStudyMetadata(wadoDicomWebClient, StudyInstanceUID, enableStudyLazyLoad, filters, sortCriteria, sortFunction);
1176
1168
 
@@ -1215,6 +1207,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1215
1207
  _retrieveSeriesMetadataAsync: async function (StudyInstanceUID, filters, sortCriteria, sortFunction) {
1216
1208
  let madeInClient = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
1217
1209
  const enableStudyLazyLoad = true;
1210
+ wadoDicomWebClient.headers = generateWadoHeader();
1218
1211
  // Get Series
1219
1212
  const {
1220
1213
  preLoadData: seriesSummaryMetadata,
@@ -1356,10 +1349,23 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1356
1349
  },
1357
1350
  getConfig() {
1358
1351
  return dicomWebConfigCopy;
1352
+ },
1353
+ getStudyInstanceUIDs(_ref4) {
1354
+ let {
1355
+ params,
1356
+ query
1357
+ } = _ref4;
1358
+ const {
1359
+ StudyInstanceUIDs: paramsStudyInstanceUIDs
1360
+ } = params;
1361
+ const queryStudyInstanceUIDs = src.utils.splitComma(query.getAll('StudyInstanceUIDs'));
1362
+ const StudyInstanceUIDs = queryStudyInstanceUIDs.length && queryStudyInstanceUIDs || paramsStudyInstanceUIDs;
1363
+ const StudyInstanceUIDsAsArray = StudyInstanceUIDs && Array.isArray(StudyInstanceUIDs) ? StudyInstanceUIDs : [StudyInstanceUIDs];
1364
+ return StudyInstanceUIDsAsArray;
1359
1365
  }
1360
1366
  };
1361
- if (supportsReject) {
1362
- implementation.reject = dcm4cheeReject(wadoRoot);
1367
+ if (dicomWebConfig.supportsReject) {
1368
+ implementation.reject = dcm4cheeReject(dicomWebConfig.wadoRoot);
1363
1369
  }
1364
1370
  return src/* IWebApiDataSource */.Is.create(implementation);
1365
1371
  }
@@ -1375,7 +1381,8 @@ const mappings = {
1375
1381
  patientId: 'PatientID'
1376
1382
  };
1377
1383
  let _store = {
1378
- urls: []
1384
+ urls: [],
1385
+ studyInstanceUIDMap: new Map() // map of urls to array of study instance UIDs
1379
1386
  // {
1380
1387
  // url: url1
1381
1388
  // studies: [Study1, Study2], // if multiple studies
@@ -1403,13 +1410,11 @@ const findStudies = (key, value) => {
1403
1410
  };
1404
1411
  function createDicomJSONApi(dicomJsonConfig) {
1405
1412
  const {
1406
- name,
1407
1413
  wadoRoot
1408
1414
  } = dicomJsonConfig;
1409
1415
  const implementation = {
1410
1416
  initialize: async _ref => {
1411
1417
  let {
1412
- params,
1413
1418
  query,
1414
1419
  url
1415
1420
  } = _ref;
@@ -1425,8 +1430,7 @@ function createDicomJSONApi(dicomJsonConfig) {
1425
1430
  });
1426
1431
  }
1427
1432
  const response = await fetch(url);
1428
- let data = await response.json();
1429
- const studyInstanceUIDs = data.studies.map(study => study.StudyInstanceUID);
1433
+ const data = await response.json();
1430
1434
  let StudyInstanceUID;
1431
1435
  let SeriesInstanceUID;
1432
1436
  data.studies.forEach(study => {
@@ -1452,7 +1456,7 @@ function createDicomJSONApi(dicomJsonConfig) {
1452
1456
  url,
1453
1457
  studies: [...data.studies]
1454
1458
  });
1455
- return studyInstanceUIDs;
1459
+ _store.studyInstanceUIDMap.set(url, data.studies.map(study => study.StudyInstanceUID));
1456
1460
  },
1457
1461
  query: {
1458
1462
  studies: {
@@ -1608,6 +1612,14 @@ function createDicomJSONApi(dicomJsonConfig) {
1608
1612
  frame
1609
1613
  });
1610
1614
  return imageIds;
1615
+ },
1616
+ getStudyInstanceUIDs: _ref3 => {
1617
+ let {
1618
+ params,
1619
+ query
1620
+ } = _ref3;
1621
+ const url = query.get('url');
1622
+ return _store.studyInstanceUIDMap.get(url);
1611
1623
  }
1612
1624
  };
1613
1625
  return src/* IWebApiDataSource */.Is.create(implementation);
@@ -1660,19 +1672,6 @@ function createDicomLocalApi(dicomLocalConfig) {
1660
1672
  params,
1661
1673
  query
1662
1674
  } = _ref;
1663
- const {
1664
- StudyInstanceUIDs: paramsStudyInstanceUIDs
1665
- } = params;
1666
- const queryStudyInstanceUIDs = query.getAll('StudyInstanceUIDs');
1667
- const StudyInstanceUIDs = queryStudyInstanceUIDs || paramsStudyInstanceUIDs;
1668
- const StudyInstanceUIDsAsArray = StudyInstanceUIDs && Array.isArray(StudyInstanceUIDs) ? StudyInstanceUIDs : [StudyInstanceUIDs];
1669
-
1670
- // Put SRs at the end of series list to make sure images are loaded first
1671
- StudyInstanceUIDsAsArray.forEach(StudyInstanceUID => {
1672
- const study = src.DicomMetadataStore.getStudy(StudyInstanceUID);
1673
- study.series = study.series.sort(customSort);
1674
- });
1675
- return StudyInstanceUIDsAsArray;
1676
1675
  },
1677
1676
  query: {
1678
1677
  studies: {
@@ -1854,6 +1853,29 @@ function createDicomLocalApi(dicomLocalConfig) {
1854
1853
  },
1855
1854
  deleteStudyMetadataPromise() {
1856
1855
  console.log('deleteStudyMetadataPromise not implemented');
1856
+ },
1857
+ getStudyInstanceUIDs: _ref3 => {
1858
+ let {
1859
+ params,
1860
+ query
1861
+ } = _ref3;
1862
+ const {
1863
+ StudyInstanceUIDs: paramsStudyInstanceUIDs
1864
+ } = params;
1865
+ const queryStudyInstanceUIDs = query.getAll('StudyInstanceUIDs');
1866
+ const StudyInstanceUIDs = queryStudyInstanceUIDs || paramsStudyInstanceUIDs;
1867
+ const StudyInstanceUIDsAsArray = StudyInstanceUIDs && Array.isArray(StudyInstanceUIDs) ? StudyInstanceUIDs : [StudyInstanceUIDs];
1868
+
1869
+ // Put SRs at the end of series list to make sure images are loaded first
1870
+ let isStudyInCache = false;
1871
+ StudyInstanceUIDsAsArray.forEach(StudyInstanceUID => {
1872
+ const study = src.DicomMetadataStore.getStudy(StudyInstanceUID);
1873
+ if (study) {
1874
+ study.series = study.series.sort(customSort);
1875
+ isStudyInCache = true;
1876
+ }
1877
+ });
1878
+ return isStudyInCache ? StudyInstanceUIDsAsArray : [];
1857
1879
  }
1858
1880
  };
1859
1881
  return src/* IWebApiDataSource */.Is.create(implementation);
@@ -1882,13 +1904,6 @@ function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService)
1882
1904
  params,
1883
1905
  query
1884
1906
  } = _ref;
1885
- let studyInstanceUIDs = [];
1886
-
1887
- // there seem to be a couple of variations of the case for this parameter
1888
- const queryStudyInstanceUIDs = query.get('studyInstanceUIDs') || query.get('studyInstanceUids');
1889
- if (!queryStudyInstanceUIDs) {
1890
- throw new Error(`No studyInstanceUids in request for '${name}'`);
1891
- }
1892
1907
  const url = query.get('url');
1893
1908
  if (!url) {
1894
1909
  throw new Error(`No url for '${name}'`);
@@ -1898,10 +1913,12 @@ function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService)
1898
1913
  if (!data.servers?.dicomWeb?.[0]) {
1899
1914
  throw new Error('Invalid configuration returned by url');
1900
1915
  }
1901
- dicomWebDelegate = createDicomWebApi(data.servers.dicomWeb[0], UserAuthenticationService);
1902
- studyInstanceUIDs = queryStudyInstanceUIDs.split(';');
1916
+ dicomWebDelegate = createDicomWebApi(data.servers.dicomWeb[0].configuration, UserAuthenticationService);
1917
+ dicomWebDelegate.initialize({
1918
+ params,
1919
+ query
1920
+ });
1903
1921
  }
1904
- return studyInstanceUIDs;
1905
1922
  },
1906
1923
  query: {
1907
1924
  studies: {
@@ -1939,6 +1956,21 @@ function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService)
1939
1956
  },
1940
1957
  getImageIdsForInstance: function () {
1941
1958
  return dicomWebDelegate.getImageIdsForInstance(...arguments);
1959
+ },
1960
+ getStudyInstanceUIDs(_ref2) {
1961
+ let {
1962
+ params,
1963
+ query
1964
+ } = _ref2;
1965
+ let studyInstanceUIDs = [];
1966
+
1967
+ // there seem to be a couple of variations of the case for this parameter
1968
+ const queryStudyInstanceUIDs = query.get('studyInstanceUIDs') || query.get('studyInstanceUids');
1969
+ if (!queryStudyInstanceUIDs) {
1970
+ throw new Error(`No studyInstanceUids in request for '${name}'`);
1971
+ }
1972
+ studyInstanceUIDs = queryStudyInstanceUIDs.split(';');
1973
+ return studyInstanceUIDs;
1942
1974
  }
1943
1975
  };
1944
1976
  return src/* IWebApiDataSource */.Is.create(implementation);
@@ -1988,8 +2020,8 @@ var dist = __webpack_require__(65783);
1988
2020
  var es = __webpack_require__(21572);
1989
2021
  // EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
1990
2022
  var react_router_dist = __webpack_require__(14935);
1991
- // EXTERNAL MODULE: ../../ui/src/index.js + 449 modules
1992
- var ui_src = __webpack_require__(43803);
2023
+ // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
2024
+ var ui_src = __webpack_require__(28619);
1993
2025
  // EXTERNAL MODULE: ../../i18n/src/index.js + 95 modules
1994
2026
  var i18n_src = __webpack_require__(93058);
1995
2027
  // EXTERNAL MODULE: ./state/index.js + 1 modules
@@ -2030,7 +2062,7 @@ function Toolbar(_ref) {
2030
2062
  unsub2();
2031
2063
  };
2032
2064
  }, [toolbarService]);
2033
- return /*#__PURE__*/react.createElement(react.Fragment, null, toolbarButtons.map((toolDef, index) => {
2065
+ return /*#__PURE__*/react.createElement(react.Fragment, null, toolbarButtons.map(toolDef => {
2034
2066
  const {
2035
2067
  id,
2036
2068
  Component,
@@ -2143,8 +2175,8 @@ function ViewerLayout(_ref) {
2143
2175
  hotkeyDefinitions,
2144
2176
  hotkeyDefaults
2145
2177
  } = hotkeysManager;
2146
- const versionNumber = "3.7.0-beta.4";
2147
- const commitHash = "2890635675963c19300f7b7cb4f722ade20a3d67";
2178
+ const versionNumber = "3.7.0-beta.40";
2179
+ const commitHash = "019dedce343650e384d35b79345386a2dfd2bc4e";
2148
2180
  const menuOptions = [{
2149
2181
  title: t('Header:About'),
2150
2182
  icon: 'info',
@@ -2801,10 +2833,10 @@ function ActionButtons(_ref) {
2801
2833
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.hE, {
2802
2834
  color: "black",
2803
2835
  size: "inherit"
2804
- }, /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
2836
+ }, /*#__PURE__*/react.createElement(ui_src/* LegacyButton */.mN, {
2805
2837
  className: "px-2 py-2 text-base",
2806
2838
  onClick: onExportClick
2807
- }, t('Export CSV')), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
2839
+ }, t('Export CSV')), /*#__PURE__*/react.createElement(ui_src/* LegacyButton */.mN, {
2808
2840
  className: "px-2 py-2 text-base",
2809
2841
  onClick: onCreateReportClick
2810
2842
  }, t('Create Report'))));
@@ -2906,11 +2938,11 @@ function createReportDialogPrompt(uiDialogService, _ref) {
2906
2938
  actions: [{
2907
2939
  id: 'cancel',
2908
2940
  text: 'Cancel',
2909
- type: 'primary'
2941
+ type: ui_src/* ButtonEnums.type */.LZ.U.secondary
2910
2942
  }, {
2911
2943
  id: 'save',
2912
2944
  text: 'Save',
2913
- type: 'secondary'
2945
+ type: ui_src/* ButtonEnums.type */.LZ.U.primary
2914
2946
  }],
2915
2947
  // TODO: Should be on button press...
2916
2948
  onSubmit: _handleFormSubmit,
@@ -3262,16 +3294,14 @@ function PanelMeasurementTable(_ref) {
3262
3294
  onKeyPress: onKeyPressHandler
3263
3295
  });
3264
3296
  },
3265
- actions: [
3266
- // temp: swap button types until colors are updated
3267
- {
3297
+ actions: [{
3268
3298
  id: 'cancel',
3269
3299
  text: 'Cancel',
3270
- type: 'primary'
3300
+ type: ui_src/* ButtonEnums.type */.LZ.U.secondary
3271
3301
  }, {
3272
3302
  id: 'save',
3273
3303
  text: 'Save',
3274
- type: 'secondary'
3304
+ type: ui_src/* ButtonEnums.type */.LZ.U.primary
3275
3305
  }],
3276
3306
  onSubmit: onSubmitHandler
3277
3307
  }
@@ -5745,8 +5775,9 @@ function DataSourceSelector() {
5745
5775
  key: ds.sourceName
5746
5776
  }, /*#__PURE__*/react.createElement("h1", {
5747
5777
  className: "text-white"
5748
- }, ds.friendlyName), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
5749
- className: classnames_default()('font-bold', 'ml-2'),
5778
+ }, ds.configuration?.friendlyName || ds.friendlyName), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
5779
+ type: ui_src/* ButtonEnums.type */.LZ.U.primary,
5780
+ className: classnames_default()('ml-2'),
5750
5781
  onClick: () => {
5751
5782
  navigate({
5752
5783
  pathname: '/',
@@ -21,8 +21,8 @@ const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-video"}
21
21
  const id = package_namespaceObject.u2;
22
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-video`;
23
23
 
24
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
25
- var src = __webpack_require__(48501);
24
+ // EXTERNAL MODULE: ../../core/src/index.ts + 103 modules
25
+ var src = __webpack_require__(87754);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/dicom-video/src/getSopClassHandlerModule.js
27
27
 
28
28
 
@@ -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