From 55002fbd712b6470b2217f75588e6a43366803e6 Mon Sep 17 00:00:00 2001 From: Alireza Date: Thu, 12 Oct 2023 17:09:44 -0400 Subject: [PATCH 001/289] chore(version): move to the next beta version [BUMP BETA] --- .../SegmentationService.ts | 2 +- platform/docs/docs/migration-guide.md | 2 +- platform/docs/docs/release-notes.md | 199 +----------------- platform/docs/docusaurus.config.js | 2 +- 4 files changed, 4 insertions(+), 201 deletions(-) diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts index eda99b7b2..6c48d5dfb 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts @@ -40,7 +40,7 @@ const EVENTS = { SEGMENTATION_CONFIGURATION_CHANGED: 'event::segmentation_configuration_changed', // fired when the active segment is loaded in SEG or RTSTRUCT SEGMENT_LOADING_COMPLETE: 'event::segment_loading_complete', - // for all segments + // loading completed for all segments SEGMENTATION_LOADING_COMPLETE: 'event::segmentation_loading_complete', }; diff --git a/platform/docs/docs/migration-guide.md b/platform/docs/docs/migration-guide.md index fcf45aadd..c252d23c8 100644 --- a/platform/docs/docs/migration-guide.md +++ b/platform/docs/docs/migration-guide.md @@ -1,6 +1,6 @@ --- sidebar_position: 10 -sidebar_label: Migration Guide (NEW) +sidebar_label: Migration Guide --- # Migration Guide diff --git a/platform/docs/docs/release-notes.md b/platform/docs/docs/release-notes.md index 146f567b1..48491be16 100644 --- a/platform/docs/docs/release-notes.md +++ b/platform/docs/docs/release-notes.md @@ -6,202 +6,5 @@ sidebar_label: Release Notes # Release Notes -## Current Release (master branch) -### OHIF Viewer v3.6 - Official Version 3 Release (June 2023) - -Check out the complete press announcement [here](https://ohif.org/newsletters/2023-06-08-ohif%20viewer%20v3%20official%20release%20&%20new%20nci%20funding--release). - -- Official OHIF v3 release: An important milestone achieved with OHIF v3 now at feature parity with v2 but with a more extensible and powerful framework. - -New Features: - -- DICOM Radiotherapy Structure Sets: Enhancement of DICOM RTSTRUCT rendering pipeline to better integrate with other segmentation types. -- Slide Microscopy: Slide microscopy code updated with the latest technologies from the DICOM Microscopy Library and SLIM Viewer. -- DICOM Uploader: New feature to easily upload DICOM files directly from the viewer to their PACS systems over DICOMWeb. -- Cornerstone DICOM Image Loader Migrated to TypeScript: Transition to the new TypeScript-based DICOM Image Loader library. -- Cornerstone3D 1.0 Release: Announcement of Cornerstone3D reaching version 1.0, indicating its readiness for production use. - -## Previous V3 Releases (on `v3-stable` branch, before merge to `master`) - -### OHIF Viewer v3.5 - Docker Build - -This update represents a minor release that is primarily focused on enhancing the development environment of the OHIF Viewer. It achieves this by integrating Docker build support, which is essential for streamlining the deployment process and ensuring consistent environments. Additionally, in an effort to optimize the development workflow, this release takes care of pushing changes to the master branch. Furthermore, it strategically splits the master branch from the release branch. This separation is crucial as it allows the developers to work more efficiently on the ongoing developments in the master branch, while simultaneously ensuring that the release branch remains stable and well-maintained. Such an approach underlines the commitment to both innovation and reliability. - - -### OHIF Viewer v3.4 - Segmentation Support (April 2023) -Check out the complete press announcement [here](https://ohif.org/newsletters/2023-04-03-new%20product%20features,%20grant%20updates%20and%20collaborations). - -- New Viewport State Preservation: Enhancements in state synchronization in OHIF Viewer for a seamless experience when switching between Multiplanar Reformatting (MPR) and other views. - -- Enhanced Hanging Protocol Matching: Improved hanging protocols for a faster, more user-friendly experience. - -- Customizable Context Menu: Expansion of context menu options allowing for greater customization and addition of sub-menus. - -- UI/UX Improvements: Revamped viewport header design and the addition of double-click functionality to maximize viewport. - -### OHIF Viewer v3.3 - Segmentation Support (November 2022) - -Check out the complete press announcement [here](https://ohif.org/newsletters/2022-11-21-ohif%20viewer:%20dicom%20segmentation%20support). - -- 3D Segmentation: Segmentations are natively loaded and rendered in 3D. The UI includes various interaction tools and rendering display preferences. Segmentation creation and editing tools are in development. - -- Fast and Optimized Multiplanar Reconstruction (MPR): The viewer now supports MPR visualization of volumes and segmentations, leading to significantly reduced memory footprint and improved performance. - -- New Collapsible Side Panels: The OHIF Viewer has redesigned side panels to be more compact and user friendly. - -- Context-aware Drag and Drop via Hanging Protocols: The viewer now allows a more seamless experience when dragging and dropping thumbnails. - -- New Tools: Two new tools have been added: Reference Lines and Stack Synchronizations. - - - -### OHIF Viewer v3.2 - Mode Gallery & TMTV Mode (August 2022) - -Check out the complete press announcement [here](https://ohif.org/newsletters/2022-08-18-mode%20gallery%20and%20tmtv%20mode). - -- New Total Metabolic Tumor Volume (TMTV) Workflow: This new mode includes high-performance rendering of volumetric data in ten distinct viewports, fusion of two series with adjustable colormaps, synchronization of the viewports for both camera and VOI settings, jump-to-click capability to synchronize navigation in all viewports, and support for exporting results. - -- OHIF Workflow Mode Gallery: This new feature is a one-stop shop for users to find, install, and use OHIF modes and share functionality with the community. The gallery is continuously updated with community-submitted modes. - - -### OHIF Viewer v3.1 - Cornerstone3D Integration (July 2022) - -Check out the complete press announcement [here](https://ohif.org/newsletters/2022-07-28-ohif%20&%20cornerstone3d%20integratione). - -- Cornerstone3D Integration: OHIF v3.1 has deprecated the legacy Cornerstone.js extension and replaced all functionality with Cornerstone3D. This includes updating the Measurement Tracking workflow mode. - -- GPU Accelerated 2D Rendering: The Cornerstone3D rendering engine now supports WebGL 2D textures for large images, increasing the interaction speed significantly compared to the legacy Cornerstone.js engine. - -- Upgraded Hanging Protocol Engine: The OHIF Hanging Protocol Engine has been updated for increased flexibility and ease of writing protocols. This includes the ability to position viewports in any non-grid layout and specify viewport configurations such as colormap, initial VOI, initial image to render, orientation, and more. - - -### OHIF Viewer v3.0 Public Beta Launch (September 2021) - -Check out the complete press announcement [here](https://ohif.org/newsletters/2021-09-14-ohif%20update:%20v3%20public%20beta%20launch--release). - -- UI has been completely redesigned with modularity and workflow modes in mind. -- New UI components have been built with Tailwind CSS -- Addition of workflow modes - - Often, medical imaging use cases involves lots of specific workflows that - reuse functionalities. We have added the capability of workflow modes, that - enable people to customize user interface and configure application for - specific workflow. - - The idea is to reuse the functionalities that extensions provide and create - a workflow. Brain segmentation workflow is different from prostate - segmentation in UI for sure; however, they share the segmentation tools that - can be re-used. - - Our vision is that technical people focus of developing extensions which - provides core functionalities, and experts to build modes by picking the - appropriate functionalities from each extension. - - - - - +You can find the detailed release notes on the OHIF website. Please visit [https://ohif.org/release-notes](https://ohif.org/release-notes) diff --git a/platform/docs/docusaurus.config.js b/platform/docs/docusaurus.config.js index bdcaa205b..2c3022471 100644 --- a/platform/docs/docusaurus.config.js +++ b/platform/docs/docusaurus.config.js @@ -270,7 +270,7 @@ module.exports = { announcementBar: { id: 'healthimaging', content: - '🚀 AWS has announced the general availability of HealthImaging! Easily connect your OHIF to it. Learn more Here!! 🌟', + '🚀 The latest version of OHIF, v3.7, has been released. You can find the release notes by following this Link! 🌟', }, prism: { theme: require('prism-react-renderer/themes/github'), From c54658a320dc855c5b0319b025e1d307a6fd7116 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 12 Oct 2023 21:18:31 +0000 Subject: [PATCH 002/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 5a7d85f2a..5f5050fee 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -157b88c909d3289cb89ace731c1f9a19d40797ac \ No newline at end of file +55002fbd712b6470b2217f75588e6a43366803e6 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 63cd638ef..5b764a9b6 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/i18n": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/i18n": "3.8.0-beta.0", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 82fa45772..8c295b083 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/i18n": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/i18n": "3.8.0-beta.0", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ec5a5f583..e986411c6 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-measurement-tracking": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-measurement-tracking": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 067ee5b20..4ec9555c6 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "dcmjs": "^0.29.6", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 65a5ce0fe..be0233f02 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/i18n": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/i18n": "3.8.0-beta.0", "dcmjs": "^0.29.5", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 9a3d60b5f..7b8adcc98 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/i18n": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/i18n": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index c3e41a8f2..c14eee5b9 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 81d7de6a0..dea2ce5b2 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 058cade0d..ed10433b2 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "classnames": "^2.3.2", "dcmjs": "^0.29.5", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 85742931d..a65d3a48a 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "dcmjs": "0.29.4", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0ae34724c..f86d8b4bf 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 1c59faf85..3f98e86bc 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/extension-dicom-pdf": "3.7.0-beta.110", - "@ohif/extension-dicom-video": "3.7.0-beta.110" + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/extension-dicom-pdf": "3.8.0-beta.0", + "@ohif/extension-dicom-video": "3.8.0-beta.0" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5d4d8b3b9..d62d14ed0 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/extension-dicom-pdf": "3.7.0-beta.110", - "@ohif/extension-dicom-video": "3.7.0-beta.110", - "@ohif/extension-measurement-tracking": "3.7.0-beta.110", - "@ohif/extension-test": "3.7.0-beta.110" + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/extension-dicom-pdf": "3.8.0-beta.0", + "@ohif/extension-dicom-video": "3.8.0-beta.0", + "@ohif/extension-measurement-tracking": "3.8.0-beta.0", + "@ohif/extension-test": "3.8.0-beta.0" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e8b675a5e..0b657d2a3 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/extension-dicom-pdf": "3.7.0-beta.110", - "@ohif/extension-dicom-video": "3.7.0-beta.110", - "@ohif/extension-measurement-tracking": "3.7.0-beta.110" + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/extension-dicom-pdf": "3.8.0-beta.0", + "@ohif/extension-dicom-video": "3.8.0-beta.0", + "@ohif/extension-measurement-tracking": "3.8.0-beta.0" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 6e8af6dad..308e1da4d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-dicom-microscopy": "3.7.0-beta.110" + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.0" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 63e78ed3b..ff89f00de 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110" + "@ohif/core": "3.8.0-beta.0" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index d35cf3399..f7ff1f5d7 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/extension-dicom-pdf": "3.7.0-beta.110", - "@ohif/extension-dicom-video": "3.7.0-beta.110", - "@ohif/extension-measurement-tracking": "3.7.0-beta.110" + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/extension-dicom-pdf": "3.8.0-beta.0", + "@ohif/extension-dicom-video": "3.8.0-beta.0", + "@ohif/extension-measurement-tracking": "3.8.0-beta.0" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index aff2957d3..d12ea20a2 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/ui": "3.8.0-beta.0", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 80f2457ff..c8e4d9b7b 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.7.0-beta.110", - "commit": "157b88c909d3289cb89ace731c1f9a19d40797ac" + "version": "3.8.0-beta.0", + "commit": "55002fbd712b6470b2217f75588e6a43366803e6" } \ No newline at end of file diff --git a/version.txt b/version.txt index 330887b25..d4ab6a088 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.7.0-beta.110 \ No newline at end of file +3.8.0-beta.0 \ No newline at end of file From 33f125940863607f8dba82c71b27a43f35431dd5 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 12 Oct 2023 21:18:38 +0000 Subject: [PATCH 003/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a036bc983..87343334e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 440e8b318..aa8023f2d 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 5b764a9b6..bf9b56c0d 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 1db0bfe77..62c7f1e53 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 8c295b083..dbfc86b77 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 4020a31a5..b5b66b900 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index e986411c6..3217a2072 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index d7bf412e3..f3b31e668 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 4ec9555c6..3dffc4458 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 96c26adf5..90d0505d5 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) diff --git a/extensions/default/package.json b/extensions/default/package.json index be0233f02..f6d10b036 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 87ac2fb80..7740bb0d6 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 7b8adcc98..cb03fa9e6 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 81637721e..a3259887b 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index c14eee5b9..4632b0e24 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index b0a2bdc38..9417b21d6 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index dea2ce5b2..e4537c4e0 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 0092ed754..0983cc178 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index ed10433b2..9bd3f1b2b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/ui": "3.8.0-beta.0", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index bfb143596..563c49b0a 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index a65d3a48a..74c0a8bf2 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 5bbc2d7e1..fa6bfae14 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index f86d8b4bf..df5206653 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 228271c48..45bbddc35 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 82587fa4d..49eab9d73 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 3f98e86bc..847773238 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index d01ee9c14..cb9bed07c 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d62d14ed0..a611b1f34 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 493841610..f46d683f6 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 0b657d2a3..75035a79c 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 0b8aab69e..0192ce060 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 308e1da4d..c8d1775d9 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index b0299e267..3403287e2 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index ff89f00de..cb1bd0245 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 3163a98ef..ceb8978a9 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f7ff1f5d7..b02e9b4a9 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index a9d9ed654..84d4bd3f4 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 0aa902b40..43d70adfe 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.7.0-beta.110", - "@ohif/extension-cornerstone": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.110", - "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.110", - "@ohif/extension-default": "3.7.0-beta.110", - "@ohif/extension-dicom-microscopy": "3.7.0-beta.110", - "@ohif/extension-dicom-pdf": "3.7.0-beta.110", - "@ohif/extension-dicom-video": "3.7.0-beta.110", - "@ohif/extension-test": "3.7.0-beta.110", - "@ohif/i18n": "3.7.0-beta.110", - "@ohif/mode-basic-dev-mode": "3.7.0-beta.110", - "@ohif/mode-longitudinal": "3.7.0-beta.110", - "@ohif/mode-microscopy": "3.7.0-beta.110", - "@ohif/mode-test": "3.7.0-beta.110", - "@ohif/ui": "3.7.0-beta.110", + "@ohif/core": "3.8.0-beta.0", + "@ohif/extension-cornerstone": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.0", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", + "@ohif/extension-default": "3.8.0-beta.0", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.0", + "@ohif/extension-dicom-pdf": "3.8.0-beta.0", + "@ohif/extension-dicom-video": "3.8.0-beta.0", + "@ohif/extension-test": "3.8.0-beta.0", + "@ohif/i18n": "3.8.0-beta.0", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.0", + "@ohif/mode-longitudinal": "3.8.0-beta.0", + "@ohif/mode-microscopy": "3.8.0-beta.0", + "@ohif/mode-test": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.0", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 19b32f545..a8a514457 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 83172a203..14abf110d 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index ed89c87a9..770393411 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index d12ea20a2..2b4c638a2 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 36305753d..0913fe30d 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 8b2379723..e04fcd4cf 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 55a6f5ea8..dc85f8e0d 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 186527d70..cd113862d 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index b1eb85eb8..8dec052cd 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.7.0-beta.110](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.109...v3.7.0-beta.110) (2023-10-11) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 550e89653..e12d86932 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.7.0-beta.110", + "version": "3.8.0-beta.0", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 93d798db99c0dee53ef73c376f8a74ac3049cf3f Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Thu, 19 Oct 2023 13:02:03 -0400 Subject: [PATCH 004/289] fix(calibration): No calibration popup caused by perhaps an unused code optimization for production builds (#3736) --- extensions/cornerstone/src/tools/CalibrationLineTool.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/extensions/cornerstone/src/tools/CalibrationLineTool.ts b/extensions/cornerstone/src/tools/CalibrationLineTool.ts index 3b4a9bede..c9e008fc6 100644 --- a/extensions/cornerstone/src/tools/CalibrationLineTool.ts +++ b/extensions/cornerstone/src/tools/CalibrationLineTool.ts @@ -66,14 +66,6 @@ export function onCompletedCalibrationLine(servicesManager, csToolsEvent) { calculateLength3(annotationData.handles.points[0], annotationData.handles.points[1]) * 100 ) / 100; - // calculate the currently applied pixel spacing on the viewport - const calibratedPixelSpacing = metaData.get('calibratedPixelSpacing', imageId); - const imagePlaneModule = metaData.get('imagePlaneModule', imageId); - const currentRowPixelSpacing = - calibratedPixelSpacing?.[0] || imagePlaneModule?.rowPixelSpacing || 1; - const currentColumnPixelSpacing = - calibratedPixelSpacing?.[1] || imagePlaneModule?.columnPixelSpacing || 1; - const adjustCalibration = newLength => { const spacingScale = newLength / length; From 5f8325e33870447242586555edb96e2c072fda1b Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 19 Oct 2023 17:10:36 +0000 Subject: [PATCH 005/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 5f5050fee..abd6ae222 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -55002fbd712b6470b2217f75588e6a43366803e6 \ No newline at end of file +93d798db99c0dee53ef73c376f8a74ac3049cf3f \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index bf9b56c0d..00d9b404f 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/i18n": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/i18n": "3.8.0-beta.1", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index dbfc86b77..ae048e779 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/i18n": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/i18n": "3.8.0-beta.1", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3217a2072..272653562 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-measurement-tracking": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-measurement-tracking": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 3dffc4458..8c6bf182d 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "dcmjs": "^0.29.6", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index f6d10b036..f031bb93f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/i18n": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/i18n": "3.8.0-beta.1", "dcmjs": "^0.29.5", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index cb03fa9e6..02e911646 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/i18n": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/i18n": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 4632b0e24..6df6a1df7 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index e4537c4e0..98acbe5c4 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 9bd3f1b2b..2d4fae681 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "classnames": "^2.3.2", "dcmjs": "^0.29.5", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 74c0a8bf2..ea8b84203 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "dcmjs": "0.29.4", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index df5206653..e054a590c 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 847773238..0802ce6d3 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/extension-dicom-pdf": "3.8.0-beta.0", - "@ohif/extension-dicom-video": "3.8.0-beta.0" + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/extension-dicom-pdf": "3.8.0-beta.1", + "@ohif/extension-dicom-video": "3.8.0-beta.1" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index a611b1f34..e0ca635b6 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/extension-dicom-pdf": "3.8.0-beta.0", - "@ohif/extension-dicom-video": "3.8.0-beta.0", - "@ohif/extension-measurement-tracking": "3.8.0-beta.0", - "@ohif/extension-test": "3.8.0-beta.0" + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/extension-dicom-pdf": "3.8.0-beta.1", + "@ohif/extension-dicom-video": "3.8.0-beta.1", + "@ohif/extension-measurement-tracking": "3.8.0-beta.1", + "@ohif/extension-test": "3.8.0-beta.1" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 75035a79c..8f7942d85 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/extension-dicom-pdf": "3.8.0-beta.0", - "@ohif/extension-dicom-video": "3.8.0-beta.0", - "@ohif/extension-measurement-tracking": "3.8.0-beta.0" + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/extension-dicom-pdf": "3.8.0-beta.1", + "@ohif/extension-dicom-video": "3.8.0-beta.1", + "@ohif/extension-measurement-tracking": "3.8.0-beta.1" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index c8d1775d9..f7539c012 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.0" + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.1" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index cb1bd0245..b8230c0ec 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0" + "@ohif/core": "3.8.0-beta.1" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index b02e9b4a9..44d7cad36 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/extension-dicom-pdf": "3.8.0-beta.0", - "@ohif/extension-dicom-video": "3.8.0-beta.0", - "@ohif/extension-measurement-tracking": "3.8.0-beta.0" + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/extension-dicom-pdf": "3.8.0-beta.1", + "@ohif/extension-dicom-video": "3.8.0-beta.1", + "@ohif/extension-measurement-tracking": "3.8.0-beta.1" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 2b4c638a2..80e7b6c0d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.1", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index c8e4d9b7b..212f4ab95 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.0", - "commit": "55002fbd712b6470b2217f75588e6a43366803e6" + "version": "3.8.0-beta.1", + "commit": "93d798db99c0dee53ef73c376f8a74ac3049cf3f" } \ No newline at end of file diff --git a/version.txt b/version.txt index d4ab6a088..189b9f0c7 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.0 \ No newline at end of file +3.8.0-beta.1 \ No newline at end of file From fa599d05fb31300dc757224d95339890ba46ad55 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 19 Oct 2023 17:10:43 +0000 Subject: [PATCH 006/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87343334e..049999539 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + + +### Bug Fixes + +* **calibration:** No calibration popup caused by perhaps an unused code optimization for production builds ([#3736](https://github.com/OHIF/Viewers/issues/3736)) ([93d798d](https://github.com/OHIF/Viewers/commit/93d798db99c0dee53ef73c376f8a74ac3049cf3f)) + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index aa8023f2d..2e1ec6c37 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 00d9b404f..555c7f4b4 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 62c7f1e53..35ffe397d 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ae048e779..b013359f9 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index b5b66b900..9e4c2dfbf 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 272653562..13c080f61 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index f3b31e668..c793fa648 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + + +### Bug Fixes + +* **calibration:** No calibration popup caused by perhaps an unused code optimization for production builds ([#3736](https://github.com/OHIF/Viewers/issues/3736)) ([93d798d](https://github.com/OHIF/Viewers/commit/93d798db99c0dee53ef73c376f8a74ac3049cf3f)) + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 8c6bf182d..e63dc7c5f 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 90d0505d5..876ab3089 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index f031bb93f..c8a93540f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 7740bb0d6..754ad1457 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 02e911646..b4ef015d8 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index a3259887b..da1e6ac4b 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 6df6a1df7..9c9262cab 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 9417b21d6..77a1ac6e9 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 98acbe5c4..623a5a71b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 0983cc178..32ec156d5 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 2d4fae681..6a417a8ee 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/ui": "3.8.0-beta.1", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 563c49b0a..1b9ace6bd 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index ea8b84203..0e685e457 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index fa6bfae14..1c35ece5d 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index e054a590c..31243114d 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 45bbddc35..cf1439865 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 49eab9d73..f21aee0d2 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 0802ce6d3..f6fbc656d 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index cb9bed07c..b475aa0c7 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index e0ca635b6..70836499d 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index f46d683f6..2e7f8614e 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 8f7942d85..25fd826b9 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 0192ce060..4bfa9483a 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index f7539c012..68ea1f491 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 3403287e2..76d7ce93b 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index b8230c0ec..1bea2578f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index ceb8978a9..cc3df6220 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 44d7cad36..a2b5c74e7 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 84d4bd3f4..8baf6dbe1 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 43d70adfe..3e7ec3b31 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.0", - "@ohif/extension-cornerstone": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.0", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.0", - "@ohif/extension-default": "3.8.0-beta.0", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.0", - "@ohif/extension-dicom-pdf": "3.8.0-beta.0", - "@ohif/extension-dicom-video": "3.8.0-beta.0", - "@ohif/extension-test": "3.8.0-beta.0", - "@ohif/i18n": "3.8.0-beta.0", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.0", - "@ohif/mode-longitudinal": "3.8.0-beta.0", - "@ohif/mode-microscopy": "3.8.0-beta.0", - "@ohif/mode-test": "3.8.0-beta.0", - "@ohif/ui": "3.8.0-beta.0", + "@ohif/core": "3.8.0-beta.1", + "@ohif/extension-cornerstone": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.1", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", + "@ohif/extension-default": "3.8.0-beta.1", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.1", + "@ohif/extension-dicom-pdf": "3.8.0-beta.1", + "@ohif/extension-dicom-video": "3.8.0-beta.1", + "@ohif/extension-test": "3.8.0-beta.1", + "@ohif/i18n": "3.8.0-beta.1", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.1", + "@ohif/mode-longitudinal": "3.8.0-beta.1", + "@ohif/mode-microscopy": "3.8.0-beta.1", + "@ohif/mode-test": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.1", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index a8a514457..b122f035e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 14abf110d..8be3c7084 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 770393411..ae8fd7586 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 80e7b6c0d..7a1e45a38 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 0913fe30d..9eba46e2a 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index e04fcd4cf..a4ea4dc92 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index dc85f8e0d..a83e7ce1d 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index cd113862d..87ed41896 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 8dec052cd..d01ae4692 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.0](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.110...v3.8.0-beta.0) (2023-10-12) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index e12d86932..e6c7e8707 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.0", + "version": "3.8.0-beta.1", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From d9258eca70587cf4dc18be4e56c79b16bae73d6d Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Thu, 19 Oct 2023 13:29:44 -0400 Subject: [PATCH 007/289] fix(cine): Use the frame rate specified in DICOM and optionally auto play cine (#3735) Co-authored-by: rareramos Co-authored-by: Doug Horner Co-authored-by: Rehan <58819707+Rayhan-011@users.noreply.github.com> --- .../src/components/CinePlayer/CinePlayer.tsx | 50 +++++++++++++++---- .../docs/configuration/configurationFiles.md | 1 + .../src/components/CinePlayer/CinePlayer.tsx | 6 ++- 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx b/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx index 92bb15103..be007920e 100644 --- a/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx +++ b/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx @@ -1,11 +1,19 @@ -import React, { useEffect } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import { CinePlayer, useCine, useViewportGrid } from '@ohif/ui'; import { Enums, eventTarget } from '@cornerstonejs/core'; +import { useAppConfig } from '@state'; function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { - const { toolbarService, customizationService } = servicesManager.services; - const [{ isCineEnabled, cines }, cineService] = useCine(); - const [{ activeViewportId }] = useViewportGrid(); + const { + toolbarService, + customizationService, + displaySetService, + viewportGridService, + cineService, + } = servicesManager.services; + const [{ isCineEnabled, cines }] = useCine(); + const [newStackFrameRate, setNewStackFrameRate] = useState(24); + const [appConfig] = useAppConfig(); const { component: CinePlayerComponent = CinePlayer } = customizationService.get('cinePlayer') ?? {}; @@ -45,14 +53,37 @@ function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { } }; + const newStackCineHandler = useCallback(() => { + const { viewports } = viewportGridService.getState(); + const { displaySetInstanceUIDs } = viewports.get(viewportId); + + let frameRate = 24; + let isPlaying = cines[viewportId].isPlaying; + displaySetInstanceUIDs.forEach(displaySetInstanceUID => { + const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID); + if (displaySet.FrameRate) { + // displaySet.FrameRate corresponds to DICOM tag (0018,1063) which is defined as the the frame time in milliseconds + // So a bit of math to get the actual frame rate. + frameRate = Math.round(1000 / displaySet.FrameRate); + isPlaying ||= !!appConfig.autoPlayCine; + } + }); + + if (isPlaying) { + cineService.setIsCineEnabled(isPlaying); + } + cineService.setCine({ id: viewportId, isPlaying, frameRate }); + setNewStackFrameRate(frameRate); + }, [cineService, displaySetService, viewportId, viewportGridService, cines]); + useEffect(() => { - eventTarget.addEventListener(Enums.Events.STACK_VIEWPORT_NEW_STACK, cineHandler); + eventTarget.addEventListener(Enums.Events.STACK_VIEWPORT_NEW_STACK, newStackCineHandler); return () => { cineService.setCine({ id: viewportId, isPlaying: false }); - eventTarget.removeEventListener(Enums.Events.STACK_VIEWPORT_NEW_STACK, cineHandler); + eventTarget.removeEventListener(Enums.Events.STACK_VIEWPORT_NEW_STACK, newStackCineHandler); }; - }, [enabledVPElement]); + }, [enabledVPElement, newStackCineHandler]); useEffect(() => { if (!cines || !cines[viewportId] || !enabledVPElement) { @@ -75,17 +106,18 @@ function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { isCineEnabled && ( cineService.setCine({ - id: activeViewportId, + id: viewportId, isPlaying, }) } onFrameRateChange={frameRate => cineService.setCine({ - id: activeViewportId, + id: viewportId, frameRate, }) } diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index 746041d6e..96325b2d9 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -185,6 +185,7 @@ if auth headers are used, a preflight request is required. load the volume progressively as the data arrives (each webworker has the shared buffer and can write to it). However, there might be certain environments that do not support sharedArrayBuffer. In that case, you can set this flag to false and the viewer will use the regular arrayBuffer which might be slower for large volume loading. - `supportsWildcard`: (default to false), if set to true, the datasource will support wildcard matching for patient name and patient id. - `allowMultiSelectExport`: (default to false), if set to true, the user will be able to select the datasource to export the report to. +- `autoPlayCine`: (default to false), if set to true, data sets with the DICOM frame time tag (i.e. (0018,1063)) will auto play when displayed - `dangerouslyUseDynamicConfig`: Dynamic config allows user to pass `configUrl` query string. This allows to load config without recompiling application. If the `configUrl` query string is passed, the worklist and modes will load from the referenced json rather than the default .env config. If there is no `configUrl` path provided, the default behaviour is used and there should not be any deviation from current user experience.
Points to consider while using `dangerouslyUseDynamicConfig`:
- User have to enable this feature by setting `dangerouslyUseDynamicConfig.enabled:true`. By default it is `false`. diff --git a/platform/ui/src/components/CinePlayer/CinePlayer.tsx b/platform/ui/src/components/CinePlayer/CinePlayer.tsx index 843d318da..34afa7807 100644 --- a/platform/ui/src/components/CinePlayer/CinePlayer.tsx +++ b/platform/ui/src/components/CinePlayer/CinePlayer.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import debounce from 'lodash.debounce'; @@ -48,6 +48,10 @@ const CinePlayer: React.FC = ({ debouncedSetFrameRate(frameRate); }; + useEffect(() => { + setFrameRate(defaultFrameRate); + }, [defaultFrameRate]); + return (
Date: Thu, 19 Oct 2023 17:39:15 +0000 Subject: [PATCH 008/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index abd6ae222..62fcf309a 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -93d798db99c0dee53ef73c376f8a74ac3049cf3f \ No newline at end of file +d9258eca70587cf4dc18be4e56c79b16bae73d6d \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 555c7f4b4..783163144 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/i18n": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/i18n": "3.8.0-beta.2", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b013359f9..0320dc3b2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/i18n": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/i18n": "3.8.0-beta.2", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 13c080f61..7b861cf0a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-measurement-tracking": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-measurement-tracking": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e63dc7c5f..ddced20a9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "dcmjs": "^0.29.6", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index c8a93540f..528648150 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/i18n": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/i18n": "3.8.0-beta.2", "dcmjs": "^0.29.5", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b4ef015d8..7017b85f8 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/i18n": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/i18n": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 9c9262cab..8149874ab 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 623a5a71b..18fdbc3ae 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6a417a8ee..54377e319 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "classnames": "^2.3.2", "dcmjs": "^0.29.5", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 0e685e457..39b42e12b 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "dcmjs": "0.29.4", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 31243114d..a361fa2b2 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index f6fbc656d..e32ddd6bf 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/extension-dicom-pdf": "3.8.0-beta.1", - "@ohif/extension-dicom-video": "3.8.0-beta.1" + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/extension-dicom-pdf": "3.8.0-beta.2", + "@ohif/extension-dicom-video": "3.8.0-beta.2" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 70836499d..6db549db5 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/extension-dicom-pdf": "3.8.0-beta.1", - "@ohif/extension-dicom-video": "3.8.0-beta.1", - "@ohif/extension-measurement-tracking": "3.8.0-beta.1", - "@ohif/extension-test": "3.8.0-beta.1" + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/extension-dicom-pdf": "3.8.0-beta.2", + "@ohif/extension-dicom-video": "3.8.0-beta.2", + "@ohif/extension-measurement-tracking": "3.8.0-beta.2", + "@ohif/extension-test": "3.8.0-beta.2" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 25fd826b9..2e975a177 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/extension-dicom-pdf": "3.8.0-beta.1", - "@ohif/extension-dicom-video": "3.8.0-beta.1", - "@ohif/extension-measurement-tracking": "3.8.0-beta.1" + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/extension-dicom-pdf": "3.8.0-beta.2", + "@ohif/extension-dicom-video": "3.8.0-beta.2", + "@ohif/extension-measurement-tracking": "3.8.0-beta.2" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 68ea1f491..bfb5b5e9c 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.1" + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.2" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 1bea2578f..f37f90f5a 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1" + "@ohif/core": "3.8.0-beta.2" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index a2b5c74e7..0f84c5416 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/extension-dicom-pdf": "3.8.0-beta.1", - "@ohif/extension-dicom-video": "3.8.0-beta.1", - "@ohif/extension-measurement-tracking": "3.8.0-beta.1" + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/extension-dicom-pdf": "3.8.0-beta.2", + "@ohif/extension-dicom-video": "3.8.0-beta.2", + "@ohif/extension-measurement-tracking": "3.8.0-beta.2" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 7a1e45a38..9a2f495b1 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.2", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 212f4ab95..0a180ad1e 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.1", - "commit": "93d798db99c0dee53ef73c376f8a74ac3049cf3f" + "version": "3.8.0-beta.2", + "commit": "d9258eca70587cf4dc18be4e56c79b16bae73d6d" } \ No newline at end of file diff --git a/version.txt b/version.txt index 189b9f0c7..9847ebd3d 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.1 \ No newline at end of file +3.8.0-beta.2 \ No newline at end of file From 43c882ac87f395f3a7bb88660b025975d4ce6573 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 19 Oct 2023 17:39:23 +0000 Subject: [PATCH 009/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 245 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 049999539..76123ba19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + + +### Bug Fixes + +* **cine:** Use the frame rate specified in DICOM and optionally auto play cine ([#3735](https://github.com/OHIF/Viewers/issues/3735)) ([d9258ec](https://github.com/OHIF/Viewers/commit/d9258eca70587cf4dc18be4e56c79b16bae73d6d)) + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 2e1ec6c37..8656b9cd2 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 783163144..6c3444492 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 35ffe397d..b16bb1609 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 0320dc3b2..4ea5a4fa8 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 9e4c2dfbf..d33cd8855 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 7b861cf0a..08cabbf70 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index c793fa648..cc3b17f82 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + + +### Bug Fixes + +* **cine:** Use the frame rate specified in DICOM and optionally auto play cine ([#3735](https://github.com/OHIF/Viewers/issues/3735)) ([d9258ec](https://github.com/OHIF/Viewers/commit/d9258eca70587cf4dc18be4e56c79b16bae73d6d)) + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ddced20a9..608069134 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 876ab3089..0759c13f4 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 528648150..7b492a18b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 754ad1457..e6ef68bb0 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 7017b85f8..d38838267 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index da1e6ac4b..7eb90948b 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8149874ab..f1c2a59fa 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 77a1ac6e9..aba9cab7a 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 18fdbc3ae..5eeee0a6b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 32ec156d5..61a2bc6a6 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 54377e319..153cae498 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/ui": "3.8.0-beta.2", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 1b9ace6bd..26b13da6d 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 39b42e12b..88e69225f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 1c35ece5d..574c66d79 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index a361fa2b2..9181ee3b6 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index cf1439865..658ae6ca0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index f21aee0d2..585dbe537 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index e32ddd6bf..e101c19ad 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index b475aa0c7..310d79446 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 6db549db5..18641c8f9 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 2e7f8614e..353a58290 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 2e975a177..4d89162d8 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 4bfa9483a..34eca78f0 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index bfb5b5e9c..4053439e7 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 76d7ce93b..9a643433d 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index f37f90f5a..24ff2c108 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index cc3df6220..2b915ac35 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 0f84c5416..8f113ecc3 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 8baf6dbe1..896926c59 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 3e7ec3b31..a00331c13 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.1", - "@ohif/extension-cornerstone": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.1", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.1", - "@ohif/extension-default": "3.8.0-beta.1", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.1", - "@ohif/extension-dicom-pdf": "3.8.0-beta.1", - "@ohif/extension-dicom-video": "3.8.0-beta.1", - "@ohif/extension-test": "3.8.0-beta.1", - "@ohif/i18n": "3.8.0-beta.1", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.1", - "@ohif/mode-longitudinal": "3.8.0-beta.1", - "@ohif/mode-microscopy": "3.8.0-beta.1", - "@ohif/mode-test": "3.8.0-beta.1", - "@ohif/ui": "3.8.0-beta.1", + "@ohif/core": "3.8.0-beta.2", + "@ohif/extension-cornerstone": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.2", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", + "@ohif/extension-default": "3.8.0-beta.2", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.2", + "@ohif/extension-dicom-pdf": "3.8.0-beta.2", + "@ohif/extension-dicom-video": "3.8.0-beta.2", + "@ohif/extension-test": "3.8.0-beta.2", + "@ohif/i18n": "3.8.0-beta.2", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.2", + "@ohif/mode-longitudinal": "3.8.0-beta.2", + "@ohif/mode-microscopy": "3.8.0-beta.2", + "@ohif/mode-test": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.2", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index b122f035e..82a6dcd1b 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 8be3c7084..a4b92a307 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index ae8fd7586..b69844526 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 9a2f495b1..337e404ed 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 9eba46e2a..bdd84efd2 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + + +### Bug Fixes + +* **cine:** Use the frame rate specified in DICOM and optionally auto play cine ([#3735](https://github.com/OHIF/Viewers/issues/3735)) ([d9258ec](https://github.com/OHIF/Viewers/commit/d9258eca70587cf4dc18be4e56c79b16bae73d6d)) + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index a4ea4dc92..2e9900faf 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a83e7ce1d..97a6ded88 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 87ed41896..c6460eef7 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index d01ae4692..6a8208197 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) + + +### Bug Fixes + +* **cine:** Use the frame rate specified in DICOM and optionally auto play cine ([#3735](https://github.com/OHIF/Viewers/issues/3735)) ([d9258ec](https://github.com/OHIF/Viewers/commit/d9258eca70587cf4dc18be4e56c79b16bae73d6d)) + + + + + # [3.8.0-beta.1](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.0...v3.8.0-beta.1) (2023-10-19) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index e6c7e8707..771f78ec5 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.1", + "version": "3.8.0-beta.2", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 49514aedfe0498b5bd505193106a9745a6a5b5e6 Mon Sep 17 00:00:00 2001 From: edwardyangxin Date: Mon, 23 Oct 2023 06:13:24 -0700 Subject: [PATCH 010/289] fix(recipes): package.json script orthanc:up docker-compose path (#3741) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cb9d48554..b542adbda 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "dev:orthanc": "lerna run dev:orthanc --stream", "dev:dcm4chee": "lerna run dev:dcm4chee --stream", "dev:static": "lerna run dev:static --stream", - "orthanc:up": "docker-compose -f platform/app/.recipes/Nginx-Orthanc/docker-compose.yml up", + "orthanc:up": "docker-compose -f platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml up", "preinstall": "node preinstall.js", "start": "yarn run dev", "test": "yarn run test:unit", From a7125f9385075f3a399e51c78f113c4a29c94a1e Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 23 Oct 2023 13:22:59 +0000 Subject: [PATCH 011/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 62fcf309a..6b92fb715 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -d9258eca70587cf4dc18be4e56c79b16bae73d6d \ No newline at end of file +49514aedfe0498b5bd505193106a9745a6a5b5e6 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 6c3444492..ebdd1d86c 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/i18n": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/i18n": "3.8.0-beta.3", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4ea5a4fa8..7fe7650d0 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/i18n": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/i18n": "3.8.0-beta.3", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 08cabbf70..8d880dde2 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-measurement-tracking": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-measurement-tracking": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 608069134..663df1c1c 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "dcmjs": "^0.29.6", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 7b492a18b..66b0e27e7 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/i18n": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/i18n": "3.8.0-beta.3", "dcmjs": "^0.29.5", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index d38838267..cbacae9c5 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/i18n": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/i18n": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f1c2a59fa..69e336f02 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 5eeee0a6b..53bd4e478 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 153cae498..6560bf5e2 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "classnames": "^2.3.2", "dcmjs": "^0.29.5", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 88e69225f..ed446232d 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "dcmjs": "0.29.4", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 9181ee3b6..345c09cde 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index e101c19ad..685196779 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/extension-dicom-pdf": "3.8.0-beta.2", - "@ohif/extension-dicom-video": "3.8.0-beta.2" + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/extension-dicom-pdf": "3.8.0-beta.3", + "@ohif/extension-dicom-video": "3.8.0-beta.3" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 18641c8f9..d271a7b46 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/extension-dicom-pdf": "3.8.0-beta.2", - "@ohif/extension-dicom-video": "3.8.0-beta.2", - "@ohif/extension-measurement-tracking": "3.8.0-beta.2", - "@ohif/extension-test": "3.8.0-beta.2" + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/extension-dicom-pdf": "3.8.0-beta.3", + "@ohif/extension-dicom-video": "3.8.0-beta.3", + "@ohif/extension-measurement-tracking": "3.8.0-beta.3", + "@ohif/extension-test": "3.8.0-beta.3" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 4d89162d8..d47e6ad2e 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/extension-dicom-pdf": "3.8.0-beta.2", - "@ohif/extension-dicom-video": "3.8.0-beta.2", - "@ohif/extension-measurement-tracking": "3.8.0-beta.2" + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/extension-dicom-pdf": "3.8.0-beta.3", + "@ohif/extension-dicom-video": "3.8.0-beta.3", + "@ohif/extension-measurement-tracking": "3.8.0-beta.3" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 4053439e7..5a5aff369 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.2" + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.3" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 24ff2c108..8bb92359f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2" + "@ohif/core": "3.8.0-beta.3" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 8f113ecc3..58c419479 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/extension-dicom-pdf": "3.8.0-beta.2", - "@ohif/extension-dicom-video": "3.8.0-beta.2", - "@ohif/extension-measurement-tracking": "3.8.0-beta.2" + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/extension-dicom-pdf": "3.8.0-beta.3", + "@ohif/extension-dicom-video": "3.8.0-beta.3", + "@ohif/extension-measurement-tracking": "3.8.0-beta.3" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 337e404ed..b525c53a1 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.3", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 0a180ad1e..aa9f8b996 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.2", - "commit": "d9258eca70587cf4dc18be4e56c79b16bae73d6d" + "version": "3.8.0-beta.3", + "commit": "49514aedfe0498b5bd505193106a9745a6a5b5e6" } \ No newline at end of file diff --git a/version.txt b/version.txt index 9847ebd3d..cebc8872d 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.2 \ No newline at end of file +3.8.0-beta.3 \ No newline at end of file From c31c7f8e7911f16aaae49ce9a4ca50f79ebbfc9f Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 23 Oct 2023 13:23:07 +0000 Subject: [PATCH 012/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 236 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76123ba19..b4cf67cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + + +### Bug Fixes + +* **recipes:** package.json script orthanc:up docker-compose path ([#3741](https://github.com/OHIF/Viewers/issues/3741)) ([49514ae](https://github.com/OHIF/Viewers/commit/49514aedfe0498b5bd505193106a9745a6a5b5e6)) + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 8656b9cd2..b5d5cf8ec 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index ebdd1d86c..33e744213 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index b16bb1609..f01da2273 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 7fe7650d0..1fda41080 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index d33cd8855..3b1aeea58 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 8d880dde2..edb283aff 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index cc3b17f82..a59c1898b 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 663df1c1c..47653d107 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 0759c13f4..b55cbb870 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 66b0e27e7..359f6d7f7 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index e6ef68bb0..0e70171f5 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index cbacae9c5..7cb1d6e77 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 7eb90948b..2d3353141 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 69e336f02..b5e48fb7b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index aba9cab7a..b1b97be38 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 53bd4e478..ab5045b2f 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 61a2bc6a6..d94d31672 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6560bf5e2..be0997d63 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/ui": "3.8.0-beta.3", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 26b13da6d..a639f35af 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index ed446232d..c81386222 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 574c66d79..e03dddb66 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 345c09cde..c5defbaa0 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 658ae6ca0..413418011 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 585dbe537..3f29406bc 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 685196779..d64586edb 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 310d79446..dd716ef51 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d271a7b46..c99c518f1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 353a58290..c52456151 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index d47e6ad2e..3ca765ae3 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 34eca78f0..ece38ac27 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 5a5aff369..2a14f32e9 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 9a643433d..ed984a40d 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 8bb92359f..dbd21ae69 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 2b915ac35..a4f4e4a52 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 58c419479..8454cc097 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 896926c59..968bb3121 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index a00331c13..e47ee3843 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.2", - "@ohif/extension-cornerstone": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.2", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.2", - "@ohif/extension-default": "3.8.0-beta.2", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.2", - "@ohif/extension-dicom-pdf": "3.8.0-beta.2", - "@ohif/extension-dicom-video": "3.8.0-beta.2", - "@ohif/extension-test": "3.8.0-beta.2", - "@ohif/i18n": "3.8.0-beta.2", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.2", - "@ohif/mode-longitudinal": "3.8.0-beta.2", - "@ohif/mode-microscopy": "3.8.0-beta.2", - "@ohif/mode-test": "3.8.0-beta.2", - "@ohif/ui": "3.8.0-beta.2", + "@ohif/core": "3.8.0-beta.3", + "@ohif/extension-cornerstone": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.3", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", + "@ohif/extension-default": "3.8.0-beta.3", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.3", + "@ohif/extension-dicom-pdf": "3.8.0-beta.3", + "@ohif/extension-dicom-video": "3.8.0-beta.3", + "@ohif/extension-test": "3.8.0-beta.3", + "@ohif/i18n": "3.8.0-beta.3", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.3", + "@ohif/mode-longitudinal": "3.8.0-beta.3", + "@ohif/mode-microscopy": "3.8.0-beta.3", + "@ohif/mode-test": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.3", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 82a6dcd1b..725359efc 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index a4b92a307..6bbbcf840 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index b69844526..de2eec785 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index b525c53a1..668909a95 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index bdd84efd2..63d96e854 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) diff --git a/platform/docs/package.json b/platform/docs/package.json index 2e9900faf..e819e5109 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 97a6ded88..51a2fc01a 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index c6460eef7..549e84f4d 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 6a8208197..af0a4c26a 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.2](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.1...v3.8.0-beta.2) (2023-10-19) diff --git a/platform/ui/package.json b/platform/ui/package.json index 771f78ec5..ff8c5c76c 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.2", + "version": "3.8.0-beta.3", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From eec9c33b76f86b2a9effe9ad45831b52c9302063 Mon Sep 17 00:00:00 2001 From: bluesteel23 <132684122+bluesteel23@users.noreply.github.com> Date: Mon, 23 Oct 2023 09:53:43 -0400 Subject: [PATCH 013/289] docs(azure): Azure static Deployment details (#3740) --- platform/docs/docs/deployment/static-assets.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/platform/docs/docs/deployment/static-assets.md b/platform/docs/docs/deployment/static-assets.md index 68b4fb9b3..bd69312d9 100644 --- a/platform/docs/docs/deployment/static-assets.md +++ b/platform/docs/docs/deployment/static-assets.md @@ -155,6 +155,22 @@ accurate documentation, we will link to each provider's own recommended steps: ### Azure -- [Host a Static Website](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website) + - Deploying viewer to Azure blob storage as a static website: + Refer to [Host a static website](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website) + High level steps : + 1. Go to Azure portal and create a storage account. + 2. Under Overview->Capabilities, select Static website. + 3. Enable Static website. Set the index document as ‘index.html’. + 4. Copy the primary endpoint. This will serve as the root URL for the viewer. + 5. Save. A new container named ‘$web’ will be created. + 6. Copy OHIF viewer’s build output from ‘platform\app\dist’ folder to the ‘$web’ container. + 7. Open browser and navigate to the viewer root URL copied in the step above. It should display OHIF viewer with data from default data source. + + ![image](https://github.com/OHIF/Viewers/assets/132684122/236a574b-0f05-4d90-a721-df8720d05949) + Special consideration while accessing DicomJson data source : + • Due to the way routing is handled in react, it may error out in production when trying to display data through dicomJson data source. E.g. https://[Static Website endpoint]/viewer/dicomjson?url= https://ohif-dicom-json-example.s3.amazonaws.com/LIDC-IDRI-0001.json + • Resolution to this is to set error page to ‘index.html’ at the website level. This will ensure that all errors are redirected to root and requests are further served from root path. + ![image](https://github.com/OHIF/Viewers/assets/132684122/87696c90-c344-489a-af15-b992434555f9) + - [Add SSL Support](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-https-custom-domain-cdn) - [Configure a Custom Domain](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-custom-domain-name) From 6e993511b74e19a2b9af222aff4d271ac7bb9270 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 23 Oct 2023 14:03:01 +0000 Subject: [PATCH 014/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 6b92fb715..fc08aba3f 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -49514aedfe0498b5bd505193106a9745a6a5b5e6 \ No newline at end of file +eec9c33b76f86b2a9effe9ad45831b52c9302063 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 33e744213..5fecbd47d 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/i18n": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/i18n": "3.8.0-beta.4", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 1fda41080..3acb5261c 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/i18n": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/i18n": "3.8.0-beta.4", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index edb283aff..21ce19596 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-measurement-tracking": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-measurement-tracking": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 47653d107..770d0ac91 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "dcmjs": "^0.29.6", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 359f6d7f7..b20af8a76 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/i18n": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/i18n": "3.8.0-beta.4", "dcmjs": "^0.29.5", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 7cb1d6e77..7fd680b00 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/i18n": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/i18n": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index b5e48fb7b..1e5a89640 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ab5045b2f..ba97cb335 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index be0997d63..cbafe07fe 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "classnames": "^2.3.2", "dcmjs": "^0.29.5", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c81386222..3a549f44a 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "dcmjs": "0.29.4", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c5defbaa0..46abfa9a2 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d64586edb..ba46a4c69 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/extension-dicom-pdf": "3.8.0-beta.3", - "@ohif/extension-dicom-video": "3.8.0-beta.3" + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/extension-dicom-pdf": "3.8.0-beta.4", + "@ohif/extension-dicom-video": "3.8.0-beta.4" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index c99c518f1..a83f3ffcb 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/extension-dicom-pdf": "3.8.0-beta.3", - "@ohif/extension-dicom-video": "3.8.0-beta.3", - "@ohif/extension-measurement-tracking": "3.8.0-beta.3", - "@ohif/extension-test": "3.8.0-beta.3" + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/extension-dicom-pdf": "3.8.0-beta.4", + "@ohif/extension-dicom-video": "3.8.0-beta.4", + "@ohif/extension-measurement-tracking": "3.8.0-beta.4", + "@ohif/extension-test": "3.8.0-beta.4" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 3ca765ae3..a3eabdfa7 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/extension-dicom-pdf": "3.8.0-beta.3", - "@ohif/extension-dicom-video": "3.8.0-beta.3", - "@ohif/extension-measurement-tracking": "3.8.0-beta.3" + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/extension-dicom-pdf": "3.8.0-beta.4", + "@ohif/extension-dicom-video": "3.8.0-beta.4", + "@ohif/extension-measurement-tracking": "3.8.0-beta.4" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 2a14f32e9..777a5aea5 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.3" + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.4" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index dbd21ae69..92be75986 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3" + "@ohif/core": "3.8.0-beta.4" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 8454cc097..7ddfb43df 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/extension-dicom-pdf": "3.8.0-beta.3", - "@ohif/extension-dicom-video": "3.8.0-beta.3", - "@ohif/extension-measurement-tracking": "3.8.0-beta.3" + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/extension-dicom-pdf": "3.8.0-beta.4", + "@ohif/extension-dicom-video": "3.8.0-beta.4", + "@ohif/extension-measurement-tracking": "3.8.0-beta.4" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 668909a95..db4b60b92 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.4", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index aa9f8b996..b7cc72c99 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.3", - "commit": "49514aedfe0498b5bd505193106a9745a6a5b5e6" + "version": "3.8.0-beta.4", + "commit": "eec9c33b76f86b2a9effe9ad45831b52c9302063" } \ No newline at end of file diff --git a/version.txt b/version.txt index cebc8872d..9979c42d3 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.3 \ No newline at end of file +3.8.0-beta.4 \ No newline at end of file From 3bbbcea0d7c5891f0aa31625a9935cbafc9e415f Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 23 Oct 2023 14:03:11 +0000 Subject: [PATCH 015/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4cf67cf0..78b1e7a32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index b5d5cf8ec..ccbe756b6 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 5fecbd47d..6dfcced88 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index f01da2273..6146797fa 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 3acb5261c..99456efd9 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 3b1aeea58..780618de8 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 21ce19596..3903c038d 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index a59c1898b..ce31f0ecd 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 770d0ac91..49e5984e2 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index b55cbb870..78a2ee66e 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index b20af8a76..1f5b8537e 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 0e70171f5..fc24c409c 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 7fd680b00..fd98b0713 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 2d3353141..b3bbfc5cc 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 1e5a89640..7a45b84de 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index b1b97be38..2688da21c 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ba97cb335..ac478f1ff 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index d94d31672..ed76eede5 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index cbafe07fe..be7d9c1c7 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/ui": "3.8.0-beta.4", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index a639f35af..84a0a1340 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 3a549f44a..c52c06d5f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index e03dddb66..091b38f33 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 46abfa9a2..893e128fe 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 413418011..3e7863e07 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 3f29406bc..9eea6480d 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index ba46a4c69..137d8100f 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index dd716ef51..e3549fb58 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index a83f3ffcb..c546a96e5 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index c52456151..0641957eb 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index a3eabdfa7..3856de29a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index ece38ac27..5d5ed996a 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 777a5aea5..2ce5b410b 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index ed984a40d..53497bc8f 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 92be75986..d92fa8034 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index a4f4e4a52..1370eb928 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 7ddfb43df..2b0716815 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 968bb3121..b94c86aed 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index e47ee3843..f4912c1e8 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.3", - "@ohif/extension-cornerstone": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.3", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.3", - "@ohif/extension-default": "3.8.0-beta.3", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.3", - "@ohif/extension-dicom-pdf": "3.8.0-beta.3", - "@ohif/extension-dicom-video": "3.8.0-beta.3", - "@ohif/extension-test": "3.8.0-beta.3", - "@ohif/i18n": "3.8.0-beta.3", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.3", - "@ohif/mode-longitudinal": "3.8.0-beta.3", - "@ohif/mode-microscopy": "3.8.0-beta.3", - "@ohif/mode-test": "3.8.0-beta.3", - "@ohif/ui": "3.8.0-beta.3", + "@ohif/core": "3.8.0-beta.4", + "@ohif/extension-cornerstone": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.4", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", + "@ohif/extension-default": "3.8.0-beta.4", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.4", + "@ohif/extension-dicom-pdf": "3.8.0-beta.4", + "@ohif/extension-dicom-video": "3.8.0-beta.4", + "@ohif/extension-test": "3.8.0-beta.4", + "@ohif/i18n": "3.8.0-beta.4", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.4", + "@ohif/mode-longitudinal": "3.8.0-beta.4", + "@ohif/mode-microscopy": "3.8.0-beta.4", + "@ohif/mode-test": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.4", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 725359efc..bf5cab4b7 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 6bbbcf840..e244ccb96 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index de2eec785..00e78902a 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index db4b60b92..64c00e484 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 63d96e854..5fa5fb539 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index e819e5109..b49933f06 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 51a2fc01a..c948a88d7 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 549e84f4d..d5e1bfc19 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index af0a4c26a..95bebb748 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.3](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.2...v3.8.0-beta.3) (2023-10-23) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index ff8c5c76c..dffb7cdae 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.3", + "version": "3.8.0-beta.4", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From d98439fe7f3825076dbc87b664a1d1480ff414d3 Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:06:12 -0400 Subject: [PATCH 016/289] fix(sr): dcm4chee requires the patient name for an SR to match what is in the original study (#3739) --- extensions/cornerstone-dicom-sr/package.json | 2 +- .../src/viewports/OHIFCornerstoneSRViewport.tsx | 2 +- extensions/cornerstone/package.json | 2 +- extensions/default/package.json | 2 +- extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/package.json | 2 +- extensions/test-extension/package.json | 2 +- extensions/tmtv/package.json | 2 +- platform/app/package.json | 2 +- platform/core/package.json | 2 +- .../docs/configuration/dataSources/dicom-json.md | 12 ++++++++++++ yarn.lock | 15 ++++++++++++++- 13 files changed, 37 insertions(+), 12 deletions(-) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3903c038d..802b85f1d 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -36,7 +36,7 @@ "@ohif/extension-cornerstone": "3.8.0-beta.4", "@ohif/extension-measurement-tracking": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx b/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx index a1e728bdd..0937ca1ff 100644 --- a/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx +++ b/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx @@ -360,7 +360,7 @@ function OHIFCornerstoneSRViewport(props) { patientSex: PatientSex || '', patientAge: PatientAge || '', MRN: PatientID || '', - thickness: SliceThickness ? `${SliceThickness.toFixed(2)}mm` : '', + thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}mm` : '', spacing: SpacingBetweenSlices !== undefined ? `${SpacingBetweenSlices.toFixed(2)}mm` : '', scanner: ManufacturerModelName || '', diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 49e5984e2..e9069fb74 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,7 +39,7 @@ "@cornerstonejs/dicom-image-loader": "^1.20.3", "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.6", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/default/package.json b/extensions/default/package.json index 1f5b8537e..bd586fca5 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,7 +32,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/i18n": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", "react": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7a45b84de..7fde3bae1 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ac478f1ff..e8c156e08 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index be7d9c1c7..16e1ab059 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -36,7 +36,7 @@ "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", "classnames": "^2.3.2", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "lodash.debounce": "^4.17.21", "prop-types": "^15.6.2", "react": "^17.0.2", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c52c06d5f..cfdf08f8c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "0.29.4", + "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 893e128fe..d72fce00f 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/platform/app/package.json b/platform/app/package.json index f4912c1e8..6fec3ffe1 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -72,7 +72,7 @@ "classnames": "^2.3.2", "core-js": "^3.16.1", "cornerstone-math": "^0.1.9", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "detect-gpu": "^4.0.16", "dicom-parser": "^1.8.9", "dotenv-webpack": "^1.7.0", diff --git a/platform/core/package.json b/platform/core/package.json index 64c00e484..c0a742f37 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -42,7 +42,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "gl-matrix": "^3.4.3", "isomorphic-base64": "^1.0.2", diff --git a/platform/docs/docs/configuration/dataSources/dicom-json.md b/platform/docs/docs/configuration/dataSources/dicom-json.md index 20b0036d0..37fbda552 100644 --- a/platform/docs/docs/configuration/dataSources/dicom-json.md +++ b/platform/docs/docs/configuration/dataSources/dicom-json.md @@ -154,6 +154,18 @@ Your public folder should look like this: ![](../../assets/img/dicom-json-public.png) +:::tip +It is important to URL encode the `url` query parameter especially if the `url` +parameter itself also contains query parameters. So for example, + +`http://localhost:3000/viewer/dicomjson?url=http://localhost:3000/LIDC-IDRI-0001.json?key0=val0&key1=val1` + +should be... + +`http://localhost:3000/viewer/dicomjson?url=http://localhost:3000/LIDC-IDRI-0001.json?key0=val0%26key1=val1` + +Notice the ampersand (`&`) is encoded as `%26`. +::: :::note When hosting the DICOM JSON files, it is important to be aware that certain providers diff --git a/yarn.lock b/yarn.lock index af7225607..9b8ad2e7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8436,7 +8436,20 @@ dcmjs@^0.27: loglevelnext "^3.0.1" ndarray "^1.0.19" -dcmjs@^0.29.5, dcmjs@^0.29.8: +dcmjs@^0.29.11: + version "0.29.11" + resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.11.tgz#82e19d7c5212218c3225f8022ce97b0102ed3cc8" + integrity sha512-B5fO5D+USzfnuUG7ephnaKMluqBOP4qcckV2LgROXvn0hmWc53Gs2YzlokjcYcDeBAXNfssOOhDekUc+AduwkQ== + dependencies: + "@babel/runtime-corejs3" "^7.22.5" + adm-zip "^0.5.10" + gl-matrix "^3.1.0" + lodash.clonedeep "^4.5.0" + loglevelnext "^3.0.1" + ndarray "^1.0.19" + pako "^2.0.4" + +dcmjs@^0.29.8: version "0.29.8" resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.8.tgz#3daa5224f8e75b2e5b069590bef26a272741fa44" integrity sha512-Y0/KZAmT1siVo7eH3KK4ZflEbNi61soUpD0N7lsXMVVJQ6IZkHlaSzb9DtqnEpMs7RJDfvZGr1uXpv1vBBIypQ== From a5ad1cc02a6595c24c9475bba389359afb7dea4c Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 24 Oct 2023 17:20:32 +0000 Subject: [PATCH 017/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index fc08aba3f..aa411aaa3 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -eec9c33b76f86b2a9effe9ad45831b52c9302063 \ No newline at end of file +d98439fe7f3825076dbc87b664a1d1480ff414d3 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 6dfcced88..a99ef73b8 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/i18n": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/i18n": "3.8.0-beta.5", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 99456efd9..7983b49c2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/i18n": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/i18n": "3.8.0-beta.5", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 802b85f1d..f92286ad6 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-measurement-tracking": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-measurement-tracking": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e9069fb74..5b6353fca 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index bd586fca5..91cae031a 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/i18n": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/i18n": "3.8.0-beta.5", "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index fd98b0713..50c6f96ed 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/i18n": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/i18n": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7fde3bae1..e918b76b2 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index e8c156e08..abeb870c7 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 16e1ab059..15862de7c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "classnames": "^2.3.2", "dcmjs": "^0.29.11", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index cfdf08f8c..d63206b2d 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index d72fce00f..848eb27b3 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 137d8100f..4943142f6 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/extension-dicom-pdf": "3.8.0-beta.4", - "@ohif/extension-dicom-video": "3.8.0-beta.4" + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/extension-dicom-pdf": "3.8.0-beta.5", + "@ohif/extension-dicom-video": "3.8.0-beta.5" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index c546a96e5..7a72eadc1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/extension-dicom-pdf": "3.8.0-beta.4", - "@ohif/extension-dicom-video": "3.8.0-beta.4", - "@ohif/extension-measurement-tracking": "3.8.0-beta.4", - "@ohif/extension-test": "3.8.0-beta.4" + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/extension-dicom-pdf": "3.8.0-beta.5", + "@ohif/extension-dicom-video": "3.8.0-beta.5", + "@ohif/extension-measurement-tracking": "3.8.0-beta.5", + "@ohif/extension-test": "3.8.0-beta.5" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 3856de29a..7f7eb5ea4 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/extension-dicom-pdf": "3.8.0-beta.4", - "@ohif/extension-dicom-video": "3.8.0-beta.4", - "@ohif/extension-measurement-tracking": "3.8.0-beta.4" + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/extension-dicom-pdf": "3.8.0-beta.5", + "@ohif/extension-dicom-video": "3.8.0-beta.5", + "@ohif/extension-measurement-tracking": "3.8.0-beta.5" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 2ce5b410b..e27422cf0 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.4" + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.5" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d92fa8034..47ac28dc0 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4" + "@ohif/core": "3.8.0-beta.5" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 2b0716815..5a09a8876 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/extension-dicom-pdf": "3.8.0-beta.4", - "@ohif/extension-dicom-video": "3.8.0-beta.4", - "@ohif/extension-measurement-tracking": "3.8.0-beta.4" + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/extension-dicom-pdf": "3.8.0-beta.5", + "@ohif/extension-dicom-video": "3.8.0-beta.5", + "@ohif/extension-measurement-tracking": "3.8.0-beta.5" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index c0a742f37..073272ea5 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.5", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index b7cc72c99..b2bb2964a 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.4", - "commit": "eec9c33b76f86b2a9effe9ad45831b52c9302063" + "version": "3.8.0-beta.5", + "commit": "d98439fe7f3825076dbc87b664a1d1480ff414d3" } \ No newline at end of file diff --git a/version.txt b/version.txt index 9979c42d3..014889d98 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.4 \ No newline at end of file +3.8.0-beta.5 \ No newline at end of file From 2145b429209c923ccac09bc21e99dff61ba205ac Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 24 Oct 2023 17:20:41 +0000 Subject: [PATCH 018/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 11 ++++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 11 ++++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 11 ++++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 11 ++++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 269 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78b1e7a32..79ba4094a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index ccbe756b6..67dcbc9f1 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a99ef73b8..fd66a3b87 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 6146797fa..73badb358 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 7983b49c2..dbebe8244 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 780618de8..54c5e10b2 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index f92286ad6..ee70029e0 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index ce31f0ecd..6c6158660 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 5b6353fca..9ae76b620 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 78a2ee66e..330e9c1a5 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 91cae031a..6ad7b3234 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index fc24c409c..caad71fd2 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 50c6f96ed..ac7114ea1 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index b3bbfc5cc..ee6f31228 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index e918b76b2..0e19dd610 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 2688da21c..3af3f0f9f 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index abeb870c7..599ff0da8 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index ed76eede5..96ad9351e 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 15862de7c..fcfebc51c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/ui": "3.8.0-beta.5", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 84a0a1340..c2a5a961c 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index d63206b2d..a0c9dd9a2 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 091b38f33..8b960e287 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 848eb27b3..055cbcdea 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 3e7863e07..c51918801 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 9eea6480d..3c17ad4f5 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 4943142f6..b2fb35288 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index e3549fb58..9b46ebbb1 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 7a72eadc1..1f0e02f6e 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 0641957eb..3d8a965b2 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7f7eb5ea4..7af38b9a9 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 5d5ed996a..2535bb214 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index e27422cf0..c569e3c5d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 53497bc8f..4bc2282a0 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 47ac28dc0..f5ca2b48e 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 1370eb928..9ba06cb84 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 5a09a8876..5ca6932a6 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index b94c86aed..0306a782b 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 6fec3ffe1..e2ed43eba 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.4", - "@ohif/extension-cornerstone": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.4", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", - "@ohif/extension-default": "3.8.0-beta.4", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.4", - "@ohif/extension-dicom-pdf": "3.8.0-beta.4", - "@ohif/extension-dicom-video": "3.8.0-beta.4", - "@ohif/extension-test": "3.8.0-beta.4", - "@ohif/i18n": "3.8.0-beta.4", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.4", - "@ohif/mode-longitudinal": "3.8.0-beta.4", - "@ohif/mode-microscopy": "3.8.0-beta.4", - "@ohif/mode-test": "3.8.0-beta.4", - "@ohif/ui": "3.8.0-beta.4", + "@ohif/core": "3.8.0-beta.5", + "@ohif/extension-cornerstone": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.5", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", + "@ohif/extension-default": "3.8.0-beta.5", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.5", + "@ohif/extension-dicom-pdf": "3.8.0-beta.5", + "@ohif/extension-dicom-video": "3.8.0-beta.5", + "@ohif/extension-test": "3.8.0-beta.5", + "@ohif/i18n": "3.8.0-beta.5", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.5", + "@ohif/mode-longitudinal": "3.8.0-beta.5", + "@ohif/mode-microscopy": "3.8.0-beta.5", + "@ohif/mode-test": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.5", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index bf5cab4b7..8c6a39112 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index e244ccb96..d2fdcd305 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 00e78902a..a402973e1 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 073272ea5..108279b9e 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 5fa5fb539..dc1e2ab47 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + + +### Bug Fixes + +* **sr:** dcm4chee requires the patient name for an SR to match what is in the original study ([#3739](https://github.com/OHIF/Viewers/issues/3739)) ([d98439f](https://github.com/OHIF/Viewers/commit/d98439fe7f3825076dbc87b664a1d1480ff414d3)) + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index b49933f06..c23ab9a13 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index c948a88d7..7206b8b4b 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index d5e1bfc19..72308320a 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 95bebb748..998d1656d 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.4](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.3...v3.8.0-beta.4) (2023-10-23) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index dffb7cdae..a90b8c849 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.4", + "version": "3.8.0-beta.5", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From dd6d9768bbca1d3cc472e8c1e6d85822500b96ef Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Wed, 25 Oct 2023 13:08:12 -0400 Subject: [PATCH 019/289] fix(toolbar): allow customizable toolbar for active viewport and allow active tool to be deactivated via a click (#3608) Co-authored-by: Joe Boccanfuso --- extensions/cornerstone/src/commandsModule.ts | 9 +- extensions/default/src/Toolbar/Toolbar.tsx | 25 +- .../src/Toolbar/ToolbarButtonWithServices.tsx | 2 +- modes/basic-test-mode/src/index.ts | 49 ++- modes/basic-test-mode/src/moreTools.ts | 231 +++++++++++++ modes/basic-test-mode/src/moreToolsMpr.ts | 142 ++++++++ modes/basic-test-mode/src/toolbarButtons.ts | 253 +------------- modes/longitudinal/src/index.js | 49 ++- modes/longitudinal/src/moreTools.ts | 298 +++++++++++++++++ modes/longitudinal/src/moreToolsMpr.ts | 242 ++++++++++++++ modes/longitudinal/src/toolbarButtons.ts | 311 +----------------- .../OHIFMeasurementPanel.spec.js | 1 + .../cypress/integration/volume/MPR.spec.js | 29 +- platform/app/cypress/support/commands.js | 9 +- .../services/ToolBarService/ToolbarService.ts | 65 ++-- .../platform/services/data/ToolbarService.md | 2 + .../services/ui/viewport-grid-service.md | 1 + .../contextProviders/ViewportGridProvider.tsx | 6 + 18 files changed, 1096 insertions(+), 628 deletions(-) create mode 100644 modes/basic-test-mode/src/moreTools.ts create mode 100644 modes/basic-test-mode/src/moreToolsMpr.ts create mode 100644 modes/longitudinal/src/moreTools.ts create mode 100644 modes/longitudinal/src/moreToolsMpr.ts diff --git a/extensions/cornerstone/src/commandsModule.ts b/extensions/cornerstone/src/commandsModule.ts index 9ca0dbb33..4c443c243 100644 --- a/extensions/cornerstone/src/commandsModule.ts +++ b/extensions/cornerstone/src/commandsModule.ts @@ -456,13 +456,8 @@ function commandsModule({ const { viewport } = enabledElement; - if (viewport instanceof StackViewport) { - viewport.resetProperties(); - viewport.resetCamera(); - } else { - viewport.resetProperties(); - viewport.resetCamera(); - } + viewport.resetProperties?.(); + viewport.resetCamera(); viewport.render(); }, diff --git a/extensions/default/src/Toolbar/Toolbar.tsx b/extensions/default/src/Toolbar/Toolbar.tsx index c714968a1..f3812ff5b 100644 --- a/extensions/default/src/Toolbar/Toolbar.tsx +++ b/extensions/default/src/Toolbar/Toolbar.tsx @@ -1,19 +1,34 @@ -import React, { useEffect, useState, useCallback } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import classnames from 'classnames'; +import { useViewportGrid } from '@ohif/ui'; -export default function Toolbar({ servicesManager }) { +export default function Toolbar({ + servicesManager, +}: Types.Extensions.ExtensionParams): React.ReactElement { const { toolbarService } = servicesManager.services; + + const [viewportGrid, viewportGridService] = useViewportGrid(); + const [toolbarButtons, setToolbarButtons] = useState([]); useEffect(() => { - const { unsubscribe } = toolbarService.subscribe(toolbarService.EVENTS.TOOL_BAR_MODIFIED, () => - setToolbarButtons(toolbarService.getButtonSection('primary')) + const updateToolbar = () => { + const toolGroupId = + viewportGridService.getActiveViewportOptionByKey('toolGroupId') ?? 'default'; + setToolbarButtons(toolbarService.getButtonSection(toolGroupId)); + }; + + const { unsubscribe } = toolbarService.subscribe( + toolbarService.EVENTS.TOOL_BAR_MODIFIED, + updateToolbar ); + updateToolbar(); + return () => { unsubscribe(); }; - }, [toolbarService]); + }, [toolbarService, viewportGrid]); const onInteraction = useCallback( args => toolbarService.recordInteraction(args), diff --git a/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx b/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx index 24dda712b..32b7fb51e 100644 --- a/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx +++ b/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx @@ -65,7 +65,7 @@ ToolbarButtonWithServices.propTypes = { state: PropTypes.shape({ primaryToolId: PropTypes.string, toggles: PropTypes.objectOf(PropTypes.bool), - groups: PropTypes.objectOf(PropTypes.object), + groups: PropTypes.objectOf(PropTypes.any), }).isRequired, }).isRequired, }).isRequired, diff --git a/modes/basic-test-mode/src/index.ts b/modes/basic-test-mode/src/index.ts index 3d51b06f1..1c8d5fc8b 100644 --- a/modes/basic-test-mode/src/index.ts +++ b/modes/basic-test-mode/src/index.ts @@ -2,11 +2,16 @@ import { hotkeys } from '@ohif/core'; import toolbarButtons from './toolbarButtons'; import { id } from './id'; import initToolGroups from './initToolGroups'; +import moreTools from './moreTools'; +import moreToolsMpr from './moreToolsMpr'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG']; +const DEFAULT_TOOL_GROUP_ID = 'default'; +const MPR_TOOL_GROUP_ID = 'mpr'; + const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', @@ -77,21 +82,23 @@ function modeFactory() { ]); let unsubscribe; + toolbarService.setDefaultTool({ + groupId: 'WindowLevel', + itemId: 'WindowLevel', + interactionType: 'tool', + commands: [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'WindowLevel', + }, + context: 'CORNERSTONE', + }, + ], + }); const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); + toolbarService.recordInteraction(toolbarService.getDefaultTool()); // We don't need to reset the active tool whenever a viewport is getting // added to the toolGroup. @@ -106,8 +113,18 @@ function modeFactory() { )); toolbarService.init(extensionManager); - toolbarService.addButtons(toolbarButtons); - toolbarService.createButtonSection('primary', [ + toolbarService.addButtons([...toolbarButtons, ...moreTools, ...moreToolsMpr]); + toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, [ + 'MeasurementTools', + 'Zoom', + 'WindowLevel', + 'Pan', + 'Capture', + 'Layout', + 'MPR', + 'MoreTools', + ]); + toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, [ 'MeasurementTools', 'Zoom', 'WindowLevel', @@ -116,7 +133,7 @@ function modeFactory() { 'Layout', 'MPR', 'Crosshairs', - 'MoreTools', + 'MoreToolsMpr', ]); }, onModeExit: ({ servicesManager }) => { diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts new file mode 100644 index 000000000..1baa17118 --- /dev/null +++ b/modes/basic-test-mode/src/moreTools.ts @@ -0,0 +1,231 @@ +import type { RunCommand } from '@ohif/core/types'; +import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService } from '@ohif/core'; + +const ReferenceLinesCommands: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ReferenceLines', + }, + context: 'CORNERSTONE', + }, +]; + +const moreTools = [ + { + id: 'MoreTools', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + ToolbarService._createActionButton( + 'rotate-right', + 'tool-rotate-right', + 'Rotate Right', + [ + { + commandName: 'rotateViewportCW', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Rotate +90' + ), + ToolbarService._createActionButton( + 'flip-horizontal', + 'tool-flip-horizontal', + 'Flip Horizontally', + [ + { + commandName: 'flipViewportHorizontal', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Flip Horizontally' + ), + ToolbarService._createToggleButton( + 'StackImageSync', + 'link', + 'Stack Image Sync', + [ + { + commandName: 'toggleStackImageSync', + }, + ], + 'Enable position synchronization on stack viewports', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { + commandName: 'toggleStackImageSync', + commandOptions: { toggledState: true }, + }, + }, + } + ), + ToolbarService._createToggleButton( + 'ReferenceLines', + 'tool-referenceLines', // change this with the new icon + 'Reference Lines', + ReferenceLinesCommands, + 'Show Reference Lines', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, + [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + } + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + ToolbarService._createToolButton( + 'Magnify', + 'tool-magnify', + 'Magnify', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Magnify', + }, + context: 'CORNERSTONE', + }, + ], + 'Magnify' + ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreTools; diff --git a/modes/basic-test-mode/src/moreToolsMpr.ts b/modes/basic-test-mode/src/moreToolsMpr.ts new file mode 100644 index 000000000..0672170a3 --- /dev/null +++ b/modes/basic-test-mode/src/moreToolsMpr.ts @@ -0,0 +1,142 @@ +import { ToolbarService } from '@ohif/core'; + +const moreToolsMpr = [ + { + id: 'MoreToolsMpr', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + }, + ], + 'Reset' + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreToolsMpr; diff --git a/modes/basic-test-mode/src/toolbarButtons.ts b/modes/basic-test-mode/src/toolbarButtons.ts index 5d540b39c..391aef110 100644 --- a/modes/basic-test-mode/src/toolbarButtons.ts +++ b/modes/basic-test-mode/src/toolbarButtons.ts @@ -5,16 +5,11 @@ import { // ListMenu, WindowLevelMenuItem, } from '@ohif/ui'; -import { defaults, ToolbarService } from '@ohif/core'; -import type { Button, RunCommand } from '@ohif/core/types'; -import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService, defaults } from '@ohif/core'; +import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; -const _createActionButton = ToolbarService._createButton.bind(null, 'action'); -const _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); -const _createToolButton = ToolbarService._createButton.bind(null, 'tool'); - /** * * @param {*} preset - preset number (from above import) @@ -39,20 +34,6 @@ function _createWwwcPreset(preset, title, subtitle) { }; } -const ReferenceLinesCommands: RunCommand = [ - { - commandName: 'setSourceViewportForReferenceLinesTool', - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, -]; - const toolbarButtons: Button[] = [ // Measurement { @@ -62,7 +43,7 @@ const toolbarButtons: Button[] = [ groupId: 'MeasurementTools', isRadio: true, // ? // Switch? - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -93,7 +74,7 @@ const toolbarButtons: Button[] = [ tooltip: 'More Measure Tools', }, items: [ - _createToolButton( + ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -117,7 +98,7 @@ const toolbarButtons: Button[] = [ ], 'Length Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'Bidirectional', 'tool-bidirectional', 'Bidirectional', @@ -140,7 +121,7 @@ const toolbarButtons: Button[] = [ ], 'Bidirectional Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'ArrowAnnotate', 'tool-annotate', 'Annotation', @@ -163,7 +144,7 @@ const toolbarButtons: Button[] = [ ], 'Arrow Annotate' ), - _createToolButton( + ToolbarService._createToolButton( 'EllipticalROI', 'tool-elipse', 'Ellipse', @@ -186,7 +167,7 @@ const toolbarButtons: Button[] = [ ], 'Ellipse Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'CircleROI', 'tool-circle', 'Circle', @@ -237,7 +218,7 @@ const toolbarButtons: Button[] = [ type: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'WindowLevel', 'tool-window-level', 'Window Level', @@ -411,7 +392,6 @@ const toolbarButtons: Button[] = [ commandOptions: { protocolId: 'mpr', }, - context: 'DEFAULT', }, ], }, @@ -430,225 +410,10 @@ const toolbarButtons: Button[] = [ toolGroupId: 'mpr', toolName: 'Crosshairs', }, - context: 'CORNERSTONE', }, ], }, }, - // More... - { - id: 'MoreTools', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - _createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - _createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontally' - ), - _createToggleButton( - 'StackImageSync', - 'link', - 'Stack Image Sync', - [ - { - commandName: 'toggleStackImageSync', - }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', - commandOptions: { toggledState: true }, - }, - }, - } - ), - _createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, - }, - } - ), - _createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - _createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - _createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - _createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - _createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - _createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - _createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - _createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), - ], - }, - }, ]; export default toolbarButtons; diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 25397a2cf..03f7fce9c 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -2,11 +2,16 @@ import { hotkeys } from '@ohif/core'; import toolbarButtons from './toolbarButtons'; import { id } from './id'; import initToolGroups from './initToolGroups'; +import moreTools from './moreTools'; +import moreToolsMpr from './moreToolsMpr'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG', 'RTSTRUCT']; +const DEFAULT_TOOL_GROUP_ID = 'default'; +const MPR_TOOL_GROUP_ID = 'mpr'; + const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', @@ -83,21 +88,23 @@ function modeFactory({ modeConfiguration }) { initToolGroups(extensionManager, toolGroupService, commandsManager); let unsubscribe; + toolbarService.setDefaultTool({ + groupId: 'WindowLevel', + itemId: 'WindowLevel', + interactionType: 'tool', + commands: [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'WindowLevel', + }, + context: 'CORNERSTONE', + }, + ], + }); const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); + toolbarService.recordInteraction(toolbarService.getDefaultTool()); // We don't need to reset the active tool whenever a viewport is getting // added to the toolGroup. @@ -112,8 +119,18 @@ function modeFactory({ modeConfiguration }) { )); toolbarService.init(extensionManager); - toolbarService.addButtons(toolbarButtons); - toolbarService.createButtonSection('primary', [ + toolbarService.addButtons([...toolbarButtons, ...moreTools, ...moreToolsMpr]); + toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, [ + 'MeasurementTools', + 'Zoom', + 'WindowLevel', + 'Pan', + 'Capture', + 'Layout', + 'MPR', + 'MoreTools', + ]); + toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, [ 'MeasurementTools', 'Zoom', 'WindowLevel', @@ -122,7 +139,7 @@ function modeFactory({ modeConfiguration }) { 'Layout', 'MPR', 'Crosshairs', - 'MoreTools', + 'MoreToolsMpr', ]); customizationService.addModeCustomizations([ diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts new file mode 100644 index 000000000..5a20d1cbe --- /dev/null +++ b/modes/longitudinal/src/moreTools.ts @@ -0,0 +1,298 @@ +import type { RunCommand } from '@ohif/core/types'; +import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService } from '@ohif/core'; + +const ReferenceLinesCommands: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ReferenceLines', + }, + context: 'CORNERSTONE', + }, +]; + +const moreTools = [ + { + id: 'MoreTools', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + ToolbarService._createActionButton( + 'rotate-right', + 'tool-rotate-right', + 'Rotate Right', + [ + { + commandName: 'rotateViewportCW', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Rotate +90' + ), + ToolbarService._createActionButton( + 'flip-horizontal', + 'tool-flip-horizontal', + 'Flip Horizontally', + [ + { + commandName: 'flipViewportHorizontal', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Flip Horizontal' + ), + ToolbarService._createToggleButton( + 'StackImageSync', + 'link', + 'Stack Image Sync', + [ + { + commandName: 'toggleStackImageSync', + }, + ], + 'Enable position synchronization on stack viewports', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { + commandName: 'toggleStackImageSync', + commandOptions: { toggledState: true }, + }, + }, + } + ), + ToolbarService._createToggleButton( + 'ReferenceLines', + 'tool-referenceLines', // change this with the new icon + 'Reference Lines', + ReferenceLinesCommands, + 'Show Reference Lines', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, + [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + } + ), + ToolbarService._createToggleButton( + 'ImageOverlayViewer', + 'toggle-dicom-overlay', + 'Image Overlay', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ImageOverlayViewer', + }, + context: 'CORNERSTONE', + }, + ], + 'Image Overlay', + { isActive: true } + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + + // Next two tools can be added once icons are added + // ToolbarService._createToolButton( + // 'Cobb Angle', + // 'tool-cobb-angle', + // 'Cobb Angle', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'CobbAngle', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Cobb Angle' + // ), + // ToolbarService._createToolButton( + // 'Planar Freehand ROI', + // 'tool-freehand', + // 'PlanarFreehandROI', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'PlanarFreehandROI', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Planar Freehand ROI' + // ), + ToolbarService._createToolButton( + 'Magnify', + 'tool-magnify', + 'Magnify', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Magnify', + }, + context: 'CORNERSTONE', + }, + ], + 'Magnify' + ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createToolButton( + 'CalibrationLine', + 'tool-calibration', + 'Calibration', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'CalibrationLine', + }, + context: 'CORNERSTONE', + }, + ], + 'Calibration Line' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreTools; diff --git a/modes/longitudinal/src/moreToolsMpr.ts b/modes/longitudinal/src/moreToolsMpr.ts new file mode 100644 index 000000000..7930068dc --- /dev/null +++ b/modes/longitudinal/src/moreToolsMpr.ts @@ -0,0 +1,242 @@ +import type { RunCommand } from '@ohif/core/types'; +import { EVENTS } from '@cornerstonejs/core'; +import { ToolbarService } from '@ohif/core'; + +const ReferenceLinesCommands: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ReferenceLines', + }, + context: 'CORNERSTONE', + }, +]; + +const moreToolsMpr = [ + { + id: 'MoreToolsMpr', + type: 'ohif.splitButton', + props: { + isRadio: true, // ? + groupId: 'MoreTools', + primary: ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + secondary: { + icon: 'chevron-down', + label: '', + isActive: true, + tooltip: 'More Tools', + }, + items: [ + ToolbarService._createActionButton( + 'Reset', + 'tool-reset', + 'Reset View', + [ + { + commandName: 'resetViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Reset' + ), + ToolbarService._createToggleButton( + 'StackImageSync', + 'link', + 'Stack Image Sync', + [ + { + commandName: 'toggleStackImageSync', + }, + ], + 'Enable position synchronization on stack viewports', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { + commandName: 'toggleStackImageSync', + commandOptions: { toggledState: true }, + }, + }, + } + ), + ToolbarService._createToggleButton( + 'ReferenceLines', + 'tool-referenceLines', // change this with the new icon + 'Reference Lines', + ReferenceLinesCommands, + 'Show Reference Lines', + { + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, + [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + } + ), + ToolbarService._createToggleButton( + 'ImageOverlayViewer', + 'toggle-dicom-overlay', + 'Image Overlay', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'ImageOverlayViewer', + }, + context: 'CORNERSTONE', + }, + ], + 'Image Overlay', + { isActive: true } + ), + ToolbarService._createToolButton( + 'StackScroll', + 'tool-stack-scroll', + 'Stack Scroll', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'StackScroll', + }, + context: 'CORNERSTONE', + }, + ], + 'Stack Scroll' + ), + ToolbarService._createActionButton( + 'invert', + 'tool-invert', + 'Invert', + [ + { + commandName: 'invertViewport', + commandOptions: {}, + context: 'CORNERSTONE', + }, + ], + 'Invert Colors' + ), + ToolbarService._createToolButton( + 'Probe', + 'tool-probe', + 'Probe', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'DragProbe', + }, + context: 'CORNERSTONE', + }, + ], + 'Probe' + ), + ToolbarService._createToggleButton( + 'cine', + 'tool-cine', + 'Cine', + [ + { + commandName: 'toggleCine', + context: 'CORNERSTONE', + }, + ], + 'Cine' + ), + ToolbarService._createToolButton( + 'Angle', + 'tool-angle', + 'Angle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Angle', + }, + context: 'CORNERSTONE', + }, + ], + 'Angle' + ), + + // Next two tools can be added once icons are added + // ToolbarService._createToolButton( + // 'Cobb Angle', + // 'tool-cobb-angle', + // 'Cobb Angle', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'CobbAngle', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Cobb Angle' + // ), + // ToolbarService._createToolButton( + // 'Planar Freehand ROI', + // 'tool-freehand', + // 'PlanarFreehandROI', + // [ + // { + // commandName: 'setToolActive', + // commandOptions: { + // toolName: 'PlanarFreehandROI', + // }, + // context: 'CORNERSTONE', + // }, + // ], + // 'Planar Freehand ROI' + // ), + ToolbarService._createToolButton( + 'Rectangle', + 'tool-rectangle', + 'Rectangle', + [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'RectangleROI', + }, + context: 'CORNERSTONE', + }, + ], + 'Rectangle' + ), + ToolbarService._createActionButton( + 'TagBrowser', + 'list-bullets', + 'Dicom Tag Browser', + [ + { + commandName: 'openDICOMTagViewer', + commandOptions: {}, + context: 'DEFAULT', + }, + ], + 'Dicom Tag Browser' + ), + ], + }, + }, +]; + +export default moreToolsMpr; diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index e7842c565..2237edd2b 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -6,15 +6,10 @@ import { WindowLevelMenuItem, } from '@ohif/ui'; import { defaults, ToolbarService } from '@ohif/core'; -import type { Button, RunCommand } from '@ohif/core/types'; -import { EVENTS } from '@cornerstonejs/core'; +import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; -const _createActionButton = ToolbarService._createButton.bind(null, 'action'); -const _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); -const _createToolButton = ToolbarService._createButton.bind(null, 'tool'); - /** * * @param {*} preset - preset number (from above import) @@ -59,20 +54,6 @@ function _createSetToolActiveCommands(toolName) { return temp; } -const ReferenceLinesCommands: RunCommand = [ - { - commandName: 'setSourceViewportForReferenceLinesTool', - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, -]; - const toolbarButtons: Button[] = [ // Measurement { @@ -82,7 +63,7 @@ const toolbarButtons: Button[] = [ groupId: 'MeasurementTools', isRadio: true, // ? // Switch? - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -113,7 +94,7 @@ const toolbarButtons: Button[] = [ tooltip: 'More Measure Tools', }, items: [ - _createToolButton( + ToolbarService._createToolButton( 'Length', 'tool-length', 'Length', @@ -137,7 +118,7 @@ const toolbarButtons: Button[] = [ ], 'Length Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'Bidirectional', 'tool-bidirectional', 'Bidirectional', @@ -160,7 +141,7 @@ const toolbarButtons: Button[] = [ ], 'Bidirectional Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'ArrowAnnotate', 'tool-annotate', 'Annotation', @@ -183,7 +164,7 @@ const toolbarButtons: Button[] = [ ], 'Arrow Annotate' ), - _createToolButton( + ToolbarService._createToolButton( 'EllipticalROI', 'tool-elipse', 'Ellipse', @@ -206,7 +187,7 @@ const toolbarButtons: Button[] = [ ], 'Ellipse Tool' ), - _createToolButton( + ToolbarService._createToolButton( 'CircleROI', 'tool-circle', 'Circle', @@ -249,7 +230,7 @@ const toolbarButtons: Button[] = [ type: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( + primary: ToolbarService._createToolButton( 'WindowLevel', 'tool-window-level', 'Window Level', @@ -354,282 +335,6 @@ const toolbarButtons: Button[] = [ }, }, // More... - { - id: 'MoreTools', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - _createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - _createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontal' - ), - _createToggleButton( - 'StackImageSync', - 'link', - 'Stack Image Sync', - [ - { - commandName: 'toggleStackImageSync', - }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', - commandOptions: { toggledState: true }, - }, - }, - } - ), - _createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, - }, - } - ), - _createToggleButton( - 'ImageOverlayViewer', - 'toggle-dicom-overlay', - 'Image Overlay', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ImageOverlayViewer', - }, - context: 'CORNERSTONE', - }, - ], - 'Image Overlay', - { isActive: true } - ), - _createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - _createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - _createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - _createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - _createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - - // Next two tools can be added once icons are added - // _createToolButton( - // 'Cobb Angle', - // 'tool-cobb-angle', - // 'Cobb Angle', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'CobbAngle', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Cobb Angle' - // ), - // _createToolButton( - // 'Planar Freehand ROI', - // 'tool-freehand', - // 'PlanarFreehandROI', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'PlanarFreehandROI', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Planar Freehand ROI' - // ), - _createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - _createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - _createToolButton( - 'CalibrationLine', - 'tool-calibration', - 'Calibration', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CalibrationLine', - }, - context: 'CORNERSTONE', - }, - ], - 'Calibration Line' - ), - _createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), - ], - }, - }, ]; export default toolbarButtons; diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js index 9f0e8b0c8..623c58ec6 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js @@ -48,6 +48,7 @@ describe('OHIF Measurement Panel', function () { cy.scrollToIndex(13); + // Reset to default tool so that the new add length works cy.addLengthMeasurement([100, 100], [200, 200]); //Adding measurement in the viewport cy.get('@viewportInfoTopRight').should('contains.text', '(14/'); diff --git a/platform/app/cypress/integration/volume/MPR.spec.js b/platform/app/cypress/integration/volume/MPR.spec.js index c2f8d94cc..2f2cb05cb 100644 --- a/platform/app/cypress/integration/volume/MPR.spec.js +++ b/platform/app/cypress/integration/volume/MPR.spec.js @@ -88,19 +88,7 @@ describe('OHIF MPR', () => { }); it('should correctly render Crosshairs for MPR', () => { - cy.wait(250); - - cy.get('[data-cy="Crosshairs"]').click(); - cy.window() - .its('cornerstoneTools') - .then(cornerstoneTools => { - const state = cornerstoneTools.annotation.state.getAnnotationManager(); - - const fORMap = state.annotations; - // it should not have crosshairs yet - expect(Object.keys(fORMap)).to.have.length(0); - }); - + cy.get('[data-cy="Crosshairs"]').should('not.exist'); cy.get(':nth-child(3) > [data-cy="study-browser-thumbnail"]').dblclick(); cy.get('[data-cy="MPR"]').click(); cy.get('[data-cy="Crosshairs"]').click(); @@ -131,4 +119,19 @@ describe('OHIF MPR', () => { ); }); }); + + it('should activate window level when the active Crosshairs tool for MPR is clicked', () => { + cy.get(':nth-child(3) > [data-cy="study-browser-thumbnail"]').dblclick(); + cy.get('[data-cy="MPR"]').click(); + cy.get('[data-cy="Crosshairs"]').click(); + + // wait for the crosshairs tool to be active + cy.get('[data-cy="Crosshairs"].active'); + + // Click the crosshairs button to deactivate it. + cy.get('[data-cy="Crosshairs"]').click(); + + // wait for the window level button to be active + cy.get('[data-cy="WindowLevel-split-button-primary"].active'); + }); }); diff --git a/platform/app/cypress/support/commands.js b/platform/app/cypress/support/commands.js index 83b2df919..f1351eb0d 100644 --- a/platform/app/cypress/support/commands.js +++ b/platform/app/cypress/support/commands.js @@ -262,7 +262,14 @@ Cypress.Commands.add( cy.get('@measurementToolsBtnPrimary').as('lengthButton'); cy.get('@lengthButton').should('have.attr', 'data-tool', 'Length'); - cy.get('@lengthButton').click(); + + cy.get('@lengthButton').then(button => { + // Only click the length tool if it is not active, in case the length tool is set up to + // toggle to inactive. + if (!button.is('.active')) { + cy.wrap(button).click(); + } + }); cy.get('@lengthButton').should('have.class', 'active'); diff --git a/platform/core/src/services/ToolBarService/ToolbarService.ts b/platform/core/src/services/ToolBarService/ToolbarService.ts index a39d3eca5..269f93da4 100644 --- a/platform/core/src/services/ToolBarService/ToolbarService.ts +++ b/platform/core/src/services/ToolBarService/ToolbarService.ts @@ -63,12 +63,17 @@ export default class ToolbarService extends PubSubService { }; } + public static _createActionButton = ToolbarService._createButton.bind(null, 'action'); + public static _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); + public static _createToolButton = ToolbarService._createButton.bind(null, 'tool'); + buttons: Record = {}; state: { primaryToolId: string; toggles: Record; groups: Record; - } = { primaryToolId: 'WindowLevel', toggles: {}, groups: {} }; + } = { primaryToolId: '', toggles: {}, groups: {} }; + buttonSections: Record = { /** * primary: ['Zoom', 'Wwwc'], @@ -78,6 +83,8 @@ export default class ToolbarService extends PubSubService { _commandsManager: CommandsManager; extensionManager: ExtensionManager; + defaultTool: Record; + constructor(commandsManager: CommandsManager) { super(EVENTS); this._commandsManager = commandsManager; @@ -103,6 +110,19 @@ export default class ToolbarService extends PubSubService { this.reset(); } + /** + * Sets the default tool that will be activated whenever the primary tool is + * deactivated without activating another/different tool. + * @param interaction the interaction command that will set the default tool active + */ + public setDefaultTool(interaction) { + this.defaultTool = interaction; + } + + public getDefaultTool() { + return this.defaultTool; + } + /** * * @param {*} interaction - can be undefined to run nothing @@ -125,25 +145,20 @@ export default class ToolbarService extends PubSubService { switch (interactionType) { case 'action': { - commands.forEach(({ commandName, commandOptions, context }) => { - if (commandName) { - commandsManager.runCommand( - commandName, - { - ...commandOptions, - ...options, - }, - context - ); - } - }); + commandsManager.run(commands, options); break; } case 'tool': { try { - commands.forEach(({ commandName = 'setToolActive', commandOptions, context }) => { - commandsManager.runCommand(commandName, commandOptions, context); - }); + const alternateInteraction = + this.state.primaryToolId === itemId && + this.defaultTool?.itemId !== itemId && + this.getDefaultTool(); + if (alternateInteraction) { + // Allow toggling the mode off + return this.recordInteraction(alternateInteraction, options); + } + commandsManager.run(commands, options); // only set the primary tool if no error was thrown. // if the itemId is not undefined use it; otherwise, set the first tool in @@ -312,21 +327,27 @@ export default class ToolbarService extends PubSubService { /** * - * Finds a button section by it's name, then maps the list of string name + * Finds a button section by it's name/tool group id, then maps the list of string name * identifiers to schema/values that can be used to render the buttons. * - * @param {string} key - * @param {*} props + * @param toolGroupId - the tool group id + * @param props - optional properties to apply to every button of the section + * @param defaultToolGroupId - the fallback section to return if the given toolGroupId section is not available */ - getButtonSection(key, props) { - const buttonSectionIds = this.buttonSections[key]; + getButtonSection( + toolGroupId: string, + props?: Record, + defaultToolGroupId = 'primary' + ) { + const buttonSectionIds = + this.buttonSections[toolGroupId] || this.buttonSections[defaultToolGroupId]; const buttonsInSection = []; if (buttonSectionIds && buttonSectionIds.length !== 0) { buttonSectionIds.forEach(btnId => { const btn = this.buttons[btnId]; const metadata = {}; - const mappedBtn = this._mapButtonToDisplay(btn, key, metadata, props); + const mappedBtn = this._mapButtonToDisplay(btn, toolGroupId, metadata, props); buttonsInSection.push(mappedBtn); }); diff --git a/platform/docs/docs/platform/services/data/ToolbarService.md b/platform/docs/docs/platform/services/data/ToolbarService.md index f92cc385f..3acfb3e2d 100644 --- a/platform/docs/docs/platform/services/data/ToolbarService.md +++ b/platform/docs/docs/platform/services/data/ToolbarService.md @@ -46,6 +46,8 @@ button is clicked by the user. - `getActiveTools`: returns the active tool + all the toggled-on tools +- `setDefaultTool`: sets the default tool that will be activated whenever the primary tool is deactivated without activating another/different tool + ## State ToolBarService has an internal state that gets updated per tool interaction and diff --git a/platform/docs/docs/platform/services/ui/viewport-grid-service.md b/platform/docs/docs/platform/services/ui/viewport-grid-service.md index ee610a98c..6f8435905 100644 --- a/platform/docs/docs/platform/services/ui/viewport-grid-service.md +++ b/platform/docs/docs/platform/services/ui/viewport-grid-service.md @@ -33,6 +33,7 @@ is expected to support, [check out it's interface in `@ohif/core`][interface] | `getNumViewportPanes()` | Gets the number of visible viewport panes | | `getLayoutOptionsFromState(gridState)` | Utility method that produces a `ViewportLayoutOptions` based on the passed in state| | `getActiveViewportId()` | Returns the viewport Id of the active viewport in the grid| +| `getActiveViewportOptionByKey(key)` | Gets the specified viewport option field (key) for the active viewport | ## Implementations diff --git a/platform/ui/src/contextProviders/ViewportGridProvider.tsx b/platform/ui/src/contextProviders/ViewportGridProvider.tsx index 67d951347..c5eee312b 100644 --- a/platform/ui/src/contextProviders/ViewportGridProvider.tsx +++ b/platform/ui/src/contextProviders/ViewportGridProvider.tsx @@ -300,6 +300,11 @@ export function ViewportGridProvider({ children, service }) { return viewportGridState; }, [viewportGridState]); + const getActiveViewportOptionByKey = (key: string) => { + const { viewports, activeViewportId } = viewportGridState; + return viewports.get(activeViewportId)?.viewportOptions?.[key]; + }; + const setActiveViewportId = useCallback( index => dispatch({ type: 'SET_ACTIVE_VIEWPORT_ID', payload: index }), [dispatch] @@ -400,6 +405,7 @@ export function ViewportGridProvider({ children, service }) { reset: () => service.reset(), set: gridLayoutState => service.setState(gridLayoutState), // run it through the service itself since we want to publish events getNumViewportPanes, + getActiveViewportOptionByKey, }; return ( From cafba997bf19c0233826822c3b27b89d43d0eff1 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 25 Oct 2023 17:17:47 +0000 Subject: [PATCH 020/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index aa411aaa3..a0a23d550 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -d98439fe7f3825076dbc87b664a1d1480ff414d3 \ No newline at end of file +dd6d9768bbca1d3cc472e8c1e6d85822500b96ef \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index fd66a3b87..9344b1ffa 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index dbebe8244..6592a5702 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ee70029e0..4c94cfde2 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9ae76b620..dff9f2dd9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 6ad7b3234..9a20722f6 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index ac7114ea1..b8bc44c24 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 0e19dd610..f625fa570 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 599ff0da8..4977ff6d0 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index fcfebc51c..b91bf008c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "classnames": "^2.3.2", "dcmjs": "^0.29.11", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index a0c9dd9a2..999be65e5 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 055cbcdea..98a51022e 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index b2fb35288..c50c2d2ad 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 1f0e02f6e..2dec03975 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5", - "@ohif/extension-test": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6", + "@ohif/extension-test": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7af38b9a9..0914332db 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index c569e3c5d..86e6f1493 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index f5ca2b48e..358414303 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 5ca6932a6..76176e66b 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-measurement-tracking": "3.8.0-beta.5" + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-measurement-tracking": "3.8.0-beta.6" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 108279b9e..8cadafef2 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.6", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index b2bb2964a..578860d76 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.5", - "commit": "d98439fe7f3825076dbc87b664a1d1480ff414d3" + "version": "3.8.0-beta.6", + "commit": "dd6d9768bbca1d3cc472e8c1e6d85822500b96ef" } \ No newline at end of file diff --git a/version.txt b/version.txt index 014889d98..0d1505764 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.5 \ No newline at end of file +3.8.0-beta.6 \ No newline at end of file From 423ba7c2694e9d993b8d896a6649eef6ca07a6d4 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 25 Oct 2023 17:17:55 +0000 Subject: [PATCH 021/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 260 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79ba4094a..7965d5fa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 67dcbc9f1..0ee4514a8 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9344b1ffa..b4ef32e5c 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 73badb358..3c470de4e 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 6592a5702..bd79e4ed4 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 54c5e10b2..129d5b5d5 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 4c94cfde2..9cd193b12 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 6c6158660..e642c2098 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index dff9f2dd9..8d276e3f5 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 330e9c1a5..f153f9f60 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/default/package.json b/extensions/default/package.json index 9a20722f6..19cfb569c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index caad71fd2..e8aa769ac 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b8bc44c24..57a3d81a6 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index ee6f31228..8403e7055 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f625fa570..897b46808 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 3af3f0f9f..a5ea4bc54 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 4977ff6d0..15e63963f 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 96ad9351e..eb488d4ae 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b91bf008c..f44c7f625 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/ui": "3.8.0-beta.6", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index c2a5a961c..5a61fc7ff 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 999be65e5..308cf881f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 8b960e287..0939b1b33 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 98a51022e..9e2010402 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index c51918801..3a678dad4 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 3c17ad4f5..61f3a0514 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index c50c2d2ad..79f017653 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 9b46ebbb1..86911cc33 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 2dec03975..2d5b37d62 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 3d8a965b2..4d9bd3e04 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 0914332db..abac9be32 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 2535bb214..e76f4d5eb 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 86e6f1493..5978daaa8 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 4bc2282a0..beac594da 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 358414303..07608f343 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 9ba06cb84..1fe6396e6 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 76176e66b..aea071143 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 0306a782b..e31bd3b85 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/platform/app/package.json b/platform/app/package.json index e2ed43eba..fcbebfc7b 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.5", - "@ohif/extension-cornerstone": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.5", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.5", - "@ohif/extension-default": "3.8.0-beta.5", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.5", - "@ohif/extension-dicom-pdf": "3.8.0-beta.5", - "@ohif/extension-dicom-video": "3.8.0-beta.5", - "@ohif/extension-test": "3.8.0-beta.5", - "@ohif/i18n": "3.8.0-beta.5", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.5", - "@ohif/mode-longitudinal": "3.8.0-beta.5", - "@ohif/mode-microscopy": "3.8.0-beta.5", - "@ohif/mode-test": "3.8.0-beta.5", - "@ohif/ui": "3.8.0-beta.5", + "@ohif/core": "3.8.0-beta.6", + "@ohif/extension-cornerstone": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.6", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", + "@ohif/extension-default": "3.8.0-beta.6", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.6", + "@ohif/extension-dicom-pdf": "3.8.0-beta.6", + "@ohif/extension-dicom-video": "3.8.0-beta.6", + "@ohif/extension-test": "3.8.0-beta.6", + "@ohif/i18n": "3.8.0-beta.6", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.6", + "@ohif/mode-longitudinal": "3.8.0-beta.6", + "@ohif/mode-microscopy": "3.8.0-beta.6", + "@ohif/mode-test": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.6", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8c6a39112..75edd9c84 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index d2fdcd305..44c17bfb6 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index a402973e1..0a4deb103 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/platform/core/package.json b/platform/core/package.json index 8cadafef2..ea3102519 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index dc1e2ab47..d6be7b590 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) diff --git a/platform/docs/package.json b/platform/docs/package.json index c23ab9a13..bf456e0a2 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 7206b8b4b..380ab8138 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 72308320a..4604cdd6b 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 998d1656d..4cddb0f2d 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) + + +### Bug Fixes + +* **toolbar:** allow customizable toolbar for active viewport and allow active tool to be deactivated via a click ([#3608](https://github.com/OHIF/Viewers/issues/3608)) ([dd6d976](https://github.com/OHIF/Viewers/commit/dd6d9768bbca1d3cc472e8c1e6d85822500b96ef)) + + + + + # [3.8.0-beta.5](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.4...v3.8.0-beta.5) (2023-10-24) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index a90b8c849..802bd8b1e 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.5", + "version": "3.8.0-beta.6", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From db395852b6fc6cd5c265a9282e5eee5bd6f951b7 Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Mon, 30 Oct 2023 10:44:21 -0400 Subject: [PATCH 022/289] fix(measurement service): Implemented correct check of schema keys in _isValidMeasurment. (#3750) --- .../MeasurementService.test.js | 19 +++++++++++++++++++ .../MeasurementService/MeasurementService.ts | 6 +++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/platform/core/src/services/MeasurementService/MeasurementService.test.js b/platform/core/src/services/MeasurementService/MeasurementService.test.js index 93517d58c..51ec9b66d 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.test.js +++ b/platform/core/src/services/MeasurementService/MeasurementService.test.js @@ -324,6 +324,25 @@ describe('MeasurementService.js', () => { }).toThrow(); }); + it('throws Error if adding measurement with unknown schema key', () => { + measurementService.addMapping( + source, + annotationType, + matchingCriteria, + toSourceSchema, + () => { + return { + ...measurement, + invalidSchemaKey: 0, + }; + } + ); + + expect(() => { + source.annotationToMeasurement(annotationType, measurement); + }).toThrow(); + }); + it('updates existing measurement', () => { measurementService.addMapping( source, diff --git a/platform/core/src/services/MeasurementService/MeasurementService.ts b/platform/core/src/services/MeasurementService/MeasurementService.ts index dde9ff4d2..30228a251 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.ts +++ b/platform/core/src/services/MeasurementService/MeasurementService.ts @@ -691,14 +691,14 @@ class MeasurementService extends PubSubService { * @return {boolean} Measurement validation */ _isValidMeasurement(measurementData) { - Object.keys(measurementData).forEach(key => { + return Object.keys(measurementData).every(key => { if (!MEASUREMENT_SCHEMA_KEYS.includes(key)) { log.warn(`Invalid measurement key: ${key}`); return false; } - }); - return true; + return true; + }); } /** From 2a15ef0e44b7b4d8bbf5cb9363db6e523201c681 Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Mon, 30 Oct 2023 10:47:43 -0400 Subject: [PATCH 023/289] feat(filters): save worklist query filters to session storage so that they persist between navigation to the viewer and back (#3749) Co-authored-by: ladeirarodolfo <39910206+ladeirarodolfo@users.noreply.github.com> --- .../study-list/OHIFStudyList.spec.js | 65 +++++++++++ platform/app/src/routes/WorkList/WorkList.tsx | 14 ++- platform/ui/jest.config.js | 13 +++ platform/ui/package.json | 4 +- .../ui/src/components/DateRange/DateRange.tsx | 2 +- platform/ui/src/components/Header/Header.tsx | 1 + .../StudyListFilter/StudyListFilter.tsx | 4 +- .../StudyListTable/StudyListTableRow.tsx | 8 +- platform/ui/src/hooks/index.ts | 3 +- .../ui/src/hooks/useSessionStorage.test.js | 102 ++++++++++++++++++ platform/ui/src/hooks/useSessionStorage.tsx | 71 ++++++++++++ platform/ui/src/index.js | 2 + yarn.lock | 42 +++++++- 13 files changed, 322 insertions(+), 9 deletions(-) create mode 100644 platform/ui/jest.config.js create mode 100644 platform/ui/src/hooks/useSessionStorage.test.js create mode 100644 platform/ui/src/hooks/useSessionStorage.tsx diff --git a/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js b/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js index 9809a1b7c..d1c32e088 100644 --- a/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js +++ b/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js @@ -3,6 +3,7 @@ describe('OHIF Study List', function () { context('Desktop resolution', function () { beforeEach(function () { + cy.window().then(win => win.sessionStorage.clear()); cy.openStudyList(); cy.viewport(1750, 720); @@ -14,6 +15,10 @@ describe('OHIF Study List', function () { cy.get('@StudyDescription').clear(); }); + afterEach(function () { + cy.window().then(win => win.sessionStorage.clear()); + }); + it('Displays several studies initially', function () { cy.waitStudyList(); cy.get('@searchResult2').should($list => { @@ -33,6 +38,21 @@ describe('OHIF Study List', function () { }); }); + it('maintains Patient Name filter upon return from viewer', function () { + cy.get('@PatientName').type('Juno'); + //Wait result list to be displayed + cy.waitStudyList(); + cy.get('[data-cy="studyRow-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]').click(); + cy.get( + '[data-cy="mode-basic-test-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]' + ).click(); + cy.get('[data-cy="return-to-work-list"]').click(); + cy.get('@searchResult2').should($list => { + expect($list.length).to.be.eq(1); + expect($list).to.contain('Juno'); + }); + }); + it('searches MRN with exact string', function () { cy.get('@MRN').type('0000003'); //Wait result list to be displayed @@ -43,6 +63,21 @@ describe('OHIF Study List', function () { }); }); + it('maintains MRN filter upon return from viewer', function () { + cy.get('@MRN').type('0000003'); + //Wait result list to be displayed + cy.waitStudyList(); + cy.get('[data-cy="studyRow-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]').click(); + cy.get( + '[data-cy="mode-basic-test-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]' + ).click(); + cy.get('[data-cy="return-to-work-list"]').click(); + cy.get('@searchResult2').should($list => { + expect($list.length).to.be.eq(1); + expect($list).to.contain('0000003'); + }); + }); + it('searches Accession with exact string', function () { cy.get('@AccessionNumber').type('321'); //Wait result list to be displayed @@ -53,6 +88,21 @@ describe('OHIF Study List', function () { }); }); + it('maintains Accession filter upon return from viewer', function () { + cy.get('@AccessionNumber').type('0000155811'); + //Wait result list to be displayed + cy.waitStudyList(); + cy.get('[data-cy="studyRow-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]').click(); + cy.get( + '[data-cy="mode-basic-test-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]' + ).click(); + cy.get('[data-cy="return-to-work-list"]').click(); + cy.get('@searchResult2').should($list => { + expect($list.length).to.be.eq(1); + expect($list).to.contain('0000155811'); + }); + }); + it('searches Description with exact string', function () { cy.get('@StudyDescription').type('PETCT'); //Wait result list to be displayed @@ -63,6 +113,21 @@ describe('OHIF Study List', function () { }); }); + it('maintains Description filter upon return from viewer', function () { + cy.get('@StudyDescription').type('PETCT'); + //Wait result list to be displayed + cy.waitStudyList(); + cy.get('[data-cy="studyRow-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]').click(); + cy.get( + '[data-cy="mode-basic-test-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]' + ).click(); + cy.get('[data-cy="return-to-work-list"]').click(); + cy.get('@searchResult2').should($list => { + expect($list.length).to.be.eq(1); + expect($list).to.contain('PETCT'); + }); + }); + /* Todo: fix react select it('searches Modality with camel case', function() { cy.get('@modalities').type('Ct'); diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index 865c6fbb9..8e8af65f5 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -26,6 +26,7 @@ import { AboutModal, UserPreferences, LoadingIndicatorProgress, + useSessionStorage, } from '@ohif/ui'; import i18n from '@ohif/i18n'; @@ -60,9 +61,17 @@ function WorkList({ const navigate = useNavigate(); const STUDIES_LIMIT = 101; const queryFilterValues = _getQueryFilterValues(searchParams); + const [sessionQueryFilterValues, updateSessionQueryFilterValues] = useSessionStorage({ + key: 'queryFilterValues', + defaultValue: queryFilterValues, + // ToDo: useSessionStorage currently uses an unload listener to clear the filters from session storage + // so on systems that do not support unload events a user will NOT be able to alter any existing filter + // in the URL, load the page and have it apply. + clearOnUnload: true, + }); const [filterValues, _setFilterValues] = useState({ ...defaultFilterValues, - ...queryFilterValues, + ...sessionQueryFilterValues, }); const debouncedFilterValues = useDebounce(filterValues, 200); @@ -119,6 +128,7 @@ function WorkList({ val.pageNumber = 1; } _setFilterValues(val); + updateSessionQueryFilterValues(val); setExpandedRows([]); }; @@ -251,6 +261,7 @@ function WorkList({ moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format('hh:mm A'); return { + dataCY: `studyRow-${studyInstanceUid}`, row: [ { key: 'patientName', @@ -377,6 +388,7 @@ function WorkList({ disabled={!isValidMode} endIcon={} // launch-arrow | launch-info onClick={() => {}} + data-cy={`mode-${mode.routeName}-${studyInstanceUid}`} > {t(`Modes:${mode.displayName}`)} diff --git a/platform/ui/jest.config.js b/platform/ui/jest.config.js new file mode 100644 index 000000000..2978b062e --- /dev/null +++ b/platform/ui/jest.config.js @@ -0,0 +1,13 @@ +const base = require('../../jest.config.base.js'); +const pkg = require('./package'); + +module.exports = { + ...base, + name: pkg.name, + displayName: pkg.name, + // rootDir: "../.." + // testMatch: [ + // //`/platform/${pack.name}/**/*.spec.js` + // "/platform/app/**/*.test.js" + // ] +}; diff --git a/platform/ui/package.json b/platform/ui/package.json index 802bd8b1e..63f51badd 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -50,7 +50,9 @@ "react-window": "^1.8.9", "react-with-direction": "^1.3.1", "swiper": "^8.4.2", - "webpack": "^5.81.0" + "webpack": "^5.81.0", + "@testing-library/react-hooks": "^3.2.1", + "react-test-renderer": "^16.12.0" }, "devDependencies": { "@babel/core": "^7.21.4", diff --git a/platform/ui/src/components/DateRange/DateRange.tsx b/platform/ui/src/components/DateRange/DateRange.tsx index 589ad30eb..93d81bef1 100644 --- a/platform/ui/src/components/DateRange/DateRange.tsx +++ b/platform/ui/src/components/DateRange/DateRange.tsx @@ -175,7 +175,7 @@ DateRange.propTypes = { /** YYYYMMDD (19921022) */ startDate: PropTypes.string, /** YYYYMMDD (19921022) */ - endDate: PropTypes.object, + endDate: PropTypes.string, /** Callback that received { startDate: string(YYYYMMDD), endDate: string(YYYYMMDD)} */ onChange: PropTypes.func.isRequired, }; diff --git a/platform/ui/src/components/Header/Header.tsx b/platform/ui/src/components/Header/Header.tsx index a780b231c..3bf7a6926 100644 --- a/platform/ui/src/components/Header/Header.tsx +++ b/platform/ui/src/components/Header/Header.tsx @@ -43,6 +43,7 @@ function Header({ isReturnEnabled && 'cursor-pointer' )} onClick={onClickReturn} + data-cy="return-to-work-list" > {isReturnEnabled && ( )}
-
+
{/* TODO revisit the completely rounded style of button used for clearing the study list filter - for now use LegacyButton*/} {isFiltering && ( {t('Studies')} diff --git a/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx b/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx index 079a2985f..2235f277d 100644 --- a/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx +++ b/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx @@ -7,10 +7,13 @@ import Icon from '../Icon'; const StudyListTableRow = props => { const { tableData } = props; - const { row, expandedContent, onClickRow, isExpanded } = tableData; + const { row, expandedContent, onClickRow, isExpanded, dataCY } = tableData; return ( <> - + { + beforeEach(() => { + window.sessionStorage.removeItem(SESSION_STORAGE_KEY); + }); + + it('hook should return state and setState', () => { + const data = { test: 1 }; + const { result } = renderHook(() => + useSessionStorage({ key: SESSION_STORAGE_KEY, defaultValue: data }) + ); + const [hookState, setHookState] = result.current; + expect(hookState).toStrictEqual(data); + expect(typeof setHookState).toBe('function'); + }); + + it('hook should store data on sessionStorage', () => { + const data = { test: 2 }; + renderHook(() => useSessionStorage({ key: SESSION_STORAGE_KEY, defaultValue: data })); + + const dataStr = JSON.stringify(data); + const dataSessionStorage = window.sessionStorage.getItem(SESSION_STORAGE_KEY); + expect(dataSessionStorage).toEqual(dataStr); + }); + + it('hook should return stored data from sessionStorage', () => { + const data = { test: 3 }; + const dataToCompare = { test: 4 }; + + window.sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(dataToCompare)); + + const { result } = renderHook(() => + useSessionStorage({ key: SESSION_STORAGE_KEY, defaultValue: data }) + ); + const [hookState, setHookState] = result.current; + + expect(hookState).toStrictEqual(dataToCompare); + }); + + it('hook should provide a setState method which updates its state', () => { + const data = { test: 5 }; + const dataToCompare = { test: 6 }; + const { result } = renderHook(() => + useSessionStorage({ key: SESSION_STORAGE_KEY, defaultValue: data }) + ); + const [hookState, setHookState] = result.current; + + act(() => { + setHookState(dataToCompare); + }); + + const dataToCompareStr = JSON.stringify(dataToCompare); + const dataSessionStorage = window.sessionStorage.getItem(SESSION_STORAGE_KEY); + + const [hookStateToCompare] = result.current; + expect(dataSessionStorage).toEqual(dataToCompareStr); + expect(hookStateToCompare).toStrictEqual(dataToCompare); + }); + + it('hook state must be preserved in case rerender', () => { + const data = { test: 7 }; + const { result, rerender } = renderHook(() => + useSessionStorage({ key: SESSION_STORAGE_KEY, defaultValue: data }) + ); + + rerender(); + + const [hookState, setHookState] = result.current; + + const dataToCompareStr = JSON.stringify(data); + const dataSessionStorage = window.sessionStorage.getItem(SESSION_STORAGE_KEY); + + expect(dataSessionStorage).toEqual(dataToCompareStr); + expect(hookState).toStrictEqual(data); + }); + + it('hook state must be preserved in case multiple operations and rerender', () => { + const data = { test: 8 }; + const dataToCompare = { test: 9 }; + const { result, rerender } = renderHook(() => + useSessionStorage({ key: SESSION_STORAGE_KEY, defaultValue: data }) + ); + const [hookState, setHookState] = result.current; + + act(() => { + setHookState(dataToCompare); + }); + + rerender(); + + const dataToCompareStr = JSON.stringify(dataToCompare); + const dataSessionStorage = window.sessionStorage.getItem(SESSION_STORAGE_KEY); + + const [hookStateToCompare] = result.current; + expect(dataSessionStorage).toEqual(dataToCompareStr); + expect(hookStateToCompare).toStrictEqual(dataToCompare); + }); +}); diff --git a/platform/ui/src/hooks/useSessionStorage.tsx b/platform/ui/src/hooks/useSessionStorage.tsx new file mode 100644 index 000000000..e1c16282b --- /dev/null +++ b/platform/ui/src/hooks/useSessionStorage.tsx @@ -0,0 +1,71 @@ +import { useState, useEffect, useCallback } from 'react'; + +/** + * A map of session storage items that should be cleared out of session storage + * when the page unloads. + */ +const sessionItemsToClearOnUnload: Map = new Map(); + +/** + * This callback simulates clearing the various session items when a page unloads. + * When the page is hidden the session storage items are removed but maintained + * in the map above in case the page becomes visible again. So those pages that + * are hidden because they are being unloaded have their session storage disposed + * of for ever. For those pages that are hidden, but later return to visible, + * this callback restores the session storage from the map above. + */ +const visibilityChangeCallback = () => { + if (document.visibilityState === 'hidden') { + Array.from(sessionItemsToClearOnUnload.keys()).forEach(key => { + window.sessionStorage.removeItem(key); + }); + } else { + Array.from(sessionItemsToClearOnUnload.keys()).forEach(key => { + window.sessionStorage.setItem(key, sessionItemsToClearOnUnload.get(key)); + }); + } +}; + +/** + * Technically there is no memory leak here because the listener needs to + * persist until the page unloads and once the page unloads it will be gone. + */ +document.addEventListener('visibilitychange', visibilityChangeCallback); + +type useSessionStorageProps = { + key: string; + defaultValue: unknown; + clearOnUnload: boolean; +}; + +const useSessionStorage = ({ + key, + defaultValue = {}, + clearOnUnload = false, +}: useSessionStorageProps) => { + const valueFromStorage = window.sessionStorage.getItem(key); + const storageValue = valueFromStorage ? JSON.parse(valueFromStorage) : defaultValue; + const [sessionItem, setSessionItem] = useState({ ...storageValue }); + + const updateSessionItem = useCallback(value => { + setSessionItem({ ...value }); + + const valueAsStr = JSON.stringify(value); + + if (!clearOnUnload || document.visibilityState === 'visible') { + window.sessionStorage.setItem(key, valueAsStr); + } + + if (clearOnUnload) { + sessionItemsToClearOnUnload.set(key, valueAsStr); + } + }, []); + + useEffect(() => { + updateSessionItem(sessionItem); + }, []); + + return [sessionItem, updateSessionItem]; +}; + +export default useSessionStorage; diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index 1acacefd1..69fc814fa 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -119,6 +119,8 @@ export { ViewportOverlay, } from './components'; +export { useSessionStorage } from './hooks'; + /** These are mostly used in the docs */ export { getIcon, ICONS, addIcon } from './components/Icon/getIcon'; export { BackgroundColor } from './pages/Colors/BackgroundColor'; diff --git a/yarn.lock b/yarn.lock index 9b8ad2e7f..a52cf2fb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4860,6 +4860,14 @@ dependencies: defer-to-connect "^2.0.1" +"@testing-library/react-hooks@^3.2.1": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.7.0.tgz#6d75c5255ef49bce39b6465bf6b49e2dac84919e" + integrity sha512-TwfbY6BWtWIHitjT05sbllyLIProcysC0dF0q1bbDa7OHLC6A6rJOYJwZ13hzfz3O4RtOuInmprBozJRyyo7/g== + dependencies: + "@babel/runtime" "^7.12.5" + "@types/testing-library__react-hooks" "^3.4.0" + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -5322,6 +5330,13 @@ "@types/history" "^4.7.11" "@types/react" "*" +"@types/react-test-renderer@*": + version "18.0.5" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.5.tgz#b67a6ff37acd93d1b971ec4c838f69d52e772db0" + integrity sha512-PsnmF4Hpi61PTRX+dTxkjgDdtZ09kFFgPXczoF+yBfOVxn7xBLPvKP1BUrSasYHmerj33rhoJuvpIMsJuyRqHw== + dependencies: + "@types/react" "*" + "@types/react-transition-group@^4.4.0": version "4.4.6" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" @@ -5437,6 +5452,13 @@ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== +"@types/testing-library__react-hooks@^3.4.0": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.1.tgz#b8d7311c6c1f7db3103e94095fe901f8fef6e433" + integrity sha512-G4JdzEcq61fUyV6wVW9ebHWEiLK2iQvaBuCHHn9eMSbZzVh4Z4wHnUGIvQOYCCYeu5DnUtFyNYuAAgbSaO/43Q== + dependencies: + "@types/react-test-renderer" "*" + "@types/tough-cookie@*": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" @@ -17331,7 +17353,7 @@ react-is@18.1.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.4, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -17528,6 +17550,16 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" +react-test-renderer@^16.12.0: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== + dependencies: + object-assign "^4.1.1" + prop-types "^15.6.2" + react-is "^16.8.6" + scheduler "^0.19.1" + react-textarea-autosize@^8.3.2: version "8.5.2" resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.2.tgz#6421df2b5b50b9ca8c5e96fd31be688ea7fa2f9d" @@ -18323,6 +18355,14 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" From 5b3b6eed16fe857fc239a7785e6f73f93706a23d Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 30 Oct 2023 15:00:58 +0000 Subject: [PATCH 024/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index a0a23d550..d6fceb637 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -dd6d9768bbca1d3cc472e8c1e6d85822500b96ef \ No newline at end of file +2a15ef0e44b7b4d8bbf5cb9363db6e523201c681 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index b4ef32e5c..df31abf52 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/i18n": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/i18n": "3.8.0-beta.7", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index bd79e4ed4..4f12647d8 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/i18n": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/i18n": "3.8.0-beta.7", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9cd193b12..656fd0dad 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-measurement-tracking": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-measurement-tracking": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 8d276e3f5..626cac9a8 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 19cfb569c..9d067e669 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/i18n": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/i18n": "3.8.0-beta.7", "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 57a3d81a6..8c096a79d 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/i18n": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/i18n": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 897b46808..cdb2c31bd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 15e63963f..64f9d44ca 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f44c7f625..f5676326d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.20.3", "@cornerstonejs/tools": "^1.20.3", - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "classnames": "^2.3.2", "dcmjs": "^0.29.11", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 308cf881f..fc42d4f65 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 9e2010402..54272ac4b 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 79f017653..eec581843 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/extension-dicom-pdf": "3.8.0-beta.6", - "@ohif/extension-dicom-video": "3.8.0-beta.6" + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/extension-dicom-pdf": "3.8.0-beta.7", + "@ohif/extension-dicom-video": "3.8.0-beta.7" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 2d5b37d62..9391b5984 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/extension-dicom-pdf": "3.8.0-beta.6", - "@ohif/extension-dicom-video": "3.8.0-beta.6", - "@ohif/extension-measurement-tracking": "3.8.0-beta.6", - "@ohif/extension-test": "3.8.0-beta.6" + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/extension-dicom-pdf": "3.8.0-beta.7", + "@ohif/extension-dicom-video": "3.8.0-beta.7", + "@ohif/extension-measurement-tracking": "3.8.0-beta.7", + "@ohif/extension-test": "3.8.0-beta.7" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index abac9be32..08cbf78a1 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/extension-dicom-pdf": "3.8.0-beta.6", - "@ohif/extension-dicom-video": "3.8.0-beta.6", - "@ohif/extension-measurement-tracking": "3.8.0-beta.6" + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/extension-dicom-pdf": "3.8.0-beta.7", + "@ohif/extension-dicom-video": "3.8.0-beta.7", + "@ohif/extension-measurement-tracking": "3.8.0-beta.7" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 5978daaa8..83a5af251 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.6" + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.7" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 07608f343..1142d8f94 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6" + "@ohif/core": "3.8.0-beta.7" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index aea071143..a12194644 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/extension-dicom-pdf": "3.8.0-beta.6", - "@ohif/extension-dicom-video": "3.8.0-beta.6", - "@ohif/extension-measurement-tracking": "3.8.0-beta.6" + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/extension-dicom-pdf": "3.8.0-beta.7", + "@ohif/extension-dicom-video": "3.8.0-beta.7", + "@ohif/extension-measurement-tracking": "3.8.0-beta.7" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index ea3102519..ef63acbae 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.7", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 578860d76..e60cc669e 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.6", - "commit": "dd6d9768bbca1d3cc472e8c1e6d85822500b96ef" + "version": "3.8.0-beta.7", + "commit": "2a15ef0e44b7b4d8bbf5cb9363db6e523201c681" } \ No newline at end of file diff --git a/version.txt b/version.txt index 0d1505764..799138cbf 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.6 \ No newline at end of file +3.8.0-beta.7 \ No newline at end of file From c73a403cdcbc687981308d03462d2d2d10f73df5 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 30 Oct 2023 15:01:05 +0000 Subject: [PATCH 025/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 16 +++++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 8 ++--- 48 files changed, 253 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7965d5fa6..4c1d5dc0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + + +### Bug Fixes + +* **measurement service:** Implemented correct check of schema keys in _isValidMeasurment. ([#3750](https://github.com/OHIF/Viewers/issues/3750)) ([db39585](https://github.com/OHIF/Viewers/commit/db395852b6fc6cd5c265a9282e5eee5bd6f951b7)) + + +### Features + +* **filters:** save worklist query filters to session storage so that they persist between navigation to the viewer and back ([#3749](https://github.com/OHIF/Viewers/issues/3749)) ([2a15ef0](https://github.com/OHIF/Viewers/commit/2a15ef0e44b7b4d8bbf5cb9363db6e523201c681)) + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 0ee4514a8..7640e90f9 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index df31abf52..f879098ed 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 3c470de4e..61765550f 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4f12647d8..87eb2f121 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 129d5b5d5..dc95a7280 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 656fd0dad..88442df6a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index e642c2098..b48393b9d 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 626cac9a8..03c7493ef 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index f153f9f60..4719d8ecc 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/extensions/default/package.json b/extensions/default/package.json index 9d067e669..55e9dd421 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index e8aa769ac..355eab078 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 8c096a79d..a32cf109e 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 8403e7055..bbaa58749 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index cdb2c31bd..534e3766b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index a5ea4bc54..e088e9ce6 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 64f9d44ca..6f3c54b9b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index eb488d4ae..269be4ac6 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f5676326d..5f0d1339d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/ui": "3.8.0-beta.7", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 5a61fc7ff..a3ccf5de0 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index fc42d4f65..552fdb749 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 0939b1b33..6708a3a42 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 54272ac4b..76a01c03d 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 3a678dad4..85ebb9f3d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 61f3a0514..bfb03106b 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index eec581843..48b2aa37f 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 86911cc33..c23c299e3 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 9391b5984..3da9fda8c 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 4d9bd3e04..7a4582606 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 08cbf78a1..b7fa2266a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index e76f4d5eb..52e79ee47 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 83a5af251..b8df47093 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index beac594da..25c139fa4 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 1142d8f94..78fa34110 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 1fe6396e6..5c2cd4445 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index a12194644..d94c86a50 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index e31bd3b85..c908ce5e7 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + + +### Features + +* **filters:** save worklist query filters to session storage so that they persist between navigation to the viewer and back ([#3749](https://github.com/OHIF/Viewers/issues/3749)) ([2a15ef0](https://github.com/OHIF/Viewers/commit/2a15ef0e44b7b4d8bbf5cb9363db6e523201c681)) + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/platform/app/package.json b/platform/app/package.json index fcbebfc7b..f1b4b5859 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.20.3", - "@ohif/core": "3.8.0-beta.6", - "@ohif/extension-cornerstone": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.6", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.6", - "@ohif/extension-default": "3.8.0-beta.6", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.6", - "@ohif/extension-dicom-pdf": "3.8.0-beta.6", - "@ohif/extension-dicom-video": "3.8.0-beta.6", - "@ohif/extension-test": "3.8.0-beta.6", - "@ohif/i18n": "3.8.0-beta.6", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.6", - "@ohif/mode-longitudinal": "3.8.0-beta.6", - "@ohif/mode-microscopy": "3.8.0-beta.6", - "@ohif/mode-test": "3.8.0-beta.6", - "@ohif/ui": "3.8.0-beta.6", + "@ohif/core": "3.8.0-beta.7", + "@ohif/extension-cornerstone": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.7", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.7", + "@ohif/extension-default": "3.8.0-beta.7", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.7", + "@ohif/extension-dicom-pdf": "3.8.0-beta.7", + "@ohif/extension-dicom-video": "3.8.0-beta.7", + "@ohif/extension-test": "3.8.0-beta.7", + "@ohif/i18n": "3.8.0-beta.7", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.7", + "@ohif/mode-longitudinal": "3.8.0-beta.7", + "@ohif/mode-microscopy": "3.8.0-beta.7", + "@ohif/mode-test": "3.8.0-beta.7", + "@ohif/ui": "3.8.0-beta.7", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 75edd9c84..f44ec1924 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 44c17bfb6..7f7de2696 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 0a4deb103..d2449553f 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + + +### Bug Fixes + +* **measurement service:** Implemented correct check of schema keys in _isValidMeasurment. ([#3750](https://github.com/OHIF/Viewers/issues/3750)) ([db39585](https://github.com/OHIF/Viewers/commit/db395852b6fc6cd5c265a9282e5eee5bd6f951b7)) + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/platform/core/package.json b/platform/core/package.json index ef63acbae..af5a091e0 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index d6be7b590..23a17b686 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/platform/docs/package.json b/platform/docs/package.json index bf456e0a2..523caaabf 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 380ab8138..d3d95c7ee 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 4604cdd6b..ec5ecb3d6 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 4cddb0f2d..d04994d46 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.7](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.6...v3.8.0-beta.7) (2023-10-30) + + +### Features + +* **filters:** save worklist query filters to session storage so that they persist between navigation to the viewer and back ([#3749](https://github.com/OHIF/Viewers/issues/3749)) ([2a15ef0](https://github.com/OHIF/Viewers/commit/2a15ef0e44b7b4d8bbf5cb9363db6e523201c681)) + + + + + # [3.8.0-beta.6](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.5...v3.8.0-beta.6) (2023-10-25) diff --git a/platform/ui/package.json b/platform/ui/package.json index 63f51badd..a526a59b0 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.6", + "version": "3.8.0-beta.7", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", @@ -32,6 +32,7 @@ "react-dom": "17.0.2" }, "dependencies": { + "@testing-library/react-hooks": "^3.2.1", "browser-detect": "^0.2.28", "classnames": "^2.3.2", "lodash.debounce": "4.0.8", @@ -47,12 +48,11 @@ "react-modal": "3.11.2", "react-outside-click-handler": "^1.3.0", "react-select": "5.7.4", + "react-test-renderer": "^16.12.0", "react-window": "^1.8.9", "react-with-direction": "^1.3.1", "swiper": "^8.4.2", - "webpack": "^5.81.0", - "@testing-library/react-hooks": "^3.2.1", - "react-test-renderer": "^16.12.0" + "webpack": "^5.81.0" }, "devDependencies": { "@babel/core": "^7.21.4", From 330e11c7ff0151e1096e19b8ffdae7d64cae280e Mon Sep 17 00:00:00 2001 From: Pavel Date: Wed, 1 Nov 2023 00:36:45 +0500 Subject: [PATCH 026/289] feat(i18n): enhanced i18n support (#3730) --- .../default/src/ViewerLayout/ViewerHeader.tsx | 4 +- platform/app/src/routes/WorkList/WorkList.tsx | 16 +++--- .../app/src/routes/WorkList/filtersMeta.js | 16 +++--- platform/i18n/src/locales/de/AboutModal.json | 8 +-- platform/i18n/src/locales/de/Buttons.json | 2 +- platform/i18n/src/locales/de/StudyList.json | 2 +- .../src/locales/de/UserPreferencesModal.json | 4 +- .../i18n/src/locales/en-US/AboutModal.json | 12 +++-- platform/i18n/src/locales/en-US/Buttons.json | 2 +- .../i18n/src/locales/en-US/DatePicker.json | 6 ++- .../i18n/src/locales/en-US/StudyList.json | 5 +- .../locales/en-US/UserPreferencesModal.json | 4 +- platform/i18n/src/locales/es/AboutModal.json | 8 +-- platform/i18n/src/locales/es/Buttons.json | 2 +- platform/i18n/src/locales/es/StudyList.json | 5 +- .../src/locales/es/UserPreferencesModal.json | 4 +- platform/i18n/src/locales/fr/Buttons.json | 2 +- .../src/locales/fr/UserPreferencesModal.json | 4 +- platform/i18n/src/locales/ja-JP/Buttons.json | 2 +- .../locales/ja-JP/UserPreferencesModal.json | 4 +- .../i18n/src/locales/pt-BR/AboutModal.json | 8 +-- platform/i18n/src/locales/pt-BR/Buttons.json | 2 +- .../locales/pt-BR/UserPreferencesModal.json | 4 +- .../i18n/src/locales/test-LNG/AboutModal.json | 10 ++-- .../i18n/src/locales/test-LNG/Buttons.json | 2 +- .../i18n/src/locales/test-LNG/DatePicker.json | 6 ++- .../i18n/src/locales/test-LNG/StudyList.json | 2 +- .../test-LNG/UserPreferencesModal.json | 4 +- .../i18n/src/locales/tr-TR/AboutModal.json | 8 +-- platform/i18n/src/locales/tr-TR/Buttons.json | 2 +- .../i18n/src/locales/tr-TR/StudyList.json | 2 +- .../locales/tr-TR/UserPreferencesModal.json | 4 +- platform/i18n/src/locales/vi/Buttons.json | 2 +- platform/i18n/src/locales/vi/StudyList.json | 2 +- .../src/locales/vi/UserPreferencesModal.json | 4 +- platform/i18n/src/locales/zh/Buttons.json | 2 +- platform/i18n/src/locales/zh/StudyList.json | 3 +- .../src/locales/zh/UserPreferencesModal.json | 4 +- .../src/components/AboutModal/AboutModal.tsx | 28 +++++----- .../ui/src/components/DateRange/DateRange.tsx | 51 ++++++++++--------- .../HotkeysPreferences/HotkeysPreferences.tsx | 2 +- .../InputLabelWrapper/InputLabelWrapper.tsx | 5 +- .../StudyListExpandedRow.tsx | 5 +- .../StudyListFilter/StudyListFilter.tsx | 2 +- .../StudyListPagination.tsx | 2 +- .../UserPreferences/UserPreferences.tsx | 2 +- 46 files changed, 146 insertions(+), 134 deletions(-) diff --git a/extensions/default/src/ViewerLayout/ViewerHeader.tsx b/extensions/default/src/ViewerLayout/ViewerHeader.tsx index 6b7f5bfd3..00ec7b479 100644 --- a/extensions/default/src/ViewerLayout/ViewerHeader.tsx +++ b/extensions/default/src/ViewerLayout/ViewerHeader.tsx @@ -53,7 +53,7 @@ function ViewerHeader({ hotkeysManager, extensionManager, servicesManager }) { onClick: () => show({ content: AboutModal, - title: 'About OHIF Viewer', + title: t('AboutModal:About OHIF Viewer'), contentProps: { versionNumber, commitHash }, }), }, @@ -62,7 +62,7 @@ function ViewerHeader({ hotkeysManager, extensionManager, servicesManager }) { icon: 'settings', onClick: () => show({ - title: t('UserPreferencesModal:User Preferences'), + title: t('UserPreferencesModal:User preferences'), content: UserPreferences, contentProps: { hotkeyDefaults: hotkeysManager.getValidHotkeyDefinitions(hotkeyDefaults), diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index 8e8af65f5..fa236ce70 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -254,11 +254,11 @@ function WorkList({ const studyDate = date && moment(date, ['YYYYMMDD', 'YYYY.MM.DD'], true).isValid() && - moment(date, ['YYYYMMDD', 'YYYY.MM.DD']).format('MMM-DD-YYYY'); + moment(date, ['YYYYMMDD', 'YYYY.MM.DD']).format(t('Common:localDateFormat','MMM-DD-YYYY')); const studyTime = time && moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).isValid() && - moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format('hh:mm A'); + moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format(t('Common:localTimeFormat', 'hh:mm A')); return { dataCY: `studyRow-${studyInstanceUid}`, @@ -327,10 +327,10 @@ function WorkList({ expandedContent: ( show({ content: AboutModal, - title: 'About OHIF Viewer', + title: t('AboutModal:About OHIF Viewer'), contentProps: { versionNumber, commitHash }, }), }, @@ -425,7 +425,7 @@ function WorkList({ icon: 'settings', onClick: () => show({ - title: t('UserPreferencesModal:User Preferences'), + title: t('UserPreferencesModal:User preferences'), content: UserPreferences, contentProps: { hotkeyDefaults: hotkeysManager.getValidHotkeyDefinitions(hotkeyDefaults), diff --git a/platform/app/src/routes/WorkList/filtersMeta.js b/platform/app/src/routes/WorkList/filtersMeta.js index a6bf204b5..7057c8b3b 100644 --- a/platform/app/src/routes/WorkList/filtersMeta.js +++ b/platform/app/src/routes/WorkList/filtersMeta.js @@ -1,35 +1,37 @@ +import i18n from 'i18next'; + const filtersMeta = [ { name: 'patientName', - displayName: 'PatientName', + displayName: i18n.t('StudyList:PatientName'), inputType: 'Text', isSortable: true, gridCol: 4, }, { name: 'mrn', - displayName: 'MRN', + displayName: i18n.t('StudyList:MRN'), inputType: 'Text', isSortable: true, gridCol: 3, }, { name: 'studyDate', - displayName: 'StudyDate', + displayName: i18n.t('StudyList:StudyDate'), inputType: 'DateRange', isSortable: true, gridCol: 5, }, { name: 'description', - displayName: 'StudyDescription', + displayName: i18n.t('StudyList:Description'), inputType: 'Text', isSortable: true, gridCol: 4, }, { name: 'modalities', - displayName: 'Modality', + displayName: i18n.t('StudyList:Modality'), inputType: 'MultiSelect', inputProps: { options: [ @@ -110,14 +112,14 @@ const filtersMeta = [ }, { name: 'accession', - displayName: 'AccessionNumber', + displayName: i18n.t('StudyList:AccessionNumber'), inputType: 'Text', isSortable: true, gridCol: 3, }, { name: 'instances', - displayName: 'Instances', + displayName: i18n.t('StudyList:Instances'), inputType: 'None', isSortable: false, gridCol: 2, diff --git a/platform/i18n/src/locales/de/AboutModal.json b/platform/i18n/src/locales/de/AboutModal.json index 29d0b3057..c64654d6d 100644 --- a/platform/i18n/src/locales/de/AboutModal.json +++ b/platform/i18n/src/locales/de/AboutModal.json @@ -1,14 +1,14 @@ { + "About OHIF Viewer": "Über OHIF Viewer", "Browser": "Browser", - "Build Number": "Build-Nummer", - "Latest Master Commits": "Letzter Master Commit", + "Build number": "Build-Nummer", + "Last master commits": "Letzter Master Commit", "More details": "Mehr Details", "Name": "Name", - "About OHIF Viewer": "Über OHIF Viewer", "OS": "OS", "Report an issue": "Ein Problem melden", "Repository URL": "Repository URL", "Value": "Wert", - "Version Information": "Informationen zur Version", + "Version information": "Informationen zur Version", "Visit the forum": "Besuchen Sie das Forum" } diff --git a/platform/i18n/src/locales/de/Buttons.json b/platform/i18n/src/locales/de/Buttons.json index 9bf993f36..9adac93e0 100644 --- a/platform/i18n/src/locales/de/Buttons.json +++ b/platform/i18n/src/locales/de/Buttons.json @@ -36,7 +36,7 @@ "Rectangle": "Rechteck", "Reset": "$t(Common:Reset)", "Reset View": "$t(Common:Reset)", - "Reset to Defaults": "Auf Default zurücksetzen", + "Reset to defaults": "Auf Default zurücksetzen", "Rotate Right": "Nach rechts drehen", "Rotate +90": "Drehen +90", "Sagittal": "Sagittal", diff --git a/platform/i18n/src/locales/de/StudyList.json b/platform/i18n/src/locales/de/StudyList.json index 2794ba893..0759eb861 100644 --- a/platform/i18n/src/locales/de/StudyList.json +++ b/platform/i18n/src/locales/de/StudyList.json @@ -9,5 +9,5 @@ "Description": "Beschreibung", "Study list": "Studienliste", "Instances": "Instanzen", - "Studies": "Studien" + "Number of studies": "Studien" } diff --git a/platform/i18n/src/locales/de/UserPreferencesModal.json b/platform/i18n/src/locales/de/UserPreferencesModal.json index 4ae672cbf..04790fdfc 100644 --- a/platform/i18n/src/locales/de/UserPreferencesModal.json +++ b/platform/i18n/src/locales/de/UserPreferencesModal.json @@ -1,11 +1,11 @@ { "Cancel": "$t(Buttons:Cancel)", "No hotkeys found": "Keine Hotkeys gefunden.", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "ResetDefaultMessage": "Einstellungen zurückgesetzt. Bitte speichern.", "Save": "$t(Buttons:Save)", "SaveMessage": "Gespeichert", - "User Preferences": "Benutzereinstellungen", + "User preferences": "Benutzereinstellungen", "Language": "Sprache", "General": "Allgemein" } diff --git a/platform/i18n/src/locales/en-US/AboutModal.json b/platform/i18n/src/locales/en-US/AboutModal.json index 55e0144c9..aa00fc0b6 100644 --- a/platform/i18n/src/locales/en-US/AboutModal.json +++ b/platform/i18n/src/locales/en-US/AboutModal.json @@ -1,14 +1,18 @@ { + "About OHIF Viewer": "About OHIF Viewer", "Browser": "Browser", - "Build Number": "Build Number", - "Latest Master Commits": "Latest Master Commits", + "Build number": "Build Number", + "Commit hash": "Commit hash", + "Data citation": "Data citation", + "Important links": "Important links", + "Last master commits": "Latest Master Commits", "More details": "More details", "Name": "Name", - "OHIF Viewer - About": "OHIF Viewer - About", "OS": "OS", "Report an issue": "Report an issue", "Repository URL": "Repository URL", "Value": "Value", - "Version Information": "Version Information", + "Version information": "Version Information", + "Version number": "Version number", "Visit the forum": "Visit the forum" } diff --git a/platform/i18n/src/locales/en-US/Buttons.json b/platform/i18n/src/locales/en-US/Buttons.json index 7e5f23b36..4a2d259a7 100644 --- a/platform/i18n/src/locales/en-US/Buttons.json +++ b/platform/i18n/src/locales/en-US/Buttons.json @@ -39,7 +39,7 @@ "Rectangle": "Rectangle", "Reference Lines": "Reference Lines", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "$t(Common:Reset) to Defaults", + "Reset to defaults": "$t(Common:Reset) to Defaults", "Rotate Right": "Rotate Right", "Sagittal": "Sagittal", "Save": "Save", diff --git a/platform/i18n/src/locales/en-US/DatePicker.json b/platform/i18n/src/locales/en-US/DatePicker.json index 24187a1cf..3add53f9e 100644 --- a/platform/i18n/src/locales/en-US/DatePicker.json +++ b/platform/i18n/src/locales/en-US/DatePicker.json @@ -1,5 +1,9 @@ { "Clear dates": "Clear dates", + "Close": "$t(Common:Close)", "End Date": "End Date", - "Start Date": "Start Date" + "Last 7 days": "Last 7 days", + "Last 30 days": "Last 30 days", + "Start Date": "Start Date", + "Today": "Today" } diff --git a/platform/i18n/src/locales/en-US/StudyList.json b/platform/i18n/src/locales/en-US/StudyList.json index 3c2c731ec..9ee5a74fb 100644 --- a/platform/i18n/src/locales/en-US/StudyList.json +++ b/platform/i18n/src/locales/en-US/StudyList.json @@ -11,9 +11,8 @@ "Previous": "< Back", "Page": "Page", "Next": "Next >", - "ResultsPerPage": "Results per page", - "Studies": "Studies", + "Results per page": "Results per page", + "Number of studies": "Studies", "StudyDate": "Study Date", - "StudyDescription": "Description", "StudyList": "Study List" } diff --git a/platform/i18n/src/locales/en-US/UserPreferencesModal.json b/platform/i18n/src/locales/en-US/UserPreferencesModal.json index 33b331f59..5e7335468 100644 --- a/platform/i18n/src/locales/en-US/UserPreferencesModal.json +++ b/platform/i18n/src/locales/en-US/UserPreferencesModal.json @@ -1,9 +1,9 @@ { "Cancel": "$t(Buttons:Cancel)", "No hotkeys found": "No hotkeys are configured for this application. Hotkeys can be configured in the application's app-config.js file.", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "ResetDefaultMessage": "Preferences successfully reset to default.
You must Save to perform this action.", "Save": "$t(Buttons:Save)", "SaveMessage": "Preferences saved", - "User Preferences": "User Preferences" + "User preferences": "User Preferences" } diff --git a/platform/i18n/src/locales/es/AboutModal.json b/platform/i18n/src/locales/es/AboutModal.json index 74cab12b2..22153c9fe 100644 --- a/platform/i18n/src/locales/es/AboutModal.json +++ b/platform/i18n/src/locales/es/AboutModal.json @@ -1,14 +1,14 @@ { + "About OHIF Viewer": "Sobre OHIF Viewer", "Browser": "Navegador", - "Build Number": "Número de compilación", - "Latest Master Commits": "Últimos Master Commits", + "Build number": "Número de compilación", + "Last master commits": "Últimos Master Commits", "More details": "Más detalles", "Name": "Nombre", - "OHIF Viewer - About": "Sobre OHIF Viewer", "OS": "SO", "Report an issue": "Informar un problema", "Repository URL": "URL del repositorio", "Value": "Valor", - "Version Information": "Información de la versión", + "Version information": "Información de la versión", "Visit the forum": "Visita el foro" } diff --git a/platform/i18n/src/locales/es/Buttons.json b/platform/i18n/src/locales/es/Buttons.json index d7e0acfbf..ce1a1a999 100644 --- a/platform/i18n/src/locales/es/Buttons.json +++ b/platform/i18n/src/locales/es/Buttons.json @@ -32,7 +32,7 @@ "ROI Window": "Ventana ROI", "Rectangle": "Rectángulo", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "$t(Common:Reset) por defecto", + "Reset to defaults": "$t(Common:Reset) por defecto", "Rotate Right": "Girar ->", "Sagittal": "Sagital", "Save": "Guardar", diff --git a/platform/i18n/src/locales/es/StudyList.json b/platform/i18n/src/locales/es/StudyList.json index b20d1c98c..eb1d970f0 100644 --- a/platform/i18n/src/locales/es/StudyList.json +++ b/platform/i18n/src/locales/es/StudyList.json @@ -11,9 +11,8 @@ "Previous": "< Anterior", "Page": "Página", "Next": "Siguiente >", - "ResultsPerPage": "Resultados por página", - "Studies": "Estudios", + "Results per page": "Resultados por página", + "Number of studies": "Estudios", "StudyDate": "Fecha del estudio", - "StudyDescription": "Descripción", "StudyList": "Lista de Estudios" } diff --git a/platform/i18n/src/locales/es/UserPreferencesModal.json b/platform/i18n/src/locales/es/UserPreferencesModal.json index 4534903af..f0a9fe8ca 100644 --- a/platform/i18n/src/locales/es/UserPreferencesModal.json +++ b/platform/i18n/src/locales/es/UserPreferencesModal.json @@ -1,6 +1,6 @@ { "Cancel": "$t(Buttons:Cancel)", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "Save": "$t(Buttons:Save)", - "User Preferences": "Preferencias de Usuario" + "User preferences": "Preferencias de Usuario" } diff --git a/platform/i18n/src/locales/fr/Buttons.json b/platform/i18n/src/locales/fr/Buttons.json index 50e7dfadc..c97dfaac6 100644 --- a/platform/i18n/src/locales/fr/Buttons.json +++ b/platform/i18n/src/locales/fr/Buttons.json @@ -31,7 +31,7 @@ "ROI Window": "ROI fenêtrage", "Rectangle": "Rectangle", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "Valeurs d'usine", + "Reset to defaults": "Valeurs d'usine", "Rotate Right": "Tourner à droite", "Sagittal": "Sagittal", "Save": "Sauvegarder", diff --git a/platform/i18n/src/locales/fr/UserPreferencesModal.json b/platform/i18n/src/locales/fr/UserPreferencesModal.json index 506547fd9..424cfe98e 100644 --- a/platform/i18n/src/locales/fr/UserPreferencesModal.json +++ b/platform/i18n/src/locales/fr/UserPreferencesModal.json @@ -1,6 +1,6 @@ { "Cancel": "$t(Buttons:Cancel)", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "Save": "$t(Buttons:Save)", - "User Preferences": "Préférences utilisateur" + "User preferences": "Préférences utilisateur" } diff --git a/platform/i18n/src/locales/ja-JP/Buttons.json b/platform/i18n/src/locales/ja-JP/Buttons.json index aed843402..43934aa65 100644 --- a/platform/i18n/src/locales/ja-JP/Buttons.json +++ b/platform/i18n/src/locales/ja-JP/Buttons.json @@ -31,7 +31,7 @@ "ROI Window": "ROIウィンドウ", "Rectangle": "長方形", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "デフォルトへ$t(Common:Reset)", + "Reset to defaults": "デフォルトへ$t(Common:Reset)", "Rotate Right": "右に回転", "Sagittal": "サジタル", "Save": "保存", diff --git a/platform/i18n/src/locales/ja-JP/UserPreferencesModal.json b/platform/i18n/src/locales/ja-JP/UserPreferencesModal.json index b7215966c..80a545b4f 100644 --- a/platform/i18n/src/locales/ja-JP/UserPreferencesModal.json +++ b/platform/i18n/src/locales/ja-JP/UserPreferencesModal.json @@ -1,6 +1,6 @@ { "Cancel": "$t(Buttons:Cancel)", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "Save": "$t(Buttons:Save)", - "User Preferences": "ユーザプレファレンス" + "User preferences": "ユーザプレファレンス" } diff --git a/platform/i18n/src/locales/pt-BR/AboutModal.json b/platform/i18n/src/locales/pt-BR/AboutModal.json index 23ccac43a..00e56c641 100644 --- a/platform/i18n/src/locales/pt-BR/AboutModal.json +++ b/platform/i18n/src/locales/pt-BR/AboutModal.json @@ -1,14 +1,14 @@ { + "About OHIF Viewer": "OHIF Viewer - Sobre", "Browser": "Navegador", - "Build Number": "Número da compilação", - "Latest Master Commits": "Últimos Commits na Master", + "Build number": "Número da compilação", + "Last master commits": "Últimos Commits na Master", "More details": "Mais detalhes", "Name": "Nome", - "OHIF Viewer - About": "OHIF Viewer - Sobre", "OS": "SO", "Report an issue": "Informar um problema", "Repository URL": "URL do Repositório", "Value": "Valor", - "Version Information": "Informação da Versão", + "Version information": "Informação da Versão", "Visit the forum": "Visite o fórum" } diff --git a/platform/i18n/src/locales/pt-BR/Buttons.json b/platform/i18n/src/locales/pt-BR/Buttons.json index 0e910aed1..838e42bd9 100644 --- a/platform/i18n/src/locales/pt-BR/Buttons.json +++ b/platform/i18n/src/locales/pt-BR/Buttons.json @@ -32,7 +32,7 @@ "ROI Window": "Janela ROI", "Rectangle": "Retângulo", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "$t(Common:Reset) para o Padrão", + "Reset to defaults": "$t(Common:Reset) para o Padrão", "Rotate Right": "Girar à direita", "Sagittal": "Sagital", "Save": "Salvar", diff --git a/platform/i18n/src/locales/pt-BR/UserPreferencesModal.json b/platform/i18n/src/locales/pt-BR/UserPreferencesModal.json index 046be3c07..6d85f2a9f 100644 --- a/platform/i18n/src/locales/pt-BR/UserPreferencesModal.json +++ b/platform/i18n/src/locales/pt-BR/UserPreferencesModal.json @@ -1,8 +1,8 @@ { "Cancel": "Cancelar", - "Reset to Defaults": "$t(Common:Reset) para Padrão", + "Reset to defaults": "$t(Common:Reset) para Padrão", "ResetDefaultMessage": "Preferências resetadas com sucesso.
Você deve Salvar para que essa ação seja realizada.", "Save": "Salvar", "SaveMessage": "Preferências salvas", - "User Preferences": "Preferências do Usuário" + "User preferences": "Preferências do Usuário" } diff --git a/platform/i18n/src/locales/test-LNG/AboutModal.json b/platform/i18n/src/locales/test-LNG/AboutModal.json index 55e0144c9..6608ef6c5 100644 --- a/platform/i18n/src/locales/test-LNG/AboutModal.json +++ b/platform/i18n/src/locales/test-LNG/AboutModal.json @@ -1,14 +1,18 @@ { + "About OHIF Viewer": "About OHIF Viewer", "Browser": "Browser", "Build Number": "Build Number", - "Latest Master Commits": "Latest Master Commits", + "Commit hash": "Commit hash", + "Data citation": "Data citation", + "Important links": "Important links", + "Last master commits": "Latest Master Commits", "More details": "More details", "Name": "Name", - "OHIF Viewer - About": "OHIF Viewer - About", "OS": "OS", "Report an issue": "Report an issue", "Repository URL": "Repository URL", "Value": "Value", - "Version Information": "Version Information", + "Version information": "Version Information", + "Version number": "Version number", "Visit the forum": "Visit the forum" } diff --git a/platform/i18n/src/locales/test-LNG/Buttons.json b/platform/i18n/src/locales/test-LNG/Buttons.json index 62e1cf81f..999309aa2 100644 --- a/platform/i18n/src/locales/test-LNG/Buttons.json +++ b/platform/i18n/src/locales/test-LNG/Buttons.json @@ -32,7 +32,7 @@ "ROI Window": "Test ROI Window", "Rectangle": "Test Rectangle", "Reset": "Test $t(Common:Reset)", - "Reset to Defaults": "Test $t(Common:Reset) to Defaults", + "Reset to defaults": "Test $t(Common:Reset) to Defaults", "Rotate Right": "Test Rotate Right", "Sagittal": "Test Sagittal", "Save": "Test Save", diff --git a/platform/i18n/src/locales/test-LNG/DatePicker.json b/platform/i18n/src/locales/test-LNG/DatePicker.json index 24187a1cf..3add53f9e 100644 --- a/platform/i18n/src/locales/test-LNG/DatePicker.json +++ b/platform/i18n/src/locales/test-LNG/DatePicker.json @@ -1,5 +1,9 @@ { "Clear dates": "Clear dates", + "Close": "$t(Common:Close)", "End Date": "End Date", - "Start Date": "Start Date" + "Last 7 days": "Last 7 days", + "Last 30 days": "Last 30 days", + "Start Date": "Start Date", + "Today": "Today" } diff --git a/platform/i18n/src/locales/test-LNG/StudyList.json b/platform/i18n/src/locales/test-LNG/StudyList.json index 5e06459fb..ea4b30075 100644 --- a/platform/i18n/src/locales/test-LNG/StudyList.json +++ b/platform/i18n/src/locales/test-LNG/StudyList.json @@ -12,7 +12,7 @@ "Description": "Test Description", "StudyDate": "Test Study Date", "Study date": "Test Study Date", - "Studies": "Test Studies", + "Number of studies": "Test Studies", "Series": "Test Series", "Instances": "Test Instances", "Study List": "Test Study List", diff --git a/platform/i18n/src/locales/test-LNG/UserPreferencesModal.json b/platform/i18n/src/locales/test-LNG/UserPreferencesModal.json index c5ae4fde8..e6c003fec 100644 --- a/platform/i18n/src/locales/test-LNG/UserPreferencesModal.json +++ b/platform/i18n/src/locales/test-LNG/UserPreferencesModal.json @@ -1,11 +1,11 @@ { "Cancel": "$t(Buttons:Cancel)", "No hotkeys found": "No hotkeys are configured for this application. Hotkeys can be configured in the application's app-config.js file.", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "ResetDefaultMessage": "Preferences successfully reset to default.
You must Save to perform this action.", "Save": "$t(Buttons:Save)", "SaveMessage": "Test Preferences saved", - "User Preferences": "Test User Preferences", + "User preferences": "Test User Preferences", "Function": "Test function", "Shortcut": "Test shortcut", "Language": "Test language", diff --git a/platform/i18n/src/locales/tr-TR/AboutModal.json b/platform/i18n/src/locales/tr-TR/AboutModal.json index 487e4082c..b60829bb7 100644 --- a/platform/i18n/src/locales/tr-TR/AboutModal.json +++ b/platform/i18n/src/locales/tr-TR/AboutModal.json @@ -1,14 +1,14 @@ { + "About OHIF Viewer": "OHIF Viewer - Hakkında", "Browser": "Tarayıcı", - "Build Number": "Derleme Numarası", - "Latest Master Commits": "Son Kaynak Kod Güncellemesi", + "Build number": "Derleme Numarası", + "Last master commits": "Son Kaynak Kod Güncellemesi", "More details": "Daha Fazla Detay", "Name": "İsim", - "OHIF Viewer - About": "OHIF Viewer - Hakkında", "OS": "İşletim Sistemi", "Report an issue": "Sorun Bildir", "Repository URL": "Kaynak Kod URL", "Value": "Değer", - "Version Information": "Sürüm Bilgisi", + "Version information": "Sürüm Bilgisi", "Visit the forum": "Forumu ziyaret et" } diff --git a/platform/i18n/src/locales/tr-TR/Buttons.json b/platform/i18n/src/locales/tr-TR/Buttons.json index 83c2655c1..f397797c0 100644 --- a/platform/i18n/src/locales/tr-TR/Buttons.json +++ b/platform/i18n/src/locales/tr-TR/Buttons.json @@ -32,7 +32,7 @@ "ROI Window": "ROI Penceresi", "Rectangle": "Diktörtgen", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "Varsayılana $t(Common:Reset)", + "Reset to defaults": "Varsayılana $t(Common:Reset)", "Rotate Right": "Sağa Döndür", "Sagittal": "Sagital", "Save": "Kaydet", diff --git a/platform/i18n/src/locales/tr-TR/StudyList.json b/platform/i18n/src/locales/tr-TR/StudyList.json index 4eaea20ca..956621411 100644 --- a/platform/i18n/src/locales/tr-TR/StudyList.json +++ b/platform/i18n/src/locales/tr-TR/StudyList.json @@ -5,6 +5,6 @@ "Modality": "Modalite", "PatientName": "Hasta Adı", "StudyDate": "Çalışma Zamanı", - "StudyDescription": "Açıklama", + "Description": "Açıklama", "StudyList": "Çalışma Listesi" } diff --git a/platform/i18n/src/locales/tr-TR/UserPreferencesModal.json b/platform/i18n/src/locales/tr-TR/UserPreferencesModal.json index 1a843a3a4..16cf46593 100644 --- a/platform/i18n/src/locales/tr-TR/UserPreferencesModal.json +++ b/platform/i18n/src/locales/tr-TR/UserPreferencesModal.json @@ -1,9 +1,9 @@ { "Cancel": "$t(Buttons:Cancel)", "No hotkeys found": "Bu uygulama için hiçbir kısayol tuşu yapılandırılmamış. Kısayol tuşları, uygulamanın app-config.js dosyasında yapılandırılabilir.", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "ResetDefaultMessage": "Tercihler başarıyla varsayılana sıfırlandı.
Bu eylemi gerçekleştirmek için Kaydetmelisiniz.", "Save": "$t(Buttons:Save)", "SaveMessage": "Tercihler kaydedildi", - "User Preferences": "Kullanıcı tercihleri" + "User preferences": "Kullanıcı tercihleri" } diff --git a/platform/i18n/src/locales/vi/Buttons.json b/platform/i18n/src/locales/vi/Buttons.json index ea378b41a..952ec814f 100644 --- a/platform/i18n/src/locales/vi/Buttons.json +++ b/platform/i18n/src/locales/vi/Buttons.json @@ -31,7 +31,7 @@ "ROI Window": "ROI Window", "Rectangle": "Đo chữ nhật", "Reset": "$t(Common:Reset)", - "Reset to Defaults": "$t(Common:Reset) đến mặc định", + "Reset to defaults": "$t(Common:Reset) đến mặc định", "Rotate Right": "Xoay phải", "Sagittal": "Mặt phẳng đứng dọc", "Save": "Lưu", diff --git a/platform/i18n/src/locales/vi/StudyList.json b/platform/i18n/src/locales/vi/StudyList.json index 50acf54b6..4f13a5e4f 100644 --- a/platform/i18n/src/locales/vi/StudyList.json +++ b/platform/i18n/src/locales/vi/StudyList.json @@ -5,6 +5,6 @@ "Modality": "Thiết bị", "PatientName": "Tên Bệnh nhân", "StudyDate": "Ngày chụp", - "StudyDescription": "Diễn giải", + "Description": "Diễn giải", "StudyList": "Danh sách" } diff --git a/platform/i18n/src/locales/vi/UserPreferencesModal.json b/platform/i18n/src/locales/vi/UserPreferencesModal.json index f5474c9e5..38ad6eda7 100644 --- a/platform/i18n/src/locales/vi/UserPreferencesModal.json +++ b/platform/i18n/src/locales/vi/UserPreferencesModal.json @@ -1,6 +1,6 @@ { "Cancel": "$t(Buttons:Cancel)", - "Reset to Defaults": "$t(Buttons:Reset to Defaults)", + "Reset to defaults": "$t(Buttons:Reset to defaults)", "Save": "$t(Buttons:Save)", - "User Preferences": "Thiết lập theo người dùng" + "User preferences": "Thiết lập theo người dùng" } diff --git a/platform/i18n/src/locales/zh/Buttons.json b/platform/i18n/src/locales/zh/Buttons.json index ea57d0b3b..fe99f0123 100644 --- a/platform/i18n/src/locales/zh/Buttons.json +++ b/platform/i18n/src/locales/zh/Buttons.json @@ -49,7 +49,7 @@ "Probe": "探针", "Rectangle": "矩形", "Reference Lines": "参考线", - "Reset to Defaults": "返回默认", + "Reset to defaults": "返回默认", "Reset View": "复原", "Reset": "复原", "ROI Window": "选择对比度", diff --git a/platform/i18n/src/locales/zh/StudyList.json b/platform/i18n/src/locales/zh/StudyList.json index d7563ff55..478d3f802 100644 --- a/platform/i18n/src/locales/zh/StudyList.json +++ b/platform/i18n/src/locales/zh/StudyList.json @@ -3,7 +3,6 @@ "Modality": "成像设备", "PatientName": "患者姓名", "StudyDate": "检查日期", - "StudyDescription": "描述", "StudyList": "检查列表", "Patient Name": "患者姓名", "MRN": "病例号", @@ -11,7 +10,7 @@ "Description": "描述", "Study list": "检查列表", "Clear filters": "清空条件", - "Studies": "", + "Number of studies": "", "Instances": "图像数", "Accession": "检查号", "Results per page": "每页条数", diff --git a/platform/i18n/src/locales/zh/UserPreferencesModal.json b/platform/i18n/src/locales/zh/UserPreferencesModal.json index e71386abc..41ddeddec 100644 --- a/platform/i18n/src/locales/zh/UserPreferencesModal.json +++ b/platform/i18n/src/locales/zh/UserPreferencesModal.json @@ -1,6 +1,6 @@ { "Cancel": "取消", - "Reset to Defaults": "返回默认", + "Reset to defaults": "返回默认", "Save": "保存", - "User Preferences": "用户偏好" + "User preferences": "用户偏好" } diff --git a/platform/ui/src/components/AboutModal/AboutModal.tsx b/platform/ui/src/components/AboutModal/AboutModal.tsx index 477b48a9e..1c027c87f 100644 --- a/platform/ui/src/components/AboutModal/AboutModal.tsx +++ b/platform/ui/src/components/AboutModal/AboutModal.tsx @@ -1,6 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import detect from 'browser-detect'; +import { useTranslation } from 'react-i18next'; import Typography from '../Typography'; import Icon from '../Icon'; @@ -59,6 +60,7 @@ const Row = ({ title, value, link }) => { const AboutModal = ({ buildNumber, versionNumber, commitHash }) => { const { os, version, name } = detect(); const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`; + const { t } = useTranslation('AboutModal'); const renderRowTitle = title => (
@@ -73,20 +75,20 @@ const AboutModal = ({ buildNumber, versionNumber, commitHash }) => { ); return (
- {renderRowTitle('Important Links')} + {renderRowTitle(t('Important links'))}
- Visit the forum + {t('Visit the forum')} - Report an issue + {t('Report an issue')} @@ -94,50 +96,50 @@ const AboutModal = ({ buildNumber, versionNumber, commitHash }) => { href="https://ohif.org/" showIcon={true} > - More details + {t('More details')}
- {renderRowTitle('Version Information')} + {renderRowTitle(t('Version information'))}
{/* */} {buildNumber && ( )} {commitHash && ( )}
diff --git a/platform/ui/src/components/DateRange/DateRange.tsx b/platform/ui/src/components/DateRange/DateRange.tsx index 93d81bef1..b93016731 100644 --- a/platform/ui/src/components/DateRange/DateRange.tsx +++ b/platform/ui/src/components/DateRange/DateRange.tsx @@ -1,6 +1,7 @@ import React, { useState, useCallback } from 'react'; import PropTypes from 'prop-types'; import moment from 'moment'; +import { useTranslation } from 'react-i18next'; /** REACT DATES */ import { DateRangePicker, isInclusivelyBeforeDay } from 'react-dates'; @@ -8,27 +9,6 @@ import 'react-dates/initialize'; import 'react-dates/lib/css/_datepicker.css'; import './DateRange.css'; -const today = moment(); -const lastWeek = moment().subtract(7, 'day'); -const lastMonth = moment().subtract(1, 'month'); -const studyDatePresets = [ - { - text: 'Today', - start: today, - end: today, - }, - { - text: 'Last 7 days', - start: lastWeek, - end: today, - }, - { - text: 'Last 30 days', - start: lastMonth, - end: today, - }, -]; - const renderYearsOptions = () => { const currentYear = moment().year(); const options = []; @@ -52,6 +32,27 @@ const DateRange = props => { const { id, onChange, startDate, endDate } = props; const [focusedInput, setFocusedInput] = useState(null); const renderYearsOptionsCallback = useCallback(renderYearsOptions, []); + const { t } = useTranslation('DatePicker'); + const today = moment(); + const lastWeek = moment().subtract(7, 'day'); + const lastMonth = moment().subtract(1, 'month'); + const studyDatePresets = [ + { + text: t('Today'), + start: today, + end: today, + }, + { + text: t('Last 7 days'), + start: lastWeek, + end: today, + }, + { + text: t('Last 30 days'), + start: lastMonth, + end: today, + }, + ]; const renderDatePresets = () => { return ( @@ -149,11 +150,11 @@ const DateRange = props => { /** OPTIONAL */ renderCalendarInfo={renderDatePresets} renderMonthElement={renderMonthElement} - startDatePlaceholderText={'Start Date'} - endDatePlaceholderText={'End Date'} + startDatePlaceholderText={t('Start Date')} + endDatePlaceholderText={t('End Date')} phrases={{ - closeDatePicker: 'Close', - clearDates: 'Clear dates', + closeDatePicker: t('Close'), + clearDates: t('Clear dates'), }} isOutsideRange={day => !isInclusivelyBeforeDay(day, moment())} hideKeyboardShortcutsPanel={true} diff --git a/platform/ui/src/components/HotkeysPreferences/HotkeysPreferences.tsx b/platform/ui/src/components/HotkeysPreferences/HotkeysPreferences.tsx index 52cd2da07..2b9b1eb02 100644 --- a/platform/ui/src/components/HotkeysPreferences/HotkeysPreferences.tsx +++ b/platform/ui/src/components/HotkeysPreferences/HotkeysPreferences.tsx @@ -30,7 +30,7 @@ const HotkeysPreferences = ({ const splitedHotkeys = splitHotkeyDefinitionsAndCreateTuples(visibleHotkeys); if (!Object.keys(hotkeyDefinitions).length) { - return 'No hotkey definitions'; + return t('No hotkeys found'); } const onHotkeyChangeHandler = (id, definition) => { diff --git a/platform/ui/src/components/InputLabelWrapper/InputLabelWrapper.tsx b/platform/ui/src/components/InputLabelWrapper/InputLabelWrapper.tsx index 73172da58..904b06904 100644 --- a/platform/ui/src/components/InputLabelWrapper/InputLabelWrapper.tsx +++ b/platform/ui/src/components/InputLabelWrapper/InputLabelWrapper.tsx @@ -1,7 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; -import { useTranslation } from 'react-i18next'; import Icon from '../Icon'; @@ -21,8 +20,6 @@ const InputLabelWrapper = ({ className, children, }) => { - const { t } = useTranslation('StudyList'); - const onClickHandler = e => { if (!isSortable) { return; @@ -40,7 +37,7 @@ const InputLabelWrapper = ({ onKeyDown={onClickHandler} tabIndex="0" > - {t(label)} + {label} {isSortable && ( { - const { t } = useTranslation('StudyList'); - return (
{children}
@@ -19,7 +16,7 @@ const StudyListExpandedRow = ({ seriesTableColumns, seriesTableDataSource, child {Object.keys(seriesTableColumns).map(columnKey => { - return {t(seriesTableColumns[columnKey])}; + return {seriesTableColumns[columnKey]}; })} diff --git a/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx b/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx index 8abe1d37c..8db3d8393 100644 --- a/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx +++ b/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx @@ -78,7 +78,7 @@ const StudyListFilter = ({ variant="h6" className="text-primary-light" > - {t('Studies')} + {t('Number of studies')}
diff --git a/platform/ui/src/components/StudyListPagination/StudyListPagination.tsx b/platform/ui/src/components/StudyListPagination/StudyListPagination.tsx index de9067c23..969af6981 100644 --- a/platform/ui/src/components/StudyListPagination/StudyListPagination.tsx +++ b/platform/ui/src/components/StudyListPagination/StudyListPagination.tsx @@ -43,7 +43,7 @@ const StudyListPagination = ({ onChangePage, currentPage, perPage, onChangePerPa hideSelectedOptions={true} onChange={onSelectedRange} /> - {t('ResultsPerPage')} + {t('Results per page')}
diff --git a/platform/ui/src/components/UserPreferences/UserPreferences.tsx b/platform/ui/src/components/UserPreferences/UserPreferences.tsx index e3934dbba..923838f4f 100644 --- a/platform/ui/src/components/UserPreferences/UserPreferences.tsx +++ b/platform/ui/src/components/UserPreferences/UserPreferences.tsx @@ -112,7 +112,7 @@ const UserPreferences = ({ onClick={onResetHandler} disabled={disabled} > - {t('Reset to Defaults')} + {t('Reset to defaults')}
-### Build for non-root path - -If you would like to access the viewer from a non-root path (e.g., `/my-awesome-viewer` instead of `/`), -You can achieve so by using the `PUBLIC_URL` environment variable AND the `routerBasename` configuration option. - -1. use a config (e.g. config/myConfig.js) file that is using the `routerBasename` of your choice `/my-awesome-viewer` (note there is only one / - it is not /my-awesome-viewer/). -2. build the viewer with `PUBLIC_URL=/my-awesome-viewer/ APP_CONFIG=config/myConfig.js yarn build` (note there are two / - it is not /my-awesome-viewer). - - -:::tip -The PUBLIC_URL tells the application where to find the static assets and the routerBasename will tell the application how to handle the routes -::: - -:::tip -Testing, you can use `npx http-server` to serve the files in the generated `dist` folder and access the viewer from `http://localhost:8080/my-awesome-viewer`. To achieve -so, you should first rename the `dist` folder to `my-awesome-viewer` and then change the working directory -to the `platform/app` folder and run `npx http-server ./`. Then on the browser, you can access the viewer from `http://localhost:8080/my-awesome-viewer` -::: - ### Automating Builds and Deployments diff --git a/platform/docs/docs/deployment/cors.md b/platform/docs/docs/deployment/cors.md index bd88d0d1d..135c9f961 100644 --- a/platform/docs/docs/deployment/cors.md +++ b/platform/docs/docs/deployment/cors.md @@ -1,5 +1,5 @@ --- -sidebar_position: 6 +sidebar_position: 7 --- # Cross-Origin Information for OHIF diff --git a/platform/docs/docs/deployment/custom-url-access.md b/platform/docs/docs/deployment/custom-url-access.md new file mode 100644 index 000000000..16844ca31 --- /dev/null +++ b/platform/docs/docs/deployment/custom-url-access.md @@ -0,0 +1,74 @@ +--- +sidebar_position: 4 +title: Custom URL Access/Build +--- + + +## Build for non-root path + +Sometimes it is desired to access the viewer from a non-root path (e.g., `/my-awesome-viewer` instead of `/`). +You can achieve so by using the `PUBLIC_URL` environment variable AND the `routerBasename` configuration option. + +1. use a config (e.g. `config/myConfig.js`) file that is using the `routerBasename` of your choice `/my-awesome-viewer` (note there is only one / - it is not /my-awesome-viewer/). +2. build the viewer with `PUBLIC_URL=/my-awesome-viewer/` (note there are two / - it is not /my-awesome-viewer). + + +:::tip +The PUBLIC_URL tells the application where to find the static assets and the routerBasename will tell the application how to handle the routes +::: + + +### Testing in Development +For testing the build locally, you can use the following command: + +```bash +# we use default config file, so we assume you have already set the routerBasename to /my-awesome-viewer in the default config as an example +PUBLIC_URL=/my-awesome-viewer/ APP_CONFIG=config/default.js yarn dev +``` + + +### Testing in Build (production) +You need to build the viewer with the following command: + +```bash +PUBLIC_URL=/my-awesome-viewer/ APP_CONFIG=config/default.js yarn build +``` + +We can use the `npx serve` to serve the build folder. There are two things you need to consider however, +1. You need to change the public/serve.json file to reflect the new routerBasename in the destination (see the example below) + + +```json +// final serve.json +{ + "rewrites": [{ "source": "*", "destination": "my-awesome-viewer/index.html" }], + "headers": [ + { + "source": "**/*", + "headers": [ + { "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" }, + { "key": "Cross-Origin-Opener-Policy", "value": "same-origin" } + ] + } + ] +} +``` + +```bash +cd platform/app; + +# rename the dist folder to my-awesome-viewer +mv dist my-awesome-viewer + +# serve the folder with custom json, note that we are using ../public/serve.json and NOT public/serve.json +npx serve -c ./public/serve.json +``` + + +:::note +When you want to authenticate against a sub path, there are a few things you should keep in mind: + +1. Set the `routerBasename` to the sub path and also update the `PUBLIC_URL` to match the sub path. +2. Don't forget to modify the `serve.json` file as mentioned earlier. +3. Ensure that the sub path is included in the list of allowed callback URLs. For example, in the Google Cloud dashboard, you can set it in the `Authorized redirect URIs` field under the `Credentials` section of the `APIs & Services` menu. +::: diff --git a/platform/docs/docs/deployment/docker.md b/platform/docs/docs/deployment/docker.md index addfeaa90..d79c3eb3d 100644 --- a/platform/docs/docs/deployment/docker.md +++ b/platform/docs/docs/deployment/docker.md @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 --- # Docker diff --git a/platform/docs/docs/deployment/google-cloud-healthcare.md b/platform/docs/docs/deployment/google-cloud-healthcare.md index 54df8bb02..73b378554 100644 --- a/platform/docs/docs/deployment/google-cloud-healthcare.md +++ b/platform/docs/docs/deployment/google-cloud-healthcare.md @@ -1,5 +1,5 @@ --- -sidebar_position: 9 +sidebar_position: 10 --- # Google Cloud Healthcare diff --git a/platform/docs/docs/deployment/iframe.md b/platform/docs/docs/deployment/iframe.md index 50ae28cec..4642f7281 100644 --- a/platform/docs/docs/deployment/iframe.md +++ b/platform/docs/docs/deployment/iframe.md @@ -1,5 +1,5 @@ --- -sidebar_position: 7 +sidebar_position: 8 sidebar_label: iframe --- @@ -47,7 +47,7 @@ Then run the ```bash npx http-server unzipped-folder -# you can use npx serve ./dist -l 8080 -s as an alternative to http-server +# you can use npx serve ./dist -c ../public/serve.json as an alternative to http-server ``` You should be able to see diff --git a/platform/docs/docs/deployment/nginx--image-archive.md b/platform/docs/docs/deployment/nginx--image-archive.md index 5d96443e5..5f8dc5166 100644 --- a/platform/docs/docs/deployment/nginx--image-archive.md +++ b/platform/docs/docs/deployment/nginx--image-archive.md @@ -1,5 +1,5 @@ --- -sidebar_position: 8 +sidebar_position: 9 --- # Nginx + Image Archive diff --git a/platform/docs/docs/deployment/static-assets.md b/platform/docs/docs/deployment/static-assets.md index bd69312d9..4186a1b3c 100644 --- a/platform/docs/docs/deployment/static-assets.md +++ b/platform/docs/docs/deployment/static-assets.md @@ -155,18 +155,18 @@ accurate documentation, we will link to each provider's own recommended steps: ### Azure - - Deploying viewer to Azure blob storage as a static website: + - Deploying viewer to Azure blob storage as a static website: Refer to [Host a static website](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website) - High level steps : - 1. Go to Azure portal and create a storage account. + High level steps : + 1. Go to Azure portal and create a storage account. 2. Under Overview->Capabilities, select Static website. - 3. Enable Static website. Set the index document as ‘index.html’. - 4. Copy the primary endpoint. This will serve as the root URL for the viewer. + 3. Enable Static website. Set the index document as ‘index.html’. + 4. Copy the primary endpoint. This will serve as the root URL for the viewer. 5. Save. A new container named ‘$web’ will be created. 6. Copy OHIF viewer’s build output from ‘platform\app\dist’ folder to the ‘$web’ container. 7. Open browser and navigate to the viewer root URL copied in the step above. It should display OHIF viewer with data from default data source. - ![image](https://github.com/OHIF/Viewers/assets/132684122/236a574b-0f05-4d90-a721-df8720d05949) + ![image](https://github.com/OHIF/Viewers/assets/132684122/236a574b-0f05-4d90-a721-df8720d05949) Special consideration while accessing DicomJson data source : • Due to the way routing is handled in react, it may error out in production when trying to display data through dicomJson data source. E.g. https://[Static Website endpoint]/viewer/dicomjson?url= https://ohif-dicom-json-example.s3.amazonaws.com/LIDC-IDRI-0001.json • Resolution to this is to set error page to ‘index.html’ at the website level. This will ensure that all errors are redirected to root and requests are further served from root path. diff --git a/platform/docs/docs/deployment/user-account-control.md b/platform/docs/docs/deployment/user-account-control.md index 78c9876fd..d67708df1 100644 --- a/platform/docs/docs/deployment/user-account-control.md +++ b/platform/docs/docs/deployment/user-account-control.md @@ -1,5 +1,5 @@ --- -sidebar_position: 10 +sidebar_position: 11 --- # User Account Control diff --git a/yarn.lock b/yarn.lock index 2113b22b5..8c5df712b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1550,10 +1550,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.32.2": - version "1.32.2" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.32.2.tgz#f67ce50b6eab3a033c3847beeea3a54e4041eb30" - integrity sha512-ToxwxPp3A2bpR9TAlHasK4h7lQYiGENHIkwJ+Z0zdzrYwPGdFNaEHUk6XsA3vGhl6wWF3DhF7IU18nX20XL7kw== +"@cornerstonejs/adapters@^1.36.1": + version "1.36.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.36.1.tgz#ce6e1c7213adb629926d360f3fff327b22729846" + integrity sha512-dfiByBlH0Y97rSoqtGehik+e/Ydm+DNmVIfOpsBfbI6XuMoqBWXtcjI04Lwp5i0i4U64bKfQ8IfHA8UQ8jbrDQ== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1607,10 +1607,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.32.2": - version "1.32.2" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.32.2.tgz#02010a5a00c592dfbb7d49880fadd0e0b104af9f" - integrity sha512-z1dtIFjrcZ92aJqev5JV0mbRxOqPJnfRlyLn3TzcsPAzpwo8OPa4+iLR3nrXcXkORwPA1MZaA94JxiRAxvbfLA== +"@cornerstonejs/core@^1.36.1": + version "1.36.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.36.1.tgz#2fba0945cd5eff303ad7569a16cf7904779f5470" + integrity sha512-4vbXWz/4tlsYqnyI0unyY3yLv3gyn4+ARdPkaNFM03/jx1/8i/yp4r8VlXMds57/2XSzpav3ue9eFwCFuI4rVg== dependencies: "@kitware/vtk.js" "27.3.1" comlink "^4.4.1" @@ -1618,34 +1618,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.32.2": - version "1.32.2" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.32.2.tgz#0eceac4977562d90899f5454c477a677221eded9" - integrity sha512-sToKM5Ei+zllZl8UL1/3kWRyGZon99ds1lZs2Z4BN/0fr7/TIZCvajslY++JsYE0izUMhgAqaXFZZUNaLWFoqw== +"@cornerstonejs/dicom-image-loader@^1.36.1": + version "1.36.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.36.1.tgz#5059a4a45b99052457a222b12cd9207f3b298e13" + integrity sha512-lqkZLECZZKTe+88afX9z1KkejyHfcnpQmTWy5WFUsXW7e0dumrVbEKAxG/UAHYj0iY4RyY/Eo/k+LEZXYjB+YA== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.32.2" + "@cornerstonejs/core" "^1.36.1" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.32.2": - version "1.32.2" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.32.2.tgz#9d29412f6af470fa4ce46d0b43735eed2aebc374" - integrity sha512-VisVikQrWAfVqg4rozDLv/3T1DHOsiqSfQUVUYIqmL8WP7hC88E9R/aJyrL2uj4J/zAIvxlbWJYN1RdkyaxFyQ== +"@cornerstonejs/streaming-image-volume-loader@^1.36.1": + version "1.36.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.36.1.tgz#3cf270b624a40e20a3163cdef338b507da83a29f" + integrity sha512-T9q36aPSUobTD0tJsgwayDKsgxlxVzav0cVOMkHxO10kOGC82DniZBm2WSg5mbn2caFo0YezPUaXfXuGqsqvMg== dependencies: - "@cornerstonejs/core" "^1.32.2" + "@cornerstonejs/core" "^1.36.1" comlink "^4.4.1" -"@cornerstonejs/tools@^1.32.2": - version "1.32.2" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.32.2.tgz#45961a1e6788ee7f660af3f1a013c0410b6ff2f6" - integrity sha512-kGL7m0Vk8OovqArTF8lyj/UpO6VBg+xqNnxnkyKXvi1sbLh7/4woRJS4W8sihOt6XBkMxHTMyHEiHEPHASuKbw== +"@cornerstonejs/tools@^1.36.1": + version "1.36.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.36.1.tgz#bb8e48d2363747b844a268205cb39f1bc39c7ce1" + integrity sha512-4Qu9hT+fx0tzPHte01wRsctYRSw8VznAu/xMOCVeniF9kIAxKzXLBvcxhKQS+gFr6HRD5nRxtflKKrKlna8nMw== dependencies: - "@cornerstonejs/core" "^1.32.2" + "@cornerstonejs/core" "^1.36.1" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -14227,7 +14227,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -medium-zoom@^1.0.8: +medium-zoom@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== From 806c2f4b3606b7ba4f44f9005d9c64a18cb6918d Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 6 Dec 2023 13:37:29 +0000 Subject: [PATCH 084/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index fe13f3d91..b2ca49011 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -f1a67647aed635437b188cea7cf5d5a8fb974bbe \ No newline at end of file +6651008fbb35dabd5991c7f61128e6ef324012df \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 0943b37b4..05052a359 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/i18n": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/i18n": "3.8.0-beta.27", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 74ef75600..2584245e6 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/i18n": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/i18n": "3.8.0-beta.27", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d069c32df..d22737e07 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-measurement-tracking": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-measurement-tracking": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 119253ebe..3b90435f8 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 351df1874..0b36e95c9 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/i18n": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/i18n": "3.8.0-beta.27", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 4dd459011..50d5c8f71 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/i18n": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/i18n": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 5d2da2da7..c6a891aa6 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 0b43927ac..ce24bec6e 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 56d842dbb..d6b5dd1eb 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c195b837d..566e7aa93 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2d2a7712e..ac9c26410 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 0e8bd668e..bb26dc3aa 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/extension-dicom-pdf": "3.8.0-beta.26", - "@ohif/extension-dicom-video": "3.8.0-beta.26" + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/extension-dicom-pdf": "3.8.0-beta.27", + "@ohif/extension-dicom-video": "3.8.0-beta.27" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 746073b0b..9f5e40dca 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/extension-dicom-pdf": "3.8.0-beta.26", - "@ohif/extension-dicom-video": "3.8.0-beta.26", - "@ohif/extension-measurement-tracking": "3.8.0-beta.26", - "@ohif/extension-test": "3.8.0-beta.26" + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/extension-dicom-pdf": "3.8.0-beta.27", + "@ohif/extension-dicom-video": "3.8.0-beta.27", + "@ohif/extension-measurement-tracking": "3.8.0-beta.27", + "@ohif/extension-test": "3.8.0-beta.27" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index a37cf4a38..baa5ddc7c 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/extension-dicom-pdf": "3.8.0-beta.26", - "@ohif/extension-dicom-video": "3.8.0-beta.26", - "@ohif/extension-measurement-tracking": "3.8.0-beta.26" + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/extension-dicom-pdf": "3.8.0-beta.27", + "@ohif/extension-dicom-video": "3.8.0-beta.27", + "@ohif/extension-measurement-tracking": "3.8.0-beta.27" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 06cc280b1..566485494 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.26" + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.27" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 520cf7151..36b61d555 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26" + "@ohif/core": "3.8.0-beta.27" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 7cd7a8e41..da3839189 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/extension-dicom-pdf": "3.8.0-beta.26", - "@ohif/extension-dicom-video": "3.8.0-beta.26", - "@ohif/extension-measurement-tracking": "3.8.0-beta.26" + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/extension-dicom-pdf": "3.8.0-beta.27", + "@ohif/extension-dicom-video": "3.8.0-beta.27", + "@ohif/extension-measurement-tracking": "3.8.0-beta.27" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index e8036764d..8554da144 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/ui": "3.8.0-beta.27", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 30547f516..89c197798 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.26", - "commit": "f1a67647aed635437b188cea7cf5d5a8fb974bbe" + "version": "3.8.0-beta.27", + "commit": "6651008fbb35dabd5991c7f61128e6ef324012df" } \ No newline at end of file diff --git a/version.txt b/version.txt index c0b1270b7..451f7609d 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.26 \ No newline at end of file +3.8.0-beta.27 \ No newline at end of file From 78d4bea04df03236c04e580902bdde06d9e013f2 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 6 Dec 2023 13:37:37 +0000 Subject: [PATCH 085/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 257 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb9408b83..f393ce66e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index d9ed537dd..b94e2993c 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 05052a359..8b4a48689 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 9d0b0a8d6..f2dd59134 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 2584245e6..5ac0886c0 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index c8a8117fc..0d8b22d22 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d22737e07..0ee67cc61 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 5922f19d8..37ca88c0b 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 3b90435f8..60cacb1e6 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index fa9da6099..251d6cfce 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) diff --git a/extensions/default/package.json b/extensions/default/package.json index 0b36e95c9..48fbe7ef7 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index ebf3d3b58..60a4e2295 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 50d5c8f71..efc645551 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index db9748bcd..03a2dcaa6 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index c6a891aa6..c5ca80efa 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e182bcbb1..544f13e56 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ce24bec6e..f320db1af 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index cd6aee1d6..16db14c6b 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index d6b5dd1eb..125192335 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/ui": "3.8.0-beta.27", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index c093f2ddd..a1b428046 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 566e7aa93..91bb0510c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 68b423cd7..05f53a682 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index ac9c26410..795dfaba1 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 7e3552e1f..6ed676e84 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index f9b5048e1..4fff2caf0 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index bb26dc3aa..100fb0eb7 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index a16dbf454..627841c6a 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 9f5e40dca..bf544f6c2 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 17368b919..d93b9e58e 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index baa5ddc7c..141dadabd 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 62aff1c9a..6b106da75 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 566485494..fecab1130 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index cc0ceaa64..23839ddf7 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 36b61d555..a222d4e5a 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 27ddf4e83..d92b23bfa 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index da3839189..1653f426f 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 08de7fd47..4269547f2 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 22082a94f..cd3a29e5d 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.26", - "@ohif/extension-cornerstone": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.26", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.26", - "@ohif/extension-default": "3.8.0-beta.26", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.26", - "@ohif/extension-dicom-pdf": "3.8.0-beta.26", - "@ohif/extension-dicom-video": "3.8.0-beta.26", - "@ohif/extension-test": "3.8.0-beta.26", - "@ohif/i18n": "3.8.0-beta.26", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.26", - "@ohif/mode-longitudinal": "3.8.0-beta.26", - "@ohif/mode-microscopy": "3.8.0-beta.26", - "@ohif/mode-test": "3.8.0-beta.26", - "@ohif/ui": "3.8.0-beta.26", + "@ohif/core": "3.8.0-beta.27", + "@ohif/extension-cornerstone": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.27", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", + "@ohif/extension-default": "3.8.0-beta.27", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.27", + "@ohif/extension-dicom-pdf": "3.8.0-beta.27", + "@ohif/extension-dicom-video": "3.8.0-beta.27", + "@ohif/extension-test": "3.8.0-beta.27", + "@ohif/i18n": "3.8.0-beta.27", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.27", + "@ohif/mode-longitudinal": "3.8.0-beta.27", + "@ohif/mode-microscopy": "3.8.0-beta.27", + "@ohif/mode-test": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.27", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 14d4be39b..32e6332d1 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 6f87e8778..6bfdb6557 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 1be43bd27..15632231f 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 8554da144..25c050d8b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index d79777169..70791c6e2 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + + +### Bug Fixes + +* **auth:** fix the issue with oauth at a non root path ([#3840](https://github.com/OHIF/Viewers/issues/3840)) ([6651008](https://github.com/OHIF/Viewers/commit/6651008fbb35dabd5991c7f61128e6ef324012df)) + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 420872bcc..da79f4c7d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 3f83ff763..ee355d132 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 96a45dbc5..17cd27481 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 6dab3f148..b8394f858 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.26](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.25...v3.8.0-beta.26) (2023-11-28) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index e7bb4fa79..49cfc59fe 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.26", + "version": "3.8.0-beta.27", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 59576d695d4d26601d35c43f73d602f0b12d72bf Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Fri, 8 Dec 2023 09:25:57 -0500 Subject: [PATCH 086/289] feat(HP): Added new 3D hanging protocols to be used in the new layout selector (#3844) --- .../src/getHangingProtocolModule.ts | 319 ++---------------- extensions/cornerstone/src/hps/fourUp.ts | 130 +++++++ extensions/cornerstone/src/hps/main3D.ts | 156 +++++++++ extensions/cornerstone/src/hps/mpr.ts | 153 +++++++++ .../src/hps/mprAnd3DVolumeViewport.ts | 138 ++++++++ extensions/cornerstone/src/hps/only3D.ts | 61 ++++ extensions/cornerstone/src/hps/primary3D.ts | 156 +++++++++ .../cornerstone/src/hps/primaryAxial.ts | 131 +++++++ 8 files changed, 952 insertions(+), 292 deletions(-) create mode 100644 extensions/cornerstone/src/hps/fourUp.ts create mode 100644 extensions/cornerstone/src/hps/main3D.ts create mode 100644 extensions/cornerstone/src/hps/mpr.ts create mode 100644 extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts create mode 100644 extensions/cornerstone/src/hps/only3D.ts create mode 100644 extensions/cornerstone/src/hps/primary3D.ts create mode 100644 extensions/cornerstone/src/hps/primaryAxial.ts diff --git a/extensions/cornerstone/src/getHangingProtocolModule.ts b/extensions/cornerstone/src/getHangingProtocolModule.ts index 81c2132de..4f2b3ecec 100644 --- a/extensions/cornerstone/src/getHangingProtocolModule.ts +++ b/extensions/cornerstone/src/getHangingProtocolModule.ts @@ -1,295 +1,10 @@ -import { Types } from '@ohif/core'; - -const mpr: Types.HangingProtocol.Protocol = { - id: 'mpr', - name: 'Multi-Planar Reconstruction', - locked: true, - createdDate: '2021-02-23', - modifiedDate: '2023-08-15', - availableTo: {}, - editableBy: {}, - // Unknown number of priors referenced - so just match any study - numberOfPriorsReferenced: 0, - protocolMatchingRules: [], - imageLoadStrategy: 'nth', - callbacks: { - // Switches out of MPR mode when the layout change button is used - onLayoutChange: [ - { - commandName: 'toggleHangingProtocol', - commandOptions: { protocolId: 'mpr' }, - context: 'DEFAULT', - }, - ], - // Turns off crosshairs when switching out of MPR mode - onProtocolExit: [ - { - commandName: 'cleanUpCrosshairs', - }, - ], - }, - displaySetSelectors: { - activeDisplaySet: { - seriesMatchingRules: [ - { - weight: 1, - attribute: 'isReconstructable', - constraint: { - equals: { - value: true, - }, - }, - required: true, - }, - ], - }, - }, - stages: [ - { - name: 'MPR 1x3', - viewportStructure: { - layoutType: 'grid', - properties: { - rows: 1, - columns: 3, - layoutOptions: [ - { - x: 0, - y: 0, - width: 1 / 3, - height: 1, - }, - { - x: 1 / 3, - y: 0, - width: 1 / 3, - height: 1, - }, - { - x: 2 / 3, - y: 0, - width: 1 / 3, - height: 1, - }, - ], - }, - }, - viewports: [ - { - viewportOptions: { - viewportId: 'mpr-axial', - toolGroupId: 'mpr', - viewportType: 'volume', - orientation: 'axial', - initialImageOptions: { - preset: 'middle', - }, - syncGroups: [ - { - type: 'voi', - id: 'mpr', - source: true, - target: true, - }, - ], - }, - displaySets: [ - { - id: 'activeDisplaySet', - }, - ], - }, - { - viewportOptions: { - viewportId: 'mpr-sagittal', - toolGroupId: 'mpr', - viewportType: 'volume', - orientation: 'sagittal', - initialImageOptions: { - preset: 'middle', - }, - syncGroups: [ - { - type: 'voi', - id: 'mpr', - source: true, - target: true, - }, - ], - }, - displaySets: [ - { - id: 'activeDisplaySet', - }, - ], - }, - { - viewportOptions: { - viewportId: 'mpr-coronal', - toolGroupId: 'mpr', - viewportType: 'volume', - orientation: 'coronal', - initialImageOptions: { - preset: 'middle', - }, - syncGroups: [ - { - type: 'voi', - id: 'mpr', - source: true, - target: true, - }, - ], - }, - displaySets: [ - { - id: 'activeDisplaySet', - }, - ], - }, - ], - }, - ], -}; - -const mprAnd3DVolumeViewport = { - id: 'mprAnd3DVolumeViewport', - locked: true, - name: 'mpr', - createdDate: '2023-03-15T10:29:44.894Z', - modifiedDate: '2023-03-15T10:29:44.894Z', - availableTo: {}, - editableBy: {}, - protocolMatchingRules: [], - imageLoadStrategy: 'interleaveCenter', - displaySetSelectors: { - mprDisplaySet: { - seriesMatchingRules: [ - { - weight: 1, - attribute: 'isReconstructable', - constraint: { - equals: { - value: true, - }, - }, - required: true, - }, - { - attribute: 'Modality', - constraint: { - equals: { - value: 'CT', - }, - }, - required: true, - }, - ], - }, - }, - stages: [ - { - id: 'mpr3Stage', - name: 'mpr', - viewportStructure: { - layoutType: 'grid', - properties: { - rows: 2, - columns: 2, - }, - }, - viewports: [ - { - viewportOptions: { - toolGroupId: 'mpr', - viewportType: 'volume', - orientation: 'axial', - initialImageOptions: { - preset: 'middle', - }, - syncGroups: [ - { - type: 'voi', - id: 'mpr', - source: true, - target: true, - }, - ], - }, - displaySets: [ - { - id: 'mprDisplaySet', - }, - ], - }, - { - viewportOptions: { - toolGroupId: 'volume3d', - viewportType: 'volume3d', - orientation: 'coronal', - customViewportProps: { - hideOverlays: true, - }, - }, - displaySets: [ - { - id: 'mprDisplaySet', - options: { - displayPreset: 'CT-Bone', - }, - }, - ], - }, - { - viewportOptions: { - toolGroupId: 'mpr', - viewportType: 'volume', - orientation: 'coronal', - initialImageOptions: { - preset: 'middle', - }, - syncGroups: [ - { - type: 'voi', - id: 'mpr', - source: true, - target: true, - }, - ], - }, - displaySets: [ - { - id: 'mprDisplaySet', - }, - ], - }, - { - viewportOptions: { - toolGroupId: 'mpr', - viewportType: 'volume', - orientation: 'sagittal', - initialImageOptions: { - preset: 'middle', - }, - syncGroups: [ - { - type: 'voi', - id: 'mpr', - source: true, - target: true, - }, - ], - }, - displaySets: [ - { - id: 'mprDisplaySet', - }, - ], - }, - ], - }, - ], -}; +import { fourUp } from './hps/fourUp'; +import { main3D } from './hps/main3D'; +import { mpr } from './hps/mpr'; +import { mprAnd3DVolumeViewport } from './hps/mprAnd3DVolumeViewport'; +import { only3D } from './hps/only3D'; +import { primary3D } from './hps/primary3D'; +import { primaryAxial } from './hps/primaryAxial'; function getHangingProtocolModule() { return [ @@ -301,6 +16,26 @@ function getHangingProtocolModule() { name: mprAnd3DVolumeViewport.id, protocol: mprAnd3DVolumeViewport, }, + { + name: fourUp.id, + protocol: fourUp, + }, + { + name: main3D.id, + protocol: main3D, + }, + { + name: primaryAxial.id, + protocol: primaryAxial, + }, + { + name: only3D.id, + protocol: only3D, + }, + { + name: primary3D.id, + protocol: primary3D, + }, ]; } diff --git a/extensions/cornerstone/src/hps/fourUp.ts b/extensions/cornerstone/src/hps/fourUp.ts new file mode 100644 index 000000000..776d7a298 --- /dev/null +++ b/extensions/cornerstone/src/hps/fourUp.ts @@ -0,0 +1,130 @@ +export const fourUp = { + id: 'fourUp', + locked: true, + name: 'fourUp', + createdDate: '2023-03-15T10:29:44.894Z', + modifiedDate: '2023-03-15T10:29:44.894Z', + availableTo: {}, + editableBy: {}, + protocolMatchingRules: [], + imageLoadStrategy: 'interleaveCenter', + displaySetSelectors: { + mprDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'fourUpStage', + name: 'fourUp', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 2, + columns: 2, + }, + }, + viewports: [ + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'axial', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'volume3d', + viewportType: 'volume3d', + orientation: 'coronal', + customViewportProps: { + hideOverlays: true, + }, + }, + displaySets: [ + { + id: 'mprDisplaySet', + options: { + // ToDo: choose appropriate preset + displayPreset: 'CT-Bone', + }, + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'coronal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'sagittal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + ], + }, + ], +}; diff --git a/extensions/cornerstone/src/hps/main3D.ts b/extensions/cornerstone/src/hps/main3D.ts new file mode 100644 index 000000000..a7b837991 --- /dev/null +++ b/extensions/cornerstone/src/hps/main3D.ts @@ -0,0 +1,156 @@ +export const main3D = { + id: 'main3D', + locked: true, + name: 'main3D', + createdDate: '2023-03-15T10:29:44.894Z', + modifiedDate: '2023-03-15T10:29:44.894Z', + availableTo: {}, + editableBy: {}, + protocolMatchingRules: [], + imageLoadStrategy: 'interleaveCenter', + displaySetSelectors: { + mprDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'main3DStage', + name: 'main3D', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 2, + columns: 3, + layoutOptions: [ + { + x: 0, + y: 0, + width: 1, + height: 1 / 2, + }, + { + x: 0, + y: 1 / 2, + width: 1 / 3, + height: 1 / 2, + }, + { + x: 1 / 3, + y: 1 / 2, + width: 1 / 3, + height: 1 / 2, + }, + { + x: 2 / 3, + y: 1 / 2, + width: 1 / 3, + height: 1 / 2, + }, + ], + }, + }, + viewports: [ + { + viewportOptions: { + toolGroupId: 'volume3d', + viewportType: 'volume3d', + orientation: 'coronal', + customViewportProps: { + hideOverlays: true, + }, + }, + displaySets: [ + { + id: 'mprDisplaySet', + options: { + // ToDo: choose appropriate preset + displayPreset: 'CT-Bone', + }, + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'axial', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'coronal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'sagittal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + ], + }, + ], +}; diff --git a/extensions/cornerstone/src/hps/mpr.ts b/extensions/cornerstone/src/hps/mpr.ts new file mode 100644 index 000000000..4c625c731 --- /dev/null +++ b/extensions/cornerstone/src/hps/mpr.ts @@ -0,0 +1,153 @@ +import { Types } from '@ohif/core'; + +export const mpr: Types.HangingProtocol.Protocol = { + id: 'mpr', + name: 'Multi-Planar Reconstruction', + locked: true, + createdDate: '2021-02-23', + modifiedDate: '2023-08-15', + availableTo: {}, + editableBy: {}, + // Unknown number of priors referenced - so just match any study + numberOfPriorsReferenced: 0, + protocolMatchingRules: [], + imageLoadStrategy: 'nth', + callbacks: { + // Switches out of MPR mode when the layout change button is used + onLayoutChange: [ + { + commandName: 'toggleHangingProtocol', + commandOptions: { protocolId: 'mpr' }, + context: 'DEFAULT', + }, + ], + // Turns off crosshairs when switching out of MPR mode + onProtocolExit: [ + { + commandName: 'cleanUpCrosshairs', + }, + ], + }, + displaySetSelectors: { + activeDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + name: 'MPR 1x3', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 1, + columns: 3, + layoutOptions: [ + { + x: 0, + y: 0, + width: 1 / 3, + height: 1, + }, + { + x: 1 / 3, + y: 0, + width: 1 / 3, + height: 1, + }, + { + x: 2 / 3, + y: 0, + width: 1 / 3, + height: 1, + }, + ], + }, + }, + viewports: [ + { + viewportOptions: { + viewportId: 'mpr-axial', + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'axial', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'activeDisplaySet', + }, + ], + }, + { + viewportOptions: { + viewportId: 'mpr-sagittal', + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'sagittal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'activeDisplaySet', + }, + ], + }, + { + viewportOptions: { + viewportId: 'mpr-coronal', + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'coronal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'activeDisplaySet', + }, + ], + }, + ], + }, + ], +}; diff --git a/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts b/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts new file mode 100644 index 000000000..120f6fb7e --- /dev/null +++ b/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts @@ -0,0 +1,138 @@ +export const mprAnd3DVolumeViewport = { + id: 'mprAnd3DVolumeViewport', + locked: true, + name: 'mpr', + createdDate: '2023-03-15T10:29:44.894Z', + modifiedDate: '2023-03-15T10:29:44.894Z', + availableTo: {}, + editableBy: {}, + protocolMatchingRules: [], + imageLoadStrategy: 'interleaveCenter', + displaySetSelectors: { + mprDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + { + attribute: 'Modality', + constraint: { + equals: { + value: 'CT', + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'mpr3Stage', + name: 'mpr', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 2, + columns: 2, + }, + }, + viewports: [ + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'axial', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'volume3d', + viewportType: 'volume3d', + orientation: 'coronal', + customViewportProps: { + hideOverlays: true, + }, + }, + displaySets: [ + { + id: 'mprDisplaySet', + options: { + displayPreset: 'CT-Bone', + }, + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'coronal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'sagittal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + ], + }, + ], +}; diff --git a/extensions/cornerstone/src/hps/only3D.ts b/extensions/cornerstone/src/hps/only3D.ts new file mode 100644 index 000000000..d319d1ee4 --- /dev/null +++ b/extensions/cornerstone/src/hps/only3D.ts @@ -0,0 +1,61 @@ +export const only3D = { + id: 'only3D', + locked: true, + name: 'only3D', + createdDate: '2023-03-15T10:29:44.894Z', + modifiedDate: '2023-03-15T10:29:44.894Z', + availableTo: {}, + editableBy: {}, + protocolMatchingRules: [], + imageLoadStrategy: 'interleaveCenter', + displaySetSelectors: { + mprDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'only3DStage', + name: 'only3D', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 1, + columns: 1, + }, + }, + viewports: [ + { + viewportOptions: { + toolGroupId: 'volume3d', + viewportType: 'volume3d', + orientation: 'coronal', + customViewportProps: { + hideOverlays: true, + }, + }, + displaySets: [ + { + id: 'mprDisplaySet', + options: { + // ToDo: choose appropriate preset + displayPreset: 'CT-Bone', + }, + }, + ], + }, + ], + }, + ], +}; diff --git a/extensions/cornerstone/src/hps/primary3D.ts b/extensions/cornerstone/src/hps/primary3D.ts new file mode 100644 index 000000000..126553248 --- /dev/null +++ b/extensions/cornerstone/src/hps/primary3D.ts @@ -0,0 +1,156 @@ +export const primary3D = { + id: 'primary3D', + locked: true, + name: 'primary3D', + createdDate: '2023-03-15T10:29:44.894Z', + modifiedDate: '2023-03-15T10:29:44.894Z', + availableTo: {}, + editableBy: {}, + protocolMatchingRules: [], + imageLoadStrategy: 'interleaveCenter', + displaySetSelectors: { + mprDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'primary3DStage', + name: 'primary3D', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 3, + columns: 3, + layoutOptions: [ + { + x: 0, + y: 0, + width: 2 / 3, + height: 1, + }, + { + x: 2 / 3, + y: 0, + width: 1 / 3, + height: 1 / 3, + }, + { + x: 2 / 3, + y: 1 / 3, + width: 1 / 3, + height: 1 / 3, + }, + { + x: 2 / 3, + y: 2 / 3, + width: 1 / 3, + height: 1 / 3, + }, + ], + }, + }, + viewports: [ + { + viewportOptions: { + toolGroupId: 'volume3d', + viewportType: 'volume3d', + orientation: 'coronal', + customViewportProps: { + hideOverlays: true, + }, + }, + displaySets: [ + { + id: 'mprDisplaySet', + options: { + // ToDo: choose appropriate preset + displayPreset: 'CT-Bone', + }, + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'axial', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'coronal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'sagittal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + ], + }, + ], +}; diff --git a/extensions/cornerstone/src/hps/primaryAxial.ts b/extensions/cornerstone/src/hps/primaryAxial.ts new file mode 100644 index 000000000..2126920b3 --- /dev/null +++ b/extensions/cornerstone/src/hps/primaryAxial.ts @@ -0,0 +1,131 @@ +export const primaryAxial = { + id: 'primaryAxial', + locked: true, + name: 'primaryAxial', + createdDate: '2023-03-15T10:29:44.894Z', + modifiedDate: '2023-03-15T10:29:44.894Z', + availableTo: {}, + editableBy: {}, + protocolMatchingRules: [], + imageLoadStrategy: 'interleaveCenter', + displaySetSelectors: { + mprDisplaySet: { + seriesMatchingRules: [ + { + weight: 1, + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'primaryAxialStage', + name: 'primaryAxial', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 2, + columns: 3, + layoutOptions: [ + { + x: 0, + y: 0, + width: 2 / 3, + height: 1, + }, + { + x: 2 / 3, + y: 0, + width: 1 / 3, + height: 1 / 2, + }, + { + x: 2 / 3, + y: 1 / 2, + width: 1 / 3, + height: 1 / 2, + }, + ], + }, + }, + viewports: [ + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'axial', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'sagittal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + { + viewportOptions: { + toolGroupId: 'mpr', + viewportType: 'volume', + orientation: 'coronal', + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'voi', + id: 'mpr', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'mprDisplaySet', + }, + ], + }, + ], + }, + ], +}; From 6e5d8b691e7fd6c7d784f87a91adc09a16bcf989 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 8 Dec 2023 14:35:23 +0000 Subject: [PATCH 087/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index b2ca49011..83edc592a 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -6651008fbb35dabd5991c7f61128e6ef324012df \ No newline at end of file +59576d695d4d26601d35c43f73d602f0b12d72bf \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 8b4a48689..7a53479ba 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/i18n": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/i18n": "3.8.0-beta.28", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 5ac0886c0..2a19889fe 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/i18n": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/i18n": "3.8.0-beta.28", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 0ee67cc61..32457d63b 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-measurement-tracking": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-measurement-tracking": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 60cacb1e6..a9bf53c00 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 48fbe7ef7..292e772bf 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/i18n": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/i18n": "3.8.0-beta.28", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index efc645551..b89c70e60 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/i18n": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/i18n": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index c5ca80efa..d3ab49917 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index f320db1af..d89656b25 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 125192335..48c408315 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 91bb0510c..83d9a1b49 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 795dfaba1..5020a389d 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 100fb0eb7..589af5d36 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/extension-dicom-pdf": "3.8.0-beta.27", - "@ohif/extension-dicom-video": "3.8.0-beta.27" + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/extension-dicom-pdf": "3.8.0-beta.28", + "@ohif/extension-dicom-video": "3.8.0-beta.28" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index bf544f6c2..b07293028 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/extension-dicom-pdf": "3.8.0-beta.27", - "@ohif/extension-dicom-video": "3.8.0-beta.27", - "@ohif/extension-measurement-tracking": "3.8.0-beta.27", - "@ohif/extension-test": "3.8.0-beta.27" + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/extension-dicom-pdf": "3.8.0-beta.28", + "@ohif/extension-dicom-video": "3.8.0-beta.28", + "@ohif/extension-measurement-tracking": "3.8.0-beta.28", + "@ohif/extension-test": "3.8.0-beta.28" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 141dadabd..58557027f 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/extension-dicom-pdf": "3.8.0-beta.27", - "@ohif/extension-dicom-video": "3.8.0-beta.27", - "@ohif/extension-measurement-tracking": "3.8.0-beta.27" + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/extension-dicom-pdf": "3.8.0-beta.28", + "@ohif/extension-dicom-video": "3.8.0-beta.28", + "@ohif/extension-measurement-tracking": "3.8.0-beta.28" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index fecab1130..329aaddde 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.27" + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.28" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index a222d4e5a..fd147beab 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27" + "@ohif/core": "3.8.0-beta.28" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 1653f426f..dea0a6f96 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/extension-dicom-pdf": "3.8.0-beta.27", - "@ohif/extension-dicom-video": "3.8.0-beta.27", - "@ohif/extension-measurement-tracking": "3.8.0-beta.27" + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/extension-dicom-pdf": "3.8.0-beta.28", + "@ohif/extension-dicom-video": "3.8.0-beta.28", + "@ohif/extension-measurement-tracking": "3.8.0-beta.28" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/platform/core/package.json b/platform/core/package.json index 25c050d8b..82d588362 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.28", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 89c197798..93b60f158 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.27", - "commit": "6651008fbb35dabd5991c7f61128e6ef324012df" + "version": "3.8.0-beta.28", + "commit": "59576d695d4d26601d35c43f73d602f0b12d72bf" } \ No newline at end of file diff --git a/version.txt b/version.txt index 451f7609d..11332dc61 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.27 \ No newline at end of file +3.8.0-beta.28 \ No newline at end of file From 5a5c4f58afc7457a2240489055e89a0da7642771 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 8 Dec 2023 14:35:30 +0000 Subject: [PATCH 088/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f393ce66e..7c47c40dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + + +### Features + +* **HP:** Added new 3D hanging protocols to be used in the new layout selector ([#3844](https://github.com/OHIF/Viewers/issues/3844)) ([59576d6](https://github.com/OHIF/Viewers/commit/59576d695d4d26601d35c43f73d602f0b12d72bf)) + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index b94e2993c..4dca2e4af 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 7a53479ba..902a5dee7 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index f2dd59134..b22f8dc09 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 2a19889fe..4256089f3 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 0d8b22d22..bab3df2df 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 32457d63b..ef7a3b404 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 37ca88c0b..040ecd4b7 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + + +### Features + +* **HP:** Added new 3D hanging protocols to be used in the new layout selector ([#3844](https://github.com/OHIF/Viewers/issues/3844)) ([59576d6](https://github.com/OHIF/Viewers/commit/59576d695d4d26601d35c43f73d602f0b12d72bf)) + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index a9bf53c00..83b44fb59 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 251d6cfce..e2b6c8d0c 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 292e772bf..5ea599890 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 60a4e2295..e9de316b5 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b89c70e60..c9a7196e9 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 03a2dcaa6..78cacf7db 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index d3ab49917..5957fdddf 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 544f13e56..26f27d6f6 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index d89656b25..28079739b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 16db14c6b..14c2a0829 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 48c408315..6325ed225 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/ui": "3.8.0-beta.28", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index a1b428046..8b332faf1 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 83d9a1b49..e1fe09ac6 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 05f53a682..bd523fad3 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 5020a389d..b3fbeff76 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 6ed676e84..7ec7e4c7a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 4fff2caf0..e1ff736f4 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 589af5d36..3352049ed 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 627841c6a..f577152fd 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index b07293028..97c5d14b1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index d93b9e58e..5fe9fb31d 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 58557027f..1d80f738f 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 6b106da75..2f5b6c98d 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 329aaddde..d735951ab 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 23839ddf7..765ad73d8 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index fd147beab..0b52d2071 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index d92b23bfa..83d2d5938 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index dea0a6f96..8f3925b9c 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 4269547f2..cb8025575 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/platform/app/package.json b/platform/app/package.json index cd3a29e5d..1a1d3752e 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.27", - "@ohif/extension-cornerstone": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.27", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.27", - "@ohif/extension-default": "3.8.0-beta.27", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.27", - "@ohif/extension-dicom-pdf": "3.8.0-beta.27", - "@ohif/extension-dicom-video": "3.8.0-beta.27", - "@ohif/extension-test": "3.8.0-beta.27", - "@ohif/i18n": "3.8.0-beta.27", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.27", - "@ohif/mode-longitudinal": "3.8.0-beta.27", - "@ohif/mode-microscopy": "3.8.0-beta.27", - "@ohif/mode-test": "3.8.0-beta.27", - "@ohif/ui": "3.8.0-beta.27", + "@ohif/core": "3.8.0-beta.28", + "@ohif/extension-cornerstone": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.28", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", + "@ohif/extension-default": "3.8.0-beta.28", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.28", + "@ohif/extension-dicom-pdf": "3.8.0-beta.28", + "@ohif/extension-dicom-video": "3.8.0-beta.28", + "@ohif/extension-test": "3.8.0-beta.28", + "@ohif/i18n": "3.8.0-beta.28", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.28", + "@ohif/mode-longitudinal": "3.8.0-beta.28", + "@ohif/mode-microscopy": "3.8.0-beta.28", + "@ohif/mode-test": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.28", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 32e6332d1..c65198b1e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 6bfdb6557..6c188a811 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 15632231f..a929d1e41 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/platform/core/package.json b/platform/core/package.json index 82d588362..6fa03f119 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 70791c6e2..947b3ea66 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) diff --git a/platform/docs/package.json b/platform/docs/package.json index da79f4c7d..b989acb86 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index ee355d132..54a06ea2c 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 17cd27481..bb12c4857 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index b8394f858..cfcdfdcbb 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.26...v3.8.0-beta.27) (2023-12-06) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 49cfc59fe..e1cc44a1a 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.27", + "version": "3.8.0-beta.28", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From d14a8f0199db95cd9e85866a011b64d6bf830d57 Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 11 Dec 2023 19:43:58 +0500 Subject: [PATCH 089/289] feat(i18n): enhanced i18n support (#3761) --- extensions/default/src/getPanelModule.tsx | 7 ++-- .../promptBeginTracking.js | 9 +++-- .../promptTrackNewStudy.js | 10 +++-- .../src/getPanelModule.tsx | 5 ++- .../viewports/TrackedCornerstoneViewport.tsx | 13 +++--- modes/basic-dev-mode/src/index.js | 3 +- modes/basic-test-mode/src/index.ts | 3 +- modes/longitudinal/src/index.js | 3 +- modes/microscopy/src/index.tsx | 3 +- modes/segmentation/src/index.tsx | 3 +- modes/tmtv/src/index.js | 3 +- platform/app/src/routes/WorkList/WorkList.tsx | 2 +- platform/core/src/utils/formatDate.js | 3 +- platform/i18n/src/locales/en-US/Common.json | 5 ++- .../i18n/src/locales/en-US/ErrorBoundary.json | 8 ++++ .../src/locales/en-US/HotkeysValidators.json | 6 +++ .../src/locales/en-US/MeasurementTable.json | 4 +- platform/i18n/src/locales/en-US/Messages.json | 1 + platform/i18n/src/locales/en-US/Modes.json | 8 ++++ .../src/locales/en-US/SegmentationTable.json | 18 +++++++++ .../i18n/src/locales/en-US/StudyItem.json | 3 ++ .../i18n/src/locales/en-US/StudyList.json | 14 ++++--- .../src/locales/en-US/ThumbnailTracked.json | 5 +++ .../src/locales/en-US/TooltipClipboard.json | 4 ++ .../en-US/TrackedCornerstoneViewport.json | 6 +++ platform/i18n/src/locales/en-US/index.js | 16 ++++++++ platform/i18n/src/locales/es/StudyList.json | 2 +- .../i18n/src/locales/test-LNG/Common.json | 5 ++- .../src/locales/test-LNG/ErrorBoundary.json | 8 ++++ .../locales/test-LNG/HotkeysValidators.json | 6 +++ .../locales/test-LNG/MeasurementTable.json | 4 +- .../i18n/src/locales/test-LNG/Messages.json | 16 ++++++++ platform/i18n/src/locales/test-LNG/Modes.json | 7 +++- .../locales/test-LNG/SegmentationTable.json | 18 +++++++++ .../i18n/src/locales/test-LNG/StudyItem.json | 3 ++ .../i18n/src/locales/test-LNG/StudyList.json | 16 ++++---- .../locales/test-LNG/ThumbnailTracked.json | 5 +++ .../locales/test-LNG/TooltipClipboard.json | 4 ++ .../test-LNG/TrackedCornerstoneViewport.json | 6 +++ platform/i18n/src/locales/test-LNG/index.js | 40 +++++++++++++------ platform/i18n/src/locales/zh/StudyList.json | 8 ++-- .../DisplaySetMessageListTooltip.tsx | 2 +- .../components/EmptyStudies/EmptyStudies.tsx | 4 +- .../ErrorBoundary/ErrorBoundary.tsx | 15 ++++--- .../HotkeysPreferences/hotkeysValidators.js | 9 +++-- .../SegmentationGroupTable/AddSegmentRow.tsx | 4 +- .../NoSegmentationRow.tsx | 4 +- .../SegmentationConfig.tsx | 20 ++++++---- .../SegmentationDropDownRow.tsx | 14 ++++--- .../SegmentationGroupTable.tsx | 4 +- .../ui/src/components/SidePanel/SidePanel.tsx | 3 -- .../ui/src/components/StudyItem/StudyItem.tsx | 4 +- .../StudyListFilter/StudyListFilter.tsx | 16 ++++---- .../ThumbnailTracked/ThumbnailTracked.tsx | 14 +++---- .../TooltipClipboard/TooltipClipboard.tsx | 7 +++- 55 files changed, 319 insertions(+), 114 deletions(-) create mode 100644 platform/i18n/src/locales/en-US/ErrorBoundary.json create mode 100644 platform/i18n/src/locales/en-US/HotkeysValidators.json create mode 100644 platform/i18n/src/locales/en-US/Modes.json create mode 100644 platform/i18n/src/locales/en-US/SegmentationTable.json create mode 100644 platform/i18n/src/locales/en-US/StudyItem.json create mode 100644 platform/i18n/src/locales/en-US/ThumbnailTracked.json create mode 100644 platform/i18n/src/locales/en-US/TooltipClipboard.json create mode 100644 platform/i18n/src/locales/en-US/TrackedCornerstoneViewport.json create mode 100644 platform/i18n/src/locales/test-LNG/ErrorBoundary.json create mode 100644 platform/i18n/src/locales/test-LNG/HotkeysValidators.json create mode 100644 platform/i18n/src/locales/test-LNG/Messages.json create mode 100644 platform/i18n/src/locales/test-LNG/SegmentationTable.json create mode 100644 platform/i18n/src/locales/test-LNG/StudyItem.json create mode 100644 platform/i18n/src/locales/test-LNG/ThumbnailTracked.json create mode 100644 platform/i18n/src/locales/test-LNG/TooltipClipboard.json create mode 100644 platform/i18n/src/locales/test-LNG/TrackedCornerstoneViewport.json diff --git a/extensions/default/src/getPanelModule.tsx b/extensions/default/src/getPanelModule.tsx index 559f98fca..e294805df 100644 --- a/extensions/default/src/getPanelModule.tsx +++ b/extensions/default/src/getPanelModule.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { WrappedPanelStudyBrowser, PanelMeasurementTable } from './Panels'; +import i18n from 'i18next'; // TODO: // - No loading UI exists yet @@ -22,7 +23,7 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }) name: 'seriesList', iconName: 'tab-studies', iconLabel: 'Studies', - label: 'Studies', + label: i18n.t('SidePanel:Studies'), component: WrappedPanelStudyBrowser.bind(null, { commandsManager, extensionManager, @@ -33,8 +34,8 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }) name: 'measure', iconName: 'tab-linear', iconLabel: 'Measure', - label: 'Measurements', - secondaryLabel: 'Measurements', + label: i18n.t('SidePanel:Measurements'), + secondaryLabel: i18n.t('SidePanel:Measurements'), component: wrappedMeasurementPanel, }, ]; diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js index 751823836..41fa0baca 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js @@ -1,4 +1,5 @@ import { ButtonEnums } from '@ohif/ui'; +import i18n from 'i18next'; const RESPONSE = { NO_NEVER: -1, @@ -26,24 +27,24 @@ function promptBeginTracking({ servicesManager, extensionManager }, ctx, evt) { function _askTrackMeasurements(uiViewportDialogService, viewportId) { return new Promise(function (resolve, reject) { - const message = 'Track measurements for this series?'; + const message = i18n.t('MeasurementTable:Track measurements for this series?'); const actions = [ { id: 'prompt-begin-tracking-cancel', type: ButtonEnums.type.secondary, - text: 'No', + text: i18n.t('Common:No'), value: RESPONSE.CANCEL, }, { id: 'prompt-begin-tracking-no-do-not-ask-again', type: ButtonEnums.type.secondary, - text: 'No, do not ask again', + text: i18n.t('MeasurementTable:No, do not ask again'), value: RESPONSE.NO_NEVER, }, { id: 'prompt-begin-tracking-yes', type: ButtonEnums.type.primary, - text: 'Yes', + text: i18n.t('Common:Yes'), value: RESPONSE.SET_STUDY_AND_SERIES, }, ]; diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js index 03080ce90..23ea2b11e 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js @@ -1,3 +1,5 @@ +import i18n from 'i18next'; + const RESPONSE = { NO_NEVER: -1, CANCEL: 0, @@ -32,17 +34,17 @@ function promptTrackNewStudy({ servicesManager, extensionManager }, ctx, evt) { function _askTrackMeasurements(UIViewportDialogService, viewportId) { return new Promise(function (resolve, reject) { - const message = 'Track measurements for this series?'; + const message = i18n.t('MeasurementTable:Track measurements for this series?'); const actions = [ - { type: 'cancel', text: 'No', value: RESPONSE.CANCEL }, + { type: 'cancel', text: i18n.t('MeasurementTable:No'), value: RESPONSE.CANCEL }, { type: 'secondary', - text: 'No, do not ask again for this series', + text: i18n.t('MeasurementTable:No, do not ask again'), value: RESPONSE.NO_NOT_FOR_SERIES, }, { type: 'primary', - text: 'Yes', + text: i18n.t('MeasurementTable:Yes'), value: RESPONSE.SET_STUDY_AND_SERIES, }, ]; diff --git a/extensions/measurement-tracking/src/getPanelModule.tsx b/extensions/measurement-tracking/src/getPanelModule.tsx index 6d7a90633..a49a44a5b 100644 --- a/extensions/measurement-tracking/src/getPanelModule.tsx +++ b/extensions/measurement-tracking/src/getPanelModule.tsx @@ -1,5 +1,6 @@ import { Types } from '@ohif/core'; import { PanelMeasurementTableTracking, PanelStudyBrowserTracking } from './panels'; +import i18n from 'i18next'; // TODO: // - No loading UI exists yet @@ -11,7 +12,7 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }): name: 'seriesList', iconName: 'tab-studies', iconLabel: 'Studies', - label: 'Studies', + label: i18n.t('SidePanel:Studies'), component: PanelStudyBrowserTracking.bind(null, { commandsManager, extensionManager, @@ -23,7 +24,7 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }): name: 'trackedMeasurements', iconName: 'tab-linear', iconLabel: 'Measure', - label: 'Measurements', + label: i18n.t('SidePanel:Measurements'), component: PanelMeasurementTableTracking.bind(null, { commandsManager, extensionManager, diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx index aed9f6563..759460144 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx @@ -222,10 +222,10 @@ function TrackedCornerstoneViewport(props) { patientAge: PatientAge || '', MRN: PatientID || '', thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}` : '', - thicknessUnits: 'mm', + thicknessUnits: t('mm'), spacing: SpacingBetweenSlices !== undefined - ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}mm` + ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}${t('mm')}` : '', scanner: ManufacturerModelName || '', }, @@ -312,6 +312,7 @@ function _getNextMeasurementUID( } function _getStatusComponent(isTracked) { + const { t } = useTranslation('TrackedCornerstoneViewport'); const trackedIcon = isTracked ? 'status-tracked' : 'status-untracked'; return ( @@ -330,15 +331,11 @@ function _getStatusComponent(isTracked) { {isTracked ? ( <> - Series is - tracked and can be viewed
{' '} - in the measurement panel + {t('Series is tracked and can be viewed in the measurement panel')} ) : ( <> - Measurements for - untracked - series
will not be shown in the
measurements panel + {t('Measurements for untracked series will not be shown in the measurements panel')} )}
diff --git a/modes/basic-dev-mode/src/index.js b/modes/basic-dev-mode/src/index.js index 411409e1f..01513492f 100644 --- a/modes/basic-dev-mode/src/index.js +++ b/modes/basic-dev-mode/src/index.js @@ -1,6 +1,7 @@ import toolbarButtons from './toolbarButtons.js'; import { hotkeys } from '@ohif/core'; import { id } from './id'; +import i18n from 'i18next'; const configs = { Length: {}, @@ -45,7 +46,7 @@ function modeFactory({ modeConfiguration }) { return { id, routeName: 'dev', - displayName: 'Basic Dev Viewer', + displayName: i18n.t('Modes:Basic Dev Viewer'), /** * Lifecycle hooks */ diff --git a/modes/basic-test-mode/src/index.ts b/modes/basic-test-mode/src/index.ts index 1c8d5fc8b..1c4342179 100644 --- a/modes/basic-test-mode/src/index.ts +++ b/modes/basic-test-mode/src/index.ts @@ -4,6 +4,7 @@ import { id } from './id'; import initToolGroups from './initToolGroups'; import moreTools from './moreTools'; import moreToolsMpr from './moreToolsMpr'; +import i18n from 'i18next'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. @@ -63,7 +64,7 @@ function modeFactory() { // We should not be. id, routeName: 'basic-test', - displayName: 'Basic Test Mode', + displayName: i18n.t('Modes:Basic Test Mode'), /** * Lifecycle hooks */ diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 03f7fce9c..8cca53bc5 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -4,6 +4,7 @@ import { id } from './id'; import initToolGroups from './initToolGroups'; import moreTools from './moreTools'; import moreToolsMpr from './moreToolsMpr'; +import i18n from 'i18next'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. @@ -69,7 +70,7 @@ function modeFactory({ modeConfiguration }) { // We should not be. id, routeName: 'viewer', - displayName: 'Basic Viewer', + displayName: i18n.t('Modes:Basic Viewer'), /** * Lifecycle hooks */ diff --git a/modes/microscopy/src/index.tsx b/modes/microscopy/src/index.tsx index 5f170ca26..7165b7cc3 100644 --- a/modes/microscopy/src/index.tsx +++ b/modes/microscopy/src/index.tsx @@ -1,4 +1,5 @@ import { hotkeys } from '@ohif/core'; +import i18n from 'i18next'; import { id } from './id'; import toolbarButtons from './toolbarButtons'; @@ -41,7 +42,7 @@ function modeFactory({ modeConfiguration }) { // We should not be. id, routeName: 'microscopy', - displayName: 'Microscopy', + displayName: i18n.t('Modes:Microscopy'), /** * Lifecycle hooks diff --git a/modes/segmentation/src/index.tsx b/modes/segmentation/src/index.tsx index 8b24196f1..7e00a266a 100644 --- a/modes/segmentation/src/index.tsx +++ b/modes/segmentation/src/index.tsx @@ -2,6 +2,7 @@ import { hotkeys } from '@ohif/core'; import { id } from './id'; import toolbarButtons from './toolbarButtons'; import initToolGroups from './initToolGroups'; +import i18n from 'i18next'; const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', @@ -44,7 +45,7 @@ function modeFactory({ modeConfiguration }) { * Mode name, which is displayed in the viewer's UI in the workList, for the * user to select the mode. */ - displayName: 'Segmentation', + displayName: i18n.t('Modes:Segmentation'), /** * Runs when the Mode Route is mounted to the DOM. Usually used to initialize * Services and other resources. diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index 110fb0fb7..dd57be35e 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -4,6 +4,7 @@ import { id } from './id.js'; import initToolGroups, { toolGroupIds } from './initToolGroups.js'; import setCrosshairsConfiguration from './utils/setCrosshairsConfiguration.js'; import setFusionActiveVolume from './utils/setFusionActiveVolume.js'; +import i18n from 'i18next'; const { MetadataProvider } = classes; @@ -38,7 +39,7 @@ function modeFactory({ modeConfiguration }) { // We should not be. id, routeName: 'tmtv', - displayName: 'Total Metabolic Tumor Volume', + displayName: i18n.t('Modes:Total Metabolic Tumor Volume'), /** * Lifecycle hooks */ diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index fa236ce70..ae518a296 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -390,7 +390,7 @@ function WorkList({ onClick={() => {}} data-cy={`mode-${mode.routeName}-${studyInstanceUid}`} > - {t(`Modes:${mode.displayName}`)} + {mode.displayName} ) diff --git a/platform/core/src/utils/formatDate.js b/platform/core/src/utils/formatDate.js index 7b44277f2..866a9285a 100644 --- a/platform/core/src/utils/formatDate.js +++ b/platform/core/src/utils/formatDate.js @@ -1,4 +1,5 @@ import moment from 'moment'; +import i18n from 'i18next'; /** * Format date @@ -7,7 +8,7 @@ import moment from 'moment'; * @param {string} format Desired date format * @returns {string} Formatted date */ -export default (date, format = 'DD-MMM-YYYY') => { +export default (date, format = i18n.t('Common:localDateFormat','DD-MMM-YYYY')) => { // moment(undefined) returns the current date, so return the empty string instead return date ? moment(date).format(format) : ''; }; diff --git a/platform/i18n/src/locales/en-US/Common.json b/platform/i18n/src/locales/en-US/Common.json index 2a9b748c3..2cbb92cd3 100644 --- a/platform/i18n/src/locales/en-US/Common.json +++ b/platform/i18n/src/locales/en-US/Common.json @@ -4,8 +4,10 @@ "Layout": "Layout", "LOAD": "LOAD", "Measurements": "Measurements", + "mm": "mm", "More": "More", "Next": "Next", + "No": "No", "NoStudyDate": "No Study Date", "Play": "Play", "Previous": "Previous", @@ -14,5 +16,6 @@ "Series": "Series", "Show": "Show", "Stop": "Stop", - "StudyDate": "Study Date" + "StudyDate": "Study Date", + "Yes": "Yes" } diff --git a/platform/i18n/src/locales/en-US/ErrorBoundary.json b/platform/i18n/src/locales/en-US/ErrorBoundary.json new file mode 100644 index 000000000..dcefb50b4 --- /dev/null +++ b/platform/i18n/src/locales/en-US/ErrorBoundary.json @@ -0,0 +1,8 @@ +{ + "Context": "Context", + "Error Message": "Error Message", + "Something went wrong": "Something went wrong", + "in": "in", + "Sorry, something went wrong there. Try again.": "Sorry, something went wrong there. Try again.", + "Stack Trace": "Stack Trace" +} diff --git a/platform/i18n/src/locales/en-US/HotkeysValidators.json b/platform/i18n/src/locales/en-US/HotkeysValidators.json new file mode 100644 index 000000000..74665c1ac --- /dev/null +++ b/platform/i18n/src/locales/en-US/HotkeysValidators.json @@ -0,0 +1,6 @@ +{ + "Field can't be empty": "Field can't be empty", + "Hotkey is already in use": "\"{{action}}\" is already using the \"{{pressedKeys}}\" shortcut.", + "It's not possible to define only modifier keys (ctrl, alt and shift) as a shortcut": "It's not possible to define only modifier keys (ctrl, alt and shift) as a shortcut", + "Shortcut combination is not allowed": "{{pressedKeys}} shortcut combination is not allowed" +} diff --git a/platform/i18n/src/locales/en-US/MeasurementTable.json b/platform/i18n/src/locales/en-US/MeasurementTable.json index d1f10950e..008a8c8a4 100644 --- a/platform/i18n/src/locales/en-US/MeasurementTable.json +++ b/platform/i18n/src/locales/en-US/MeasurementTable.json @@ -3,8 +3,10 @@ "Delete": "Delete", "Description": "Description", "MAX": "MAX", + "Measurements": "Measurements", + "No, do not ask again": "No, do not ask again", "NonTargets": "NonTargets", "Relabel": "Relabel", "Targets": "Targets", - "Measurements": "Measurements" + "Track measurements for this series?": "Track measurements for this series?" } diff --git a/platform/i18n/src/locales/en-US/Messages.json b/platform/i18n/src/locales/en-US/Messages.json index 130d2f970..931bd939a 100644 --- a/platform/i18n/src/locales/en-US/Messages.json +++ b/platform/i18n/src/locales/en-US/Messages.json @@ -1,4 +1,5 @@ { + "Display Set Messages": "Display Set Messages", "1": "No valid instances found in series.", "2": "Display set has missing position information.", "3": "Display set is not a reconstructable 3D volume.", diff --git a/platform/i18n/src/locales/en-US/Modes.json b/platform/i18n/src/locales/en-US/Modes.json new file mode 100644 index 000000000..813dfe9d6 --- /dev/null +++ b/platform/i18n/src/locales/en-US/Modes.json @@ -0,0 +1,8 @@ +{ + "Basic Dev Viewer": "Basic Dev Viewer", + "Basic Test Mode": "Basic Test Mode", + "Basic Viewer": "Basic Viewer", + "Microscopy": "Microscopy", + "Segmentation": "Segmentation", + "Total Metabolic Tumor Volume": "Total Metabolic Tumor Volume" +} diff --git a/platform/i18n/src/locales/en-US/SegmentationTable.json b/platform/i18n/src/locales/en-US/SegmentationTable.json new file mode 100644 index 000000000..8d73016f3 --- /dev/null +++ b/platform/i18n/src/locales/en-US/SegmentationTable.json @@ -0,0 +1,18 @@ +{ + "Active": "Active", + "Add new segmentation": "Add new segmentation", + "Add segment": "Add segment", + "Add segmentation": "Add segmentation", + "Delete": "Delete", + "Display inactive segmentations": "Display inactive segmentations", + "Export DICOM SEG": "Export DICOM SEG", + "Download DICOM SEG": "Download DICOM SEG", + "Download DICOM RTSTRUCT": "Download DICOM RTSTRUCT", + "Fill": "Fill", + "Inactive segmentations": "Inactive segmentations", + "Opacity": "Opacity", + "Outline": "Outline", + "Rename": "Rename", + "Segmentation": "Segmentation", + "Size": "Size" +} diff --git a/platform/i18n/src/locales/en-US/StudyItem.json b/platform/i18n/src/locales/en-US/StudyItem.json new file mode 100644 index 000000000..d68913796 --- /dev/null +++ b/platform/i18n/src/locales/en-US/StudyItem.json @@ -0,0 +1,3 @@ +{ + "Tracked series": "{{trackedSeries}} Tracked series" +} diff --git a/platform/i18n/src/locales/en-US/StudyList.json b/platform/i18n/src/locales/en-US/StudyList.json index 9ee5a74fb..c64afdb7a 100644 --- a/platform/i18n/src/locales/en-US/StudyList.json +++ b/platform/i18n/src/locales/en-US/StudyList.json @@ -3,16 +3,18 @@ "ClearFilters": "Clear Filters", "Description": "Description", "Empty": "Empty", + "Filter list to 100 studies or less to enable sorting": "Filter the list to 100 studies or less to enable sorting", "Instances": "Instances", - "MRN": "MRN", - "NumOfStudiesHiggerThan100Message": "Filter the list to 100 studies or less to enable sorting", "Modality": "Modality", + "MRN": "MRN", + "Next": "Next >", + "No studies available": "No studies available", + "Number of studies": "Number of studies", + "Page": "Page", "PatientName": "Patient Name", "Previous": "< Back", - "Page": "Page", - "Next": "Next >", "Results per page": "Results per page", - "Number of studies": "Studies", "StudyDate": "Study Date", - "StudyList": "Study List" + "StudyList": "Study List", + "Upload": "Upload" } diff --git a/platform/i18n/src/locales/en-US/ThumbnailTracked.json b/platform/i18n/src/locales/en-US/ThumbnailTracked.json new file mode 100644 index 000000000..0fef3468e --- /dev/null +++ b/platform/i18n/src/locales/en-US/ThumbnailTracked.json @@ -0,0 +1,5 @@ +{ + "Series is tracked": "Series is tracked", + "Series is untracked": "Series is untracked", + "Viewport": "Viewport" +} diff --git a/platform/i18n/src/locales/en-US/TooltipClipboard.json b/platform/i18n/src/locales/en-US/TooltipClipboard.json new file mode 100644 index 000000000..0d85da661 --- /dev/null +++ b/platform/i18n/src/locales/en-US/TooltipClipboard.json @@ -0,0 +1,4 @@ +{ + "Copied": "Copied", + "Failed to copy": "Failed to copy" +} diff --git a/platform/i18n/src/locales/en-US/TrackedCornerstoneViewport.json b/platform/i18n/src/locales/en-US/TrackedCornerstoneViewport.json new file mode 100644 index 000000000..6da525f34 --- /dev/null +++ b/platform/i18n/src/locales/en-US/TrackedCornerstoneViewport.json @@ -0,0 +1,6 @@ +{ + "Series is tracked and can be viewed in the measurement panel": + "Series is tracked and can be viewed in the measurement panel", + "Measurements for untracked series will not be shown in the measurements panel": + "Measurements for untracked series will not be shown in the measurements panel" +} diff --git a/platform/i18n/src/locales/en-US/index.js b/platform/i18n/src/locales/en-US/index.js index d8b19e6f8..eb3d442ba 100644 --- a/platform/i18n/src/locales/en-US/index.js +++ b/platform/i18n/src/locales/en-US/index.js @@ -4,11 +4,19 @@ import CineDialog from './CineDialog.json'; import Common from './Common.json'; import DataSourceConfiguration from './DataSourceConfiguration.json'; import DatePicker from './DatePicker.json'; +import ErrorBoundary from './ErrorBoundary.json'; import Header from './Header.json'; +import HotkeysValidators from './HotkeysValidators.json'; import MeasurementTable from './MeasurementTable.json'; +import Modes from './Modes.json'; +import SegmentationTable from './SegmentationTable.json'; import SidePanel from './SidePanel.json'; import StudyBrowser from './StudyBrowser.json'; +import StudyItem from './StudyItem.json'; import StudyList from './StudyList.json'; +import TooltipClipboard from './TooltipClipboard.json'; +import ThumbnailTracked from './ThumbnailTracked.json'; +import TrackedCornerstoneViewport from './TrackedCornerstoneViewport.json'; import UserPreferencesModal from './UserPreferencesModal.json'; import ViewportDownloadForm from './ViewportDownloadForm.json'; import Messages from './Messages.json'; @@ -21,11 +29,19 @@ export default { Common, DataSourceConfiguration, DatePicker, + ErrorBoundary, Header, + HotkeysValidators, MeasurementTable, + Modes, + SegmentationTable, SidePanel, StudyBrowser, + StudyItem, StudyList, + TooltipClipboard, + ThumbnailTracked, + TrackedCornerstoneViewport, UserPreferencesModal, ViewportDownloadForm, Messages, diff --git a/platform/i18n/src/locales/es/StudyList.json b/platform/i18n/src/locales/es/StudyList.json index eb1d970f0..8ff58c1a2 100644 --- a/platform/i18n/src/locales/es/StudyList.json +++ b/platform/i18n/src/locales/es/StudyList.json @@ -3,9 +3,9 @@ "ClearFilters": "Limpiar filtros", "Description": "Descripción", "Empty": "vacío", + "Filter list to 100 studies or less to enable sorting": "Filtre la lista a 100 estudios o menos para habilitar la clasificación", "Instances": "Instancias", "MRN": "MRN", - "NumOfStudiesHiggerThan100Message": "Filtre la lista a 100 estudios o menos para habilitar la clasificación", "Modality": "Modalidad", "PatientName": "Nombre paciente", "Previous": "< Anterior", diff --git a/platform/i18n/src/locales/test-LNG/Common.json b/platform/i18n/src/locales/test-LNG/Common.json index 9c29646fe..a80908048 100644 --- a/platform/i18n/src/locales/test-LNG/Common.json +++ b/platform/i18n/src/locales/test-LNG/Common.json @@ -3,8 +3,10 @@ "Image": "Test Image", "Layout": "Test Layout", "Measurements": "Test Measurements", + "mm": "Test mm", "More": "Test More", "Next": "Test Next", + "No": "Test No", "Play": "Test Play", "Previous": "Test Previous", "Reset": "Test Reset", @@ -12,5 +14,6 @@ "Series": "Test Series", "Show": "Test Show", "Stop": "Test Stop", - "StudyDate": "Test Study Date" + "StudyDate": "Test Study Date", + "Yes": "Test Yes" } diff --git a/platform/i18n/src/locales/test-LNG/ErrorBoundary.json b/platform/i18n/src/locales/test-LNG/ErrorBoundary.json new file mode 100644 index 000000000..4077306b2 --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/ErrorBoundary.json @@ -0,0 +1,8 @@ +{ + "Context": "Test Context", + "Error Message": "Test Error Message", + "Something went wrong": "Test Something went wrong", + "in": "in", + "Sorry, something went wrong there. Try again.": "Test Sorry, something went wrong there. Try again.", + "Stack Trace": "Test Stack Trace" +} diff --git a/platform/i18n/src/locales/test-LNG/HotkeysValidators.json b/platform/i18n/src/locales/test-LNG/HotkeysValidators.json new file mode 100644 index 000000000..973488440 --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/HotkeysValidators.json @@ -0,0 +1,6 @@ +{ + "Field can't be empty": "Test Field can't be empty", + "Hotkey is already in use": "Test \"{{action}}\" is already using the \"{{pressedKeys}}\" shortcut.", + "It's not possible to define only modifier keys (ctrl, alt and shift) as a shortcut": "Test It's not possible to define only modifier keys (ctrl, alt and shift) as a shortcut", + "Shortcut combination is not allowed": "Test {{pressedKeys}} shortcut combination is not allowed" +} diff --git a/platform/i18n/src/locales/test-LNG/MeasurementTable.json b/platform/i18n/src/locales/test-LNG/MeasurementTable.json index 70e04dea0..f65da4815 100644 --- a/platform/i18n/src/locales/test-LNG/MeasurementTable.json +++ b/platform/i18n/src/locales/test-LNG/MeasurementTable.json @@ -6,7 +6,9 @@ "Delete": "Delete", "Description": "Description", "MAX": "MAX", + "No, do not ask again": "Test No, do not ask again", "NonTargets": "NonTargets", "Relabel": "Relabel", - "Targets": "Targets" + "Targets": "Targets", + "Track measurements for this series?": "Test Track measurements for this series?" } diff --git a/platform/i18n/src/locales/test-LNG/Messages.json b/platform/i18n/src/locales/test-LNG/Messages.json new file mode 100644 index 000000000..acf153cac --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/Messages.json @@ -0,0 +1,16 @@ +{ + "Display Set Messages": "Test Display Set Messages", + "1": "Test No valid instances found in series.", + "2": "Test Display set has missing position information.", + "3": "Test Display set is not a reconstructable 3D volume.", + "4": "Test Multi frame display sets do not have pixel measurement information.", + "5": "Test Multi frame display sets do not have orientation information.", + "6": "Test Multi frame display sets do not have position information.", + "7": "Test Display set has missing frames.", + "8": "Test Display set has irregular spacing.", + "9": "Test Display set has inconsistent dimensions between frames.", + "10": "Test Display set has frames with inconsistent number of components.", + "11": "Test Display set has frames with inconsistent orientations.", + "12": "Test Display set has inconsistent position information.", + "13": "Test Unsupported display set." +} diff --git a/platform/i18n/src/locales/test-LNG/Modes.json b/platform/i18n/src/locales/test-LNG/Modes.json index 058e7d5c2..a9f03e232 100644 --- a/platform/i18n/src/locales/test-LNG/Modes.json +++ b/platform/i18n/src/locales/test-LNG/Modes.json @@ -1,3 +1,8 @@ { - "Basic Viewer": "Test Basic Viewer" + "Basic Dev Viewer": "Test Basic Dev Viewer", + "Basic Test Mode": "Test Basic Test Mode", + "Basic Viewer": "Test Basic Viewer", + "Microscopy": "Test Microscopy", + "Segmentation": "Test Segmentation", + "Total Metabolic Tumor Volume": "Test Total Metabolic Tumor Volume" } diff --git a/platform/i18n/src/locales/test-LNG/SegmentationTable.json b/platform/i18n/src/locales/test-LNG/SegmentationTable.json new file mode 100644 index 000000000..45f6aae72 --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/SegmentationTable.json @@ -0,0 +1,18 @@ +{ + "Active": "Test Active", + "Add new segmentation": "Test Add new segmentation", + "Add segment": "Test Add segment", + "Add segmentation": "Test Add segmentation", + "Delete": "Test Delete", + "Display inactive segmentations": "Test Display inactive segmentations", + "Export DICOM SEG": "Test Export DICOM SEG", + "Download DICOM SEG": "Test Download DICOM SEG", + "Download DICOM RTSTRUCT": "Test Download DICOM RTSTRUCT", + "Fill": "Test Fill", + "Inactive segmentations": "Test Inactive segmentations", + "Opacity": "Test Opacity", + "Outline": "Test Outline", + "Rename": "Test Rename", + "Segmentation": "Test Segmentation", + "Size": "Test Size" +} diff --git a/platform/i18n/src/locales/test-LNG/StudyItem.json b/platform/i18n/src/locales/test-LNG/StudyItem.json new file mode 100644 index 000000000..b8a18966d --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/StudyItem.json @@ -0,0 +1,3 @@ +{ + "Tracked series": "{{trackedSeries}} Test Tracked series" +} diff --git a/platform/i18n/src/locales/test-LNG/StudyList.json b/platform/i18n/src/locales/test-LNG/StudyList.json index ea4b30075..5f9bf949f 100644 --- a/platform/i18n/src/locales/test-LNG/StudyList.json +++ b/platform/i18n/src/locales/test-LNG/StudyList.json @@ -1,21 +1,23 @@ { + "Previous": "Test < Previous", "AccessionNumber": "Test Accession #", "Accession": "Test Accession", - "Next >": "Test Next >", - "< Previous": "Test < Previous", - "Results per page": "Test Results per page", + "Description": "Test Description", "Empty": "Test Empty", + "Filter list to 100 studies or less to enable sorting": "Test Filter list to 100 studies or less to enable sorting", + "Instances": "Test Instances", "MRN": "Test MRN", "Modality": "Test Modality", + "Next": "Test Next >", + "No studies available": "Test No studies available", + "Number of studies": "Test Number of studies", "PatientName": "Test PatientName", "Patient Name": "Test Patient Name", - "Description": "Test Description", + "Results per page": "Test Results per page", "StudyDate": "Test Study Date", "Study date": "Test Study Date", - "Number of studies": "Test Studies", "Series": "Test Series", - "Instances": "Test Instances", "Study List": "Test Study List", "Study list": "Test Study list", - "Filter list to 100 studies or less to enable sorting": "Test Filter list to 100 studies or less to enable sorting" + "Upload": "Test Upload" } diff --git a/platform/i18n/src/locales/test-LNG/ThumbnailTracked.json b/platform/i18n/src/locales/test-LNG/ThumbnailTracked.json new file mode 100644 index 000000000..bfda28677 --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/ThumbnailTracked.json @@ -0,0 +1,5 @@ +{ + "Series is tracked": "Test Series is tracked", + "Series is untracked": "Test Series is untracked", + "Viewport": "Test Viewport" +} diff --git a/platform/i18n/src/locales/test-LNG/TooltipClipboard.json b/platform/i18n/src/locales/test-LNG/TooltipClipboard.json new file mode 100644 index 000000000..b21a54d51 --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/TooltipClipboard.json @@ -0,0 +1,4 @@ +{ + "Copied": "Test Copied", + "Failed to copy": "Test Failed to copy" +} diff --git a/platform/i18n/src/locales/test-LNG/TrackedCornerstoneViewport.json b/platform/i18n/src/locales/test-LNG/TrackedCornerstoneViewport.json new file mode 100644 index 000000000..2b6c50e8a --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/TrackedCornerstoneViewport.json @@ -0,0 +1,6 @@ +{ + "Series is tracked and can be viewed in the measurement panel": + "Test Series is tracked and can be viewed in the measurement panel", + "Measurements for untracked series will not be shown in the measurements panel": + "Test Measurements for untracked series will not be shown in the measurements panel" +} diff --git a/platform/i18n/src/locales/test-LNG/index.js b/platform/i18n/src/locales/test-LNG/index.js index f39132793..561161d2f 100644 --- a/platform/i18n/src/locales/test-LNG/index.js +++ b/platform/i18n/src/locales/test-LNG/index.js @@ -3,17 +3,25 @@ import Buttons from './Buttons.json'; import CineDialog from './CineDialog.json'; import Common from './Common.json'; import DatePicker from './DatePicker.json'; +import ErrorBoundary from './ErrorBoundary.json'; import Header from './Header.json'; +import HotkeysValidators from './HotkeysValidators.json'; import MeasurementTable from './MeasurementTable.json'; +import Messages from './Messages.json'; +import Modals from './Modals.json'; +import Modes from './Modes.json'; +import PatientInfo from './PatientInfo.json'; +import SegmentationTable from './SegmentationTable.json'; +import SidePanel from './SidePanel.json'; +import StudyBrowser from './StudyBrowser.json'; +import StudyItem from './StudyItem.json'; import StudyList from './StudyList.json'; +import ToolTip from './ToolTip.json'; +import TooltipClipboard from './TooltipClipboard.json'; +import ThumbnailTracked from './ThumbnailTracked.json'; +import TrackedCornerstoneViewport from './TrackedCornerstoneViewport.json'; import UserPreferencesModal from './UserPreferencesModal.json'; import ViewportDownloadForm from './ViewportDownloadForm.json'; -import ToolTip from './ToolTip.json'; -import StudyBrowser from './StudyBrowser.json'; -import SidePanel from './SidePanel.json'; -import PatientInfo from './PatientInfo.json'; -import Modes from './Modes.json'; -import Modals from './Modals.json'; export default { 'test-LNG': { @@ -22,16 +30,24 @@ export default { CineDialog, Common, DatePicker, + ErrorBoundary, Header, + HotkeysValidators, MeasurementTable, + Messages, + Modals, + Modes, + PatientInfo, + SegmentationTable, + SidePanel, + StudyBrowser, + StudyItem, StudyList, + ToolTip, + TooltipClipboard, + ThumbnailTracked, + TrackedCornerstoneViewport, UserPreferencesModal, ViewportDownloadForm, - ToolTip, - StudyBrowser, - PatientInfo, - Modes, - SidePanel, - Modals, }, }; diff --git a/platform/i18n/src/locales/zh/StudyList.json b/platform/i18n/src/locales/zh/StudyList.json index 478d3f802..bbdf8bea7 100644 --- a/platform/i18n/src/locales/zh/StudyList.json +++ b/platform/i18n/src/locales/zh/StudyList.json @@ -1,5 +1,6 @@ { "Empty": "无", + "Filter list to 100 studies or less to enable sorting": "将检查列表过滤到 100 个或更少以启用排序", "Modality": "成像设备", "PatientName": "患者姓名", "StudyDate": "检查日期", @@ -14,14 +15,13 @@ "Instances": "图像数", "Accession": "检查号", "Results per page": "每页条数", - "< Previous": "上一页", - "Next >": "下一页", + "Previous": "上一页", + "Next": "下一页", "Page": "页码", "Start Date": "开始日期", "Series": "序列", "No studies available": "没有数据", "Loading...": "加载中...", "Select...": "选择...", - "InstitutionName": "检查机构", - "Filter list to 100 studies or less to enable sorting": "将检查列表过滤到 100 个或更少以启用排序" + "InstitutionName": "检查机构" } diff --git a/platform/ui/src/components/DisplaySetMessageListTooltip/DisplaySetMessageListTooltip.tsx b/platform/ui/src/components/DisplaySetMessageListTooltip/DisplaySetMessageListTooltip.tsx index 781742edc..4d1c4102d 100644 --- a/platform/ui/src/components/DisplaySetMessageListTooltip/DisplaySetMessageListTooltip.tsx +++ b/platform/ui/src/components/DisplaySetMessageListTooltip/DisplaySetMessageListTooltip.tsx @@ -37,7 +37,7 @@ const DisplaySetMessageListTooltip = ({ messages, id }): React.ReactNode => { marginTop: '12px', }} > - Display Set Messages + {t('Display Set Messages')}
    { + const { t } = useTranslation('StudyList'); return (
    { className="text-primary-light" variant="h5" > - {'No studies available'} + {t('No studies available')}
    ); diff --git a/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx b/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx index a485590e2..c8170e60d 100644 --- a/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx +++ b/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx @@ -1,6 +1,8 @@ import React, { useState } from 'react'; import { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary'; import PropTypes from 'prop-types'; +import { useTranslation } from 'react-i18next'; +import i18n from 'i18next'; import Modal from '../Modal'; import Icon from '../Icon'; @@ -9,9 +11,10 @@ import IconButton from '../IconButton'; const isProduction = process.env.NODE_ENV === 'production'; const DefaultFallback = ({ error, context, resetErrorBoundary, fallbackRoute }) => { + const { t } = useTranslation('ErrorBoundary'); const [showDetails, setShowDetails] = useState(false); - const title = `Something went wrong${!isProduction && ` in ${context}`}.`; - const subtitle = `Sorry, something went wrong there. Try again.`; + const title = `${t('Something went wrong')}${!isProduction && ` ${t('in')} ${context}`}.`; + const subtitle = t('Sorry, something went wrong there. Try again.'); return (
    {subtitle}

    {!isProduction && (
    -

    Context: {context}

    -

    Error Message: {error.message}

    +

    {t('Context')}: {context}

    +

    {t('Error Message')}: {error.message}

    setShowDetails(!showDetails)} > -
    {'Stack Trace'}
    +
    {t('Stack Trace')}
    { setIsOpen(false); if (fallbackRoute && typeof window !== 'undefined') { diff --git a/platform/ui/src/components/HotkeysPreferences/hotkeysValidators.js b/platform/ui/src/components/HotkeysPreferences/hotkeysValidators.js index be56d247e..0df0f5dee 100644 --- a/platform/ui/src/components/HotkeysPreferences/hotkeysValidators.js +++ b/platform/ui/src/components/HotkeysPreferences/hotkeysValidators.js @@ -1,4 +1,5 @@ import { MODIFIER_KEYS, DISALLOWED_COMBINATIONS } from './hotkeysConfig'; +import i18n from 'i18next'; const formatPressedKeys = pressedKeysArray => pressedKeysArray.join('+'); @@ -20,8 +21,8 @@ const findConflictingCommand = (hotkeys, currentCommandName, pressedKeys) => { }; const ERROR_MESSAGES = { - MODIFIER: "It's not possible to define only modifier keys (ctrl, alt and shift) as a shortcut", - EMPTY: "Field can't be empty.", + MODIFIER: i18n.t('HotkeysValidators:It\'s not possible to define only modifier keys (ctrl, alt and shift) as a shortcut'), + EMPTY: i18n.t('HotkeysValidators:Field can\'t be empty'), }; // VALIDATORS @@ -46,7 +47,7 @@ const conflictingValidator = ({ commandName, pressedKeys, hotkeys }) => { if (conflictingCommand) { return { - error: `"${conflictingCommand.label}" is already using the "${pressedKeys}" shortcut.`, + error: i18n.t('HotkeysValidators:Hotkey is already in use', {action: conflictingCommand.label, pressedKeys: pressedKeys }), }; } }; @@ -62,7 +63,7 @@ const disallowedValidator = ({ pressedKeys = [] }) => { if (hasDisallowedCombinations) { return { - error: `"${formatPressedKeys(pressedKeys)}" shortcut combination is not allowed`, + error: i18n.t('HotkeysValidators:Shortcut combination is not allowed', {pressedKeys: formatPressedKeys(pressedKeys)}), }; } }; diff --git a/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx b/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx index ed806c76f..c50714955 100644 --- a/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx @@ -1,7 +1,9 @@ import React from 'react'; import Icon from '../Icon'; +import { useTranslation } from 'react-i18next'; function AddSegmentRow({ onClick }) { + const { t } = useTranslation('SegmentationTable'); return (
    - Add Segment + {t('Add segment')}
diff --git a/platform/ui/src/components/SegmentationGroupTable/NoSegmentationRow.tsx b/platform/ui/src/components/SegmentationGroupTable/NoSegmentationRow.tsx index 05233dcc0..5e6b74e19 100644 --- a/platform/ui/src/components/SegmentationGroupTable/NoSegmentationRow.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/NoSegmentationRow.tsx @@ -1,7 +1,9 @@ import React from 'react'; import Icon from '../Icon'; +import { useTranslation } from 'react-i18next'; function NoSegmentationRow({ onSegmentationAdd }) { + const { t } = useTranslation('SegmentationTable'); return (
- Add Segmentation + {t('Add segmentation')}
); diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx index c56260c31..622b92196 100644 --- a/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx @@ -4,6 +4,7 @@ import InputRange from '../InputRange'; import CheckBox from '../CheckBox'; import InputNumber from '../InputNumber'; import classNames from 'classnames'; +import { useTranslation } from 'react-i18next'; const getRoundedValue = value => { return Math.round(value * 100) / 100; @@ -17,19 +18,20 @@ const ActiveSegmentationConfig = ({ setRenderFill, setFillAlpha, }) => { + const { t } = useTranslation('SegmentationTable'); return (
-
Active
+
{t('Active')}
-
Opacity
+
{t('Opacity')}
-
Size
+
{t('Size')}
{ + const { t } = useTranslation('SegmentationTable'); return (
- Opacity + {t('Opacity')} { + const { t } = useTranslation('SegmentationTable'); const { initialConfig } = segmentationConfig; const [isMinimized, setIsMinimized] = useState(true); return ( @@ -144,7 +148,7 @@ const SegmentationConfig = ({ 'rotate-90 transform': !isMinimized, })} /> - {'Inactive Segmentations'} + {t('Inactive segmentations')}
{!isMinimized && ( { onSegmentationAdd(); }, @@ -56,7 +58,7 @@ function SegmentationDropDownRow({ ...(!disableEditing ? [ { - title: 'Rename', + title: t('Rename'), onClick: () => { onSegmentationEdit(activeSegmentation.id); }, @@ -64,7 +66,7 @@ function SegmentationDropDownRow({ ] : []), { - title: 'Delete', + title: t('Delete'), onClick: () => { onSegmentationDelete(activeSegmentation.id); }, @@ -72,7 +74,7 @@ function SegmentationDropDownRow({ ...(!disableEditing ? [ { - title: 'Export DICOM SEG', + title: t('Export DICOM SEG'), onClick: () => { storeSegmentation(activeSegmentation.id); }, @@ -81,13 +83,13 @@ function SegmentationDropDownRow({ : []), ...[ { - title: 'Download DICOM SEG', + title: t('Download DICOM SEG'), onClick: () => { onSegmentationDownload(activeSegmentation.id); }, }, { - title: 'Download DICOM RTSTRUCT', + title: t('Download DICOM RTSTRUCT'), onClick: () => { onSegmentationDownloadRTSS(activeSegmentation.id); }, diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx index 295a79514..2ea0bcb00 100644 --- a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx @@ -6,6 +6,7 @@ import SegmentationDropDownRow from './SegmentationDropDownRow'; import NoSegmentationRow from './NoSegmentationRow'; import AddSegmentRow from './AddSegmentRow'; import SegmentationGroupSegment from './SegmentationGroupSegment'; +import { useTranslation } from 'react-i18next'; const SegmentationGroupTable = ({ segmentations, @@ -70,11 +71,12 @@ const SegmentationGroupTable = ({ const activeSegmentation = segmentations?.find( segmentation => segmentation.id === activeSegmentationId ); + const { t } = useTranslation('SegmentationTable'); return (
{ }; const SidePanel = ({ side, className, activeTabIndex: activeTabIndexProp, tabs, onOpen }) => { - const { t } = useTranslation('SidePanel'); - const [panelOpen, setPanelOpen] = useState(activeTabIndexProp !== null); const [activeTabIndex, setActiveTabIndex] = useState(0); diff --git a/platform/ui/src/components/StudyItem/StudyItem.tsx b/platform/ui/src/components/StudyItem/StudyItem.tsx index 6e7804fab..9325e5b01 100644 --- a/platform/ui/src/components/StudyItem/StudyItem.tsx +++ b/platform/ui/src/components/StudyItem/StudyItem.tsx @@ -1,6 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; +import { useTranslation } from 'react-i18next'; import Icon from '../Icon'; @@ -16,6 +17,7 @@ const StudyItem = ({ isActive, onClick, }) => { + const { t } = useTranslation('StudyItem'); return (
- {trackedSeries} Tracked Series + {t('Tracked series', {trackedSeries: trackedSeries})}
)} diff --git a/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx b/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx index 8db3d8393..b322eba17 100644 --- a/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx +++ b/platform/ui/src/components/StudyListFilter/StudyListFilter.tsx @@ -48,7 +48,7 @@ const StudyListFilter = ({ onClick={onUploadClick} > - Upload + {t('Upload')}
)}
@@ -67,6 +67,12 @@ const StudyListFilter = ({ {t('ClearFilters')} )} + + {`${t('Number of studies')}: `} + {numOfStudies > 100 ? '>100' : numOfStudies} - - {t('Number of studies')} -
@@ -99,7 +99,7 @@ const StudyListFilter = ({ {numOfStudies > 100 && (
-

{t('NumOfStudiesHiggerThan100Message')}

+

{t('Filter list to 100 studies or less to enable sorting')}

)} diff --git a/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx b/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx index 0f56e20ee..2db59fb64 100644 --- a/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx +++ b/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx @@ -6,8 +6,9 @@ import Icon from '../Icon'; import Thumbnail from '../Thumbnail'; import Tooltip from '../Tooltip'; import { StringNumber } from '../../types'; +import { useTranslation } from 'react-i18next'; -const ThumbnailTracked = ({ +function ThumbnailTracked ({ displaySetInstanceUID, className, imageSrc, @@ -24,7 +25,8 @@ const ThumbnailTracked = ({ viewportIdentificator, isTracked, isActive, -}) => { +}) { + const { t } = useTranslation('ThumbnailTracked'); const trackedIcon = isTracked ? 'circled-checkmark' : 'dotted-circle'; const viewportIdentificatorLabel = viewportIdentificator.join(', '); const renderViewportLabels = () => { @@ -42,7 +44,7 @@ const ThumbnailTracked = ({ position="right" content={
- Series is displayed
in viewport {viewportIdentificatorLabel} + {`${t('Viewport')}: ${viewportIdentificatorLabel}`}
} > @@ -85,13 +87,11 @@ const ThumbnailTracked = ({
- Series is - {isTracked ? ' tracked' : ' untracked'} + {isTracked ? t('Series is tracked') : t('Series is untracked')} {!!viewportIdentificator.length && ( - in viewport - {viewportIdentificatorLabel} + {`${t('Viewport')}: ${viewportIdentificatorLabel}`} )}
diff --git a/platform/ui/src/components/TooltipClipboard/TooltipClipboard.tsx b/platform/ui/src/components/TooltipClipboard/TooltipClipboard.tsx index 43688b905..c48755363 100644 --- a/platform/ui/src/components/TooltipClipboard/TooltipClipboard.tsx +++ b/platform/ui/src/components/TooltipClipboard/TooltipClipboard.tsx @@ -1,4 +1,5 @@ import React, { useState, useRef, useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; import PropTypes from 'prop-types'; import classnames from 'classnames'; @@ -9,6 +10,8 @@ const DELAY_TO_HIDE = 10; // it needs at least a little delay to prevent tooltip const DELAY_TO_HIDE_AFTER_COPYING = 1000; const TooltipClipboard = ({ children, text }) => { + const { t } = useTranslation('TooltipClipboard'); + const [isActive, setIsActive] = useState(false); const [message, setMessage] = useState(null); const [isCopying, setIsCopying] = useState(false); @@ -21,10 +24,10 @@ const TooltipClipboard = ({ children, text }) => { setIsCopying(true); try { await navigator.clipboard.writeText(text); - setMessage('Copied!'); + setMessage(t('Copied')); } catch (err) { console.error('Failed to copy: ', err); - setMessage('Failed to copy!'); + setMessage(t('Failed to copy')); } finally { refreshElementPosition(); From 805c53270f243ec61f142a3ffa0af500021cd5ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Wed, 13 Dec 2023 11:25:41 -0300 Subject: [PATCH 090/289] fix: address and improve system vulnerabilities (#3851) --- modes/segmentation/package.json | 8 +- package.json | 9 +- platform/cli/package.json | 2 +- .../cli/templates/extension/dependencies.json | 8 +- platform/cli/templates/mode/dependencies.json | 6 +- platform/ui/package.json | 2 +- yarn.lock | 1116 +++++++++++++++-- 7 files changed, 997 insertions(+), 154 deletions(-) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 0b52d2071..da4555389 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -39,19 +39,19 @@ "@babel/runtime": "^7.20.13" }, "devDependencies": { - "@babel/core": "^7.21.4", + "@babel/core": "^7.23.2", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-object-rest-spread": "^7.17.3", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.16.7", "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-runtime": "^7.17.0", + "@babel/plugin-transform-runtime": "^7.23.2", "@babel/plugin-transform-typescript": "^7.13.0", - "@babel/preset-env": "^7.16.11", + "@babel/preset-env": "7.23.2", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.13.0", - "babel-eslint": "^8.0.3", + "babel-eslint": "^10.1.0", "babel-loader": "^8.0.0-beta.4", "babel-plugin-inline-react-svg": "^2.0.1", "clean-webpack-plugin": "^4.0.0", diff --git a/package.json b/package.json index fa70a95e4..e4882be7a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "react-dom": "17.0.2" }, "devDependencies": { - "@babel/core": "^7.21.4", + "@babel/core": "^7.23.2", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-object-rest-spread": "^7.17.3", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -73,9 +73,9 @@ "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.16.7", "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-runtime": "^7.17.0", + "@babel/plugin-transform-runtime": "^7.23.2", "@babel/plugin-transform-typescript": "^7.13.0", - "@babel/preset-env": "^7.16.11", + "@babel/preset-env": "^7.23.2", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.13.0", "@types/jest": "^27.5.0", @@ -161,6 +161,7 @@ "trim-newlines": "^5.0.0", "glob-parent": "^6.0.2", "trim": "^1.0.0", - "package-json": "^8.1.0" + "package-json": "^8.1.0", + "sharp": "^0.32.6" } } diff --git a/platform/cli/package.json b/platform/cli/package.json index 6c188a811..6039f9e19 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -18,7 +18,7 @@ "author": "OHIF Contributors", "license": "MIT", "dependencies": { - "@babel/core": "^7.21.4", + "@babel/core": "^7.23.2", "axios": "^0.26.1", "chalk": "^5.0.0", "execa": "^6.0.0", diff --git a/platform/cli/templates/extension/dependencies.json b/platform/cli/templates/extension/dependencies.json index 98b0d1157..661ccf7d7 100644 --- a/platform/cli/templates/extension/dependencies.json +++ b/platform/cli/templates/extension/dependencies.json @@ -32,19 +32,19 @@ "@babel/runtime": "^7.20.13" }, "devDependencies": { - "@babel/core": "^7.21.4", + "@babel/core": "^7.23.2", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-object-rest-spread": "^7.17.3", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.16.7", "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-runtime": "^7.17.0", + "@babel/plugin-transform-runtime": "^7.23.2", "@babel/plugin-transform-typescript": "^7.13.0", - "@babel/preset-env": "^7.16.11", + "@babel/preset-env": "^7.23.2", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.13.0", - "@babel/plugin-proposal-private-property-in-object":"7.21.11", + "@babel/plugin-proposal-private-property-in-object": "7.21.11", "babel-eslint": "9.x", "babel-loader": "^8.2.4", "babel-plugin-inline-react-svg": "^2.0.2", diff --git a/platform/cli/templates/mode/dependencies.json b/platform/cli/templates/mode/dependencies.json index 4270837d9..e76008528 100644 --- a/platform/cli/templates/mode/dependencies.json +++ b/platform/cli/templates/mode/dependencies.json @@ -23,16 +23,16 @@ "@babel/runtime": "^7.20.13" }, "devDependencies": { - "@babel/core": "^7.21.4", + "@babel/core": "^7.23.2", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-object-rest-spread": "^7.17.3", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.16.7", "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-runtime": "^7.17.0", + "@babel/plugin-transform-runtime": "^7.23.2", "@babel/plugin-transform-typescript": "^7.13.0", - "@babel/preset-env": "^7.16.11", + "@babel/preset-env": "^7.23.2", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.13.0", "babel-eslint": "^8.0.3", diff --git a/platform/ui/package.json b/platform/ui/package.json index e1cc44a1a..43c01428e 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -55,7 +55,7 @@ "webpack": "^5.81.0" }, "devDependencies": { - "@babel/core": "^7.21.4", + "@babel/core": "^7.23.2", "@storybook/addon-actions": "^7.2.2", "@storybook/addon-docs": "^7.2.2", "@storybook/addon-essentials": "^7.2.2", diff --git a/yarn.lock b/yarn.lock index 8c5df712b..bc43ce4f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -172,13 +172,6 @@ dependencies: default-browser-id "3.0.0" -"@babel/code-frame@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" - integrity sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g== - dependencies: - "@babel/highlight" "7.0.0-beta.44" - "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -201,11 +194,24 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.23.2", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -228,7 +234,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.18.6", "@babel/core@^7.19.6", "@babel/core@^7.21.4", "@babel/core@^7.22.9", "@babel/core@^7.7.5": +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.18.6", "@babel/core@^7.19.6", "@babel/core@^7.22.9", "@babel/core@^7.7.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== @@ -249,16 +255,26 @@ json5 "^2.2.2" semver "^6.3.1" -"@babel/generator@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" - integrity sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ== +"@babel/core@^7.23.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" + integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== dependencies: - "@babel/types" "7.0.0-beta.44" - jsesc "^2.5.1" - lodash "^4.2.0" - source-map "^0.5.0" - trim-right "^1.0.1" + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.6" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" "@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": version "7.22.9" @@ -270,12 +286,12 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" - integrity "sha1-huboPZWQP752E/RIYTuLMZ8zCo4= sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==" +"@babel/generator@^7.23.0", "@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.23.3" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -287,6 +303,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" @@ -305,6 +328,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" @@ -320,6 +354,21 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" + integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" @@ -329,6 +378,15 @@ regexpu-core "^5.3.1" semver "^6.3.1" +"@babel/helper-create-regexp-features-plugin@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + "@babel/helper-define-polyfill-provider@^0.4.2": version "0.4.2" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" @@ -340,6 +398,17 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" @@ -350,15 +419,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-function-name@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" - integrity sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg== - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.44" - "@babel/template" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - "@babel/helper-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" @@ -375,13 +435,6 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.23.0" -"@babel/helper-get-function-arity@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" - integrity sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw== - dependencies: - "@babel/types" "7.0.0-beta.44" - "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -389,6 +442,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + "@babel/helper-member-expression-to-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" @@ -403,7 +463,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.16.7": +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== @@ -421,6 +481,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.5" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -438,6 +509,15 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + "@babel/helper-remap-async-to-generator@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" @@ -447,6 +527,15 @@ "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-wrap-function" "^7.22.9" +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" @@ -470,13 +559,6 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" - integrity sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA== - dependencies: - "@babel/types" "7.0.0-beta.44" - "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" @@ -489,6 +571,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.22.19", "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" @@ -499,11 +586,25 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + "@babel/helper-validator-option@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + "@babel/helper-wrap-function@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" @@ -522,14 +623,14 @@ "@babel/traverse" "^7.22.6" "@babel/types" "^7.22.5" -"@babel/highlight@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" - integrity sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ== +"@babel/helpers@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" + integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" "@babel/highlight@^7.10.4", "@babel/highlight@^7.22.5": version "7.22.5" @@ -549,16 +650,37 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": version "7.22.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== -"@babel/parser@^7.22.15", "@babel/parser@^7.23.3": +"@babel/parser@^7.22.15": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" integrity "sha1-DOC+MaTKTxiEtXhgV8rctsO+WPk= sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==" +"@babel/parser@^7.23.0", "@babel/parser@^7.23.6", "@babel/parser@^7.7.0": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -566,6 +688,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" @@ -575,6 +706,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.22.5" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" + integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" @@ -707,6 +846,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-import-attributes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" @@ -714,6 +860,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -820,6 +973,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-async-generator-functions@^7.22.7": version "7.22.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" @@ -830,6 +990,16 @@ "@babel/helper-remap-async-to-generator" "^7.22.5" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-transform-async-generator-functions@^7.23.2", "@babel/plugin-transform-async-generator-functions@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" @@ -839,6 +1009,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" @@ -846,6 +1025,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-block-scoping@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" @@ -853,6 +1039,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-block-scoping@^7.23.0", "@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-class-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" @@ -861,6 +1054,23 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.11", "@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-transform-class-static-block@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" @@ -870,6 +1080,21 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" +"@babel/plugin-transform-classes@^7.22.15", "@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + "@babel/plugin-transform-classes@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" @@ -893,6 +1118,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/plugin-transform-destructuring@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" @@ -900,6 +1133,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-destructuring@^7.23.0", "@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" @@ -908,6 +1148,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-duplicate-keys@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" @@ -915,6 +1163,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.22.11", "@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-dynamic-import@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" @@ -931,6 +1194,22 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.22.11", "@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-export-namespace-from@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" @@ -947,6 +1226,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-flow" "^7.22.5" +"@babel/plugin-transform-for-of@^7.22.15", "@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-for-of@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" @@ -963,6 +1250,23 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.22.11", "@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-transform-json-strings@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" @@ -978,6 +1282,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-logical-assignment-operators@^7.22.11", "@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-transform-logical-assignment-operators@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" @@ -993,6 +1312,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-modules-amd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" @@ -1001,6 +1327,14 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-modules-amd@^7.23.0", "@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" @@ -1010,6 +1344,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" +"@babel/plugin-transform-modules-commonjs@^7.23.0", "@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/plugin-transform-modules-systemjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" @@ -1020,6 +1363,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" +"@babel/plugin-transform-modules-systemjs@^7.23.0", "@babel/plugin-transform-modules-systemjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" + integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/plugin-transform-modules-umd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" @@ -1028,6 +1381,14 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" @@ -1043,6 +1404,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11", "@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" @@ -1051,6 +1427,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-transform-numeric-separator@^7.22.11", "@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-transform-numeric-separator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" @@ -1059,6 +1443,17 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" +"@babel/plugin-transform-object-rest-spread@^7.22.15", "@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== + dependencies: + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-object-rest-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" @@ -1078,6 +1473,22 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.5" +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + +"@babel/plugin-transform-optional-catch-binding@^7.22.11", "@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-transform-optional-catch-binding@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" @@ -1095,6 +1506,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/plugin-transform-optional-chaining@^7.23.0", "@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" @@ -1102,6 +1522,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-parameters@^7.22.15", "@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-private-methods@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" @@ -1110,6 +1537,24 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-transform-private-property-in-object@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" @@ -1127,6 +1572,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-constant-elements@^7.12.1", "@babel/plugin-transform-react-constant-elements@^7.18.12": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29" @@ -1175,6 +1627,14 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.1" +"@babel/plugin-transform-regenerator@^7.22.10", "@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" @@ -1182,7 +1642,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@^7.17.0", "@babel/plugin-transform-runtime@^7.18.6": +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-runtime@^7.18.6": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== @@ -1194,6 +1661,18 @@ babel-plugin-polyfill-regenerator "^0.5.1" semver "^6.3.1" +"@babel/plugin-transform-runtime@^7.23.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz#bf853cd0a675c16ee33e6ba2a63b536e75e5d754" + integrity sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" + semver "^6.3.1" + "@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" @@ -1201,6 +1680,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" @@ -1209,6 +1695,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-sticky-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" @@ -1216,6 +1710,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-template-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" @@ -1223,6 +1724,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-typeof-symbol@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" @@ -1230,6 +1738,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-typescript@^7.13.0", "@babel/plugin-transform-typescript@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234" @@ -1240,6 +1755,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" +"@babel/plugin-transform-unicode-escapes@^7.22.10", "@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-escapes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" @@ -1255,6 +1777,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" @@ -1263,6 +1793,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" @@ -1271,7 +1809,101 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.11", "@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4", "@babel/preset-env@^7.22.9": +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" + integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== + dependencies: + "@babel/compat-data" "^7.23.2" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.23.2" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.23.0" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.11" + "@babel/plugin-transform-classes" "^7.22.15" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.23.0" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-for-of" "^7.22.15" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.23.0" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-modules-systemjs" "^7.23.0" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.23.0" + "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.23.0" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4", "@babel/preset-env@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== @@ -1357,6 +1989,92 @@ core-js-compat "^3.31.0" semver "^6.3.1" +"@babel/preset-env@^7.23.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a" + integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" + core-js-compat "^3.31.0" + semver "^6.3.1" + "@babel/preset-flow@^7.13.13", "@babel/preset-flow@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.5.tgz#876f24ab6b38bd79703a93f32020ca2162312784" @@ -1366,6 +2084,15 @@ "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-transform-flow-strip-types" "^7.22.5" +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + "@babel/preset-modules@^0.1.5": version "0.1.6" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" @@ -1439,16 +2166,6 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" - integrity sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - lodash "^4.2.0" - "@babel/template@^7.12.7", "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -1467,46 +2184,37 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" - integrity sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/generator" "7.0.0-beta.44" - "@babel/helper-function-name" "7.0.0-beta.44" - "@babel/helper-split-export-declaration" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.2.0" - "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" - integrity "sha1-Ju5fJS5yWqeso0dKpbMk6veQi1s= sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==" + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== dependencies: "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/generator" "^7.23.0" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" - integrity sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ== +"@babel/traverse@^7.23.6", "@babel/traverse@^7.7.0": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" + integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== dependencies: - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.22.5" @@ -1526,7 +2234,16 @@ "@babel/helper-validator-identifier" "^7.22.19" to-fast-properties "^2.0.0" -"@babel/types@^7.23.0", "@babel/types@^7.23.3": +"@babel/types@^7.22.19", "@babel/types@^7.23.6", "@babel/types@^7.7.0": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@babel/types@^7.23.0": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" integrity "sha1-1eqJLAfy7DcaxwRCD03NsHtflZg= sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==" @@ -6575,6 +7292,11 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" +b4a@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" @@ -6592,17 +7314,17 @@ babel-eslint@9.x: eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" -babel-eslint@^8.0.3: - version "8.2.6" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" - integrity sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA== +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "3.7.1" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" babel-jest@^29.6.1: version "29.6.1" @@ -6728,6 +7450,15 @@ babel-plugin-polyfill-corejs2@^0.4.4: "@babel/helper-define-polyfill-provider" "^0.4.2" semver "^6.3.1" +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" + integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.4" + semver "^6.3.1" + babel-plugin-polyfill-corejs3@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" @@ -6736,6 +7467,14 @@ babel-plugin-polyfill-corejs3@^0.8.2: "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.4" + core-js-compat "^3.33.1" + babel-plugin-polyfill-regenerator@^0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" @@ -6743,6 +7482,13 @@ babel-plugin-polyfill-regenerator@^0.5.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" + integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.4" + babel-plugin-react-docgen@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz#7cc8e2f94e8dc057a06e953162f0810e4e72257b" @@ -6778,11 +7524,6 @@ babel-preset-jest@^29.5.0: babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" - integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== - bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -7021,6 +7762,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.12" update-browserslist-db "^1.0.11" +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -7253,6 +8004,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8" integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA== +caniuse-lite@^1.0.30001565: + version "1.0.30001568" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz#53fa9297273c9a977a560663f48cbea1767518b7" + integrity sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A== + case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" @@ -8014,6 +8770,13 @@ core-js-compat@^3.31.0: dependencies: browserslist "^4.21.9" +core-js-compat@^3.33.1: + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" + integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== + dependencies: + browserslist "^4.22.2" + core-js-pure@^3.23.3, core-js-pure@^3.30.2: version "3.31.1" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.1.tgz#73d154958881873bc19381df80bddb20c8d0cdb5" @@ -8573,7 +9336,7 @@ debug@2.6.9, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -8845,7 +9608,7 @@ detect-indent@^6.1.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-libc@^2.0.0, detect-libc@^2.0.1: +detect-libc@^2.0.0, detect-libc@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== @@ -9269,6 +10032,11 @@ electron-to-chromium@^1.4.431: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.471.tgz#14cb056d0ce4bfa99df57946d57fe46c2330dac3" integrity sha512-GpmGRC1vTl60w/k6YpQ18pSiqnmr0j3un//5TV1idPi6aheNfkT1Ye71tMEabWyNDO6sBMgAR+95Eb0eUUr1tA== +electron-to-chromium@^1.4.601: + version "1.4.611" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz#92d3a8f03110fbf5f99b054da97825f994fa480a" + integrity sha512-ZtRpDxrjHapOwxtv+nuth5ByB8clyn8crVynmRNGO3wG3LOp8RTcyZDqwaI6Ng6y8FCK2hVZmJoqwCskKbNMaw== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -10278,6 +11046,11 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== +fast-fifo@^1.1.0, fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-glob@3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -10841,6 +11614,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -11428,6 +12206,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hast-to-hyperscript@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" @@ -12053,7 +12838,7 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -invariant@^2.2.0, invariant@^2.2.4: +invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -12188,6 +12973,13 @@ is-core-module@^2.1.0, is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-mo dependencies: has "^1.0.3" +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -13136,11 +13928,6 @@ joi@^17.6.0, joi@^17.7.0: "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" -js-tokens@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -13298,7 +14085,7 @@ json5@^1.0.1, json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.1, json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: +json5@^2.1.1, json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -13830,7 +14617,7 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.0.1, lodash@^4.1.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.2.0: +lodash@^4.0.1, lodash@^4.1.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -14977,10 +15764,10 @@ node-addon-api@^3.2.1: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-addon-api@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" - integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== node-dir@^0.1.10, node-dir@^0.1.17: version "0.1.17" @@ -15071,6 +15858,11 @@ node-releases@^2.0.12: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + node-version@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" @@ -17134,6 +17926,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + queue@6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" @@ -17922,6 +18719,13 @@ regenerator-transform@^0.15.1: dependencies: "@babel/runtime" "^7.8.4" +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" @@ -18211,6 +19015,15 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14. path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.12.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" @@ -18692,18 +19505,18 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -sharp@^0.30.7: - version "0.30.7" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.30.7.tgz#7862bda98804fdd1f0d5659c85e3324b90d94c7c" - integrity sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig== +sharp@^0.30.7, sharp@^0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== dependencies: color "^4.2.3" - detect-libc "^2.0.1" - node-addon-api "^5.0.0" + detect-libc "^2.0.2" + node-addon-api "^6.1.0" prebuild-install "^7.1.1" - semver "^7.3.7" + semver "^7.5.4" simple-get "^4.0.1" - tar-fs "^2.1.1" + tar-fs "^3.0.4" tunnel-agent "^0.6.0" shebang-command@^1.2.0: @@ -19214,6 +20027,14 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +streamx@^2.15.0: + version "2.15.6" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.6.tgz#28bf36997ebc7bf6c08f9eba958735231b833887" + integrity sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -19672,6 +20493,15 @@ tar-fs@^2.0.0, tar-fs@^2.1.1: pump "^3.0.0" tar-stream "^2.1.4" +tar-fs@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" + integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== + dependencies: + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^3.1.5" + tar-stream@^2.1.4, tar-stream@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" @@ -19683,6 +20513,15 @@ tar-stream@^2.1.4, tar-stream@~2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" +tar-stream@^3.1.5: + version "3.1.6" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + tar@6.1.11: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -19927,11 +20766,6 @@ trim-newlines@^3.0.0, trim-newlines@^5.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-5.0.0.tgz#fbe350dc9d5fe15e80793b86c09bc7436a3da383" integrity sha512-kstfs+hgwmdsOadN3KgA+C68wPJwnZq4DN6WMDCvZapDWEF34W2TyPKN2v2+BJnZgIz5QOfxFeldLyYvdgRAwg== -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== - trim-trailing-lines@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" @@ -20426,6 +21260,14 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + update-check@1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.4.tgz#5b508e259558f1ad7dbc8b4b0457d4c9d28c8743" From f707b4ebc996f379cd30337badc06b07e6e35ac5 Mon Sep 17 00:00:00 2001 From: Sofien-Sellami <73444179+Sofien-Sellami@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:17:48 +0100 Subject: [PATCH 091/289] feat(config): Add activateViewportBeforeInteraction parameter for viewport interaction customization (#3847) --- .vscode/settings.json | 2 +- modes/basic-dev-mode/package.json | 3 +- modes/basic-test-mode/package.json | 3 +- modes/longitudinal/package.json | 3 +- modes/microscopy/package.json | 3 +- modes/segmentation/package.json | 3 +- modes/segmentation/src/index.tsx | 3 +- modes/tmtv/package.json | 3 +- platform/app/src/components/ViewportGrid.tsx | 17 +- .../docs/configuration/configurationFiles.md | 1 + yarn.lock | 6369 ++++++++--------- 11 files changed, 2843 insertions(+), 3567 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index db08c79b1..84cc76bc2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -31,6 +31,6 @@ "prettier.endOfLine": "lf", "workbench.colorCustomizations": {}, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" } } diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 3352049ed..3731dfa0b 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -37,7 +37,8 @@ "@ohif/extension-dicom-video": "3.8.0-beta.28" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "i18next": "^17.0.3" }, "devDependencies": { "webpack": "^5.50.0", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 97c5d14b1..06e2c401a 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -42,7 +42,8 @@ "@ohif/extension-test": "3.8.0-beta.28" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "i18next": "^17.0.3" }, "devDependencies": { "webpack": "^5.50.0", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 1d80f738f..8f2e64e65 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -43,7 +43,8 @@ "@ohif/extension-measurement-tracking": "3.8.0-beta.28" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "i18next": "^17.0.3" }, "devDependencies": { "webpack": "^5.50.0", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index d735951ab..778659601 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -37,6 +37,7 @@ "@ohif/extension-dicom-microscopy": "3.8.0-beta.28" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "i18next": "^17.0.3" } } diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index da4555389..d68701936 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -36,7 +36,8 @@ "@ohif/core": "3.8.0-beta.28" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "i18next": "^17.0.3" }, "devDependencies": { "@babel/core": "^7.23.2", diff --git a/modes/segmentation/src/index.tsx b/modes/segmentation/src/index.tsx index 7e00a266a..8b24196f1 100644 --- a/modes/segmentation/src/index.tsx +++ b/modes/segmentation/src/index.tsx @@ -2,7 +2,6 @@ import { hotkeys } from '@ohif/core'; import { id } from './id'; import toolbarButtons from './toolbarButtons'; import initToolGroups from './initToolGroups'; -import i18n from 'i18next'; const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', @@ -45,7 +44,7 @@ function modeFactory({ modeConfiguration }) { * Mode name, which is displayed in the viewer's UI in the workList, for the * user to select the mode. */ - displayName: i18n.t('Modes:Segmentation'), + displayName: 'Segmentation', /** * Runs when the Mode Route is mounted to the DOM. Usually used to initialize * Services and other resources. diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 8f3925b9c..f5ad0a404 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -41,7 +41,8 @@ "@ohif/extension-measurement-tracking": "3.8.0-beta.28" }, "dependencies": { - "@babel/runtime": "^7.20.13" + "@babel/runtime": "^7.20.13", + "i18next": "^17.0.3" }, "devDependencies": { "webpack": "^5.50.0", diff --git a/platform/app/src/components/ViewportGrid.tsx b/platform/app/src/components/ViewportGrid.tsx index e6e1c2394..ac43a24d8 100644 --- a/platform/app/src/components/ViewportGrid.tsx +++ b/platform/app/src/components/ViewportGrid.tsx @@ -1,9 +1,10 @@ -import React, { useEffect, useCallback } from 'react'; +import React, {useEffect, useCallback, useMemo} from 'react'; import PropTypes from 'prop-types'; import { ServicesManager, Types, MeasurementService } from '@ohif/core'; import { ViewportGrid, ViewportPane, useViewportGrid } from '@ohif/ui'; import EmptyViewport from './EmptyViewport'; import classNames from 'classnames'; +import { useAppConfig } from '@state'; function ViewerViewportGrid(props) { const { servicesManager, viewportComponents, dataSource } = props; @@ -17,6 +18,18 @@ function ViewerViewportGrid(props) { servicesManager as ServicesManager ).services; + /** + * Determine whether users need to use the tools directly, or whether they need to click once to activate the viewport before using tools. + * If 'activateViewportBeforeInteraction' is available in the 'window.config' object, use its value; + * otherwise, default to true. + * If true, users need to click once to activate the viewport before using the tools. + * if false, tools can be used directly. + */ + const activateViewportBeforeInteraction = useMemo(() => { + const [appConfig] = useAppConfig(); + return appConfig?.activateViewportBeforeInteraction ?? true; + }, []); + /** * This callback runs after the viewports structure has changed in any way. * On initial display, that means if it has changed by applying a HangingProtocol, @@ -311,7 +324,7 @@ function ViewerViewportGrid(props) {
Points to consider while using `dangerouslyUseDynamicConfig`:
diff --git a/yarn.lock b/yarn.lock index bc43ce4f9..bf3c66eec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,9 +8,9 @@ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@adobe/css-tools@^4.0.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" - integrity "sha1-q/zLjKeAdaK2GHNFwmJDwaCELyg= sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==" + version "4.3.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11" + integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw== "@algolia/autocomplete-core@1.9.3": version "1.9.3" @@ -39,114 +39,114 @@ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== -"@algolia/cache-browser-local-storage@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz#d29f42775ed4d117182897ac164519c593faf399" - integrity sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw== +"@algolia/cache-browser-local-storage@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.21.1.tgz#ecd8e6fe9a6ecbb63c9c29a9574e47315846347e" + integrity sha512-vUkac/vgj8inyGR/IgunRjTOQ6IlBwl7afFkIfUZRqbqKKXBs+A/g5wgH+UnAlCSW8wjFRAIfCzuvSRb1/qjsQ== dependencies: - "@algolia/cache-common" "4.19.1" + "@algolia/cache-common" "4.21.1" -"@algolia/cache-common@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.19.1.tgz#faa5eeacaffd6023c2cf26e9866bdb06193f9b26" - integrity sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg== +"@algolia/cache-common@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.21.1.tgz#86b9f5c8b5c21b7a6479d388e04678408a449e65" + integrity sha512-HUo4fRk8KXFMyCASW0k+Kl8iXBoRPdqAjV9OVaFibTNg1dbwnpe6eIxbSTM6AJ2X82ic/8x3GuAO8zF/E515PA== -"@algolia/cache-in-memory@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz#afe4f0f21149800358379871089e0141fb72415b" - integrity sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w== +"@algolia/cache-in-memory@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.21.1.tgz#dfd3249c4887250fdceb76191b05ba95b94821b3" + integrity sha512-+l2pLg6yIwRaGNtv41pGF/f/e9Qk80FeYE41f4OXS9lb5vpyrxzqM5nUaffWk/ZSFrPDuw5J2E226c//tIIffA== dependencies: - "@algolia/cache-common" "4.19.1" + "@algolia/cache-common" "4.21.1" -"@algolia/client-account@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.19.1.tgz#1fa65881baab79ad35af6bcf44646a13b8d5edc9" - integrity sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA== +"@algolia/client-account@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.21.1.tgz#60e5225ea4b4440219030775dcb1b9bd3ad92e54" + integrity sha512-AC6SjA9n38th73gAUqcjsuxNUChpwaflaAhPL0qO9cUICN67njpQrnYaoSVZ/yx0opG5zQFRKbpEcuPGj0XjhQ== dependencies: - "@algolia/client-common" "4.19.1" - "@algolia/client-search" "4.19.1" - "@algolia/transporter" "4.19.1" + "@algolia/client-common" "4.21.1" + "@algolia/client-search" "4.21.1" + "@algolia/transporter" "4.21.1" -"@algolia/client-analytics@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.19.1.tgz#e6ed79acd4de5a0284c9696bf4e1c25278ba34db" - integrity sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg== +"@algolia/client-analytics@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.21.1.tgz#400d7defd32e8312ccdf8cd41533055f5ab4f52a" + integrity sha512-q6AxvAcBl4fNZXZsMwRRQXcsxUv0PK5eUAz/lHDvgkMWAg6cP7Fl+WIq0fHcG7cJA4EHf2sT5fV6Z+yUlf7NfA== dependencies: - "@algolia/client-common" "4.19.1" - "@algolia/client-search" "4.19.1" - "@algolia/requester-common" "4.19.1" - "@algolia/transporter" "4.19.1" + "@algolia/client-common" "4.21.1" + "@algolia/client-search" "4.21.1" + "@algolia/requester-common" "4.21.1" + "@algolia/transporter" "4.21.1" -"@algolia/client-common@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.19.1.tgz#40a8387316fa61d62ad1091beb3a8e227f008e75" - integrity sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA== +"@algolia/client-common@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.21.1.tgz#20798c96c1d45078648bf28dfb84e50cd13a5d94" + integrity sha512-LOH7ncYwY/x7epOgxc/MIuV7m3qzl00wIjDG5/9rgImFpkV0X+D/ndJI9DmPsIx7yaTLd5xv/XYuKLcvrUR0eQ== dependencies: - "@algolia/requester-common" "4.19.1" - "@algolia/transporter" "4.19.1" + "@algolia/requester-common" "4.21.1" + "@algolia/transporter" "4.21.1" -"@algolia/client-personalization@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.19.1.tgz#fe362e0684dc74c3504c3641c5a7488c6ae02e07" - integrity sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw== +"@algolia/client-personalization@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.21.1.tgz#55ed8edb8258b2f4b05bfc37d454dca9209bb106" + integrity sha512-u2CyQjHbyVwPqM5eSXd/o+rh1Pk949P/MO6s+OxyEGg6/R2YpYvmsafVZl9Q+xqT8pFaf5QygfcqlSdMUDHV5Q== dependencies: - "@algolia/client-common" "4.19.1" - "@algolia/requester-common" "4.19.1" - "@algolia/transporter" "4.19.1" + "@algolia/client-common" "4.21.1" + "@algolia/requester-common" "4.21.1" + "@algolia/transporter" "4.21.1" -"@algolia/client-search@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.19.1.tgz#5e54601aa5f5cea790cec3f2cde4af9d6403871e" - integrity sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw== +"@algolia/client-search@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.21.1.tgz#b08f6ccfaf404530e3e5a38e8492a635ff15153f" + integrity sha512-3KqSmMkQmF+ACY/Ms5TdcvrcK8iqgQP/N0EPnNUUP4LMUzAACpLLTdzA+AtCuc6oaz5ITtGJBVdPUljj5Jf/Lg== dependencies: - "@algolia/client-common" "4.19.1" - "@algolia/requester-common" "4.19.1" - "@algolia/transporter" "4.19.1" + "@algolia/client-common" "4.21.1" + "@algolia/requester-common" "4.21.1" + "@algolia/transporter" "4.21.1" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/logger-common@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.19.1.tgz#0e46a11510f3e94e1afc0ac780ae52e9597be78f" - integrity sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw== +"@algolia/logger-common@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.21.1.tgz#b0979321592af12b986aea2b7ac4fc368920860f" + integrity sha512-9AyYpR2OO9vPkkDlpTtW2/6nX+RmMd7LUwzJiAF3uN+BYUiQqgXEp+oGaH8UC0dgetmK7wJO6hw4b39cnTdEpw== -"@algolia/logger-console@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.19.1.tgz#656a6f4ebb5de39af6ef7095c398d9ab3cceb87d" - integrity sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg== +"@algolia/logger-console@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.21.1.tgz#59bdceab3d93ed478e4cb61cfe8f951cb9ef1487" + integrity sha512-9wizQiQ8kL4DiBmT82i403UwacNuv+0hpfsfaWYZQrGjpzG+yvXETWM4AgwFZLj007esuKQiGfOPUoYFZNkGGA== dependencies: - "@algolia/logger-common" "4.19.1" + "@algolia/logger-common" "4.21.1" -"@algolia/requester-browser-xhr@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz#7341ea2f980b8980a2976110142026721e452187" - integrity sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg== +"@algolia/requester-browser-xhr@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.21.1.tgz#c841a76f64171d3b892aea16e23d819b7f6a8e0a" + integrity sha512-9NudesJLuXtRHV+JD8fTkrsdVj/oAPQbtLnxBbSQeMduzV6+a7W+G9VuWo5fwFymCdXR8/Hb6jy8D1owQIq5Gw== dependencies: - "@algolia/requester-common" "4.19.1" + "@algolia/requester-common" "4.21.1" -"@algolia/requester-common@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.19.1.tgz#f3396c77631b9d36e8d4d6f819a2c27f9ddbf7a1" - integrity sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ== +"@algolia/requester-common@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.21.1.tgz#5fd9acce9faa8b931f91b0e86e384956874c3c43" + integrity sha512-KtX2Ep3C43XxoN3xKw755cdf9enE6gPgzh6ufZQRJBl4rYCOoXbiREU6noDYX/Nq+Q+sl03V37WAp0YgtIlh9g== -"@algolia/requester-node-http@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz#ea210de9642628b3bdda1dd7fcd1fcb686da442e" - integrity sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA== +"@algolia/requester-node-http@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.21.1.tgz#a39a0003e7697009da032238d2b3134a65ec9fae" + integrity sha512-EcD8cY6Bh2iMySpqXglTKU9+pt+km1ws3xF0V7CGMIUzW1HmN/ZVhi4apCBY4tEMytbyARv0XRTPsolSC4gSSw== dependencies: - "@algolia/requester-common" "4.19.1" + "@algolia/requester-common" "4.21.1" -"@algolia/transporter@4.19.1": - version "4.19.1" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.19.1.tgz#b5787299740c4bec9ba05502d98c14b5999860c8" - integrity sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ== +"@algolia/transporter@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.21.1.tgz#ffe43fb9d03c042aed89cec793687a41278fd35e" + integrity sha512-KGLFKz8krzOWRwcbR4FT49Grh1dES/mG8dHABEojbvrfUb6kUFxkAee/aezp2GIxuNx+gpQjRn1IzOsqbUZL0A== dependencies: - "@algolia/cache-common" "4.19.1" - "@algolia/logger-common" "4.19.1" - "@algolia/requester-common" "4.19.1" + "@algolia/cache-common" "4.21.1" + "@algolia/logger-common" "4.21.1" + "@algolia/requester-common" "4.21.1" "@ampproject/remapping@^2.2.0": version "2.2.1" @@ -179,22 +179,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.8.3": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -202,12 +187,7 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== - -"@babel/compat-data@^7.23.2", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.2", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== @@ -234,28 +214,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.18.6", "@babel/core@^7.19.6", "@babel/core@^7.22.9", "@babel/core@^7.7.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.1" - -"@babel/core@^7.23.2": +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.6", "@babel/core@^7.18.9", "@babel/core@^7.19.6", "@babel/core@^7.23.0", "@babel/core@^7.23.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== @@ -276,17 +235,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0", "@babel/generator@^7.23.6": +"@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.23.0", "@babel/generator@^7.23.6", "@babel/generator@^7.7.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== @@ -310,25 +259,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -339,22 +270,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" - integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.22.15": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== @@ -369,16 +285,7 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" - integrity sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.22.15": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== @@ -387,17 +294,6 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" - integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - "@babel/helper-define-polyfill-provider@^0.4.4": version "0.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" @@ -414,20 +310,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-function-name@^7.23.0": +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== @@ -449,39 +332,14 @@ dependencies: "@babel/types" "^7.23.0" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" - -"@babel/helper-module-transforms@^7.23.3": +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== @@ -518,15 +376,6 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" - integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.9" - "@babel/helper-replace-supers@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" @@ -536,15 +385,6 @@ "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" - integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -552,7 +392,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== @@ -566,36 +406,21 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - "@babel/helper-string-parser@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== -"@babel/helper-validator-identifier@^7.22.19", "@babel/helper-validator-identifier@^7.22.20": +"@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - "@babel/helper-wrap-function@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" @@ -605,25 +430,7 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helper-wrap-function@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" - integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helpers@^7.12.5", "@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" - -"@babel/helpers@^7.23.6": +"@babel/helpers@^7.12.5", "@babel/helpers@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== @@ -632,25 +439,7 @@ "@babel/traverse" "^7.23.6" "@babel/types" "^7.23.6" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.23.4": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== @@ -659,17 +448,7 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== - -"@babel/parser@^7.22.15": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" - integrity "sha1-DOC+MaTKTxiEtXhgV8rctsO+WPk= sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==" - -"@babel/parser@^7.23.0", "@babel/parser@^7.23.6", "@babel/parser@^7.7.0": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.23.6", "@babel/parser@^7.7.0": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== @@ -681,13 +460,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" @@ -697,15 +469,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" @@ -714,7 +477,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.7": +"@babel/plugin-proposal-class-properties@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -722,14 +485,6 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" @@ -750,15 +505,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" @@ -782,14 +528,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -832,35 +570,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== +"@babel/plugin-syntax-flow@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz#084564e0f3cc21ea6c70c44cff984a1c0509729a" + integrity sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-assertions@^7.23.3": +"@babel/plugin-syntax-import-assertions@^7.22.5", "@babel/plugin-syntax-import-assertions@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.23.3": +"@babel/plugin-syntax-import-attributes@^7.22.5", "@babel/plugin-syntax-import-attributes@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== @@ -888,10 +612,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -951,10 +675,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -966,30 +690,13 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.16.7", "@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-arrow-functions@^7.23.3": +"@babel/plugin-transform-arrow-functions@^7.16.7", "@babel/plugin-transform-arrow-functions@^7.22.5", "@babel/plugin-transform-arrow-functions@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-transform-async-generator-functions@^7.23.2", "@babel/plugin-transform-async-generator-functions@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" @@ -1000,16 +707,7 @@ "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - -"@babel/plugin-transform-async-to-generator@^7.23.3": +"@babel/plugin-transform-async-to-generator@^7.22.5", "@babel/plugin-transform-async-to-generator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== @@ -1018,27 +716,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoped-functions@^7.23.3": +"@babel/plugin-transform-block-scoped-functions@^7.22.5", "@babel/plugin-transform-block-scoped-functions@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-block-scoping@^7.23.0", "@babel/plugin-transform-block-scoping@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" @@ -1046,15 +730,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.23.3": +"@babel/plugin-transform-class-properties@^7.22.5", "@babel/plugin-transform-class-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== @@ -1071,15 +747,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-transform-classes@^7.22.15", "@babel/plugin-transform-classes@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" @@ -1095,30 +762,7 @@ "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - -"@babel/plugin-transform-computed-properties@^7.23.3": +"@babel/plugin-transform-computed-properties@^7.22.5", "@babel/plugin-transform-computed-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== @@ -1126,13 +770,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.15" -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-destructuring@^7.23.0", "@babel/plugin-transform-destructuring@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" @@ -1140,15 +777,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dotall-regex@^7.23.3": +"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== @@ -1156,14 +785,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-duplicate-keys@^7.23.3": +"@babel/plugin-transform-duplicate-keys@^7.22.5", "@babel/plugin-transform-duplicate-keys@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== @@ -1178,23 +800,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-exponentiation-operator@^7.23.3": +"@babel/plugin-transform-exponentiation-operator@^7.22.5", "@babel/plugin-transform-exponentiation-operator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== @@ -1210,21 +816,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== +"@babel/plugin-transform-flow-strip-types@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz#cfa7ca159cc3306fab526fc67091556b51af26ff" + integrity sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-transform-flow-strip-types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.23.3" "@babel/plugin-transform-for-of@^7.22.15", "@babel/plugin-transform-for-of@^7.23.6": version "7.23.6" @@ -1234,23 +832,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.23.3": +"@babel/plugin-transform-function-name@^7.22.5", "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== @@ -1267,22 +849,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-literals@^7.23.3": +"@babel/plugin-transform-literals@^7.22.5", "@babel/plugin-transform-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== @@ -1297,36 +864,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-member-expression-literals@^7.23.3": +"@babel/plugin-transform-member-expression-literals@^7.22.5", "@babel/plugin-transform-member-expression-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" - integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-modules-amd@^7.23.0", "@babel/plugin-transform-modules-amd@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" @@ -1335,15 +879,6 @@ "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/plugin-transform-modules-commonjs@^7.23.0", "@babel/plugin-transform-modules-commonjs@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" @@ -1353,16 +888,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/plugin-transform-modules-systemjs@^7.23.0", "@babel/plugin-transform-modules-systemjs@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" @@ -1373,15 +898,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-umd@^7.23.3": +"@babel/plugin-transform-modules-umd@^7.22.5", "@babel/plugin-transform-modules-umd@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== @@ -1397,14 +914,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-new-target@^7.23.3": +"@babel/plugin-transform-new-target@^7.22.5", "@babel/plugin-transform-new-target@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== @@ -1419,14 +929,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-transform-numeric-separator@^7.22.11", "@babel/plugin-transform-numeric-separator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" @@ -1435,14 +937,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-transform-object-rest-spread@^7.22.15", "@babel/plugin-transform-object-rest-spread@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" @@ -1454,26 +948,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.23.3" -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" - -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - -"@babel/plugin-transform-object-super@^7.23.3": +"@babel/plugin-transform-object-super@^7.22.5", "@babel/plugin-transform-object-super@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== @@ -1489,23 +964,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-transform-optional-chaining@^7.23.0", "@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" @@ -1515,29 +973,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-parameters@^7.22.15", "@babel/plugin-transform-parameters@^7.23.3": +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.15", "@babel/plugin-transform-parameters@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.23.3": +"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== @@ -1555,24 +998,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-property-literals@^7.23.3": +"@babel/plugin-transform-property-literals@^7.22.5", "@babel/plugin-transform-property-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== @@ -1580,16 +1006,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-constant-elements@^7.12.1", "@babel/plugin-transform-react-constant-elements@^7.18.12": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29" - integrity sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz#5efc001d07ef0f7da0d73c3a86c132f73d28e43c" + integrity sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== +"@babel/plugin-transform-react-display-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -1600,34 +1026,26 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== +"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" - integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== +"@babel/plugin-transform-react-pure-annotations@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" + integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.16.7", "@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-regenerator@^7.22.10", "@babel/plugin-transform-regenerator@^7.23.3": +"@babel/plugin-transform-regenerator@^7.16.7", "@babel/plugin-transform-regenerator@^7.22.10", "@babel/plugin-transform-regenerator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== @@ -1635,33 +1053,14 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-reserved-words@^7.23.3": +"@babel/plugin-transform-reserved-words@^7.22.5", "@babel/plugin-transform-reserved-words@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@^7.18.6": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" - integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" - semver "^6.3.1" - -"@babel/plugin-transform-runtime@^7.23.2": +"@babel/plugin-transform-runtime@^7.18.6", "@babel/plugin-transform-runtime@^7.23.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz#bf853cd0a675c16ee33e6ba2a63b536e75e5d754" integrity sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg== @@ -1673,29 +1072,14 @@ babel-plugin-polyfill-regenerator "^0.5.3" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-shorthand-properties@^7.23.3": +"@babel/plugin-transform-shorthand-properties@^7.22.5", "@babel/plugin-transform-shorthand-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-spread@^7.23.3": +"@babel/plugin-transform-spread@^7.22.5", "@babel/plugin-transform-spread@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== @@ -1703,57 +1087,36 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-sticky-regex@^7.23.3": +"@babel/plugin-transform-sticky-regex@^7.22.5", "@babel/plugin-transform-sticky-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-template-literals@^7.23.3": +"@babel/plugin-transform-template-literals@^7.22.5", "@babel/plugin-transform-template-literals@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-typeof-symbol@^7.23.3": +"@babel/plugin-transform-typeof-symbol@^7.22.5", "@babel/plugin-transform-typeof-symbol@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.13.0", "@babel/plugin-transform-typescript@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234" - integrity sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg== +"@babel/plugin-transform-typescript@^7.13.0", "@babel/plugin-transform-typescript@^7.23.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.9" + "@babel/helper-create-class-features-plugin" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" "@babel/plugin-transform-unicode-escapes@^7.22.10", "@babel/plugin-transform-unicode-escapes@^7.23.3": version "7.23.3" @@ -1762,22 +1125,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.23.3": +"@babel/plugin-transform-unicode-property-regex@^7.22.5", "@babel/plugin-transform-unicode-property-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== @@ -1785,15 +1133,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-regex@^7.23.3": +"@babel/plugin-transform-unicode-regex@^7.22.5", "@babel/plugin-transform-unicode-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== @@ -1801,15 +1141,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-sets-regex@^7.23.3": +"@babel/plugin-transform-unicode-sets-regex@^7.22.5", "@babel/plugin-transform-unicode-sets-regex@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== @@ -1903,93 +1235,7 @@ core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4", "@babel/preset-env@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" - integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" - "@babel/plugin-transform-classes" "^7.22.6" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" - "@babel/plugin-transform-for-of" "^7.22.5" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" - "@babel/plugin-transform-parameters" "^7.22.5" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" - core-js-compat "^3.31.0" - semver "^6.3.1" - -"@babel/preset-env@^7.23.2": +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4", "@babel/preset-env@^7.23.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a" integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== @@ -2075,14 +1321,14 @@ core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-flow@^7.13.13", "@babel/preset-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.5.tgz#876f24ab6b38bd79703a93f32020ca2162312784" - integrity sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q== +"@babel/preset-flow@^7.22.15": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.23.3.tgz#8084e08b9ccec287bd077ab288b286fab96ffab1" + integrity sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-transform-flow-strip-types" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-flow-strip-types" "^7.23.3" "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" @@ -2093,44 +1339,33 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-modules@^0.1.5": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" - integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.7", "@babel/preset-react@^7.18.6", "@babel/preset-react@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" - integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.7", "@babel/preset-react@^7.18.6", "@babel/preset-react@^7.22.15": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" + integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.23.3" + "@babel/plugin-transform-react-jsx" "^7.22.15" "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.23.3" -"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.18.6": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== +"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.18.6", "@babel/preset-typescript@^7.23.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" -"@babel/register@^7.13.16": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939" - integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ== +"@babel/register@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.15.tgz#c2c294a361d59f5fa7bcc8b97ef7319c32ecaec7" + integrity sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -2144,38 +1379,29 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime-corejs2@^7.17.8": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.22.6.tgz#618b2219a7d82fa8fd4213c9e44c3bda7732ecde" - integrity sha512-GTJVRjzQIHUBwRzuWxPII87XoWxXzILBJrQh5gqIV6q6m231Y0BBA9NKta5FV5Lbl8z5gS3+m6YSoKJp0KQJ4g== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.23.6.tgz#00d4a77e49a33540160312ecb329ac1ba73df3f9" + integrity sha512-k8QKC2DmBqkwJDOLa4biAZjoCGPQIaAoA1HvHtZ+gR2E9AauudikJOB34h4ETEavN5UG21X0KPdM3IvBRxM0CA== dependencies: core-js "^2.6.12" - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" "@babel/runtime-corejs3@^7.18.6", "@babel/runtime-corejs3@^7.22.5": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz#e8e625eb3db29491e0326b3aeb9929c43b270ae4" - integrity sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.6.tgz#c25dd662fc205a03fdaefd122066eb9d4533ccf9" + integrity sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w== dependencies: core-js-pure "^3.30.2" - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" -"@babel/runtime@7.17.9", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.22.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" - integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== +"@babel/runtime@7.17.9", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.23.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" + integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" -"@babel/template@^7.12.7", "@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/template@^7.22.15": +"@babel/template@^7.12.7", "@babel/template@^7.22.15", "@babel/template@^7.3.3": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -2184,23 +1410,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.23.6", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.18.9", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.6", "@babel/traverse@^7.7.0": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== @@ -2216,25 +1426,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" - integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.19" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.19", "@babel/types@^7.23.6", "@babel/types@^7.7.0": +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== @@ -2243,15 +1435,6 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.23.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" - integrity "sha1-1eqJLAfy7DcaxwRCD03NsHtflZg= sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==" - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -2268,9 +1451,9 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cornerstonejs/adapters@^1.36.1": - version "1.36.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.36.1.tgz#ce6e1c7213adb629926d360f3fff327b22729846" - integrity sha512-dfiByBlH0Y97rSoqtGehik+e/Ydm+DNmVIfOpsBfbI6XuMoqBWXtcjI04Lwp5i0i4U64bKfQ8IfHA8UQ8jbrDQ== + version "1.38.0" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.38.0.tgz#761445550a604202472a9a49e6c03a700dfc453e" + integrity sha512-qBygzr/C5z3INsv8z/ZcKN8aLOwLeRZjmcsFoWqECnMRceZZ0V7k682FRt6GA5iu/aOFU2yQAZbduKHtHnGKkg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -2314,20 +1497,15 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjpeg/-/codec-openjpeg-1.2.2.tgz#f0b524235b5551426b46db197a37b06f8ac805d7" integrity sha512-b1O7lZacKXelgeV9n8XWZ7pTw3i4Bq4qQ26G5ahBjWoOw4QNcCrb5hPxWBxNB/I8AoNbJxAe+lyLtyQGfdrTbw== -"@cornerstonejs/codec-openjph@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.2.tgz#e96721d56f6ec96f7f95c16321d88cc8467d8d81" - integrity sha512-lgdvBvvNezleY+4pIe2ceUsJzlZe/0PipdeubQ3vZZOz3xxtHHMR1XFCl4fgd8gosR8COHuD7h6q+MwgrwBsng== - "@cornerstonejs/codec-openjph@^2.4.5": version "2.4.5" resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.36.1": - version "1.36.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.36.1.tgz#2fba0945cd5eff303ad7569a16cf7904779f5470" - integrity sha512-4vbXWz/4tlsYqnyI0unyY3yLv3gyn4+ARdPkaNFM03/jx1/8i/yp4r8VlXMds57/2XSzpav3ue9eFwCFuI4rVg== +"@cornerstonejs/core@^1.36.1", "@cornerstonejs/core@^1.38.0": + version "1.38.0" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.38.0.tgz#955439b9ba848ea0337a35e8c2622014a2eeb3a5" + integrity sha512-AgrJFxdl/LYtdqSYDLEdGaXSzUkdRpeFLYNPwJqpUNt2ToaJ6ovw8Z2d6eC0l5iKLsWfEUgIipaJkw6N7Bl/mw== dependencies: "@kitware/vtk.js" "27.3.1" comlink "^4.4.1" @@ -2336,33 +1514,33 @@ lodash.clonedeep "4.5.0" "@cornerstonejs/dicom-image-loader@^1.36.1": - version "1.36.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.36.1.tgz#5059a4a45b99052457a222b12cd9207f3b298e13" - integrity sha512-lqkZLECZZKTe+88afX9z1KkejyHfcnpQmTWy5WFUsXW7e0dumrVbEKAxG/UAHYj0iY4RyY/Eo/k+LEZXYjB+YA== + version "1.38.0" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.38.0.tgz#33835f9fb10e523301fc86e7e2364246d41813fe" + integrity sha512-ejq5acUG2fkM9bkt59eCnY31FTLGYTHfxnwGBlLJWYUDuJJ0KcKfp5SnRGaiiRBmH74NX+Eb9GvUfrwJ2qCexA== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.36.1" + "@cornerstonejs/core" "^1.38.0" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" "@cornerstonejs/streaming-image-volume-loader@^1.36.1": - version "1.36.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.36.1.tgz#3cf270b624a40e20a3163cdef338b507da83a29f" - integrity sha512-T9q36aPSUobTD0tJsgwayDKsgxlxVzav0cVOMkHxO10kOGC82DniZBm2WSg5mbn2caFo0YezPUaXfXuGqsqvMg== + version "1.38.0" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.38.0.tgz#ff300e8d8eebb7ae5ee207ca875b3c93b32fd9ec" + integrity sha512-XmIt3/WUeMkUKyHkb6Xjw5ojvJ8SuBoh3QreDIfUq4M4zAwwscdBAKUfBvb9UJ2cyimnxGiAWUDwN1j7tO0ZVA== dependencies: - "@cornerstonejs/core" "^1.36.1" + "@cornerstonejs/core" "^1.38.0" comlink "^4.4.1" "@cornerstonejs/tools@^1.36.1": - version "1.36.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.36.1.tgz#bb8e48d2363747b844a268205cb39f1bc39c7ce1" - integrity sha512-4Qu9hT+fx0tzPHte01wRsctYRSw8VznAu/xMOCVeniF9kIAxKzXLBvcxhKQS+gFr6HRD5nRxtflKKrKlna8nMw== + version "1.38.0" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.38.0.tgz#c8bc53dff24fa061e9cc1b648bef5027bcf9cc37" + integrity sha512-PYLiBJ30+IddZGz+TzKL4eIaKrv7MFbfQMPprUd1MxhDgTuAgWVK8xqC9lsoOslw4B6Orp/znlPXKhezkuZaOQ== dependencies: - "@cornerstonejs/core" "^1.36.1" + "@cornerstonejs/core" "^1.38.0" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -2510,20 +1688,20 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.5.1.tgz#4adf9884735bbfea621c3716e80ea97baa419b73" - integrity sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA== +"@docsearch/css@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.5.2.tgz#610f47b48814ca94041df969d9fcc47b91fc5aac" + integrity sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA== "@docsearch/react@^3.1.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.5.1.tgz#35f4a75f948211d8bb6830d2147c575f96a85274" - integrity sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ== + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.5.2.tgz#2e6bbee00eb67333b64906352734da6aef1232b9" + integrity sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng== dependencies: "@algolia/autocomplete-core" "1.9.3" "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.5.1" - algoliasearch "^4.0.0" + "@docsearch/css" "3.5.2" + algoliasearch "^4.19.1" "@docusaurus/core@2.4.3": version "2.4.3" @@ -3127,115 +2305,115 @@ resolved "https://registry.yarnpkg.com/@endiliey/react-ideal-image/-/react-ideal-image-0.0.11.tgz#dc3803d04e1409cf88efa4bba0f67667807bdf27" integrity sha512-QxMjt/Gvur/gLxSoCy7VIyGGGrGmDN+VHcXkN3R2ApoWX0EYUE+hMgPHSW/PV6VVebZ1Nd4t2UnGRBDihu16JQ== -"@esbuild/android-arm64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz#9e00eb6865ed5f2dbe71a1e96f2c52254cd92903" - integrity sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg== +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== -"@esbuild/android-arm@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.17.tgz#1aa013b65524f4e9f794946b415b32ae963a4618" - integrity sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg== +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== -"@esbuild/android-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.17.tgz#c2bd0469b04ded352de011fae34a7a1d4dcecb79" - integrity sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw== +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== -"@esbuild/darwin-arm64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz#0c21a59cb5bd7a2cec66c7a42431dca42aefeddd" - integrity sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g== +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== -"@esbuild/darwin-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz#92f8763ff6f97dff1c28a584da7b51b585e87a7b" - integrity sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g== +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== -"@esbuild/freebsd-arm64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz#934f74bdf4022e143ba2f21d421b50fd0fead8f8" - integrity sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ== +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== -"@esbuild/freebsd-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz#16b6e90ba26ecc865eab71c56696258ec7f5d8bf" - integrity sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA== +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== -"@esbuild/linux-arm64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz#179a58e8d4c72116eb068563629349f8f4b48072" - integrity sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ== +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== -"@esbuild/linux-arm@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz#9d78cf87a310ae9ed985c3915d5126578665c7b5" - integrity sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg== +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== -"@esbuild/linux-ia32@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz#6fed202602d37361bca376c9d113266a722a908c" - integrity sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg== +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== -"@esbuild/linux-loong64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz#cdc60304830be1e74560c704bfd72cab8a02fa06" - integrity sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg== +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== -"@esbuild/linux-mips64el@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz#c367b2855bb0902f5576291a2049812af2088086" - integrity sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ== +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== -"@esbuild/linux-ppc64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz#7fdc0083d42d64a4651711ee0a7964f489242f45" - integrity sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ== +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== -"@esbuild/linux-riscv64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz#5198a417f3f5b86b10c95647b8bc032e5b6b2b1c" - integrity sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g== +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== -"@esbuild/linux-s390x@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz#7459c2fecdee2d582f0697fb76a4041f4ad1dd1e" - integrity sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg== +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== -"@esbuild/linux-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz#948cdbf46d81c81ebd7225a7633009bc56a4488c" - integrity sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ== +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== -"@esbuild/netbsd-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz#6bb89668c0e093c5a575ded08e1d308bd7fd63e7" - integrity sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ== +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== -"@esbuild/openbsd-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz#abac2ae75fef820ef6c2c48da4666d092584c79d" - integrity sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA== +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== -"@esbuild/sunos-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz#74a45fe1db8ea96898f1a9bb401dcf1dadfc8371" - integrity sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g== +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== -"@esbuild/win32-arm64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz#fd95ffd217995589058a4ed8ac17ee72a3d7f615" - integrity sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw== +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== -"@esbuild/win32-ia32@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz#9b7ef5d0df97593a80f946b482e34fcba3fa4aaf" - integrity sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg== +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== -"@esbuild/win32-x64@0.18.17": - version "0.18.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz#bcb2e042631b3c15792058e189ed879a22b2968b" - integrity sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA== +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -3245,9 +2423,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" - integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -3269,21 +2447,14 @@ resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== -"@floating-ui/core@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" - integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ== - dependencies: - "@floating-ui/utils" "^0.1.1" - "@floating-ui/core@^1.4.2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" - integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== + version "1.5.2" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.2.tgz#53a0f7a98c550e63134d504f26804f6b83dbc071" + integrity sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A== dependencies: "@floating-ui/utils" "^0.1.3" -"@floating-ui/dom@^1.0.1": +"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.5.1": version "1.5.3" resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== @@ -3291,30 +2462,22 @@ "@floating-ui/core" "^1.4.2" "@floating-ui/utils" "^0.1.3" -"@floating-ui/dom@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.1.tgz#88b70defd002fe851f17b4a25efb2d3c04d7a8d7" - integrity sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw== - dependencies: - "@floating-ui/core" "^1.4.1" - "@floating-ui/utils" "^0.1.1" - "@floating-ui/react-dom@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20" - integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz#b076fafbdfeb881e1d86ae748b7ff95150e9f3ec" + integrity sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ== dependencies: "@floating-ui/dom" "^1.5.1" -"@floating-ui/utils@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83" - integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== - "@floating-ui/utils@^0.1.3": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.4.tgz#19654d1026cc410975d46445180e70a5089b3e7d" - integrity sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA== + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@hapi/hoek@^9.0.0": version "9.3.0" @@ -3375,114 +2538,114 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": +"@istanbuljs/schema@^0.1.2": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.1.tgz#b48ba7b9c34b51483e6d590f46e5837f1ab5f639" - integrity sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q== +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.1.tgz#fac0d9ddf320490c93356ba201451825231e95f6" - integrity sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^29.6.1" - "@jest/reporters" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.5.0" - jest-config "^29.6.1" - jest-haste-map "^29.6.1" - jest-message-util "^29.6.1" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.1" - jest-resolve-dependencies "^29.6.1" - jest-runner "^29.6.1" - jest-runtime "^29.6.1" - jest-snapshot "^29.6.1" - jest-util "^29.6.1" - jest-validate "^29.6.1" - jest-watcher "^29.6.1" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - pretty-format "^29.6.1" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.1.tgz#ee358fff2f68168394b4a50f18c68278a21fe82f" - integrity sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== dependencies: - "@jest/fake-timers" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.1" + jest-mock "^29.7.0" -"@jest/expect-utils@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.1.tgz#ab83b27a15cdd203fe5f68230ea22767d5c3acc5" - integrity sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" -"@jest/expect@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.1.tgz#fef18265188f6a97601f1ea0a2912d81a85b4657" - integrity sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg== +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== dependencies: - expect "^29.6.1" - jest-snapshot "^29.6.1" + expect "^29.7.0" + jest-snapshot "^29.7.0" -"@jest/fake-timers@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.1.tgz#c773efddbc61e1d2efcccac008139f621de57c69" - integrity sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg== +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.6.1" - jest-mock "^29.6.1" - jest-util "^29.6.1" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.1.tgz#c8a8923e05efd757308082cc22893d82b8aa138f" - integrity sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^29.6.1" - "@jest/expect" "^29.6.1" - "@jest/types" "^29.6.1" - jest-mock "^29.6.1" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.1.tgz#3325a89c9ead3cf97ad93df3a427549d16179863" - integrity sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" @@ -3491,25 +2654,18 @@ glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.1" - jest-util "^29.6.1" - jest-worker "^29.6.1" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== - dependencies: - "@sinclair/typebox" "^0.27.8" - "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" @@ -3517,51 +2673,51 @@ dependencies: "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" - integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== dependencies: "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.1.tgz#850e565a3f58ee8ca6ec424db00cb0f2d83c36ba" - integrity sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw== +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== dependencies: - "@jest/console" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz#e3e582ee074dd24ea9687d7d1aaf05ee3a9b068e" - integrity sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^29.6.1" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" + jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.3.1", "@jest/transform@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.1.tgz#acb5606019a197cb99beda3c05404b851f441c92" - integrity sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg== +"@jest/transform@^29.3.1", "@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" - jest-regex-util "^29.4.3" - jest-util "^29.6.1" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -3576,12 +2732,12 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jest/types@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" - integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -3597,10 +2753,10 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" @@ -3615,23 +2771,18 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@juggle/resize-observer@^3.3.1": version "3.4.0" @@ -3664,21 +2815,21 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@lerna/child-process@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.2.0.tgz#42de5b0a4eb7479c2a72b4bf61685616740cf818" - integrity sha512-8cRsYYX8rGZTXL1KcLBv0RHD9PMvphWZay8yg4qf2giX6x86dQyTetSU4SplG2LBGVClilmNHJa/CQwvPQNUFA== +"@lerna/child-process@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.4.2.tgz#a2fd013ac2150dc288270d3e0d0b850c06bec511" + integrity sha512-je+kkrfcvPcwL5Tg8JRENRqlbzjdlZXyaR88UcnCdNW0AJ1jX9IfHRys1X7AwSroU2ug8ESNC+suoBw1vX833Q== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/create@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-7.2.0.tgz#a8080b419c1f8ab5d575693fcb883a6a0d82c7e0" - integrity sha512-bBypNfwqOQNcfR2nXJ3mWUeIAIoSFpXg8MjuFSf87PzIiyeTEKa3Z57vAa3bDbHQtcB7x6f0rWysK1eQZSH15Q== +"@lerna/create@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-7.4.2.tgz#f845fad1480e46555af98bd39af29571605dddc9" + integrity sha512-1wplFbQ52K8E/unnqB0Tq39Z4e+NEoNrpovEnl6GpsTUrC6WDp8+w0Le2uCBV0hXyemxChduCkLz4/y1H1wTeg== dependencies: - "@lerna/child-process" "7.2.0" + "@lerna/child-process" "7.4.2" "@npmcli/run-script" "6.0.2" "@nx/devkit" ">=16.5.1 < 17" "@octokit/plugin-enterprise-rest" "6.0.1" @@ -3709,7 +2860,7 @@ libnpmpublish "7.3.0" load-json-file "6.2.0" lodash "^4.17.21" - make-dir "3.1.0" + make-dir "4.0.0" minimatch "3.0.5" multimatch "5.0.0" node-fetch "2.6.7" @@ -3861,6 +3012,14 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + "@npmcli/fs@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" @@ -3890,6 +3049,14 @@ npm-bundled "^3.0.0" npm-normalize-package-bin "^3.0.0" +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + "@npmcli/node-gyp@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" @@ -3913,27 +3080,27 @@ read-package-json-fast "^3.0.0" which "^3.0.0" -"@nrwl/devkit@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.7.4.tgz#c69e3ae4455447dc3a0cc5515c149692aadba940" - integrity sha512-Gt2q3cqDWzGP1woavGIo4bl8g9YaXic/Xfsl7qPq0LHJedLj49p1vXetB0wawkavSE2MTyo7yDh6YDK/38XoLw== +"@nrwl/devkit@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.10.0.tgz#ac8c5b4db00f12c4b817c937be2f7c4eb8f2593c" + integrity sha512-fRloARtsDQoQgQ7HKEy0RJiusg/HSygnmg4gX/0n/Z+SUS+4KoZzvHjXc6T5ZdEiSjvLypJ+HBM8dQzIcVACPQ== dependencies: - "@nx/devkit" "16.7.4" + "@nx/devkit" "16.10.0" -"@nrwl/tao@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.7.4.tgz#2b2e2cc26ce6c50884da63e69ba8ccf0fcbb9455" - integrity sha512-hH03oF+yVmaf19UZfyLDSuVEh0KasU5YfYezuNsdRkXNdTU/WmpDrk4qoo0j6fVoMPrqbbPOn1YMRtulP2WyYA== +"@nrwl/tao@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.10.0.tgz#94642a0380709b8e387e1e33705a5a9624933375" + integrity sha512-QNAanpINbr+Pod6e1xNgFbzK1x5wmZl+jMocgiEFXZ67KHvmbD6MAQQr0MMz+GPhIu7EE4QCTLTyCEMlAG+K5Q== dependencies: - nx "16.7.4" + nx "16.10.0" tslib "^2.3.0" -"@nx/devkit@16.7.4", "@nx/devkit@>=16.5.1 < 17": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.7.4.tgz#c03c308bc190a18642e0dc0c183323662c38c426" - integrity sha512-SLito+/TAeDYR+d7IIpp/sBJm41WM+nIevILv0TSQW4Pq0ylUy1nUvV8Pe7l1ohZccDrQuebMUWPwGO0hv8SeQ== +"@nx/devkit@16.10.0", "@nx/devkit@>=16.5.1 < 17": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.10.0.tgz#7e466be2dee2dcb1ccaf286786ca2a0a639aa007" + integrity sha512-IvKQqRJFDDiaj33SPfGd3ckNHhHi6ceEoqCbAP4UuMXOPPVOX6H0KVk+9tknkPb48B7jWIw6/AgOeWkBxPRO5w== dependencies: - "@nrwl/devkit" "16.7.4" + "@nrwl/devkit" "16.10.0" ejs "^3.1.7" enquirer "~2.3.6" ignore "^5.0.4" @@ -3941,55 +3108,55 @@ tmp "~0.2.1" tslib "^2.3.0" -"@nx/nx-darwin-arm64@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.7.4.tgz#1a797805850444cc6c0aa56668bf6f832093d641" - integrity sha512-pRNjxn6KlcR6iGkU1j/1pzcogwXFv97pYiZaibpF7UV0vfdEUA3EETpDcs+hbNAcKMvVtn/TgN857/5LQ/lGUg== +"@nx/nx-darwin-arm64@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.10.0.tgz#0c73010cac7a502549483b12bad347da9014e6f1" + integrity sha512-YF+MIpeuwFkyvM5OwgY/rTNRpgVAI/YiR0yTYCZR+X3AAvP775IVlusNgQ3oedTBRUzyRnI4Tknj1WniENFsvQ== -"@nx/nx-darwin-x64@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.7.4.tgz#53f681c86d9d8e8bcebfc8ba54dd7b2ec9f71207" - integrity sha512-GANXeabAAWRoF85WDla2ZPxtr8vnqvXjwyCIhRCda8hlKiVCpM98GemucN25z97G5H6MgyV9Dd9t9jrr2Fn0Og== +"@nx/nx-darwin-x64@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.10.0.tgz#2ccf270418d552fd0a8e0d6089aee4944315adaa" + integrity sha512-ypi6YxwXgb0kg2ixKXE3pwf5myVNUgWf1CsV5OzVccCM8NzheMO51KDXTDmEpXdzUsfT0AkO1sk5GZeCjhVONg== -"@nx/nx-freebsd-x64@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.7.4.tgz#df88ff9b6ed0b51723d76d711b9467a1a4726f00" - integrity sha512-zmBBDYjPaHhIHx1YASUJJIy+oz7mCrj5f0f3kOzfMraQOjkQZ0xYgNNUzBqmnYu1855yiphu94MkAMYJnbk0jw== +"@nx/nx-freebsd-x64@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.10.0.tgz#c3ee6914256e69493fed9355b0d6661d0e86da44" + integrity sha512-UeEYFDmdbbDkTQamqvtU8ibgu5jQLgFF1ruNb/U4Ywvwutw2d4ruOMl2e0u9hiNja9NFFAnDbvzrDcMo7jYqYw== -"@nx/nx-linux-arm-gnueabihf@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.7.4.tgz#2cfac69e65237245560326039bb319691147daed" - integrity sha512-d3Cmz/vdtoSasTUANoh4ZYLJESNA3+PCP/HnXNqmrr6AEHo+T8DcI+qsamO3rmYUSFxTMAeMyoihZMU8OKGZ1A== +"@nx/nx-linux-arm-gnueabihf@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.10.0.tgz#a961eccbb38acb2da7fc125b29d1fead0b39152f" + integrity sha512-WV3XUC2DB6/+bz1sx+d1Ai9q2Cdr+kTZRN50SOkfmZUQyEBaF6DRYpx/a4ahhxH3ktpNfyY8Maa9OEYxGCBkQA== -"@nx/nx-linux-arm64-gnu@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.7.4.tgz#492fb66b804aa6154cd44ded6eaaf6cfcb32ea9f" - integrity sha512-W1u4O78lTHCwvUP0vakeKWFXeSZ13nYzbd6FARICnImY2my8vz41rLm6aU9TYWaiOGEGL2xKpHKSgiNwbLjhFw== +"@nx/nx-linux-arm64-gnu@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.10.0.tgz#795f20072549d03822b5c4639ef438e473dbb541" + integrity sha512-aWIkOUw995V3ItfpAi5FuxQ+1e9EWLS1cjWM1jmeuo+5WtaKToJn5itgQOkvSlPz+HSLgM3VfXMvOFALNk125g== -"@nx/nx-linux-arm64-musl@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.7.4.tgz#ad32f35f05067e918eff9a97d8720f3923c034cb" - integrity sha512-Dc8IQFvhfH/Z3GmhBBNNxGd2Ehw6Y5SePEgJj1c2JyPdoVtc2OjGzkUaZkT4z5z77VKtju6Yi10T6Enps+y+kw== +"@nx/nx-linux-arm64-musl@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.10.0.tgz#f2428ee6dbe2b2c326e8973f76c97666def33607" + integrity sha512-uO6Gg+irqpVcCKMcEPIQcTFZ+tDI02AZkqkP7koQAjniLEappd8DnUBSQdcn53T086pHpdc264X/ZEpXFfrKWQ== -"@nx/nx-linux-x64-gnu@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.7.4.tgz#40271f7d21ef3ba0676c046b73c84cf9eb1ed94a" - integrity sha512-4B58C/pXeuovSznBOeicsxNieBApbGMoi2du8jR6Is1gYFPv4l8fFHQHHGAa1l5XJC5JuGJqFywS4elInWprNw== +"@nx/nx-linux-x64-gnu@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.10.0.tgz#d36c2bcf94d49eaa24e3880ddaf6f1f617de539b" + integrity sha512-134PW/u/arNFAQKpqMJniC7irbChMPz+W+qtyKPAUXE0XFKPa7c1GtlI/wK2dvP9qJDZ6bKf0KtA0U/m2HMUOA== -"@nx/nx-linux-x64-musl@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.7.4.tgz#8bd13692a0922df51c6305df93d69a3c66b4b716" - integrity sha512-spqqvEdGSSeV2ByJHkex5m8MRQfM6lQlnon25XgVBdPR47lKMWSikUsaWCiE7bVAFU9BFyWY2L4HfZ4+LiNY7A== +"@nx/nx-linux-x64-musl@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.10.0.tgz#78bd2ab97a583b3d4ea3387b67fd7b136907493c" + integrity sha512-q8sINYLdIJxK/iUx9vRk5jWAWb/2O0PAbOJFwv4qkxBv4rLoN7y+otgCZ5v0xfx/zztFgk/oNY4lg5xYjIso2Q== -"@nx/nx-win32-arm64-msvc@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.7.4.tgz#dfbe5b28c62c1c1ceadad12e79029f76e450d855" - integrity sha512-etNnbuCcSqAYOeDcS6si6qw0WR/IS87ovTzLS17ETKpdHcHN5nM4l02CQyupKiD58ShxrXHxXmvgBfbXxoN5Ew== +"@nx/nx-win32-arm64-msvc@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.10.0.tgz#ef20ec8d0c83d66e73e20df12d2c788b8f866396" + integrity sha512-moJkL9kcqxUdJSRpG7dET3UeLIciwrfP08mzBQ12ewo8K8FzxU8ZUsTIVVdNrwt01CXOdXoweGfdQLjJ4qTURA== -"@nx/nx-win32-x64-msvc@16.7.4": - version "16.7.4" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.7.4.tgz#e4b270107e02e73451d7c5dc7c4237fffe18aa75" - integrity sha512-y6pugK6ino1wvo2FbgtXG2cVbEm3LzJwOSBKBRBXSWhUgjP7T92uGfOt6KVQKpaqDvS9lA9TO/2DcygcLHXh7A== +"@nx/nx-win32-x64-msvc@16.10.0": + version "16.10.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.10.0.tgz#7410a51d0f8be631eec9552f01b2e5946285927c" + integrity sha512-5iV2NKZnzxJwZZ4DM5JVbRG/nkhAbzEskKaLBB82PmYGKzaDHuMHP1lcPoD/rtYMlowZgNA/RQndfKvPBPwmXA== "@octokit/auth-token@^3.0.0": version "3.0.4" @@ -4028,9 +3195,9 @@ universal-user-agent "^6.0.0" "@octokit/openapi-types@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" - integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== "@octokit/plugin-enterprise-rest@6.0.1": version "6.0.1" @@ -4152,14 +3319,14 @@ "@percy/sdk-utils" "^1.3.1" "@percy/sdk-utils@^1.3.1": - version "1.26.2" - resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.26.2.tgz#1a02b00f63c6244b10c0c5151901d5b41ea7ca47" - integrity sha512-sqxex+UnUoKN046jZS8UHB1YnQuJ0/lzMQaCdNKrF1F/U/1j/LrGywjXI9+NsGa29FdcZfU17530qt961sPgow== + version "1.27.5" + resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.27.5.tgz#4c69177a3fbb47c22fefcc971333c288a99d3f4a" + integrity sha512-MoL/PegKdx9xPgxmvG3xuEMBUYwKO3s/8CnqFXvLNURc5Es6XRqCol7SDI/scsQSpkOaUKc/0rYhmMCRQOt+EA== "@petamoriken/float16@^3.4.7": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@petamoriken/float16/-/float16-3.8.1.tgz#ebb6994fb7b0698fc73e11a183a2b5e3ae722fb4" - integrity sha512-oj3dU9kuMy8AqrreIboVh3KCJGSQO5T+dJ8JQFl369961jTWvPLP1GIlLy0FVoWehXLoI9BXygu/yzuNiIHBlg== + version "3.8.4" + resolved "https://registry.yarnpkg.com/@petamoriken/float16/-/float16-3.8.4.tgz#cd3c02a7fe39f10ae3dd24ed33bd082053aadd66" + integrity sha512-kB+NJ5Br56ZhElKsf0pM7/PQfrDdDVMRz8f0JM6eVOGE+L89z9hwcst9QvWBBnazzuqGTGtPsJNZoQ1JdNiGSQ== "@philpl/buble@^0.19.7": version "0.19.7" @@ -4181,7 +3348,7 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/utils@^2.3.1": +"@pkgr/utils@^2.4.2": version "2.4.2" resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== @@ -4193,10 +3360,10 @@ picocolors "^1.0.0" tslib "^2.6.0" -"@pmmmwh/react-refresh-webpack-plugin@^0.5.5": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" - integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== +"@pmmmwh/react-refresh-webpack-plugin@^0.5.11": + version "0.5.11" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz#7c2268cedaa0644d677e8c4f377bc8fb304f714a" + integrity sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ== dependencies: ansi-html-community "^0.0.8" common-path-prefix "^3.0.0" @@ -4230,9 +3397,9 @@ config-chain "^1.1.11" "@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + version "1.0.0-next.24" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" + integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== "@radix-ui/number@1.0.1": version "1.0.1" @@ -4358,6 +3525,22 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-slot" "1.0.2" +"@radix-ui/react-roving-focus@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz#e90c4a6a5f6ac09d3b8c1f5b5e81aab2f0db1974" + integrity sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-collection" "1.0.3" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-id" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-controllable-state" "1.0.1" + "@radix-ui/react-select@^1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-1.2.2.tgz#caa981fa0d672cf3c1b2a5240135524e69b32181" @@ -4386,6 +3569,14 @@ aria-hidden "^1.1.1" react-remove-scroll "2.5.5" +"@radix-ui/react-separator@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-separator/-/react-separator-1.0.3.tgz#be5a931a543d5726336b112f465f58585c04c8aa" + integrity sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-slot@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.2.tgz#a9ff4423eade67f501ffb32ec22064bc9d3099ab" @@ -4394,6 +3585,44 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-compose-refs" "1.0.1" +"@radix-ui/react-toggle-group@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz#f5b5c8c477831b013bec3580c55e20a68179d6ec" + integrity sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-roving-focus" "1.0.4" + "@radix-ui/react-toggle" "1.0.3" + "@radix-ui/react-use-controllable-state" "1.0.1" + +"@radix-ui/react-toggle@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz#aecb2945630d1dc5c512997556c57aba894e539e" + integrity sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-controllable-state" "1.0.1" + +"@radix-ui/react-toolbar@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-toolbar/-/react-toolbar-1.0.4.tgz#3211a105567fa016e89921b5b514877f833de559" + integrity sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-roving-focus" "1.0.4" + "@radix-ui/react-separator" "1.0.3" + "@radix-ui/react-toggle-group" "1.0.4" + "@radix-ui/react-use-callback-ref@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz#f4bb1f27f2023c984e6534317ebc411fc181107a" @@ -4477,10 +3706,10 @@ resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a" integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg== -"@remix-run/router@1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8" - integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A== +"@remix-run/router@1.13.1": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.13.1.tgz#07e2a8006f23a3bc898b3f317e0a58cc8076b86e" + integrity sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q== "@rollup/plugin-babel@^5.2.0": version "5.3.1" @@ -4543,17 +3772,26 @@ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== -"@sigstore/bundle@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.0.0.tgz#2f2f4867f434760f4bc6f4b4bbccbaecd4143bc3" - integrity sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ== +"@sigstore/bundle@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" + integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== dependencies: "@sigstore/protobuf-specs" "^0.2.0" "@sigstore/protobuf-specs@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz#5801b2a4d10afe1577be6133be6b132b5677c18c" - integrity sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== + +"@sigstore/sign@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4" + integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== + dependencies: + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + make-fetch-happen "^11.0.1" "@sigstore/tuf@^1.0.3": version "1.0.3" @@ -4596,211 +3834,141 @@ p-map "^4.0.0" webpack-sources "^3.2.2" -"@storybook/addon-actions@7.2.2", "@storybook/addon-actions@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.2.2.tgz#93d38fae3b172dd270cf047f25e9dbcde369f648" - integrity sha512-Ev9oGlpxrt7tCpCmAYA04hsZYKnZIiksaQDCgKAf6I2+yUZBBkZh490yBPkMExpH5bLk7fAgjCMZP9gOyzaq3A== +"@storybook/addon-actions@7.6.4", "@storybook/addon-actions@^7.2.2": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.4.tgz#b2d2941baa926718f0c53581c8cc8b19c2e0393b" + integrity sha512-91UD5KPDik74VKVioPMcbwwvDXN/non8p1wArYAHCHCmd/Pts5MJRiFueSdfomSpNjUtjtn6eSXtwpIL3XVOfQ== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-events" "7.2.2" + "@storybook/core-events" "7.6.4" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" + "@types/uuid" "^9.0.1" dequal "^2.0.2" - lodash "^4.17.21" polished "^4.2.2" - prop-types "^15.7.2" - react-inspector "^6.0.0" - telejson "^7.0.3" - ts-dedent "^2.0.0" uuid "^9.0.0" -"@storybook/addon-backgrounds@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.2.2.tgz#3d5f2f644528642f4bb200a030308b6394d0a90f" - integrity sha512-ZqSEw9R+ar9jMW6dxfnAAn7hQn9uC9z0om9dbOHNiulOz1CYa62GAyJXU+uZyCyuThqyEa0W8D2+Jsm/s9AuBw== +"@storybook/addon-backgrounds@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.4.tgz#8ba49f4ad88327f606edb1f08fb0aef4e8eb3f05" + integrity sha512-gNy3kIkHSr+Lg/jVDHwbZjIe1po5SDGZNVe39vrJwnqGz8T1clWes9WHCL6zk/uaCDA3yUna2Nt/KlOFAWDSoQ== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-events" "7.2.2" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" memoizerific "^1.11.3" ts-dedent "^2.0.0" -"@storybook/addon-controls@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.2.2.tgz#21d80ee25f4eb351e3974019cd5e9441ed76bbd5" - integrity sha512-kcFG7RMQJVz3fNvQO+9vjAodKbRrobsdr3WJYN6zmugh+qxEdUvHUUe093t0MpMKp2njY6c9eAbfjN+PrLSCJQ== +"@storybook/addon-controls@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.6.4.tgz#8f8651a1e929f5f8506d025bcc5c3e454444b1c3" + integrity sha512-k4AtZfazmD/nL3JAtLGAB7raPhkhUo0jWnaZWrahd9h1Fm13mBU/RW+JzTRhCw3Mp2HPERD7NI5Qcd2fUP6WDA== dependencies: - "@storybook/blocks" "7.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-common" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/manager-api" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/blocks" "7.6.4" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@7.2.2", "@storybook/addon-docs@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.2.2.tgz#102609718d053d50470f2119fd484a2f9b10f3a5" - integrity sha512-rQZ/LAC1oAQityI/NNwntLellAT2yrT7vQAPhHBpaVi/AOdT87wTkCyxnFJj/y3XYDAs4XgUqgbIKSIcRni/eA== +"@storybook/addon-docs@7.6.4", "@storybook/addon-docs@^7.2.2": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.6.4.tgz#e15ab003482d5c43da43edae8557ac6e0988017e" + integrity sha512-PbFMbvC9sK3sGdMhwmagXs9TqopTp9FySji+L8O7W9SHRC6wSmdwoWWPWybkOYxr/z/wXi7EM0azSAX7yQxLbw== dependencies: "@jest/transform" "^29.3.1" "@mdx-js/react" "^2.1.5" - "@storybook/blocks" "7.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/csf-plugin" "7.2.2" - "@storybook/csf-tools" "7.2.2" + "@storybook/blocks" "7.6.4" + "@storybook/client-logger" "7.6.4" + "@storybook/components" "7.6.4" + "@storybook/csf-plugin" "7.6.4" + "@storybook/csf-tools" "7.6.4" "@storybook/global" "^5.0.0" "@storybook/mdx2-csf" "^1.0.0" - "@storybook/node-logger" "7.2.2" - "@storybook/postinstall" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/react-dom-shim" "7.2.2" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/node-logger" "7.6.4" + "@storybook/postinstall" "7.6.4" + "@storybook/preview-api" "7.6.4" + "@storybook/react-dom-shim" "7.6.4" + "@storybook/theming" "7.6.4" + "@storybook/types" "7.6.4" fs-extra "^11.1.0" remark-external-links "^8.0.0" remark-slug "^6.0.0" ts-dedent "^2.0.0" "@storybook/addon-essentials@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.2.2.tgz#22b7402500c6035a02ec666f8ffcc85ace0f947e" - integrity sha512-x99psHZqtHFE7IKnJ3ruZIGe2xkb/xb0IQHya+zmdGHxNkcIeZVCLidPJRjrplJGmykRg+B25q2330CMIUYd9Q== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.6.4.tgz#9ae4fa2836a603cccaf6065ae0ca81d7fb5f7139" + integrity sha512-J+zPmP4pbuuFxQ3pjLRYQRnxEtp7jF3xRXGFO8brVnEqtqoxwJ6j3euUrRLe0rpGAU3AD7dYfaaFjd3xkENgTw== dependencies: - "@storybook/addon-actions" "7.2.2" - "@storybook/addon-backgrounds" "7.2.2" - "@storybook/addon-controls" "7.2.2" - "@storybook/addon-docs" "7.2.2" - "@storybook/addon-highlight" "7.2.2" - "@storybook/addon-measure" "7.2.2" - "@storybook/addon-outline" "7.2.2" - "@storybook/addon-toolbars" "7.2.2" - "@storybook/addon-viewport" "7.2.2" - "@storybook/core-common" "7.2.2" - "@storybook/manager-api" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/preview-api" "7.2.2" + "@storybook/addon-actions" "7.6.4" + "@storybook/addon-backgrounds" "7.6.4" + "@storybook/addon-controls" "7.6.4" + "@storybook/addon-docs" "7.6.4" + "@storybook/addon-highlight" "7.6.4" + "@storybook/addon-measure" "7.6.4" + "@storybook/addon-outline" "7.6.4" + "@storybook/addon-toolbars" "7.6.4" + "@storybook/addon-viewport" "7.6.4" + "@storybook/core-common" "7.6.4" + "@storybook/manager-api" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/preview-api" "7.6.4" ts-dedent "^2.0.0" -"@storybook/addon-highlight@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.2.2.tgz#dc19730d69ec3ee4bb7b046f4ab1c1b0c6130ceb" - integrity sha512-jyuxPPTg3q021GYBzA+JoBO2ece6B4gt4ZqtWjKbOpTHpUyzkH6IBcBuWGtgGcQgrCGlmb5B8QCLAb8Cmy6VJg== +"@storybook/addon-highlight@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.6.4.tgz#0d71de9b081fd7d2fa0d7003a19b47002be1e4f3" + integrity sha512-0kvjDzquoPwWWU61QYmEtcSGWXufnV7Z/bfBTYh132uxvV/X9YzDFcXXrxGL7sBJkK32gNUUBDuiTOxs5NxyOQ== dependencies: - "@storybook/core-events" "7.2.2" "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.2.2" "@storybook/addon-links@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.2.2.tgz#b88a4683665051327242f8c1cf3f87fb2ebc118f" - integrity sha512-bRK0B1QLzpCJ80Cdk/SgA5qlT3RxRkouaJU/rcFc3obHng4bUBr164SLKDgWOHawSrBn3dohO0HIz2o8AevgmA== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.6.4.tgz#e484cd67d26c4877e3dd77b2211fc3d02875e3c1" + integrity sha512-TEhxYdMhJO28gD84ej1FCwLv9oLuCPt77bRXip9ndaNPRTdHYdWv6IP94dhbuDi8eHux7Z4A/mllciFuDFrnCw== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/csf" "^0.1.0" + "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/router" "7.2.2" - "@storybook/types" "7.2.2" - prop-types "^15.7.2" ts-dedent "^2.0.0" -"@storybook/addon-measure@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.2.2.tgz#0ea860b023c1007f7f60f160dfa3aaa5ab0ff326" - integrity sha512-gzXj28rqmtHyTKorGleP8+wlvvT6RQMsKtdHCJL/yT3Q9+REQ4/5lAgw+jKqSG+Ka6FxUYWlCN9nD5fRwxtXyQ== +"@storybook/addon-measure@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.6.4.tgz#0597ae04a27ff596bc8f2015f7c746b33eef78a3" + integrity sha512-73wsJ8PALsgWniR3MA/cmxcFuU6cRruWdIyYzOMgM8ife2Jm3xSkV7cTTXAqXt2H9Uuki4PGnuMHWWFLpPeyVA== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-events" "7.2.2" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/types" "7.2.2" tiny-invariant "^1.3.1" -"@storybook/addon-outline@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.2.2.tgz#7abeef1cca9f8d5f6126ca28e78171b56d6aef4f" - integrity sha512-Mh6tOiRWVQRgMQlH2GAh2Ov3uf4wmtGXV7MBfKmqxowIp6HGCd4ZJ5tTOgD8ANRFIloH57oSa2/Jf/qiUg0/OQ== +"@storybook/addon-outline@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.6.4.tgz#1c62a4c5e97f277ded888e3157d5948618ec98fb" + integrity sha512-CFxGASRse/qeFocetDKFNeWZ3Aa2wapVtRciDNa4Zx7k1wCnTjEsPIm54waOuCaNVcrvO+nJUAZG5WyiorQvcg== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-events" "7.2.2" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/types" "7.2.2" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.2.2.tgz#8ed27402338fab35629453e1673c64b934ceda33" - integrity sha512-KQkFwLEqi/Xm9wq6mqaqO6VEW7+Sgbr8BUtVRAB9sSpy2mlhZEzZpcWKjuHmyMb9/eiRvnicM9kXxz0tHAF0jA== - dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/theming" "7.2.2" +"@storybook/addon-toolbars@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.6.4.tgz#de76577d20db8a0e63c567d9cbfad7de15ca0f56" + integrity sha512-ENMQJgU4sRCLLDVXYfa+P3cQVV9PC0ZxwVAKeM3NPYPNH/ODoryGNtq+Q68LwHlM4ObCE2oc9MzaQqPxloFcCw== -"@storybook/addon-viewport@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.2.2.tgz#24e837357c0aae3a5c421dabc1b9048cb9cc7204" - integrity sha512-6qjtkFSV+9Fxw/nS5X7b5xC1kbk+CMGUEZhzmqM+iYtijHZmK0K1+x6AoR/mOul/rLL2YT73U3OYCCKWV9lemQ== +"@storybook/addon-viewport@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.6.4.tgz#f39601082f48a903c47cae71a84b05428ea20331" + integrity sha512-SoTcHIoqybhYD28v7QExF1EZnl7FfxuP74VDhtze5LyMd2CbqmVnUfwewLCz/3IvCNce0GqdNyg1m6QJ7Eq1uw== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/theming" "7.2.2" memoizerific "^1.11.3" - prop-types "^15.7.2" -"@storybook/addons@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-7.2.2.tgz#e0e22894b85074b35ab4dc2a3c736dbab09f9781" - integrity sha512-yWBBpBcRyPP1deAjzWV9OAXrPfeRd/vRpJw09dWHzuD3xtnd3jZ2h+t1r9a5yTSQbP5GO1YdS/WOK5Uf9hcsuw== +"@storybook/blocks@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.6.4.tgz#f5d0de020b886e0fd17021608df5b73e5e39ae69" + integrity sha512-iXinXXhTUBtReREP1Jifpu35DnGg7FidehjvCM8sM4E4aymfb8czdg9DdvG46T2UFUPUct36nnjIdMLWOya8Bw== dependencies: - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/types" "7.2.2" - -"@storybook/blocks@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.2.2.tgz#5a6738460a669d627a821b192ffaace33aeedfba" - integrity sha512-VgO46E5zA8oo/Cn8kT9o3xiFtnqxlqsRRGp5t8A1YqgN2OvYTtg5/PLS16XH8Qui/m9EvOoT7DlOmcqlp3Z78w== - dependencies: - "@storybook/channels" "7.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/csf" "^0.1.0" - "@storybook/docs-tools" "7.2.2" + "@storybook/channels" "7.6.4" + "@storybook/client-logger" "7.6.4" + "@storybook/components" "7.6.4" + "@storybook/core-events" "7.6.4" + "@storybook/csf" "^0.1.2" + "@storybook/docs-tools" "7.6.4" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/manager-api" "7.6.4" + "@storybook/preview-api" "7.6.4" + "@storybook/theming" "7.6.4" + "@storybook/types" "7.6.4" "@types/lodash" "^4.14.167" color-convert "^2.0.1" dequal "^2.0.2" @@ -4809,20 +3977,20 @@ memoizerific "^1.11.3" polished "^4.2.2" react-colorful "^5.1.2" - telejson "^7.0.3" + telejson "^7.2.0" tocbot "^4.20.1" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-manager@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.2.2.tgz#a02d2a179c2a0d575c05fa26a188d418b90f2cfa" - integrity sha512-19LqtL5/Yos9/wXqTxg+zOOK6M312eHXAdaYt2REGk1iqJzQXoy4wnmE2rbjBMmD5bUTzWm2vkmHGtkzAjwzzA== +"@storybook/builder-manager@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.6.4.tgz#64d4745f918bf370924b767cc3a767818fa45a47" + integrity sha512-k5+D3fXw7LdMOWd5tF7cIq8L3irrdW6/vmcEHLaJj1EXZ+DvsNCH9xSsLS+6zfrUcxug4oSfRqvF87w6Oz3DtA== dependencies: "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "7.2.2" - "@storybook/manager" "7.2.2" - "@storybook/node-logger" "7.2.2" + "@storybook/core-common" "7.6.4" + "@storybook/manager" "7.6.4" + "@storybook/node-logger" "7.6.4" "@types/ejs" "^3.1.1" "@types/find-cache-dir" "^3.2.1" "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" @@ -4836,41 +4004,34 @@ process "^0.11.10" util "^0.12.4" -"@storybook/builder-webpack5@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.2.2.tgz#eb1552096d580e8d7980b127ce7cc942c6aded21" - integrity sha512-+f2H3tXPZfn3q/eruXCmWPVAopd1MMEAAvneZ4iqlSHPC5HK2dcX/zj3yPar6rjfHHvZBXNm5sSi4WuD5Pw9MA== +"@storybook/builder-webpack5@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.6.4.tgz#9ad8cd4811fe1b82d2244d705acf61f613d53206" + integrity sha512-J5wzPn/rsowlur5A7W9pAfN3a5fMapOoHaZsDKUklGRud/JUeabAIVdL1P/eX+yE3xaJk9auYivEWbglSx2Kpg== dependencies: - "@babel/core" "^7.22.9" - "@storybook/addons" "7.2.2" - "@storybook/channels" "7.2.2" - "@storybook/client-api" "7.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/components" "7.2.2" - "@storybook/core-common" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/core-webpack" "7.2.2" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/preview" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/router" "7.2.2" - "@storybook/store" "7.2.2" - "@storybook/theming" "7.2.2" - "@swc/core" "^1.3.49" - "@types/node" "^16.0.0" + "@babel/core" "^7.23.2" + "@storybook/channels" "7.6.4" + "@storybook/client-logger" "7.6.4" + "@storybook/core-common" "7.6.4" + "@storybook/core-events" "7.6.4" + "@storybook/core-webpack" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/preview" "7.6.4" + "@storybook/preview-api" "7.6.4" + "@swc/core" "^1.3.82" + "@types/node" "^18.0.0" "@types/semver" "^7.3.4" babel-loader "^9.0.0" - babel-plugin-named-exports-order "^0.0.2" browser-assert "^1.2.1" case-sensitive-paths-webpack-plugin "^2.4.0" constants-browserify "^1.0.0" css-loader "^6.7.1" + es-module-lexer "^1.4.1" express "^4.17.3" fork-ts-checker-webpack-plugin "^8.0.0" fs-extra "^11.1.0" html-webpack-plugin "^5.5.0" + magic-string "^0.30.5" path-browserify "^1.0.1" process "^0.11.10" semver "^7.3.7" @@ -4886,34 +4047,35 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.5.0" -"@storybook/channels@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.2.2.tgz#8b713b420fddfed53e0cf4ca5a0b46f4b9dd0d68" - integrity sha512-FkH5QzKkq7smtPlaKTWalJ+sN13H4dWtxdZ+ePFAXaubsBqGqo3Dw3e/hrbjrMqFjTwiKnmj5K5bjhdJcvzi1A== +"@storybook/channels@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.6.4.tgz#d0af47f1f049c3ad77bcdefec54253f56b3b0a47" + integrity sha512-Z4PY09/Czl70ap4ObmZ4bgin+EQhPaA3HdrEDNwpnH7A9ttfEO5u5KThytIjMq6kApCCihmEPDaYltoVrfYJJA== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/core-events" "7.2.2" + "@storybook/client-logger" "7.6.4" + "@storybook/core-events" "7.6.4" "@storybook/global" "^5.0.0" qs "^6.10.0" - telejson "^7.0.3" + telejson "^7.2.0" tiny-invariant "^1.3.1" -"@storybook/cli@7.2.2", "@storybook/cli@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.2.2.tgz#1fe5c67f75ebb80ea42eea2e92777034afadd3d8" - integrity sha512-YoXRCRICj4NEqUvYvgVRmk5IJadou6feCymI5r94z7XHQiObMoZd3p6QjyEp8ayi8XpxoJM/Hrddu3hddxUvyw== +"@storybook/cli@7.6.4", "@storybook/cli@^7.2.2": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.6.4.tgz#3680233a32975a400c091341f8b6ae4cdb01c72f" + integrity sha512-GqvaFdkkBMJOdnrVe82XY0V3b+qFMhRNyVoTv2nqB87iMUXZHqh4Pu4LqwaJBsBpuNregvCvVOPe9LGgoOzy4A== dependencies: - "@babel/core" "^7.22.9" - "@babel/preset-env" "^7.22.9" - "@babel/types" "^7.22.5" + "@babel/core" "^7.23.2" + "@babel/preset-env" "^7.23.2" + "@babel/types" "^7.23.0" "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "7.2.2" - "@storybook/core-common" "7.2.2" - "@storybook/core-server" "7.2.2" - "@storybook/csf-tools" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/telemetry" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/codemod" "7.6.4" + "@storybook/core-common" "7.6.4" + "@storybook/core-events" "7.6.4" + "@storybook/core-server" "7.6.4" + "@storybook/csf-tools" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/telemetry" "7.6.4" + "@storybook/types" "7.6.4" "@types/semver" "^7.3.4" "@yarnpkg/fslib" "2.10.3" "@yarnpkg/libzip" "2.3.0" @@ -4930,7 +4092,7 @@ get-port "^5.1.1" giget "^1.0.0" globby "^11.0.2" - jscodeshift "^0.14.0" + jscodeshift "^0.15.1" leven "^3.1.0" ora "^5.4.1" prettier "^2.8.0" @@ -4944,79 +4106,72 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-7.2.2.tgz#cb10eb7c2aa4c1d31cc0ab9752c7250133d949d3" - integrity sha512-47WDNZ5FdvtQuSijg3IexxFve2aBrBih6VHdKKcel2SSiS0W01043fNMsP1T+m6kJr4jdnp0J5GVQpTQFi8Kxg== - dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/preview-api" "7.2.2" - -"@storybook/client-logger@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.2.2.tgz#650689fbe266bf550cb552f077219cf7631d285b" - integrity sha512-ULqPNTJsJdlWTQt5V/hEv4CUq7GgrLzLvcjhKB9IYbp4a0gjhinfq7jBFIcXRE8BSOQLui2PDGE3SzElzOp5/g== +"@storybook/client-logger@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.6.4.tgz#7533f5194903f554c297b0d327efee04c5accfbb" + integrity sha512-vJwMShC98tcoFruRVQ4FphmFqvAZX1FqZqjFyk6IxtFumPKTVSnXJjlU1SnUIkSK2x97rgdUMqkdI+wAv/tugQ== dependencies: "@storybook/global" "^5.0.0" -"@storybook/codemod@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.2.2.tgz#fc59603a24cd669a3b07b42693f4cccdabefe2cf" - integrity sha512-i8WY3PJeJalVWTjLChlJREYHp42mGw0GXLqTH/q0hbAwzuVBBTrsMqy+oXOWRCAeCGbK5uP10GOLN23s+zuNTQ== +"@storybook/codemod@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.6.4.tgz#e3a314ad07f9dc799bd2531bb7ffc6ab3cf15996" + integrity sha512-q4rZVOfozxzbDRH/LzuFDoIGBdXs+orAm18fi6iAx8PeMHe8J/MOXKccNV1zdkm/h7mTQowuRo45KwJHw8vX+g== dependencies: - "@babel/core" "^7.22.9" - "@babel/preset-env" "^7.22.9" - "@babel/types" "^7.22.5" - "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/types" "7.2.2" + "@babel/core" "^7.23.2" + "@babel/preset-env" "^7.23.2" + "@babel/types" "^7.23.0" + "@storybook/csf" "^0.1.2" + "@storybook/csf-tools" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/types" "7.6.4" "@types/cross-spawn" "^6.0.2" cross-spawn "^7.0.3" globby "^11.0.2" - jscodeshift "^0.14.0" + jscodeshift "^0.15.1" lodash "^4.17.21" prettier "^2.8.0" recast "^0.23.1" -"@storybook/components@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.2.2.tgz#8736a1fd8d6ecc8095d4af9b85c06dc2c3bd0096" - integrity sha512-A2SavROGKFK76w4pfMGr0Zf3A2QaQrnJqPZOfVB6dKrXBwgwM3VhdUj6N8cI9X4W7VaEvEyUWXVTCv+bG+yZtQ== +"@storybook/components@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.6.4.tgz#44cf5fa1b52af540157b4dee7d23a46817329ab1" + integrity sha512-K5RvEObJAnX+SbGJbkM1qrZEk+VR2cUhRCSrFnlfMwsn8/60T3qoH7U8bCXf8krDgbquhMwqev5WzDB+T1VV8g== dependencies: "@radix-ui/react-select" "^1.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/csf" "^0.1.0" + "@radix-ui/react-toolbar" "^1.0.4" + "@storybook/client-logger" "7.6.4" + "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/icons" "^1.1.0" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/theming" "7.6.4" + "@storybook/types" "7.6.4" memoizerific "^1.11.3" use-resize-observer "^9.1.0" util-deprecate "^1.0.2" -"@storybook/core-client@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.2.2.tgz#42e3ea15c1df4aed754b712a9c7c10440e67b4c8" - integrity sha512-RbtXvSiT7kunM6oz5svbp/IeastWz+40qZpdidkRLZ9QUpttU5NSKNUu+MPlfaMHT3A38VfZakk5cRAEztbu2w== +"@storybook/core-client@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.6.4.tgz#d38ddb80bbc6119017a8ba15b88c030cf03d27e0" + integrity sha512-0msqdGd+VYD1dRgAJ2StTu4d543Wveb7LVVujX3PwD/QCxmCaVUHuAoZrekM/H7jZLw546ZIbLZo0xWrADAUMw== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/preview-api" "7.2.2" + "@storybook/client-logger" "7.6.4" + "@storybook/preview-api" "7.6.4" -"@storybook/core-common@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.2.2.tgz#4bf19f29a77d976c9795af7b0847ab5ce73f8008" - integrity sha512-evLV0oRLhByHVhrncRXdSmQL5VP8jLXUOBPiM63oCnSWDsw4GMt37JrmCYBNM4E1YiJ7zSllmvcFCBmyChcPFA== +"@storybook/core-common@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.6.4.tgz#8ee282058ea4dd8fc0a053c30759f4bf65dab86b" + integrity sha512-qes4+mXqINu0kCgSMFjk++GZokmYjb71esId0zyJsk0pcIPkAiEjnhbSEQkMhbUfcvO1lztoaQTBW2P7Rd1tag== dependencies: - "@storybook/node-logger" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/core-events" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/types" "7.6.4" "@types/find-cache-dir" "^3.2.1" - "@types/node" "^16.0.0" + "@types/node" "^18.0.0" "@types/node-fetch" "^2.6.4" "@types/pretty-hrtime" "^1.0.0" chalk "^4.1.0" esbuild "^0.18.0" - esbuild-register "^3.4.0" + esbuild-register "^3.5.0" file-system-cache "2.3.0" find-cache-dir "^3.0.0" find-up "^5.0.0" @@ -5031,33 +4186,35 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/core-events@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.2.2.tgz#e94337c8e6dcd2ba94d0dee19ac4cbfe780d7709" - integrity sha512-0MUsOygFSyYRIWHrVAA7Y7zBoehdILgK2AbnV42qescmPD48YyovkSRiGq0BwSWvuvMRq+094dp7sh2tkfSGHg== +"@storybook/core-events@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.4.tgz#55405545dbc9ae5715654d2198ee1f1a3cc34ef7" + integrity sha512-i3xzcJ19ILSy4oJL5Dz9y0IlyApynn5RsGhAMIsW+mcfri+hGfeakq1stNCo0o7jW4Y3A7oluFTtIoK8DOxQdQ== + dependencies: + ts-dedent "^2.0.0" -"@storybook/core-server@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.2.2.tgz#947bd37a5c2b2de53a5abb15ae4ae4b88c0e8711" - integrity sha512-djtZIe/dFvjppuUMuTSHq51NW4dgkKAercfHwyyzcvN3m+ZBZdUENCUzBfwsS0+Pn64lVgppg6otm8ckMFilMQ== +"@storybook/core-server@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.6.4.tgz#7732be1437af2affb3d7b0c5528446006a4c72a3" + integrity sha512-mXxZMpCwOhjEPPRjqrTHdiCpFdkc47f46vlgTj02SX+9xKHxslmZ2D3JG/8O4Ab9tG+bBl6lBm3RIrIzaiCu9Q== dependencies: "@aw-web-design/x-default-browser" "1.4.126" "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "7.2.2" - "@storybook/channels" "7.2.2" - "@storybook/core-common" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.2.2" + "@storybook/builder-manager" "7.6.4" + "@storybook/channels" "7.6.4" + "@storybook/core-common" "7.6.4" + "@storybook/core-events" "7.6.4" + "@storybook/csf" "^0.1.2" + "@storybook/csf-tools" "7.6.4" "@storybook/docs-mdx" "^0.1.0" "@storybook/global" "^5.0.0" - "@storybook/manager" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/telemetry" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/manager" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/preview-api" "7.6.4" + "@storybook/telemetry" "7.6.4" + "@storybook/types" "7.6.4" "@types/detect-port" "^1.3.0" - "@types/node" "^16.0.0" + "@types/node" "^18.0.0" "@types/pretty-hrtime" "^1.0.0" "@types/semver" "^7.3.4" better-opn "^3.0.2" @@ -5075,8 +4232,7 @@ prompts "^2.4.0" read-pkg-up "^7.0.1" semver "^7.3.7" - serve-favicon "^2.5.0" - telejson "^7.0.3" + telejson "^7.2.0" tiny-invariant "^1.3.1" ts-dedent "^2.0.0" util "^0.12.4" @@ -5084,44 +4240,44 @@ watchpack "^2.2.0" ws "^8.2.3" -"@storybook/core-webpack@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.2.2.tgz#3b8df3b70c22057767f4a451a4a5dd27060b9c27" - integrity sha512-KwdY+mFTWclIJM+qF25u0d4gQ/951uOZkgrsiRheKI5BKwD9omuF2OfLexWKnMEWz+UHzHKoN0QFlxcKs/rddw== +"@storybook/core-webpack@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.6.4.tgz#fd9ff9eb54cfd57c6f1a3642b0605e9c80999044" + integrity sha512-+C2YddhOhO0Lp9KngzX9XYJZKzCzo4vjXA3IMXxSA7Vo7gFhaa8uQTAXnUx7xCrvFXM/iiHUY1SN+VppB0eBdA== dependencies: - "@storybook/core-common" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/types" "7.2.2" - "@types/node" "^16.0.0" + "@storybook/core-common" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/types" "7.6.4" + "@types/node" "^18.0.0" ts-dedent "^2.0.0" -"@storybook/csf-plugin@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.2.2.tgz#a9d3a4ca9f3f8965d2e9a80d7ce52ed4ec45fd23" - integrity sha512-8iHeK0zfcCIXbcwQm89Bj6Ejqak/dXBwQUMFmgmKzJ4VdyzKdhLgRO3T3EYGsX4AvH0dnuAPONP5uVrGEF8iLw== +"@storybook/csf-plugin@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.6.4.tgz#5d18cffc1c92dfd12d8571b2ba9d1456de58d8b2" + integrity sha512-7g9p8s2ITX+Z9iThK5CehPhJOcusVN7JcUEEW+gVF5PlYT+uk/x+66gmQno+scQuNkV9+8UJD6RLFjP+zg2uCA== dependencies: - "@storybook/csf-tools" "7.2.2" + "@storybook/csf-tools" "7.6.4" unplugin "^1.3.1" -"@storybook/csf-tools@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.2.2.tgz#2ec13aa9974be3d00dcf0eeb04711c248080852c" - integrity sha512-uO9AXtc64tpEpnoqHk5eYCUUL6nMwo1xHTXgIst9NKOdNSBL1/wvRgaT+rW+AzyXGsBjMwvDNjX/HIptqsoNgw== +"@storybook/csf-tools@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.6.4.tgz#4c1ef7a79ecd6f96d7fc1cb092cf2ed942cd65e2" + integrity sha512-6sLayuhgReIK3/QauNj5BW4o4ZfEMJmKf+EWANPEM/xEOXXqrog6Un8sjtBuJS9N1DwyhHY6xfkEiPAwdttwqw== dependencies: - "@babel/generator" "^7.22.9" - "@babel/parser" "^7.22.7" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - "@storybook/csf" "^0.1.0" - "@storybook/types" "7.2.2" + "@babel/generator" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" + "@storybook/csf" "^0.1.2" + "@storybook/types" "7.6.4" fs-extra "^11.1.0" recast "^0.23.1" ts-dedent "^2.0.0" -"@storybook/csf@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.1.1.tgz#abccc8c3e49aed0a6a7e87beb0d1c262b1921c06" - integrity sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg== +"@storybook/csf@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.1.2.tgz#8e7452f0097507f5841b5ade3f5da1525bc9afb2" + integrity sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA== dependencies: type-fest "^2.19.0" @@ -5130,15 +4286,16 @@ resolved "https://registry.yarnpkg.com/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz#33ba0e39d1461caf048b57db354b2cc410705316" integrity sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg== -"@storybook/docs-tools@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.2.2.tgz#c5b391a4baabcb4aa3b68c0a94a9ffbabe26d142" - integrity sha512-57PiramTgJio0J8HyKQI8cjb/5pTFvKxWBji8UdM6WUe1EqLIwZbymUcOQZDQWr3H+6bdrm4pgYxj7XglcUa5A== +"@storybook/docs-tools@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.6.4.tgz#504b8654f348a109b69cc77cdab556f0bf9c2304" + integrity sha512-2eGam43aD7O3cocA72Z63kRi7t/ziMSpst0qB218QwBWAeZjT4EYDh8V6j/Xhv6zVQL3msW7AglrQP5kCKPvPA== dependencies: - "@storybook/core-common" "7.2.2" - "@storybook/preview-api" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/core-common" "7.6.4" + "@storybook/preview-api" "7.6.4" + "@storybook/types" "7.6.4" "@types/doctrine" "^0.0.3" + assert "^2.1.0" doctrine "^3.0.0" lodash "^4.17.21" @@ -5147,85 +4304,81 @@ resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== -"@storybook/icons@^1.1.0": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-1.1.6.tgz#22536cde6dd85fa259608fa8bd7b9eeca2a8e688" - integrity sha512-co5gDCYPojRAc5lRMnWxbjrR1V37/rTmAo9Vok4a1hDpHZIwkGTWesdzvYivSQXYFxZTpxdM1b5K3W87brnahw== - -"@storybook/manager-api@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.2.2.tgz#05dba45fd19d93705115915522780cc29b47fbc4" - integrity sha512-7EI7TABGGB3VOTc4q7byC5dW/9A1xUJyR1gfCPU+7XiSNItnCz+seBJMSaf6Em/9wYxSAL6PQAGhrwTHGzgWAA== +"@storybook/manager-api@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.6.4.tgz#edf5d553a78987ad8602700b7200391776010f48" + integrity sha512-RFb/iaBJfXygSgXkINPRq8dXu7AxBicTGX7MxqKXbz5FU7ANwV7abH6ONBYURkSDOH9//TQhRlVkF5u8zWg3bw== dependencies: - "@storybook/channels" "7.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/csf" "^0.1.0" + "@storybook/channels" "7.6.4" + "@storybook/client-logger" "7.6.4" + "@storybook/core-events" "7.6.4" + "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/router" "7.2.2" - "@storybook/theming" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/router" "7.6.4" + "@storybook/theming" "7.6.4" + "@storybook/types" "7.6.4" dequal "^2.0.2" lodash "^4.17.21" memoizerific "^1.11.3" semver "^7.3.7" store2 "^2.14.2" - telejson "^7.0.3" + telejson "^7.2.0" ts-dedent "^2.0.0" -"@storybook/manager@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.2.2.tgz#7b40132d50ba4422be49c28ce05f79bccfd8e2f1" - integrity sha512-a7pGZMj5r5vk39IfB7Ca32DNkSTM6SEp+BZhqc4jMDHwSEsGKOZ+GZtWJipUlB1fEnHtdA3LH6IKTKbcpYP+Rg== +"@storybook/manager@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.6.4.tgz#11ea1ce8f37a069c96e594a716957f0d6c7690f3" + integrity sha512-Ug2ejfKgKre8h/RJbkumukwAA44TbvTPEjDcJmyFdAI+kHYhOYdKPEC2UNmVYz8/4HjwMTJQ3M7t/esK8HHY4A== "@storybook/mdx2-csf@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz#97f6df04d0bf616991cc1005a073ac004a7281e5" integrity sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw== -"@storybook/node-logger@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.2.2.tgz#994f61bc24bf2a7cbeb1be437215a3fb22086359" - integrity sha512-Pn6NJ349S+6tkzaFc1j3qOniDR9DyFPRfZsnAT85APKQaXyzNB3b1xwAhxnVjiCHIfp/a+SLOAdfXa+F8ALFQQ== +"@storybook/node-logger@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.6.4.tgz#e471ee117bbd329522113dd98e5a42e83e259f9c" + integrity sha512-GDkEnnDj4Op+PExs8ZY/P6ox3wg453CdEIaR8PR9TxF/H/T2fBL6puzma3hN2CMam6yzfAL8U+VeIIDLQ5BZdQ== -"@storybook/postinstall@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.2.2.tgz#42f1af8a3b6ae4a32a5579b9e879c38413af4a96" - integrity sha512-tGFZAFu5QFnuzhmzGMpasETVpzD1CVskok4+Dns/3iBWb8fZsFWaC0ZKazO+vHBtWZYO4uvrUbFSDTX2yPhtTQ== +"@storybook/postinstall@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.6.4.tgz#baefcec351ac79ee711ad27b65bf1ec28e545da6" + integrity sha512-7uoB82hSzlFSdDMS3hKQD+AaeSvPit/fAMvXCBxn0/D0UGJUZcq4M9JcKBwEHkZJcbuDROgOTJ6TUeXi/FWO0w== -"@storybook/preset-react-webpack@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-7.2.2.tgz#8c6dde28222004a35bf237eb6abfb7a27ad0d5df" - integrity sha512-com92dj2rAvGG5xrx35kXZDawQr0GwfNJD8xoyZwzd+XjaguBU/DJNdjYwmJLscHx0wg+Vt5oK+hS1ICq82Ujg== +"@storybook/preset-react-webpack@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-7.6.4.tgz#ea1efab0a5e973136ddcb196cbdba85afe411233" + integrity sha512-rQ3hqehGUvmbwUosNdh1jnXevaHQ9ezqc4v8YlX5TELp1oz+qhRe0gnQOdsQ98SsdjA24EHfgc331dp9F3up6Q== dependencies: - "@babel/preset-flow" "^7.22.5" - "@babel/preset-react" "^7.22.5" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.5" - "@storybook/core-webpack" "7.2.2" - "@storybook/docs-tools" "7.2.2" - "@storybook/node-logger" "7.2.2" - "@storybook/react" "7.2.2" + "@babel/preset-flow" "^7.22.15" + "@babel/preset-react" "^7.22.15" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.11" + "@storybook/core-webpack" "7.6.4" + "@storybook/docs-tools" "7.6.4" + "@storybook/node-logger" "7.6.4" + "@storybook/react" "7.6.4" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" - "@types/node" "^16.0.0" + "@types/node" "^18.0.0" "@types/semver" "^7.3.4" babel-plugin-add-react-displayname "^0.0.5" - babel-plugin-react-docgen "^4.2.1" fs-extra "^11.1.0" - react-refresh "^0.11.0" + magic-string "^0.30.5" + react-docgen "^7.0.0" + react-refresh "^0.14.0" semver "^7.3.7" webpack "5" -"@storybook/preview-api@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.2.2.tgz#b23d1a9024041fea86265931a06ba5b42a395868" - integrity sha512-II0EioQCGS2zTSoHbXNKyI1rwk2X7MBi2/tJerj4w4Qwi2fDQlwM0LKsIWlRjXTxBpOAsOoTelh24wSBoZu4bg== +"@storybook/preview-api@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.6.4.tgz#df103fbdfada5ceee540f6ea68001c0d2c718113" + integrity sha512-KhisNdQX5NdfAln+spLU4B82d804GJQp/CnI5M1mm/taTnjvMgs/wTH9AmR89OPoq+tFZVW0vhy2zgPS3ar71A== dependencies: - "@storybook/channels" "7.2.2" - "@storybook/client-logger" "7.2.2" - "@storybook/core-events" "7.2.2" - "@storybook/csf" "^0.1.0" + "@storybook/channels" "7.6.4" + "@storybook/client-logger" "7.6.4" + "@storybook/core-events" "7.6.4" + "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/types" "7.2.2" + "@storybook/types" "7.6.4" "@types/qs" "^6.9.5" dequal "^2.0.2" lodash "^4.17.21" @@ -5235,10 +4388,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/preview@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.2.2.tgz#1baabcbcc57c05260158bcb819d96157553ccba1" - integrity sha512-F3S3yK+RmpriADWnfVZsRN36WRT6LaFjD0sNrUkX8duxdnxNDaLFfJ3Cbxwyv/2lZ48uByIQbX2LC5HieVI0KA== +"@storybook/preview@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.6.4.tgz#36cca1d10fd3729f1a68789d95bfc400e33aa616" + integrity sha512-p9xIvNkgXgTpSRphOMV9KpIiNdkymH61jBg3B0XyoF6IfM1S2/mQGvC89lCVz1dMGk2SrH4g87/WcOapkU5ArA== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -5253,40 +4406,40 @@ react-docgen-typescript "^2.2.2" tslib "^2.0.0" -"@storybook/react-dom-shim@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.2.2.tgz#8fa704a6d8ba0daf116229b62ea05f9577064b5d" - integrity sha512-H/yHlWl94vbUv1NNolcB3vCy1S185XKicswljJRC9o/AFCJK+a7d9wDVGTPKF6oy7ujrgpANLQyq02d+OuoO7w== +"@storybook/react-dom-shim@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.6.4.tgz#d1f5440c8f1ccd95abcc01117872ce46d0ab9dc3" + integrity sha512-wGJfomlDEBnowNmhmumWDu/AcUInxSoPqUUJPgk2f5oL0EW17fR9fDP/juG3XOEdieMDM0jDX48GML7lyvL2fg== "@storybook/react-webpack5@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-7.2.2.tgz#08028a28f313ab9876c657d35e3d675881d27ac6" - integrity sha512-VBFOO4LUuX/DVqaVBHpSTNT1NcIUlt1RpHX371NM0IcPSAj4EjHu3fLK4GjPMNJSqjnT7i6cthwPPe4hATTldg== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-7.6.4.tgz#528b72172f3046bdcfa9934b5cfe22edf0b784f7" + integrity sha512-uUucaHG67Yu2WrHigJzMbbYg6vbehHDUC6HsORcfwdC9y/VhR47ORU6UkVQNZ/K4WLNe4HbyGGKGRUght5UtbQ== dependencies: - "@storybook/builder-webpack5" "7.2.2" - "@storybook/preset-react-webpack" "7.2.2" - "@storybook/react" "7.2.2" - "@types/node" "^16.0.0" + "@storybook/builder-webpack5" "7.6.4" + "@storybook/preset-react-webpack" "7.6.4" + "@storybook/react" "7.6.4" + "@types/node" "^18.0.0" -"@storybook/react@7.2.2", "@storybook/react@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.2.2.tgz#9486c701901d89f578cca6409509771f41d01efd" - integrity sha512-41vOR9mCPGeO4YBVfej+X+Fge+igelqSFCJF/koZDdYxOVehsz3bK++TNrKo2utF69evhwSmIU1iEMEjesmbNg== +"@storybook/react@7.6.4", "@storybook/react@^7.2.2": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.6.4.tgz#b17c451eb1240399d75c45ccb90a145ab1de44ac" + integrity sha512-XYRP+eylH3JqkCuziwtQGY5vOCeDreOibRYJmj5na6k4QbURjGVB44WCIW04gWVlmBXM9SqLAmserUi3HP890Q== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/core-client" "7.2.2" - "@storybook/docs-tools" "7.2.2" + "@storybook/client-logger" "7.6.4" + "@storybook/core-client" "7.6.4" + "@storybook/docs-tools" "7.6.4" "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.2.2" - "@storybook/react-dom-shim" "7.2.2" - "@storybook/types" "7.2.2" + "@storybook/preview-api" "7.6.4" + "@storybook/react-dom-shim" "7.6.4" + "@storybook/types" "7.6.4" "@types/escodegen" "^0.0.6" "@types/estree" "^0.0.51" - "@types/node" "^16.0.0" + "@types/node" "^18.0.0" acorn "^7.4.1" acorn-jsx "^5.3.1" acorn-walk "^7.2.0" - escodegen "^2.0.0" + escodegen "^2.1.0" html-tags "^3.1.0" lodash "^4.17.21" prop-types "^15.7.2" @@ -5295,64 +4448,56 @@ type-fest "~2.19" util-deprecate "^1.0.2" -"@storybook/router@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.2.2.tgz#a9ee716fb428c89f77a16b816d6e184d60614e8d" - integrity sha512-cnJg43dm3dVifKkRBUsQ4wXC4sJOm46JAS95yRPeGACoHpJTcbCWk1n5GLYA7ozO+KFQSNdxHxPIjNqvnzMFiA== +"@storybook/router@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.6.4.tgz#13112bd9d6709bebe4072d923e4921b660f8f00c" + integrity sha512-5MQ7Z4D7XNPN2yhFgjey7hXOYd6s8CggUqeAwhzGTex90SMCkKHSz1hfkcXn1ZqBPaall2b53uK553OvPLp9KQ== dependencies: - "@storybook/client-logger" "7.2.2" + "@storybook/client-logger" "7.6.4" memoizerific "^1.11.3" qs "^6.10.0" "@storybook/source-loader@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-7.2.2.tgz#0c3159c23e4536fbf6861d75ceb20ff924f3103d" - integrity sha512-kzUhihfnOWKekEw9eX7BNhjuVj4gvcU3F2Fe/GrtyCOilB8fgTOla47SEbqJ2WIPamp91ZI1VoSjSNy5BhG9Ow== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-7.6.4.tgz#ef930e2dd947f45cbfaf845fa21035d82ac25c8d" + integrity sha512-1wb/3bVpJZ/3r3qUrLK8jb0kLuvwjNi5T1kci5huREdc1TrIxZXoPw9EiyjcMCZzCURkoj7euNLrLHGyzdBTLg== dependencies: - "@storybook/csf" "^0.1.0" - "@storybook/types" "7.2.2" + "@storybook/csf" "^0.1.2" + "@storybook/types" "7.6.4" estraverse "^5.2.0" lodash "^4.17.21" prettier "^2.8.0" -"@storybook/store@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-7.2.2.tgz#63c05cd07a240bf374a71c1ab4a1afbd0ebf7ca6" - integrity sha512-4Z0iFdD6u9u9rDvr0ekLXOx1tIcmS1OU3xhk92RFWbGpAx4+bb1JDWmO7T04l+uPvLvYpWn5NrSV1ZdgyTVxUg== +"@storybook/telemetry@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.6.4.tgz#b28e8f7abf73b4900d83dfa68a988b6f3df9c24a" + integrity sha512-Q4QpvcgloHUEqC9PGo7tgqkUH91/PjX+74/0Hi9orLo8QmLMgdYS5fweFwgSKoTwDGNg2PaHp/jqvhhw7UmnJA== dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/preview-api" "7.2.2" - -"@storybook/telemetry@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.2.2.tgz#b8ff828f891f97757ab98f047731ca2380255b1c" - integrity sha512-pJ8oQ++QD7hLezARp+3PR0JAw3FH6cmOrSs4KAB+IhNgACs8gehaEdy7TAikor5tlAUCWvqPetnNXDrrDIZhTQ== - dependencies: - "@storybook/client-logger" "7.2.2" - "@storybook/core-common" "7.2.2" - "@storybook/csf-tools" "7.2.2" + "@storybook/client-logger" "7.6.4" + "@storybook/core-common" "7.6.4" + "@storybook/csf-tools" "7.6.4" chalk "^4.1.0" detect-package-manager "^2.0.1" fetch-retry "^5.0.2" fs-extra "^11.1.0" read-pkg-up "^7.0.1" -"@storybook/theming@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.2.2.tgz#135489c47a43c1947683a697fa72d81168aacd5e" - integrity sha512-B4nxcxl4IyVvB1NXwRi4yopAS73zl052f2zJi3kVghJbZ3tgPwgvi3CVpOs2D4pgmxOrKCgiLnzLrGTH+13+0A== +"@storybook/theming@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.6.4.tgz#cc81d0aee5fc80fe383cb6790e3a0e2ad80d2185" + integrity sha512-Z/dcC5EpkIXelYCkt9ojnX6D7qGOng8YHxV/OWlVE9TrEGYVGPOEfwQryR0RhmGpDha1TYESLYrsDb4A8nJ1EA== dependencies: "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.2.2" + "@storybook/client-logger" "7.6.4" "@storybook/global" "^5.0.0" memoizerific "^1.11.3" -"@storybook/types@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.2.2.tgz#15fcac80bddd1efa9181e9775034d1fe6785a08c" - integrity sha512-yrL0+KD+dsusQvDmNKQGv36WjvdhoiUxMDEBgsZkP047kRc3b8/zEbD3Tu7iMDsWnpgwip1Frgy29Ro3UtK57Q== +"@storybook/types@7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.6.4.tgz#3bb50b46286cc83484848c3c450c32cc2071eb21" + integrity sha512-qyiiXPCvol5uVgfubcIMzJBA0awAyFPU+TyUP1mkPYyiTHnsHYel/mKlSdPjc8a97N3SlJXHOCx41Hde4IyJgg== dependencies: - "@storybook/channels" "7.2.2" + "@storybook/channels" "7.6.4" "@types/babel__core" "^7.0.0" "@types/express" "^4.7.0" file-system-cache "2.3.0" @@ -5576,71 +4721,78 @@ "@svgr/plugin-jsx" "^6.5.1" "@svgr/plugin-svgo" "^6.5.1" -"@swc/core-darwin-arm64@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.71.tgz#3cc2bfa7e3f89ec18987af863b2260a5340ff0a7" - integrity sha512-xOm0hDbcO2ShwQu1CjLtq3fwrG9AvhuE0s8vtBc8AsamYExHmR8bo6GQHJUtfPG1FVPk5a8xoQSd1fs09FQjLg== +"@swc/core-darwin-arm64@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.100.tgz#f582c5bbc9c49506f728fc1d14dff33c2cc226d5" + integrity sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw== -"@swc/core-darwin-x64@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.71.tgz#0f5439994013480454dfe2a5aff8861e93316fe3" - integrity sha512-9sbDXBWgM22w/3Ll5kPhXMPkOiHRoqwMOyxLJBfGtIMnFlh5O+NRN3umRerK3pe4Q6/7hj2M5V+crEHYrXmuxg== +"@swc/core-darwin-x64@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.100.tgz#d84f5c0bb4603c252884d011a698ed7c634b1505" + integrity sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA== -"@swc/core-linux-arm-gnueabihf@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.71.tgz#77ea469736802ce2865fbc4893991b7abf369e3e" - integrity sha512-boKdMZsfKvhBs0FDeqH7KQj0lfYe0wCtrL1lv50oYMEeLajY9o4U5xSmc61Sg4HRXjlbR6dlM2cFfL84t7NpAA== +"@swc/core-linux-arm64-gnu@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.100.tgz#1ed4b92b373882d8f338c4e0a0aa64cdaa6106f1" + integrity sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw== -"@swc/core-linux-arm64-gnu@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.71.tgz#8a17c17fac03a448484af41fa35e45458da312b5" - integrity sha512-yDatyHYMiOVwhyIA/LBwknPs2CUtLYWEMzPZjgLc+56PbgPs3oiEbNWeVUND5onPrfDQgK7NK1y8JeiXZqTgGQ== +"@swc/core-linux-arm64-musl@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.100.tgz#9db560f7459e42e65ec02670d6a8316e7c850cfc" + integrity sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA== -"@swc/core-linux-arm64-musl@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.71.tgz#bd3bf4310870a8a60a9dc834502d6852cd2b129b" - integrity sha512-xAdCA0L/hoa0ULL5SR4sMZCxkWk7C90DOU7wJalNVG9qNWYICfq3G7AR0E9Ohphzqyahfb5QJED/nA7N0+XwbQ== +"@swc/core-linux-x64-gnu@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.100.tgz#228826ea48879bf1e73683fbef4373e3e762e424" + integrity sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA== -"@swc/core-linux-x64-gnu@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.71.tgz#5c1f5ecb8fa96456195e75ac12c40372896d4b89" - integrity sha512-j94qLXP/yqhu2afnABAq/xrJIU8TEqcNkp1TlsAeO3R2nVLYL1w4XX8GW71SPnXmd2bwF102c3Cfv/2ilf2y2A== +"@swc/core-linux-x64-musl@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.100.tgz#09a234dbbf625d071ecb663680e997a62d230d49" + integrity sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ== -"@swc/core-linux-x64-musl@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.71.tgz#5fa99bd115d3bf90aebcee8793644f998024fcbe" - integrity sha512-YiyU848ql6dLlmt0BHccGAaZ36Cf61VzCAMDKID/gd72snvzWcMCHrwSRW0gEFNXHsjBJrmNl+SLYZHfqoGwUA== +"@swc/core-win32-arm64-msvc@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.100.tgz#add1c82884c10a9054ed6a48f884097aa85c6d2b" + integrity sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw== -"@swc/core-win32-arm64-msvc@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.71.tgz#4e39975a51c56911e1183efd2106c0e74fe89b1c" - integrity sha512-1UsJ+6hnIRe/PVdgDPexvgGaN4KpBncT/bAOqlWc9XC7KeBXAWcGA08LrPUz2Ei00DJXzR622IGZVEYOHNkUOw== +"@swc/core-win32-ia32-msvc@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.100.tgz#e0b6c5ae7f3250adeeb88dae83558d3f45148c56" + integrity sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A== -"@swc/core-win32-ia32-msvc@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.71.tgz#6bb37d9fba8409078376d292711566ccf9a46145" - integrity sha512-KnuI89+zojR9lDFELdQYZpxzPZ6pBfLwJfWTSGatnpL1ZHhIsV3tK1jwqIdJK1zkRxpBwc6p6FzSZdZwCSpnJw== +"@swc/core-win32-x64-msvc@1.3.100": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.100.tgz#34721dff151d7dcf165675f18aeed0a12264d88c" + integrity sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ== -"@swc/core-win32-x64-msvc@1.3.71": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.71.tgz#33a53e4d5f93d13bae791451f3746d3da6a39984" - integrity sha512-Pcw7fFirpaBOZsU8fhO48ZCb7NxIjuLnLRPrHqWQ4Mapx1+w9ZNdGya2DKP9n8EAiUrJO20WDsrBNMT2MQSWkA== - -"@swc/core@^1.3.49": - version "1.3.71" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.71.tgz#7911038a5577005a5f12b9b2e31f6c804a0c4b7e" - integrity sha512-T8dqj+SV/S8laW/FGmKHhCGw1o4GRUvJ2jHfbYgEwiJpeutT9uavHvG02t39HJvObBJ52EZs/krGtni4U5928Q== +"@swc/core@^1.3.82": + version "1.3.100" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.100.tgz#8fa36f26a35137620234b084224c9fa9b8a0fee2" + integrity sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw== + dependencies: + "@swc/counter" "^0.1.1" + "@swc/types" "^0.1.5" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.71" - "@swc/core-darwin-x64" "1.3.71" - "@swc/core-linux-arm-gnueabihf" "1.3.71" - "@swc/core-linux-arm64-gnu" "1.3.71" - "@swc/core-linux-arm64-musl" "1.3.71" - "@swc/core-linux-x64-gnu" "1.3.71" - "@swc/core-linux-x64-musl" "1.3.71" - "@swc/core-win32-arm64-msvc" "1.3.71" - "@swc/core-win32-ia32-msvc" "1.3.71" - "@swc/core-win32-x64-msvc" "1.3.71" + "@swc/core-darwin-arm64" "1.3.100" + "@swc/core-darwin-x64" "1.3.100" + "@swc/core-linux-arm64-gnu" "1.3.100" + "@swc/core-linux-arm64-musl" "1.3.100" + "@swc/core-linux-x64-gnu" "1.3.100" + "@swc/core-linux-x64-musl" "1.3.100" + "@swc/core-win32-arm64-msvc" "1.3.100" + "@swc/core-win32-ia32-msvc" "1.3.100" + "@swc/core-win32-x64-msvc" "1.3.100" + +"@swc/counter@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e" + integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw== + +"@swc/types@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a" + integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw== "@szmarczak/http-timer@^5.0.1": version "5.0.1" @@ -5680,10 +4832,10 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.18.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -5692,97 +4844,102 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6", "@types/babel__traverse@^7.18.0": + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== dependencies: "@babel/types" "^7.20.7" "@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" "@types/child-process-promise@^2.2.1": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@types/child-process-promise/-/child-process-promise-2.2.2.tgz#ac7d640a6289f7caa6102d92d83a0123a07a4937" - integrity sha512-4eGTIhKW0jb9DlS81Fgo/UyZ12DMhDhz3Ec8tdHW53l4ubteynNIuy7Z1HNnyHn1jTzXa/o9iX0WoAdiSoDs+Q== + version "2.2.6" + resolved "https://registry.yarnpkg.com/@types/child-process-promise/-/child-process-promise-2.2.6.tgz#3936229dd9c88d14a52cb05a061d9a67f0d0374e" + integrity sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" - integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/cross-spawn@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.2.tgz#168309de311cd30a2b8ae720de6475c2fbf33ac7" - integrity sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw== + version "6.0.6" + resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.6.tgz#0163d0b79a6f85409e0decb8dcca17147f81fd22" + integrity sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA== dependencies: "@types/node" "*" "@types/debug@^4.0.0": - version "4.1.8" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" - integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/detect-port@^1.3.0": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.3.tgz#124c5d4c283f48a21f80826bcf39433b3e64aa81" - integrity sha512-bV/jQlAJ/nPY3XqSatkGpu+nGzou+uSwrH1cROhn+jBFg47yaNH+blW4C7p9KhopC7QxCv/6M86s37k8dMk0Yg== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.5.tgz#deecde143245989dee0e82115f3caba5ee0ea747" + integrity sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA== "@types/doctrine@^0.0.3": version "0.0.3" resolved "https://registry.yarnpkg.com/@types/doctrine/-/doctrine-0.0.3.tgz#e892d293c92c9c1d3f9af72c15a554fbc7e0895a" integrity sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA== +"@types/doctrine@^0.0.9": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@types/doctrine/-/doctrine-0.0.9.tgz#d86a5f452a15e3e3113b99e39616a9baa0f9863f" + integrity sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA== + "@types/ejs@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.2.tgz#75d277b030bc11b3be38c807e10071f45ebc78d9" - integrity sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g== + version "3.1.5" + resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.5.tgz#49d738257cc73bafe45c13cb8ff240683b4d5117" + integrity sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg== "@types/emscripten@^1.39.6": - version "1.39.7" - resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-1.39.7.tgz#3025183ea56e12bf4d096aadc48ce74ca051233d" - integrity sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA== + version "1.39.10" + resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-1.39.10.tgz#da6e58a6171b46a41d3694f812d845d515c77e18" + integrity sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw== "@types/escodegen@^0.0.6": version "0.0.6" @@ -5790,17 +4947,17 @@ integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig== "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.44.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.1.tgz#d1811559bb6bcd1a76009e3f7883034b78a0415e" - integrity sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg== + version "8.44.9" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.9.tgz#5799663009645637bd1c45b2e1a7c8f4caf89534" + integrity sha512-6yBxcvwnnYoYT1Uk2d+jvIfsuP4mb2EdIxFnrPABj5a/838qe5bGkNLFOiipX4ULQ7XVQvTxOh7jO+BTAiqsEw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -5814,9 +4971,9 @@ "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/estree@0.0.39": version "0.0.39" @@ -5836,9 +4993,9 @@ "@types/node" "*" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.35" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" - integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + version "4.17.41" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" + integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -5846,9 +5003,9 @@ "@types/send" "*" "@types/express@*", "@types/express@^4.17.13", "@types/express@^4.7.0": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -5869,16 +5026,16 @@ "@types/node" "*" "@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" "@types/hast@^2.0.0": - version "2.3.5" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.5.tgz#08caac88b44d0fdd04dc17a19142355f43bd8a7a" - integrity sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg== + version "2.3.8" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.8.tgz#4ac5caf38b262b7bd5ca3202dda71f0271635660" + integrity sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ== dependencies: "@types/unist" "^2" @@ -5892,32 +5049,32 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/http-cache-semantics@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41" - integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/http-errors@*": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" - integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== "@types/http-proxy@^1.17.8": - version "1.17.11" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" - integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" @@ -5930,9 +5087,9 @@ "@types/istanbul-lib-report" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" @@ -5954,9 +5111,9 @@ parse5 "^7.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" @@ -5964,36 +5121,36 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash@^4.14.167": - version "4.14.196" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.196.tgz#a7c3d6fc52d8d71328b764e28e080b4169ec7a95" - integrity sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ== + version "4.14.202" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" + integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== "@types/mdast@^3.0.0": - version "3.0.12" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.12.tgz#beeb511b977c875a5b0cc92eab6fcac2f0895514" - integrity sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== dependencies: "@types/unist" "^2" "@types/mdx@^2.0.0": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.5.tgz#9a85a8f70c7c4d9e695a21d5ae5c93645eda64b1" - integrity sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg== + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.10.tgz#0d7b57fb1d83e27656156e4ee0dfba96532930e4" + integrity sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg== "@types/mime-types@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.1.tgz#d9ba43490fa3a3df958759adf69396c3532cf2c1" - integrity sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw== + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.4.tgz#93a1933e24fed4fb9e4adc5963a63efcbb3317a2" + integrity sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w== "@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== "@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/minimatch@*": version "5.1.2" @@ -6006,97 +5163,98 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== "@types/node-fetch@^2.6.4": - version "2.6.4" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" - integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== + version "2.6.9" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" + integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + +"@types/node-forge@^1.3.0": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" + integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== dependencies: "@types/node" "*" - form-data "^3.0.0" "@types/node@*": - version "20.4.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69" - integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg== + version "20.10.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" + integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== + dependencies: + undici-types "~5.26.4" "@types/node@^11.9.4": version "11.15.54" resolved "https://registry.yarnpkg.com/@types/node/-/node-11.15.54.tgz#59ed60e7b0d56905a654292e8d73275034eb6283" integrity sha512-1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g== -"@types/node@^16.0.0": - version "16.18.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.39.tgz#aa39a1a87a40ef6098ee69689a1acb0c1b034832" - integrity sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ== - "@types/node@^17.0.5": version "17.0.45" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== -"@types/node@^18.17.5": - version "18.17.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.17.tgz#53cc07ce582c9d7c5850702a3c2cb0af0d7b0ca1" - integrity sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw== +"@types/node@^18.0.0", "@types/node@^18.17.5": + version "18.19.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.3.tgz#e4723c4cb385641d61b983f6fe0b716abd5f8fc0" + integrity sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg== + dependencies: + undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/parse5@^5.0.0": version "5.0.3" resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - "@types/pretty-hrtime@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz#72a26101dc567b0d68fd956cf42314556e42d601" - integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#ee1bd8c9f7a01b3445786aad0ef23aba5f511a44" + integrity sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA== "@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== "@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== "@types/qs@*", "@types/qs@^6.9.5": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.10" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" + integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/react-router-config@*", "@types/react-router-config@^5.0.6": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.7.tgz#36207a3fe08b271abee62b26993ee932d13cbb02" - integrity sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w== + version "5.0.11" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.11.tgz#2761a23acc7905a66a94419ee40294a65aaa483a" + integrity sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw== dependencies: "@types/history" "^4.7.11" "@types/react" "*" @@ -6120,41 +5278,41 @@ "@types/react" "*" "@types/react-test-renderer@*": - version "18.0.5" - resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.5.tgz#b67a6ff37acd93d1b971ec4c838f69d52e772db0" - integrity sha512-PsnmF4Hpi61PTRX+dTxkjgDdtZ09kFFgPXczoF+yBfOVxn7xBLPvKP1BUrSasYHmerj33rhoJuvpIMsJuyRqHw== + version "18.0.7" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.7.tgz#2cfe657adb3688cdf543995eceb2e062b5a68728" + integrity sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg== dependencies: "@types/react" "*" "@types/react-transition-group@^4.4.0": - version "4.4.6" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" - integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== dependencies: "@types/react" "*" "@types/react@*", "@types/react@>=16": - version "18.2.17" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.17.tgz#baa565b17ddb649c2dac85b5eaf9e9a1fe0f3b4e" - integrity sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA== + version "18.2.45" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.45.tgz#253f4fac288e7e751ab3dc542000fb687422c15c" + integrity sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/react@^17.0.38": - version "17.0.62" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.62.tgz#2efe8ddf8533500ec44b1334dd1a97caa2f860e3" - integrity sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw== + version "17.0.73" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.73.tgz#23a663c803b18d8b7f4f2bb9b467f2f3fd70787a" + integrity sha512-6AcjgPIVsXTIsFDgsGW0iQhvg0xb2vt2qAWgXyncnVNRaW9ZXTTwAh7RQoh7PzK1AhjPoGDvUBkdAREih9n5oQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/resize-observer-browser@^0.1.6": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz#294aaadf24ac6580b8fbd1fe3ab7b59fe85f9ef3" - integrity sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg== + version "0.1.11" + resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.11.tgz#d3c98d788489d8376b7beac23863b1eebdd3c13c" + integrity sha512-cNw5iH8JkMkb3QkCoe7DaZiawbDQEUX8t7iuQaRTyLOyQCR2h+ibBD4GJt7p5yhUHrlOeL7ZtbxNHeipqNsBzQ== "@types/resolve@1.17.1": version "1.17.1" @@ -6163,47 +5321,52 @@ dependencies: "@types/node" "*" +"@types/resolve@^1.20.2": + version "1.20.6" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.6.tgz#e6e60dad29c2c8c206c026e6dd8d6d1bdda850b8" + integrity sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ== + "@types/retry@0.12.0": version "0.12.0" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/sax@^1.2.1": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.4.tgz#8221affa7f4f3cb21abd22f244cfabfa63e6a69e" - integrity sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw== + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.7.tgz#ba5fe7df9aa9c89b6dff7688a19023dd2963091d" + integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== dependencies: "@types/node" "*" "@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== "@types/semver@^7.3.4", "@types/semver@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@types/send@*": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a" - integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== + version "1.15.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== dependencies: "@types/http-errors" "*" "@types/mime" "*" @@ -6215,31 +5378,31 @@ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + version "2.3.8" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" + integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== "@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" "@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + version "0.1.6" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.6.tgz#164e169dd061795b50b83c19e4d3be09f8d3a454" + integrity sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g== "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/tapable@^1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + version "1.0.12" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.12.tgz#bc2cab12e87978eee89fb21576b670350d6d86ab" + integrity sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q== "@types/testing-library__react-hooks@^3.4.0": version "3.4.1" @@ -6249,40 +5412,45 @@ "@types/react-test-renderer" "*" "@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== "@types/trusted-types@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" - integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== "@types/uglify-js@*": - version "3.17.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5" - integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g== + version "3.17.4" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.4.tgz#3c70021f08023e5a760ce133d22966f200e1d31c" + integrity sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg== dependencies: source-map "^0.6.1" "@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.7.tgz#5b06ad6894b236a1d2bd6b2f07850ca5c59cf4d6" - integrity sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g== + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + +"@types/uuid@^9.0.1": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" + integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== "@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + version "3.2.3" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.3.tgz#b667bd13e9fa15a9c26603dce502c7985418c3d8" + integrity sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4.4.31": - version "4.41.33" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" - integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g== + version "4.41.38" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.38.tgz#5a40ac81bdd052bf405e8bdcf3e1236f6db6dc26" + integrity sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw== dependencies: "@types/node" "*" "@types/tapable" "^1" @@ -6292,16 +5460,16 @@ source-map "^0.6.0" "@types/ws@^8.2.2", "@types/ws@^8.5.5": - version "8.5.5" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" - integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^13.0.0": version "13.0.12" @@ -6311,103 +5479,102 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== dependencies: "@types/yargs-parser" "*" "@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + version "2.10.3" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== dependencies: "@types/node" "*" "@typescript-eslint/eslint-plugin@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz#e751e148aab7ccaf8a7bfd370f7ce9e6bdd1f3f4" - integrity sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A== + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz#fc1ab5f23618ba590c87e8226ff07a760be3dd7b" + integrity sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.3.0" - "@typescript-eslint/type-utils" "6.3.0" - "@typescript-eslint/utils" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" + "@typescript-eslint/scope-manager" "6.14.0" + "@typescript-eslint/type-utils" "6.14.0" + "@typescript-eslint/utils" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" natural-compare "^1.4.0" - natural-compare-lite "^1.4.0" semver "^7.5.4" ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.3.0.tgz#359684c443f4f848db3c4f14674f544f169c8f46" - integrity sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg== + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.14.0.tgz#a2d6a732e0d2b95c73f6a26ae7362877cc1b4212" + integrity sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA== dependencies: - "@typescript-eslint/scope-manager" "6.3.0" - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/typescript-estree" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" + "@typescript-eslint/scope-manager" "6.14.0" + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/typescript-estree" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz#6b74e338c4b88d5e1dfc1a28c570dd5cf8c86b09" - integrity sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ== +"@typescript-eslint/scope-manager@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" + integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg== dependencies: - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" -"@typescript-eslint/type-utils@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz#3bf89ccd36621ddec1b7f8246afe467c67adc247" - integrity sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ== +"@typescript-eslint/type-utils@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz#ac9cb5ba0615c837f1a6b172feeb273d36e4f8af" + integrity sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw== dependencies: - "@typescript-eslint/typescript-estree" "6.3.0" - "@typescript-eslint/utils" "6.3.0" + "@typescript-eslint/typescript-estree" "6.14.0" + "@typescript-eslint/utils" "6.14.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" - integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== +"@typescript-eslint/types@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" + integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== -"@typescript-eslint/typescript-estree@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" - integrity sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg== +"@typescript-eslint/typescript-estree@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" + integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw== dependencies: - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.3.0.tgz#0898c5e374372c2092ca1b979ea7ee9cc020ce84" - integrity sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q== +"@typescript-eslint/utils@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3" + integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.3.0" - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/scope-manager" "6.14.0" + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/typescript-estree" "6.14.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz#8d09aa3e389ae0971426124c155ac289afbe450a" - integrity sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw== +"@typescript-eslint/visitor-keys@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" + integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw== dependencies: - "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/types" "6.14.0" eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": @@ -6683,9 +5850,9 @@ acorn-walk@^7.0.0, acorn-walk@^7.2.0: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.0, acorn-walk@^8.0.2: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" + integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== acorn@^6.0.7, acorn@^6.1.1: version "6.4.2" @@ -6697,10 +5864,10 @@ acorn@^7.0.0, acorn@^7.4.0, acorn@^7.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.2, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== add-stream@^1.0.0: version "1.0.0" @@ -6729,13 +5896,18 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" - integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== +agent-base@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +agentkeepalive@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: - debug "^4.1.0" - depd "^2.0.0" humanize-ms "^1.2.1" aggregate-error@^3.0.0: @@ -6816,31 +5988,31 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.6.0, ajv@^8.9.0: uri-js "^4.2.2" algoliasearch-helper@^3.10.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.14.0.tgz#2409c2591952719ab6fba1de77b3bbe5094ab85e" - integrity sha512-gXDXzsSS0YANn5dHr71CUXOo84cN4azhHKUbg71vAWnH+1JBiR4jf7to3t3JHXknXkbV0F7f055vUSBKrltHLQ== + version "3.16.0" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.16.0.tgz#42c7c8cecf5fa91fb9dd467011fa68c9050be7dc" + integrity sha512-RxOtBafSQwyqD5BLO/q9VsVw/zuNz8kjb51OZhCIWLr33uvKB+vrRis+QK+JFlNQXbXf+w28fsTWiBupc1pHew== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^4.0.0, algoliasearch@^4.13.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.19.1.tgz#18111fb422eaf841737adb92d5ab12133d244218" - integrity sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g== +algoliasearch@^4.13.1, algoliasearch@^4.19.1: + version "4.21.1" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.21.1.tgz#61fd5f9d4480fca263d9c22c2cdf24ef6d37631d" + integrity sha512-Ym0MGwOcjQhZ+s1N/j0o94g3vQD0MzNpWsfJLyPVCt0zHflbi0DwYX+9GPmTJ4BzegoxWMyCPgcmpd3R+VlOzQ== dependencies: - "@algolia/cache-browser-local-storage" "4.19.1" - "@algolia/cache-common" "4.19.1" - "@algolia/cache-in-memory" "4.19.1" - "@algolia/client-account" "4.19.1" - "@algolia/client-analytics" "4.19.1" - "@algolia/client-common" "4.19.1" - "@algolia/client-personalization" "4.19.1" - "@algolia/client-search" "4.19.1" - "@algolia/logger-common" "4.19.1" - "@algolia/logger-console" "4.19.1" - "@algolia/requester-browser-xhr" "4.19.1" - "@algolia/requester-common" "4.19.1" - "@algolia/requester-node-http" "4.19.1" - "@algolia/transporter" "4.19.1" + "@algolia/cache-browser-local-storage" "4.21.1" + "@algolia/cache-common" "4.21.1" + "@algolia/cache-in-memory" "4.21.1" + "@algolia/client-account" "4.21.1" + "@algolia/client-analytics" "4.21.1" + "@algolia/client-common" "4.21.1" + "@algolia/client-personalization" "4.21.1" + "@algolia/client-search" "4.21.1" + "@algolia/logger-common" "4.21.1" + "@algolia/logger-console" "4.21.1" + "@algolia/requester-browser-xhr" "4.21.1" + "@algolia/requester-common" "4.21.1" + "@algolia/requester-node-http" "4.21.1" + "@algolia/transporter" "4.21.1" ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" @@ -6985,7 +6157,7 @@ aria-hidden@^1.1.1: dependencies: tslib "^2.0.0" -aria-query@^5.1.3: +aria-query@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== @@ -7020,15 +6192,15 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^1.0.1: @@ -7054,65 +6226,77 @@ array-uniq@^1.0.1: integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.find@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.1.tgz#769b8182a0b535c3d76ac025abab98ba1e12467b" - integrity sha512-I2ri5Z9uMpMvnsNrHre9l3PaX+z9D0/z6F7Yt2u15q7wt0I62g5kX6xUKR1SJiefgG+u2/gJUmM8B47XRvQR6w== + version "2.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.2.tgz#e862cf891e725d8f2a10e5e42d750629faaabd32" + integrity sha512-DRumkfW97iZGOfn+lIXbkVrXL04sfYKX+EfOodo8XboR5sxPDVvOjZTF/rysusa9lmhmSOeD6Vp6RKQP+eP4Tg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flat@^1.2.1, array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +array.prototype.flat@^1.2.1, array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== +array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.reduce@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" - integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== +array.prototype.reduce@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" -arraybuffer.prototype.slice@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" - integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" define-properties "^1.2.0" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" @@ -7144,34 +6328,21 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== +assert@^2.0.0, assert@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -ast-types@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" - integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== - dependencies: - tslib "^2.0.1" +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== ast-types@^0.16.1: version "0.16.1" @@ -7203,9 +6374,16 @@ async@^2.6.4: lodash "^4.17.14" async@^3.2.0, async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" asynckit@^0.4.0: version "0.4.0" @@ -7223,13 +6401,13 @@ attr-accept@^2.0.0: integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== autoprefixer@^10.4.12, autoprefixer@^10.4.13, autoprefixer@^10.4.14, autoprefixer@^10.4.4, autoprefixer@^10.4.7: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -7249,10 +6427,10 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.6.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" - integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== axios@^0.25.0: version "0.25.0" @@ -7277,15 +6455,15 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.1.tgz#76550d644bf0a2d469a01f9244db6753208397d7" - integrity "sha1-dlUNZEvwotRpoB+SRNtnUyCDl9c= sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==" + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^3.1.1: +axobject-query@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== @@ -7326,15 +6504,15 @@ babel-eslint@^10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.1.tgz#a7141ad1ed5ec50238f3cd36127636823111233a" - integrity sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@jest/transform" "^29.6.1" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -7406,10 +6584,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -7436,20 +6614,6 @@ babel-plugin-module-resolver@^5.0.0: reselect "^4.1.7" resolve "^1.22.1" -babel-plugin-named-exports-order@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-named-exports-order/-/babel-plugin-named-exports-order-0.0.2.tgz#ae14909521cf9606094a2048239d69847540cb09" - integrity sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw== - -babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" - integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.2" - semver "^6.3.1" - babel-plugin-polyfill-corejs2@^0.4.6: version "0.4.7" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" @@ -7459,14 +6623,6 @@ babel-plugin-polyfill-corejs2@^0.4.6: "@babel/helper-define-polyfill-provider" "^0.4.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" - integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" - core-js-compat "^3.31.0" - babel-plugin-polyfill-corejs3@^0.8.5: version "0.8.7" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" @@ -7475,13 +6631,6 @@ babel-plugin-polyfill-corejs3@^0.8.5: "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" - integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" - babel-plugin-polyfill-regenerator@^0.5.3: version "0.5.4" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" @@ -7489,15 +6638,6 @@ babel-plugin-polyfill-regenerator@^0.5.3: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.4" -babel-plugin-react-docgen@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz#7cc8e2f94e8dc057a06e953162f0810e4e72257b" - integrity sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ== - dependencies: - ast-types "^0.14.2" - lodash "^4.17.15" - react-docgen "^5.0.0" - babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -7516,12 +6656,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" bail@^1.0.0: @@ -7579,9 +6719,9 @@ better-opn@^3.0.2: open "^8.0.4" big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== big.js@^5.2.2: version "5.2.2" @@ -7752,17 +6892,7 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.21.5, browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== - dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" - -browserslist@^4.22.2: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -7861,34 +6991,40 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -c8@^7.6.0: - version "7.14.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.14.0.tgz#f368184c73b125a80565e9ab2396ff0be4d732f3" - integrity sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw== +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.3" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.2.0" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.1.4" + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" rimraf "^3.0.2" - test-exclude "^6.0.0" - v8-to-istanbul "^9.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.9" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" cacache@^17.0.0: - version "17.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.3.tgz#c6ac23bec56516a7c0c52020fd48b4909d7c7044" - integrity sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg== + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== dependencies: "@npmcli/fs" "^3.1.0" fs-minipass "^3.0.0" glob "^10.2.2" lru-cache "^7.7.1" - minipass "^5.0.0" + minipass "^7.0.3" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" @@ -7903,11 +7039,11 @@ cacheable-lookup@^7.0.0: integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: - version "10.2.13" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.13.tgz#b7012bb4a2acdb18cb54d2dff751d766b3500842" - integrity sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA== + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: - "@types/http-cache-semantics" "^4.0.1" + "@types/http-cache-semantics" "^4.0.2" get-stream "^6.0.1" http-cache-semantics "^4.1.1" keyv "^4.5.3" @@ -7920,13 +7056,14 @@ cachedir@^2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" caller-callsite@^2.0.0: version "2.0.0" @@ -7999,15 +7136,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: - version "1.0.30001517" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8" - integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA== - -caniuse-lite@^1.0.30001565: - version "1.0.30001568" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz#53fa9297273c9a977a560663f48cbea1767518b7" - integrity sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: + version "1.0.30001570" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" + integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -8060,7 +7192,7 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -8187,9 +7319,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0, ci-info@^3.6.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: version "1.2.3" @@ -8202,9 +7334,9 @@ classnames@^2.2.5, classnames@^2.3.2: integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== clean-css@^5.2.2, clean-css@^5.3.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== dependencies: source-map "~0.6.0" @@ -8258,9 +7390,9 @@ cli-spinners@2.6.1: integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@^0.6.1, cli-table3@^0.6.2, cli-table3@~0.6.1: version "0.6.3" @@ -8427,7 +7559,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.19: +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.20: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== @@ -8448,9 +7580,9 @@ columnify@1.6.0: wcwidth "^1.0.0" combine-promises@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.1.0.tgz#72db90743c0ca7aab7d0d8d2052fd7b0f674de71" - integrity sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" + integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" @@ -8469,7 +7601,7 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@8.3.0, commander@9.2.0, commander@^2.19.0, commander@^2.20.0, commander@^5.1.0, commander@^6.2.1, commander@^7.0.0, commander@^7.2.0, commander@^8.3.0: +commander@8.3.0, commander@9.2.0, commander@^2.20.0, commander@^5.1.0, commander@^6.2.1, commander@^7.0.0, commander@^7.2.0, commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== @@ -8629,10 +7761,10 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz#a9a9494c28b7165889144fd5b91573c4aa9ca541" - integrity sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg== +conventional-changelog-angular@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== dependencies: compare-func "^2.0.0" @@ -8702,7 +7834,7 @@ conventional-recommended-bump@7.0.1: git-semver-tags "^5.0.0" meow "^8.1.2" -convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.5.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -8763,14 +7895,7 @@ copy-webpack-plugin@^9.0.1: schema-utils "^3.1.1" serialize-javascript "^6.0.0" -core-js-compat@^3.31.0: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" - integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== - dependencies: - browserslist "^4.21.9" - -core-js-compat@^3.33.1: +core-js-compat@^3.31.0, core-js-compat@^3.33.1: version "3.34.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== @@ -8778,9 +7903,9 @@ core-js-compat@^3.33.1: browserslist "^4.22.2" core-js-pure@^3.23.3, core-js-pure@^3.30.2: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.1.tgz#73d154958881873bc19381df80bddb20c8d0cdb5" - integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.34.0.tgz#981e462500708664c91b827a75b011f04a8134a0" + integrity sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg== core-js@^2.4.1, core-js@^2.5.7, core-js@^2.6.12: version "2.6.12" @@ -8788,9 +7913,9 @@ core-js@^2.4.1, core-js@^2.5.7, core-js@^2.6.12: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.16.1, core-js@^3.2.1, core-js@^3.23.3, core-js@^3.8.3: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.1.tgz#f2b0eea9be9da0def2c5fece71064a7e5d687653" - integrity sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ== + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5" + integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag== core-util-is@1.0.2: version "1.0.2" @@ -8840,15 +7965,28 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: yaml "^1.10.0" cosmiconfig@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + cross-env@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" @@ -9034,9 +8172,9 @@ csscolorparser@~1.0.2: integrity sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w== cssdb@^7.1.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.7.0.tgz#8a62f1c825c019134e7830729f050c29e3eca95e" - integrity sha512-1hN+I3r4VqSNQ+OmMXxYexnumbOONkSil0TWMebVXHtzYW4tRRPovUNHPHj2d4nrgOuYJ8Vs3XwvywsuwwXNNA== + version "7.9.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.9.1.tgz#d76e06509dc1e11050836c3d556988fdbffa749e" + integrity sha512-fqy6ZnNfpb8qAvTT0qijWyTsUmYThsDX2F2ctMG4ceI7mI4DtsMILSiMBiuuDnVIYTyWvCctdp9Nb08p/6m2SQ== cssesc@^3.0.0: version "3.0.0" @@ -9134,9 +8272,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== cypress-file-upload@^3.5.3: version "3.5.3" @@ -9144,9 +8282,9 @@ cypress-file-upload@^3.5.3: integrity sha512-S/czzqAj1BYz6Xxnfpx2aSc6hXsj76fd8/iuycJ2RxoxCcQMliw8eQV0ugzVlkzr1GD5dKGviNFGYqv3nRJ+Tg== cypress@^13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.2.0.tgz#10f73d06a0764764ffbb903a31e96e2118dcfc1d" - integrity sha512-AvDQxBydE771GTq0TR4ZUBvv9m9ffXuB/ueEtpDF/6gOcvFR96amgwSJP16Yhqw6VhmwqspT5nAGzoxxB+D89g== + version "13.6.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.1.tgz#c5f714f08551666ed3ac1fa95718eabb23a416df" + integrity sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw== dependencies: "@cypress/request" "^3.0.0" "@cypress/xvfb" "^1.2.4" @@ -9283,9 +8421,9 @@ dateformat@^3.0.3: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.10.4: - version "1.11.9" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a" - integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== dcmjs@^0.27: version "0.27.0" @@ -9298,10 +8436,10 @@ dcmjs@^0.27: loglevelnext "^3.0.1" ndarray "^1.0.19" -dcmjs@^0.29.12: - version "0.29.12" - resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.12.tgz#94f484f6ee4901e44d17113f005a917500544cd3" - integrity sha512-LQBxinj4CZQU2J61hf0/QXHe/OA+EM0ie+JbZ4eMaQAYfMOaDDkYG25zP3bNNDBFlY5ytgwsfWLvmvanQ9ixYg== +dcmjs@^0.29.12, dcmjs@^0.29.8: + version "0.29.13" + resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.13.tgz#a74df541bf3948366b25630dbe1e8376f108ea3b" + integrity sha512-Bf9tKzJNWqk4kbV210N5TLEHDqaZvO3S+MH9vezFAU8WKcG4cR6z4/II3TQVqhLI185eNUL+lhfPCVH1Uu2yTA== dependencies: "@babel/runtime-corejs3" "^7.22.5" adm-zip "^0.5.10" @@ -9311,18 +8449,10 @@ dcmjs@^0.29.12: ndarray "^1.0.19" pako "^2.0.4" -dcmjs@^0.29.8: - version "0.29.8" - resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.8.tgz#3daa5224f8e75b2e5b069590bef26a272741fa44" - integrity sha512-Y0/KZAmT1siVo7eH3KK4ZflEbNi61soUpD0N7lsXMVVJQ6IZkHlaSzb9DtqnEpMs7RJDfvZGr1uXpv1vBBIypQ== - dependencies: - "@babel/runtime-corejs3" "^7.22.5" - adm-zip "^0.5.10" - gl-matrix "^3.1.0" - lodash.clonedeep "^4.5.0" - loglevelnext "^3.0.1" - ndarray "^1.0.19" - pako "^2.0.4" +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== debug-log@^1.0.0: version "1.0.1" @@ -9392,17 +8522,22 @@ dedent@0.7.0, dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + regexp.prototype.flags "^1.5.1" deep-extend@^0.6.0: version "0.6.0" @@ -9461,6 +8596,15 @@ defer-to-connect@^2.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -9471,11 +8615,12 @@ define-lazy-prop@^3.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -9485,9 +8630,9 @@ defined@^1.0.0: integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== defu@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c" - integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== + version "6.1.3" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" + integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== deglob@^3.1.0: version "3.1.0" @@ -9552,7 +8697,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@2.0.0, depd@^2.0.0: +depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -9592,9 +8737,9 @@ detect-gpu@^4.0.16: webgl-constants "^1.1.1" detect-gpu@^5.0.22: - version "5.0.34" - resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.34.tgz#c4a29f99e3d78ac35df44355f0298f5ae29c6fe4" - integrity sha512-iHYDY2iy6OVvJVmTXvMrp5+OROP0Q62qTlrsC7wl3kZmm6yVAoOhQx5cIIxTVEEIZe1M1aPVI3RgsbG/Z6/7PQ== + version "5.0.37" + resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.37.tgz#27febe44d478ef4d35cd38007355da795ba075d5" + integrity sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw== dependencies: webgl-constants "^1.1.1" @@ -9688,9 +8833,9 @@ dicomicc@^0.1: integrity sha512-kZejPGjLQ9NsgovSyVsiAuCpq6LofNR9Erc8Tt/vQAYGYCoQnTyWDlg5D0TJJQATKul7cSr9k/q0TF8G9qdDkQ== dicomweb-client@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.10.2.tgz#9c2e466264a5d3b56c18edaafd360e89912cac13" - integrity sha512-sGjq3TxM7jgbe7cBpqddT1VlfOlwXmE7Q12qCSGDOkEL7fgn+Ak/5oW/LiRP2FzmfYzcbpO32r+hC8i4ITXQLw== + version "0.10.3" + resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.10.3.tgz#b4fe550037166dff5d8afd88db3800eb579c91f4" + integrity sha512-/fHNEAYiz8j+9TNOrNJ0k+hYqirbOT85B7vM7I4VkY8DeDQb4BDUeL3RX6huDVtn6ZQlR91dI+2tejLc5c99wA== dicomweb-client@^0.8: version "0.8.4" @@ -9707,11 +8852,6 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== - diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -9762,9 +8902,9 @@ dns-packet@^1.3.1: safe-buffer "^5.0.1" dns-packet@^5.2.2: - version "5.6.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" - integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -9943,7 +9083,7 @@ dotenv-defaults@^2.0.2: dependencies: dotenv "^8.2.0" -dotenv-expand@^10.0.0: +dotenv-expand@^10.0.0, dotenv-expand@~10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== @@ -10027,11 +9167,6 @@ ejs@^3.1.6, ejs@^3.1.7, ejs@^3.1.8: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.431: - version "1.4.471" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.471.tgz#14cb056d0ce4bfa99df57946d57fe46c2330dac3" - integrity sha512-GpmGRC1vTl60w/k6YpQ18pSiqnmr0j3un//5TV1idPi6aheNfkT1Ye71tMEabWyNDO6sBMgAR+95Eb0eUUr1tA== - electron-to-chromium@^1.4.601: version "1.4.611" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz#92d3a8f03110fbf5f99b054da97825f994fa480a" @@ -10109,9 +9244,9 @@ enhanced-resolve@^5.15.0: tapable "^2.2.0" enquirer@^2.3.5, enquirer@^2.3.6: - version "2.4.0" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.0.tgz#4f36f6c644137cc4fd2891da407ede2b1fea904a" - integrity sha512-ehu97t6FTYK2I3ZYtnp0BZ9vt0mvEL/cnHBds7Ct6jo9VX1VIkiFhOvVRWh6eblQqd7KOoICIQV+syZ3neXO/Q== + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" strip-ansi "^6.0.1" @@ -10144,9 +9279,9 @@ envinfo@7.8.1: integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== envinfo@^7.7.3: - version "7.10.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== + version "7.11.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" + integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== enzyme-shallow-equal@^1.0.0: version "1.0.5" @@ -10175,26 +9310,26 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: - version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" - integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== +es-abstract@^1.17.2, es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.1" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" internal-slot "^1.0.5" is-array-buffer "^3.0.2" is-callable "^1.2.7" @@ -10202,49 +9337,69 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21 is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - safe-array-concat "^1.0.0" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" typed-array-buffer "^1.0.0" typed-array-byte-length "^1.0.0" typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.10" + which-typed-array "^1.1.13" es-array-method-boxes-properly@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-module-lexer@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== +es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== + dependencies: + asynciterator.prototype "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.1" + es-abstract "^1.22.1" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" + +es-module-lexer@^1.2.1, es-module-lexer@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" has-tostringtag "^1.0.0" + hasown "^2.0.0" es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -10255,50 +9410,45 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== - esbuild-plugin-alias@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== -esbuild-register@^3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.4.2.tgz#1e39ee0a77e8f320a9790e68c64c3559620b9175" - integrity sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q== +esbuild-register@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.5.0.tgz#449613fb29ab94325c722f560f800dd946dc8ea8" + integrity sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A== dependencies: debug "^4.3.4" esbuild@^0.18.0: - version "0.18.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.17.tgz#2aaf6bc6759b0c605777fdc435fea3969e091cad" - integrity sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg== + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== optionalDependencies: - "@esbuild/android-arm" "0.18.17" - "@esbuild/android-arm64" "0.18.17" - "@esbuild/android-x64" "0.18.17" - "@esbuild/darwin-arm64" "0.18.17" - "@esbuild/darwin-x64" "0.18.17" - "@esbuild/freebsd-arm64" "0.18.17" - "@esbuild/freebsd-x64" "0.18.17" - "@esbuild/linux-arm" "0.18.17" - "@esbuild/linux-arm64" "0.18.17" - "@esbuild/linux-ia32" "0.18.17" - "@esbuild/linux-loong64" "0.18.17" - "@esbuild/linux-mips64el" "0.18.17" - "@esbuild/linux-ppc64" "0.18.17" - "@esbuild/linux-riscv64" "0.18.17" - "@esbuild/linux-s390x" "0.18.17" - "@esbuild/linux-x64" "0.18.17" - "@esbuild/netbsd-x64" "0.18.17" - "@esbuild/openbsd-x64" "0.18.17" - "@esbuild/sunos-x64" "0.18.17" - "@esbuild/win32-arm64" "0.18.17" - "@esbuild/win32-ia32" "0.18.17" - "@esbuild/win32-x64" "0.18.17" + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" escalade@^3.1.1: version "3.1.1" @@ -10340,7 +9490,7 @@ escape-string-regexp@^5.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -escodegen@^2.0.0: +escodegen@^2.0.0, escodegen@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== @@ -10363,14 +9513,14 @@ eslint-config-react-app@^6.0.0: dependencies: confusing-browser-globals "^1.0.10" -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" eslint-loader@^2.0.0: version "2.2.1" @@ -10383,7 +9533,7 @@ eslint-loader@^2.0.0: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -10391,11 +9541,11 @@ eslint-module-utils@^2.7.4: debug "^3.2.7" eslint-plugin-cypress@^2.12.1: - version "2.13.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.13.3.tgz#5fc1afdc939aaa7daa9181f651f2f35429733ff2" - integrity sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g== + version "2.15.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz#336afa7e8e27451afaf65aa359c9509e0a4f3a7b" + integrity sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w== dependencies: - globals "^11.12.0" + globals "^13.20.0" eslint-plugin-es@^3.0.0: version "3.0.1" @@ -10414,47 +9564,49 @@ eslint-plugin-flowtype@^7.0.0: string-natural-compare "^3.0.1" eslint-plugin-import@^2.26.0: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" + integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jsx-a11y@^6.5.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== dependencies: - "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" + object.entries "^1.1.7" + object.fromentries "^2.0.7" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -10469,9 +9621,9 @@ eslint-plugin-node@^11.1.0: semver "^6.1.0" eslint-plugin-prettier@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a" - integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" + integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== dependencies: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" @@ -10487,14 +9639,15 @@ eslint-plugin-react-hooks@^4.4.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.29.4: - version "7.33.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" - integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" @@ -10564,9 +9717,9 @@ eslint-visitor-keys@^2.0.0: integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" - integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint-webpack-plugin@^2.5.3: version "2.7.0" @@ -10715,15 +9868,6 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-to-babel@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" - integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== - dependencies: - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - c8 "^7.6.0" - estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" @@ -10869,9 +10013,9 @@ execa@^6.0.0: strip-final-newline "^3.0.0" execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.1" @@ -10920,17 +10064,16 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.1.tgz#64dd1c8f75e2c0b209418f2b8d36a07921adfdf1" - integrity sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g== +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== dependencies: - "@jest/expect-utils" "^29.6.1" - "@types/node" "*" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" exponential-backoff@^3.1.1: version "3.1.1" @@ -10996,11 +10139,11 @@ external-editor@^3.0.3: tmp "^0.0.33" extract-css-chunks-webpack-plugin@^4.5.4: - version "4.9.0" - resolved "https://registry.yarnpkg.com/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-4.9.0.tgz#da5e6b1d8b39a398c817ffc98550f4ccb6d795e1" - integrity sha512-HNuNPCXRMqJDQ1OHAUehoY+0JVCnw9Y/H22FQzYVwo8Ulgew98AGDu0grnY5c7xwiXHjQa6yJ/1dxLCI/xqTyQ== + version "4.10.0" + resolved "https://registry.yarnpkg.com/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-4.10.0.tgz#60a847b1c86e99318c3b2a777d642ece2702ba80" + integrity sha512-D/wb/Tbexq8XMBl4uhthto25WBaHI9P8vucDdzwPtLTyVi4Rdw/aiRLSL2rHaF6jZfPAjThWXepFU9PXsdtIbA== dependencies: - loader-utils "^2.0.0" + loader-utils "^2.0.4" normalize-url "1.9.1" schema-utils "^1.0.0" webpack-sources "^1.1.0" @@ -11051,21 +10194,10 @@ fast-fifo@^1.1.0, fast-fifo@^1.2.0: resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -11383,11 +10515,12 @@ flat-cache@^2.0.1: write "1.0.3" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flat@^5.0.2: @@ -11400,15 +10533,15 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== flow-parser@0.*: - version "0.213.1" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.213.1.tgz#c1916465050b165c9d8b931c02d78fe582e6c20c" - integrity sha512-l+vyZO6hrWG60DredryA8mq62fK9vxL6/RR13HA/aVLBNh9No/wEJsKI+CJqPRkF4CIRUfcJQBeaMXSKcncxUQ== + version "0.223.3" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.223.3.tgz#9e331f635b3d4b5e0875bfc4f5dd79bf9c42c795" + integrity sha512-9KxxDKSB22ovMpSULbOL/QAQGPN6M0YMS3PubQvB0jVc4W7QP6VhasIVic7MzKcJSh0BAVs4J6SZjoH0lDDNlg== flux@^4.0.1: version "4.0.4" @@ -11419,9 +10552,9 @@ flux@^4.0.1: fbjs "^3.0.1" follow-redirects@^1.0.0, follow-redirects@^1.14.7, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" @@ -11430,14 +10563,6 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -11493,15 +10618,6 @@ form-data-encoder@^2.1.2: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -11532,10 +10648,15 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== +fraction.js@4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.4.tgz#b2bac8249a610c3396106da97c5a71da75b94b1c" + integrity sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q== + +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fresh@0.5.2: version "0.5.2" @@ -11552,7 +10673,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@11.1.1, fs-extra@^11.1.0, fs-extra@^11.1.1: +fs-extra@11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== @@ -11570,6 +10691,15 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.0, fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -11580,7 +10710,7 @@ fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== @@ -11588,16 +10718,16 @@ fs-minipass@^2.0.0: minipass "^3.0.0" fs-minipass@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.2.tgz#5b383858efa8c1eb8c33b39e994f7e8555b8b3a3" - integrity sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g== + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" fs-monkey@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" - integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788" + integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== fs.realpath@^1.0.0: version "1.0.0" @@ -11605,36 +10735,31 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function-bind@^1.1.2: +function-bind@^1.1.1, function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +function.prototype.name@^1.1.2, function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -11659,9 +10784,9 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== geotiff@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.0.7.tgz#358e578233af70bfb0b4dee62d599ad78fc5cfca" - integrity sha512-FKvFTNowMU5K6lHYY2f83d4lS2rsCNdpUC28AX61x9ZzzqPNaWFElWv93xj0eJFaNyOYA63ic5OzJ88dHpoA5Q== + version "2.1.0" + resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.1.0.tgz#8e06fd1aa950fba8910ac63dc65cb77b766f4b58" + integrity sha512-B/iFJuFfRpmPHXf8aIRPRgUWwfaNb6dlsynkM8SWeHAPu7CpyvfqEa43KlBt7xxq5OTVysQacFHxhCn3SZhRKQ== dependencies: "@petamoriken/float16" "^3.4.7" lerc "^3.0.0" @@ -11670,21 +10795,22 @@ geotiff@^2.0.7: quick-lru "^6.1.1" web-worker "^1.2.0" xml-utils "^1.0.2" + zstddec "^0.1.0" get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-nonce@^1.0.0: version "1.0.1" @@ -11692,9 +10818,9 @@ get-nonce@^1.0.0: integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== get-npm-tarball-url@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz#67dff908d699e9e2182530ae6e939a93e5f8dfdb" - integrity sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz#cbd6bb25884622bc3191c761466c93ac83343213" + integrity sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA== get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" @@ -11778,17 +10904,17 @@ getpass@^0.1.1: assert-plus "^1.0.0" giget@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/giget/-/giget-1.1.2.tgz#f99a49cb0ff85479c8c3612cdc7ca27f2066e818" - integrity sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A== + version "1.1.3" + resolved "https://registry.yarnpkg.com/giget/-/giget-1.1.3.tgz#574ed901031eafa732347a7990d84bfa6484c51a" + integrity sha512-zHuCeqtfgqgDwvXlR84UNgnJDuUHQcNI5OqWqFxxuk2BshuKbYhJWdxBsEo4PvKqoGh23lUAIvBNpChMLv7/9Q== dependencies: - colorette "^2.0.19" + colorette "^2.0.20" defu "^6.1.2" - https-proxy-agent "^5.0.1" + https-proxy-agent "^7.0.2" mri "^1.2.0" - node-fetch-native "^1.0.2" - pathe "^1.1.0" - tar "^6.1.13" + node-fetch-native "^1.4.0" + pathe "^1.1.1" + tar "^6.2.0" git-raw-commits@^3.0.0: version "3.0.0" @@ -11882,12 +11008,12 @@ glob@7.1.4: path-is-absolute "^1.0.0" glob@^10.0.0, glob@^10.2.2: - version "10.3.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" - integrity sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw== + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" - jackspeak "^2.0.3" + jackspeak "^2.3.5" minimatch "^9.0.1" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" @@ -11964,15 +11090,15 @@ global@^4.3.0: min-document "^2.19.0" process "^0.11.10" -globals@^11.1.0, globals@^11.12.0, globals@^11.7.0: +globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== +globals@^13.20.0, globals@^13.6.0, globals@^13.9.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -12122,12 +11248,12 @@ handle-thing@^2.0.0: integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" - neo-async "^2.6.0" + neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" optionalDependencies: @@ -12166,11 +11292,11 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" has-proto@^1.0.1: version "1.0.1" @@ -12200,11 +11326,9 @@ has-yarn@^2.1.0: integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hasown@^2.0.0: version "2.0.0" @@ -12360,7 +11484,7 @@ html-entities@^2.1.0, html-entities@^2.3.2: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== -html-escaper@^2.0.0: +html-escaper@^2.0.0, html-escaper@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== @@ -12396,9 +11520,9 @@ html-void-elements@^1.0.0: integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== html-webpack-plugin@^5.3.2, html-webpack-plugin@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" - integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== + version "5.5.4" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.4.tgz#517a48e6f046ff1ae1a172c983cd993eb79d2f6a" + integrity sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -12434,7 +11558,7 @@ htmlparser2@^8.0.1: domutils "^3.0.1" entities "^4.4.0" -http-cache-semantics@^4.1.1: +http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -12509,9 +11633,9 @@ http-signature@~1.3.6: sshpk "^1.14.1" http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.2.0" @@ -12532,6 +11656,14 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" +https-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -12644,9 +11776,9 @@ ignore-walk@^5.0.1: minimatch "^5.0.1" ignore-walk@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" - integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== + version "6.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" + integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== dependencies: minimatch "^9.0.0" @@ -12656,9 +11788,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.0, ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.9, ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== image-size@^1.0.1: version "1.0.2" @@ -12723,6 +11855,11 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + infima@0.2.0-alpha.43: version "0.2.0-alpha.43" resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.43.tgz#f7aa1d7b30b6c08afef441c726bac6150228cbe0" @@ -12794,9 +11931,9 @@ inquirer@^6.2.2: through "^2.3.6" inquirer@^8.2.0, inquirer@^8.2.4: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -12812,15 +11949,15 @@ inquirer@^8.2.0, inquirer@^8.2.4: string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" - wrap-ansi "^7.0.0" + wrap-ansi "^6.0.1" -internal-slot@^1.0.3, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" "internmap@1 - 2": @@ -12888,7 +12025,7 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4: +is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -12915,6 +12052,13 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -12966,21 +12110,14 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.1.0, is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-core-module@^2.13.0: +is-core-module@^2.1.0, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -13022,6 +12159,13 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -13044,7 +12188,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-generator-function@^1.0.7: +is-generator-function@^1.0.10, is-generator-function@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== @@ -13093,12 +12237,17 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== +is-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== -is-nan@^1.2.1: +is-nan@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== @@ -13216,7 +12365,7 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.4: +is-regex@^1.1.0, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -13234,6 +12383,11 @@ is-root@^2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== +is-set@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -13294,7 +12448,7 @@ is-touch-device@^1.0.1: resolved "https://registry.yarnpkg.com/is-touch-device/-/is-touch-device-1.0.1.tgz#9a2fd59f689e9a9bf6ae9a86924c4ba805a42eab" integrity sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw== -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.12" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== @@ -13311,6 +12465,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -13318,6 +12477,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" @@ -13376,11 +12543,11 @@ isstream@~0.1.2: integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== @@ -13391,6 +12558,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-report@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" @@ -13409,7 +12587,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: +istanbul-reports@^3.1.3: version "3.1.6" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== @@ -13417,10 +12595,21 @@ istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.0.3: - version "2.2.2" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.2.tgz#707c62733924b8dc2a0a629dc6248577788b5385" - integrity sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -13449,95 +12638,95 @@ jest-canvas-mock@^2.1.0: cssfontparser "^1.2.1" moo-color "^1.0.2" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: execa "^5.0.0" + jest-util "^29.7.0" p-limit "^3.1.0" -jest-circus@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.1.tgz#861dab37e71a89907d1c0fabc54a0019738ed824" - integrity sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ== +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== dependencies: - "@jest/environment" "^29.6.1" - "@jest/expect" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.6.1" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-runtime "^29.6.1" - jest-snapshot "^29.6.1" - jest-util "^29.6.1" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" p-limit "^3.1.0" - pretty-format "^29.6.1" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.1.tgz#99d9afa7449538221c71f358f0fdd3e9c6e89f72" - integrity sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.1" - jest-util "^29.6.1" - jest-validate "^29.6.1" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" -jest-config@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.1.tgz#d785344509065d53a238224c6cdc0ed8e2f2f0dd" - integrity sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ== +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.1" - "@jest/types" "^29.6.1" - babel-jest "^29.6.1" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.6.1" - jest-environment-node "^29.6.1" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.1" - jest-runner "^29.6.1" - jest-util "^29.6.1" - jest-validate "^29.6.1" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.6.1" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" -"jest-diff@>=29.4.3 < 30": - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.4.tgz#85aaa6c92a79ae8cd9a54ebae8d5b6d9a513314a" - integrity sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw== +"jest-diff@>=29.4.3 < 30", jest-diff@^29.4.1, jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: chalk "^4.0.0" diff-sequences "^29.6.3" jest-get-type "^29.6.3" - pretty-format "^29.6.3" + pretty-format "^29.7.0" jest-diff@^27.5.1: version "27.5.1" @@ -13549,59 +12738,49 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.1.tgz#13df6db0a89ee6ad93c747c75c85c70ba941e545" - integrity sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.6.1" - -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: detect-newline "^3.0.0" -jest-each@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.1.tgz#975058e5b8f55c6780beab8b6ab214921815c89c" - integrity sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.6.1" - pretty-format "^29.6.1" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" jest-environment-jsdom@^29.5.0: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.6.1.tgz#480bce658aa31589309c82ca510351fd7c683bbb" - integrity sha512-PoY+yLaHzVRhVEjcVKSfJ7wXmJW4UqPYNhR05h7u/TK0ouf6DmRNZFBL/Z00zgQMyWGMBXn69/FmOvhEJu8cIw== + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" + integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== dependencies: - "@jest/environment" "^29.6.1" - "@jest/fake-timers" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.6.1" - jest-util "^29.6.1" + jest-mock "^29.7.0" + jest-util "^29.7.0" jsdom "^20.0.0" -jest-environment-node@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.1.tgz#08a122dece39e58bc388da815a2166c58b4abec6" - integrity sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ== +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== dependencies: - "@jest/environment" "^29.6.1" - "@jest/fake-timers" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.1" - jest-util "^29.6.1" + jest-mock "^29.7.0" + jest-util "^29.7.0" jest-get-type@^24.9.0: version "24.9.0" @@ -13613,30 +12792,25 @@ jest-get-type@^27.5.1: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== - jest-get-type@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== -jest-haste-map@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.1.tgz#62655c7a1c1b349a3206441330fb2dbdb4b63803" - integrity sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig== +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.6.1" - jest-worker "^29.6.1" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -13652,13 +12826,13 @@ jest-junit@^6.4.0: strip-ansi "^4.0.0" xml "^1.0.1" -jest-leak-detector@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz#66a902c81318e66e694df7d096a95466cb962f8e" - integrity sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.6.1" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" jest-matcher-utils@^27.0.0: version "27.5.1" @@ -13670,161 +12844,160 @@ jest-matcher-utils@^27.0.0: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz#6c60075d84655d6300c5d5128f46531848160b53" - integrity sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA== +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== dependencies: chalk "^4.0.0" - jest-diff "^29.6.1" - jest-get-type "^29.4.3" - pretty-format "^29.6.1" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-message-util@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.1.tgz#d0b21d87f117e1b9e165e24f245befd2ff34ff8d" - integrity sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.1" + pretty-format "^29.7.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.1.tgz#049ee26aea8cbf54c764af649070910607316517" - integrity sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw== +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-util "^29.6.1" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-resolve-dependencies@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz#b85b06670f987a62515bbf625d54a499e3d708f5" - integrity sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.6.1" + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" -jest-resolve@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.1.tgz#4c3324b993a85e300add2f8609f51b80ddea39ee" - integrity sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.1" - jest-validate "^29.6.1" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.1.tgz#54557087e7972d345540d622ab5bfc3d8f34688c" - integrity sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^29.6.1" - "@jest/environment" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.6.1" - jest-haste-map "^29.6.1" - jest-leak-detector "^29.6.1" - jest-message-util "^29.6.1" - jest-resolve "^29.6.1" - jest-runtime "^29.6.1" - jest-util "^29.6.1" - jest-watcher "^29.6.1" - jest-worker "^29.6.1" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.1.tgz#8a0fc9274ef277f3d70ba19d238e64334958a0dc" - integrity sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ== +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== dependencies: - "@jest/environment" "^29.6.1" - "@jest/fake-timers" "^29.6.1" - "@jest/globals" "^29.6.1" - "@jest/source-map" "^29.6.0" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" - jest-message-util "^29.6.1" - jest-mock "^29.6.1" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.1" - jest-snapshot "^29.6.1" - jest-util "^29.6.1" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.1.tgz#0d083cb7de716d5d5cdbe80d598ed2fbafac0239" - integrity sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.6.1" - "@jest/transform" "^29.6.1" - "@jest/types" "^29.6.1" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.1" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.6.1" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^29.6.1" + pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.1.tgz#c9e29a87a6edbf1e39e6dee2b4689b8a146679cb" - integrity sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -13843,30 +13016,30 @@ jest-validate@^24.0.0: leven "^3.1.0" pretty-format "^24.9.0" -jest-validate@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.1.tgz#765e684af6e2c86dce950aebefbbcd4546d69f7b" - integrity sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA== +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^29.6.1" + pretty-format "^29.7.0" -jest-watcher@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.1.tgz#7c0c43ddd52418af134c551c92c9ea31e5ec942e" - integrity sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA== +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== dependencies: - "@jest/test-result" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.6.1" + jest-util "^29.7.0" string-length "^4.0.1" jest-worker@^26.2.1: @@ -13887,30 +13060,30 @@ jest-worker@^27.4.5, jest-worker@^27.5.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.1.2, jest-worker@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.1.tgz#64b015f0e985ef3a8ad049b61fe92b3db74a5319" - integrity sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA== +jest-worker@^29.1.2, jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" - jest-util "^29.6.1" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.1.tgz#74be1cb719c3abe439f2d94aeb18e6540a5b02ad" - integrity sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw== + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.6.1" - "@jest/types" "^29.6.1" + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.6.1" + jest-cli "^29.7.0" jiti@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" - integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== jju@~1.4.0: version "1.4.0" @@ -13918,9 +13091,9 @@ jju@~1.4.0: integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== joi@^17.6.0, joi@^17.7.0: - version "17.9.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" - integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== + version "17.11.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" + integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -13961,20 +13134,21 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.14.0.tgz#7542e6715d6d2e8bde0b4e883f0ccea358b46881" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== +jscodeshift@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.15.1.tgz#6c7a9572acdfa4f54098e958f71a05716a4e546b" + integrity sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg== dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" + "@babel/core" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.23.0" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/preset-flow" "^7.22.15" + "@babel/preset-typescript" "^7.23.0" + "@babel/register" "^7.22.15" babel-core "^7.0.0-bridge.0" chalk "^4.1.2" flow-parser "0.*" @@ -13982,7 +13156,7 @@ jscodeshift@^0.14.0: micromatch "^4.0.4" neo-async "^2.5.0" node-dir "^0.1.17" - recast "^0.21.0" + recast "^0.23.3" temp "^0.8.4" write-file-atomic "^2.3.0" @@ -14044,9 +13218,9 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-parse-even-better-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" - integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== json-schema-traverse@^0.4.1: version "0.4.1" @@ -14124,10 +13298,10 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" - integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" array.prototype.flat "^1.3.1" @@ -14135,9 +13309,9 @@ jsprim@^2.0.2: object.values "^1.1.6" keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -14161,17 +13335,17 @@ klona@^2.0.5: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -language-subtag-registry@~0.3.2: +language-subtag-registry@^0.3.20: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: - language-subtag-registry "~0.3.2" + language-subtag-registry "^0.3.20" last-call-webpack-plugin@^3.0.0: version "3.0.0" @@ -14189,12 +13363,12 @@ latest-version@^5.1.0: package-json "^6.3.0" launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== dependencies: picocolors "^1.0.0" - shell-quote "^1.7.3" + shell-quote "^1.8.1" lazy-ass@1.6.0, lazy-ass@^1.6.0: version "1.6.0" @@ -14216,12 +13390,12 @@ lerc@^3.0.0: integrity sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww== lerna@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.2.0.tgz#55ab3de42032168a75fc7a2ce184a8acb7efc5ea" - integrity sha512-E13iAY4Tdo+86m4ClAe0j0bP7f8QG2neJReglILPOe+gAOoX17TGqEWanmkDELlUXOrTTwnte0ewc6I6/NOqpg== + version "7.4.2" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.4.2.tgz#03497125d7b7c8d463eebfe17a701b16bde2ad09" + integrity sha512-gxavfzHfJ4JL30OvMunmlm4Anw7d7Tq6tdVHzUukLdS9nWnxCN/QB21qR+VJYp5tcyXogHKbdUEGh6qmeyzxSA== dependencies: - "@lerna/child-process" "7.2.0" - "@lerna/create" "7.2.0" + "@lerna/child-process" "7.4.2" + "@lerna/create" "7.4.2" "@npmcli/run-script" "6.0.2" "@nx/devkit" ">=16.5.1 < 17" "@octokit/plugin-enterprise-rest" "6.0.1" @@ -14231,7 +13405,7 @@ lerna@^7.2.0: clone-deep "4.0.1" cmd-shim "6.0.1" columnify "1.6.0" - conventional-changelog-angular "6.0.0" + conventional-changelog-angular "7.0.0" conventional-changelog-core "5.0.1" conventional-recommended-bump "7.0.1" cosmiconfig "^8.2.0" @@ -14258,7 +13432,7 @@ lerna@^7.2.0: libnpmpublish "7.3.0" load-json-file "6.2.0" lodash "^4.17.21" - make-dir "3.1.0" + make-dir "4.0.0" minimatch "3.0.5" multimatch "5.0.0" node-fetch "2.6.7" @@ -14355,9 +13529,9 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lines-and-columns@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" - integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== lint-staged@^9.0.2: version "9.5.0" @@ -14720,9 +13894,9 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== "lru-cache@^9.1.1 || ^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" - integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2, magic-string@^0.25.7: version "0.25.9" @@ -14731,12 +13905,19 @@ magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2, magic-string@^ dependencies: sourcemap-codec "^1.4.8" -make-dir@3.1.0, make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: - semver "^6.0.0" + "@jridgewell/sourcemap-codec" "^1.4.15" + +make-dir@4.0.0, make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -14746,14 +13927,36 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: - semver "^7.5.3" + semver "^6.0.0" -make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.0.3, make-fetch-happen@^11.1.1: +make-fetch-happen@^10.0.3: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== @@ -14817,9 +14020,9 @@ markdown-table@^3.0.0: integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== markdown-to-jsx@^7.1.8: - version "7.2.1" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.2.1.tgz#87061fd3176ad926ef3d99493e5c57f6335e0c51" - integrity sha512-9HrdzBAo0+sFz9ZYAGT5fB8ilzTW+q6lPocRxrIesMO+aB40V9MgFfbfMXxlGjf22OpRy+IXlvVaQenicdpgbg== + version "7.3.2" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz#f286b4d112dad3028acc1e77dfe1f653b347e131" + integrity sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q== material-colors@^1.2.1: version "1.2.6" @@ -14827,19 +14030,19 @@ material-colors@^1.2.1: integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== mathjs@^11.2: - version "11.9.1" - resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-11.9.1.tgz#b3bb1f710f63b2f0e504df3abaf6b38bbf92f653" - integrity sha512-VdB9ELZ6Dwda13j5d1eCBETmPO8m9qIJETUdfZmTA9cPnXUiIk7UuoAmvxFqtfAe32XYuRugAec2Ndv0/RfRhg== + version "11.12.0" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-11.12.0.tgz#e933e5941930d44763ddfc5bfb08b90059449b2c" + integrity sha512-UGhVw8rS1AyedyI55DGz9q1qZ0p98kyKPyc9vherBkoueLntPfKtPBh14x+V4cdUWK0NZV2TBwqRFlvadscSuw== dependencies: - "@babel/runtime" "^7.22.6" + "@babel/runtime" "^7.23.2" complex.js "^2.1.1" decimal.js "^10.4.3" escape-latex "^1.2.0" - fraction.js "^4.2.0" + fraction.js "4.3.4" javascript-natural-sort "^0.7.1" seedrandom "^3.0.5" tiny-emitter "^2.1.0" - typed-function "^4.1.0" + typed-function "^4.1.1" mdast-squeeze-paragraphs@^4.0.0: version "4.0.0" @@ -15014,7 +14217,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -medium-zoom@^1.0.4: +medium-zoom@^1.0.8: version "1.1.0" resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== @@ -15427,7 +14630,7 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -min-indent@^1.0.0: +min-indent@^1.0.0, min-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== @@ -15500,12 +14703,23 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.3.tgz#d9df70085609864331b533c960fd4ffaa78d15ce" - integrity sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ== +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== dependencies: - minipass "^5.0.0" + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" minipass-sized "^1.0.3" minizlib "^2.1.2" optionalDependencies: @@ -15540,7 +14754,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== @@ -15557,10 +14771,10 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.2.tgz#58a82b7d81c7010da5bd4b2c0c85ac4b4ec5131e" - integrity sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -15582,7 +14796,7 @@ mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.6, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" -mkdirp@^1.0.3: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -15624,11 +14838,6 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -15691,21 +14900,16 @@ mute-stream@~1.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -15729,7 +14933,7 @@ negotiator@0.6.3, negotiator@^0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.5.0, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -15748,9 +14952,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.3.0: - version "3.45.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" - integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== + version "3.52.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.52.0.tgz#ffba0a85f54e552547e5849015f40f9514d5ba7c" + integrity sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ== dependencies: semver "^7.3.5" @@ -15769,7 +14973,7 @@ node-addon-api@^6.1.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== -node-dir@^0.1.10, node-dir@^0.1.17: +node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== @@ -15788,10 +14992,10 @@ node-emoji@^1.10.0: dependencies: lodash "^4.17.21" -node-fetch-native@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.2.0.tgz#13ec6df98f33168958dbfb6945f10aedf42e7ea8" - integrity sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ== +node-fetch-native@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" + integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== node-fetch@2.6.7: version "2.6.7" @@ -15801,9 +15005,9 @@ node-fetch@2.6.7: whatwg-url "^5.0.0" node-fetch@^2.0.0, node-fetch@^2.6.12, node-fetch@^2.6.7: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -15822,20 +15026,20 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.3.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" - integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== + version "4.7.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" + integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== node-gyp@^9.0.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" - integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== + version "9.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" + integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^11.0.3" + make-fetch-happen "^10.0.3" nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" @@ -15853,11 +15057,6 @@ node-machine-id@1.1.12: resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267" integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== -node-releases@^2.0.12: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - node-releases@^2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" @@ -15950,9 +15149,9 @@ npm-bundled@^3.0.0: npm-normalize-package-bin "^3.0.0" npm-install-checks@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.1.1.tgz#b459b621634d06546664207fde16810815808db1" - integrity sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw== + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== dependencies: semver "^7.1.1" @@ -16003,9 +15202,9 @@ npm-packlist@^7.0.0: ignore-walk "^6.0.0" npm-pick-manifest@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz#c6acd97d1ad4c5dbb80eac7b386b03ffeb289e5f" - integrity sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== dependencies: npm-install-checks "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -16090,12 +15289,12 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== -nx@16.7.4, "nx@>=16.5.1 < 17": - version "16.7.4" - resolved "https://registry.yarnpkg.com/nx/-/nx-16.7.4.tgz#355cfe9187822fa29676b88da1673a09acab990e" - integrity sha512-L0Cbikk5kO+IBH0UQ2BOAut5ndeHXBlACKzjOPOCluY8WYh2sxWYt9/N/juFBN3XXRX7ionTr1PhWUzNE0Mzqw== +nx@16.10.0, "nx@>=16.5.1 < 17": + version "16.10.0" + resolved "https://registry.yarnpkg.com/nx/-/nx-16.10.0.tgz#b070461f7de0a3d7988bd78558ea84cda3543ace" + integrity sha512-gZl4iCC0Hx0Qe1VWmO4Bkeul2nttuXdPpfnlcDKSACGu3ZIo+uySqwOF8yBAxSTIf8xe2JRhgzJN1aFkuezEBg== dependencies: - "@nrwl/tao" "16.7.4" + "@nrwl/tao" "16.10.0" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" @@ -16104,15 +15303,16 @@ nx@16.7.4, "nx@>=16.5.1 < 17": chalk "^4.1.0" cli-cursor "3.1.0" cli-spinners "2.6.1" - cliui "^7.0.2" + cliui "^8.0.1" dotenv "~16.3.1" + dotenv-expand "~10.0.0" enquirer "~2.3.6" - fast-glob "3.2.7" figures "3.2.0" flat "^5.0.2" fs-extra "^11.1.0" glob "7.1.4" ignore "^5.0.4" + jest-diff "^29.4.1" js-yaml "4.1.0" jsonc-parser "3.2.0" lines-and-columns "~2.0.3" @@ -16131,16 +15331,16 @@ nx@16.7.4, "nx@>=16.5.1 < 17": yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "16.7.4" - "@nx/nx-darwin-x64" "16.7.4" - "@nx/nx-freebsd-x64" "16.7.4" - "@nx/nx-linux-arm-gnueabihf" "16.7.4" - "@nx/nx-linux-arm64-gnu" "16.7.4" - "@nx/nx-linux-arm64-musl" "16.7.4" - "@nx/nx-linux-x64-gnu" "16.7.4" - "@nx/nx-linux-x64-musl" "16.7.4" - "@nx/nx-win32-arm64-msvc" "16.7.4" - "@nx/nx-win32-x64-msvc" "16.7.4" + "@nx/nx-darwin-arm64" "16.10.0" + "@nx/nx-darwin-x64" "16.10.0" + "@nx/nx-freebsd-x64" "16.10.0" + "@nx/nx-linux-arm-gnueabihf" "16.10.0" + "@nx/nx-linux-arm64-gnu" "16.10.0" + "@nx/nx-linux-arm64-musl" "16.10.0" + "@nx/nx-linux-x64-gnu" "16.10.0" + "@nx/nx-linux-x64-musl" "16.10.0" + "@nx/nx-win32-arm64-msvc" "16.10.0" + "@nx/nx-win32-x64-msvc" "16.10.0" object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -16162,12 +15362,12 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-is@^1.0.1, object-is@^1.1.2, object-is@^1.1.5: +object-is@^1.1.2, object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -16181,60 +15381,70 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.2, object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== +object.entries@^1.1.2, object.entries@^1.1.6, object.entries@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.6" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" - integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== - dependencies: - array.prototype.reduce "^1.0.5" call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.2" - safe-array-concat "^1.0.0" + es-abstract "^1.22.1" -object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== - dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== +object.fromentries@^2.0.6, object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + safe-array-concat "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + +object.hasown@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== + dependencies: + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6, object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" objectorarray@^1.0.5: version "1.0.5" @@ -16258,18 +15468,18 @@ oidc-client@1.11.5: serialize-javascript "^4.0.0" ol-mapbox-style@^10.1.0: - version "10.6.0" - resolved "https://registry.yarnpkg.com/ol-mapbox-style/-/ol-mapbox-style-10.6.0.tgz#89ac864160a374d936a59f7d1c969d4dc1d0a46b" - integrity sha512-s86QhCoyyKVRsYkvPzzdWd///bhYh3onWrBq4lNXnCd9G/hS6AoK023kn4zlDESVlTBDTWLz8vhOistp0M3TXA== + version "10.7.0" + resolved "https://registry.yarnpkg.com/ol-mapbox-style/-/ol-mapbox-style-10.7.0.tgz#8837912da2a16fbd22992d76cbc4f491c838b973" + integrity sha512-S/UdYBuOjrotcR95Iq9AejGYbifKeZE85D9VtH11ryJLQPTZXZSW1J5bIXcr4AlAH6tyjPPHTK34AdkwB32Myw== dependencies: "@mapbox/mapbox-gl-style-spec" "^13.23.1" mapbox-to-css-font "^2.4.1" ol "^7.3.0" ol@^7.1, ol@^7.3.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/ol/-/ol-7.4.0.tgz#935436c0843d1f939972e076d4fcb130530ce9d7" - integrity sha512-bgBbiah694HhC0jt8ptEFNRXwgO8d6xWH3G97PCg4bmn9Li5nLLbi59oSrvqUI6VPVwonPQF1YcqJymxxyMC6A== + version "7.5.2" + resolved "https://registry.yarnpkg.com/ol/-/ol-7.5.2.tgz#2e40a16b45331dbee86ca86876fcc7846be0dbb7" + integrity sha512-HJbb3CxXrksM6ct367LsP3N+uh+iBBMdP3DeGGipdV9YAYTP0vTJzqGnoqQ6C2IW4qf8krw9yuyQbc9fjOIaOQ== dependencies: earcut "^2.2.3" geotiff "^2.0.7" @@ -16801,7 +16011,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0: +pathe@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== @@ -16956,9 +16166,9 @@ please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0: plugin-image-zoom@ataft/plugin-image-zoom: version "1.1.0" - resolved "https://codeload.github.com/ataft/plugin-image-zoom/tar.gz/3e64669f3c8fb998a556432ca3f56e0f617454f2" + resolved "https://codeload.github.com/ataft/plugin-image-zoom/tar.gz/8e1b866c79ed6d42cefc4c52f851f1dfd1d0c7de" dependencies: - medium-zoom "^1.0.4" + medium-zoom "^1.0.8" polished@^4.2.2: version "4.2.2" @@ -17536,11 +16746,11 @@ postcss-zindex@^5.1.0: integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== postcss@^8.2.1, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.18, postcss@^8.4.21, postcss@^8.4.23: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity "sha1-krRRBQqfkU2mdVrzUr3AGSUIZW0= sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==" + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -17585,9 +16795,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier-plugin-tailwindcss@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.4.tgz#ebfacbcb90e2ca1df671ffe4083e99f81d72040d" - integrity sha512-QZzzB1bID6qPsKHTeA9qPo1APmmxfFrA5DD3LQ+vbTmAnY40eJI7t9Q1ocqel2EKMWNPLJqdTDWZj1hKYgqSgg== + version "0.5.9" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.9.tgz#fdc2bd95a02b64702ebd2d6c7ddd300198de3cc6" + integrity sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew== prettier@^2.8.0: version "2.8.8" @@ -17595,9 +16805,9 @@ prettier@^2.8.0: integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prettier@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" + integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1, pretty-bytes@^5.6.0: version "5.6.0" @@ -17631,19 +16841,10 @@ pretty-format@^27.0.0, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" - integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== - dependencies: - "@jest/schemas" "^29.6.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" - integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" @@ -17835,9 +17036,9 @@ punycode@^1.3.2, punycode@^1.4.1: integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pupa@^2.1.1: version "2.1.1" @@ -17868,9 +17069,9 @@ pure-color@^1.2.0: integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== pure-rand@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" - integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== q@^1.1.2: version "1.5.1" @@ -17891,7 +17092,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.10.0, qs@^6.11.0: +qs@^6.10.0, qs@^6.11.2: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== @@ -17949,9 +17150,9 @@ quick-lru@^5.1.1: integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== quick-lru@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-6.1.1.tgz#f8e5bf9010376c126c80c1a62827a526c0e60adf" - integrity sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q== + version "6.1.2" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-6.1.2.tgz#e9a90524108629be35287d0b864e7ad6ceb3659e" + integrity sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ== quickselect@^2.0.0: version "2.0.0" @@ -18116,21 +17317,21 @@ react-docgen-typescript@^2.2.2: resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c" integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== -react-docgen@^5.0.0: - version "5.4.3" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.4.3.tgz#7d297f73b977d0c7611402e5fc2a168acf332b26" - integrity sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA== +react-docgen@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-7.0.1.tgz#b6528fe45385908645ffbee1ec0d65709e1e047c" + integrity sha512-rCz0HBIT0LWbIM+///LfRrJoTKftIzzwsYDf0ns5KwaEjejMHQRtphcns+IXFHDNY9pnz6G8l/JbbI6pD4EAIA== dependencies: - "@babel/core" "^7.7.5" - "@babel/generator" "^7.12.11" - "@babel/runtime" "^7.7.6" - ast-types "^0.14.2" - commander "^2.19.0" + "@babel/core" "^7.18.9" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + "@types/babel__core" "^7.18.0" + "@types/babel__traverse" "^7.18.0" + "@types/doctrine" "^0.0.9" + "@types/resolve" "^1.20.2" doctrine "^3.0.0" - estree-to-babel "^3.1.0" - neo-async "^2.6.1" - node-dir "^0.1.10" - strip-indent "^3.0.0" + resolve "^1.22.1" + strip-indent "^4.0.0" react-dom@^17.0.2: version "17.0.2" @@ -18179,12 +17380,21 @@ react-error-overlay@^6.0.11: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== -react-fast-compare@^3.2.0: +react-fast-compare@^3.2.0, react-fast-compare@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== -react-helmet-async@*, react-helmet-async@^1.3.0: +react-helmet-async@*: + version "2.0.3" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.3.tgz#904f79d906f91da6728dab6a062c3b8354930881" + integrity sha512-7/X3ehSCbjCaIljWa39Bb7F1Y2JWM23FN80kLozx2TdgzUmxKDSLN6qu06NG0Srzm8ljGOjgk7r7CXeEOx4MPw== + dependencies: + invariant "^2.2.4" + react-fast-compare "^3.2.2" + shallowequal "^1.1.0" + +react-helmet-async@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== @@ -18217,11 +17427,6 @@ react-i18next@^12.2.2: "@babel/runtime" "^7.20.6" html-parse-stringify "^3.0.1" -react-inspector@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-6.0.2.tgz#aa3028803550cb6dbd7344816d5c80bf39d07e9d" - integrity sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ== - react-is@18.1.0: version "18.1.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" @@ -18312,10 +17517,10 @@ react-portal@^4.2.0: dependencies: prop-types "^15.5.8" -react-refresh@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" - integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== react-remove-scroll-bar@^2.3.3: version "2.3.4" @@ -18366,12 +17571,12 @@ react-router-dom@^5.3.3: tiny-warning "^1.0.0" react-router-dom@^6.8.1: - version "6.14.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.14.2.tgz#88f520118b91aa60233bd08dbd3fdcaea3a68488" - integrity sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg== + version "6.20.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.20.1.tgz#e34f8075b9304221420de3609e072bb349824984" + integrity sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw== dependencies: - "@remix-run/router" "1.7.2" - react-router "6.14.2" + "@remix-run/router" "1.13.1" + react-router "6.20.1" react-router@5.3.4, react-router@^5.3.3: version "5.3.4" @@ -18388,12 +17593,12 @@ react-router@5.3.4, react-router@^5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@6.14.2, react-router@^6.8.1: - version "6.14.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.14.2.tgz#1f60994d8c369de7b8ba7a78d8f7ec23df76b300" - integrity sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ== +react-router@6.20.1, react-router@^6.8.1: + version "6.20.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.20.1.tgz#e8cc326031d235aaeec405bb234af77cf0fe75ef" + integrity sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA== dependencies: - "@remix-run/router" "1.7.2" + "@remix-run/router" "1.13.1" react-select@5.7.4: version "5.7.4" @@ -18435,9 +17640,9 @@ react-test-renderer@^16.12.0: scheduler "^0.19.1" react-textarea-autosize@^8.3.2: - version "8.5.2" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.2.tgz#6421df2b5b50b9ca8c5e96fd31be688ea7fa2f9d" - integrity sha512-uOkyjkEl0ByEK21eCJMHDGBAAd/BoFQBawYK5XItjAmCTeSbjxghd8qnt7nzsLYzidjnoObu6M26xts0YGKsGg== + version "8.5.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== dependencies: "@babel/runtime" "^7.20.13" use-composed-ref "^1.3.0" @@ -18464,9 +17669,9 @@ react-waypoint@^10.3.0: react-is "^17.0.1 || ^18.0.0" react-window@^1.8.9: - version "1.8.9" - resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.9.tgz#24bc346be73d0468cdf91998aac94e32bc7fa6a8" - integrity sha512-+Eqx/fj1Aa5WnhRfj9dJg4VYATGwIUP2ItwItiJ6zboKWA6EX3lYDAXfGF2hyNqplEprhbtjbipiADEcwQ823Q== + version "1.8.10" + resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.10.tgz#9e6b08548316814b443f7002b1cf8fd3a1bdde03" + integrity sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg== dependencies: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" @@ -18626,20 +17831,10 @@ reading-time@^1.5.0: resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -recast@^0.23.1: - version "0.23.3" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.3.tgz#f205d1f46b2c6f730de413ab18f96c166263d85f" - integrity sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q== +recast@^0.23.1, recast@^0.23.3: + version "0.23.4" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.4.tgz#ca1bac7bfd3011ea5a28dfecb5df678559fb1ddf" + integrity sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw== dependencies: assert "^2.0.0" ast-types "^0.16.1" @@ -18683,15 +17878,27 @@ redux@^4.0.5: dependencies: "@babel/runtime" "^7.9.2" +reflect.getprototypeof@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + reflect.ownkeys@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" integrity sha512-qOLsBKHCpSOFKK1NUOCGC5VyeufB6lEsFe92AL2bhIJsacZS1qdoOZSbPk3MYKuT2cFlRDnulKXuuElIrMjGUg== regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" @@ -18707,17 +17914,10 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== regenerator-transform@^0.15.2: version "0.15.2" @@ -18726,14 +17926,14 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" regexpp@^2.0.1: version "2.0.1" @@ -19006,16 +18206,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.9.0: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.12.0: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.3.2, resolve@^1.9.0: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -19025,11 +18216,11 @@ resolve@^1.12.0: supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -19130,9 +18321,9 @@ rollup@^2.43.1: fsevents "~2.3.2" rtl-detect@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" - integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.1.2.tgz#ca7f0330af5c6bb626c15675c642ba85ad6273c6" + integrity sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ== rtlcss@^3.5.0: version "3.5.0" @@ -19194,21 +18385,16 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-array-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" - integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== +safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -19233,7 +18419,12 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4, sax@~1.2.4: +sax@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -19326,10 +18517,11 @@ select-hose@^2.0.0: integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^2.0.0, selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: + "@types/node-forge" "^1.3.0" node-forge "^1" semver-compare@^1.0.0: @@ -19401,17 +18593,6 @@ serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" -serve-favicon@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" - integrity sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA== - dependencies: - etag "~1.8.1" - fresh "0.5.2" - ms "2.1.1" - parseurl "~1.3.2" - safe-buffer "5.1.1" - serve-handler@6.1.5, serve-handler@^6.1.3: version "6.1.5" resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" @@ -19450,9 +18631,9 @@ serve-static@1.15.0: send "0.18.0" serve@^14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.0.tgz#3d768e88fa13ad8644f2393599189707176e66b8" - integrity sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg== + version "14.2.1" + resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.1.tgz#3f078d292ed5e7b2c5a64f957af2765b0459798b" + integrity sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA== dependencies: "@zeit/schemas" "2.29.0" ajv "8.11.0" @@ -19471,6 +18652,25 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -19543,7 +18743,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: +shell-quote@^1.7.3, shell-quote@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== @@ -19571,23 +18771,19 @@ signal-exit@3.0.7, signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, s resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== - -signal-exit@^4.1.0: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sigstore@^1.3.0, sigstore@^1.4.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.8.0.tgz#f790120697fa7c89f4418598ce59e638ff680aa5" - integrity sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w== + version "1.9.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" + integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== dependencies: - "@sigstore/bundle" "^1.0.0" + "@sigstore/bundle" "^1.1.0" "@sigstore/protobuf-specs" "^0.2.0" + "@sigstore/sign" "^1.0.0" "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" @@ -19619,14 +18815,14 @@ simple-update-notifier@^2.0.0: dependencies: semver "^7.5.3" -sirv@^1.0.7: - version "1.0.19" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" - integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== +sirv@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" + integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== dependencies: "@polka/url" "^1.0.0-next.20" mrmime "^1.0.0" - totalist "^1.0.0" + totalist "^3.0.0" sisteransi@^1.0.5: version "1.0.5" @@ -19847,14 +19043,14 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== spdx-license-list@^6.4.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-6.6.0.tgz#403e1807fd87ef2b4781677bc91896d23eaed4ea" - integrity sha512-vLwdf9AWgdJQmG8cai2HKfkInFsliKaCCOwXmdVonClIhdURTX61KdDOoXC1qcQ7gDaZj+CUTcrMJeAdnCtrKA== + version "6.8.0" + resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-6.8.0.tgz#92a99cd6c8b97fe98ae83c54deaffd4d9d503f74" + integrity sha512-5UdM7r9yJ1EvsPQZWfa41AZjLQngl9iMMysm9XBW7Lqhq7aF8cllfqjS+rFCHB8FFMGSM0yFWue2LUV9mR0QzQ== spdy-transport@^3.0.0: version "3.0.0" @@ -19911,9 +19107,9 @@ sprintf-js@~1.0.2: integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.14.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -19931,13 +19127,13 @@ ssr-window@^4.0.0, ssr-window@^4.0.2: integrity sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ== ssri@^10.0.0, ssri@^10.0.1: - version "10.0.4" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" - integrity sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ== + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" -ssri@^9.0.1: +ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== @@ -19991,9 +19187,9 @@ statuses@2.0.1: integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== std-env@^3.0.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" - integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== + version "3.6.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.6.0.tgz#94807562bddc68fa90f2e02c5fd5b6865bb4e98e" + integrity sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg== store2@^2.14.2: version "2.14.2" @@ -20001,11 +19197,11 @@ store2@^2.14.2: integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== storybook@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.2.2.tgz#632eb139fa28445b0124b14125780696c8d80892" - integrity sha512-JT4CtVagLi7B5CKFUX/ozRpW3X7z4ffdXaXr4g6uBQjPN8NmvQCCftVIntpiXPKIbQa+cqyOTCNiprGvFnQQfg== + version "7.6.4" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.6.4.tgz#4f89d25be3990f0e057020efb0dcb3429dfa179c" + integrity sha512-nQhs9XkrroxjqMoBnnToyc6M8ndbmpkOb1qmULO4chtfMy4k0p9Un3K4TJvDaP8c3wPUFGd4ZaJ1hZNVmIl56Q== dependencies: - "@storybook/cli" "7.2.2" + "@storybook/cli" "7.6.4" stream-browserify@3.0.0: version "3.0.0" @@ -20108,45 +19304,46 @@ string-width@^5.0.1, string-width@^5.1.2: strip-ansi "^7.0.1" string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -20248,6 +19445,13 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" + integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== + dependencies: + min-indent "^1.0.1" + strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -20416,12 +19620,12 @@ synchronous-promise@^2.0.15: integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== + version "0.8.6" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.6.tgz#b69b7fbce3917c2673cbdc0d87fb324db4a5b409" + integrity sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA== dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" + "@pkgr/utils" "^2.4.2" + tslib "^2.6.2" table@^5.2.3: version "5.4.6" @@ -20534,10 +19738,10 @@ tar@6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -tar@^6.1.11, tar@^6.1.13, tar@^6.1.2: - version "6.1.15" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" - integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== +tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -20546,10 +19750,10 @@ tar@^6.1.11, tar@^6.1.13, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -telejson@^7.0.3: - version "7.1.0" - resolved "https://registry.yarnpkg.com/telejson/-/telejson-7.1.0.tgz#1ef7a0dd57eeb52cde933126f61bcc296c170f52" - integrity sha512-jFJO4P5gPebZAERPkJsqMAQ0IMA1Hi0AoSfxpnUaV6j6R2SZqlpkbS20U6dEUtA3RUYt2Ak/mTlkQzHH9Rv/hA== +telejson@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-7.2.0.tgz#3994f6c9a8f8d7f2dba9be2c7c5bbb447e876f32" + integrity sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ== dependencies: memoizerific "^1.11.3" @@ -20603,9 +19807,9 @@ terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.4, terser-webpack-plugi terser "^5.16.8" terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: - version "5.19.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" - integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -20639,9 +19843,9 @@ text-table@^0.2.0: integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== + version "1.0.1" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5" + integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ== through2@^2.0.0, through2@^2.0.3: version "2.0.5" @@ -20718,19 +19922,19 @@ to-regex-range@^5.0.1: is-number "^7.0.0" tocbot@^4.20.1: - version "4.21.0" - resolved "https://registry.yarnpkg.com/tocbot/-/tocbot-4.21.0.tgz#ae0e5daa8f1e8534835759f30206f802466bb60a" - integrity sha512-vXk8htr8mIl3hc2s2mDkaPTBfqmqZA2o0x7eXbxUibdrpEIPdpM0L9hH/RvEvlgSM+ZTgS34sGipk5+VrLJCLA== + version "4.23.0" + resolved "https://registry.yarnpkg.com/tocbot/-/tocbot-4.23.0.tgz#5d3788ccf5a8b0ae2c00819b1ed0c127013e2e34" + integrity sha512-5DWuSZXsqG894mkGb8ZsQt9myyQyVxE50AiGRZ0obV0BVUTVkaZmc9jbgpknaAAPUm4FIrzGkEseD6FuQJYJDQ== toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== tough-cookie@^4.1.2, tough-cookie@^4.1.3: version "4.1.3" @@ -20787,16 +19991,16 @@ trough@^2.0.0: integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== ts-api-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" - integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== ts-dedent@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -20820,12 +20024,7 @@ tslib@^1.13.0, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== - -tslib@^2.4.1, tslib@^2.5.0, tslib@^2.6.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.6.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -20957,10 +20156,10 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typed-function@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-4.1.0.tgz#da4bdd8a6d19a89e22732f75e4a410860aaf9712" - integrity sha512-DGwUl6cioBW5gw2L+6SMupGwH/kZOqivy17E4nsh1JI9fKF87orMmlQx3KISQPmg3sfnOUGlwVkroosvgddrlg== +typed-function@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-4.1.1.tgz#38ce3cae31f4f513bcb263563fdad27b2afa73e8" + integrity sha512-Pq1DVubcvibmm8bYcMowjVnnMwPVMeh0DIdA8ad8NZY2sJgapANJmiigSUwlt+EgXxpfIv8MWrQXTIzkfYZLYQ== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -20980,14 +20179,14 @@ typescript@4.6.4: integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== "typescript@>=3 < 6": - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== ua-parser-js@^1.0.35: - version "1.0.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" - integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== + version "1.0.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== uglify-js@^3.1.4: version "3.17.4" @@ -21004,6 +20203,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unescape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unescape/-/unescape-1.0.1.tgz#956e430f61cad8a4d57d82c518f5e6cc5d0dda96" @@ -21084,6 +20288,13 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + unique-filename@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" @@ -21091,6 +20302,13 @@ unique-filename@^3.0.0: dependencies: unique-slug "^4.0.0" +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + unique-slug@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" @@ -21195,9 +20413,9 @@ unist-util-visit@^4.0.0: unist-util-visit-parents "^5.1.1" universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== universalify@^0.2.0: version "0.2.0" @@ -21205,9 +20423,9 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -21215,14 +20433,14 @@ unpipe@1.0.0, unpipe@~1.0.0: integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unplugin@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.4.0.tgz#b771373aa1bc664f50a044ee8009bd3a7aa04d85" - integrity sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg== + version "1.5.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" + integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== dependencies: - acorn "^8.9.0" + acorn "^8.11.2" chokidar "^3.5.3" webpack-sources "^3.2.3" - webpack-virtual-modules "^0.5.0" + webpack-virtual-modules "^0.6.0" unquote@~1.1.1: version "1.1.1" @@ -21252,14 +20470,6 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -21321,12 +20531,12 @@ url-parse@^1.5.3: requires-port "^1.0.0" url@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" - integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== + version "0.11.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" + integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== dependencies: punycode "^1.4.1" - qs "^6.11.0" + qs "^6.11.2" use-callback-ref@^1.3.0: version "1.3.0" @@ -21387,7 +20597,7 @@ util.promisify@~1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@^0.12.0, util@^0.12.4: +util@^0.12.4, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -21426,9 +20636,9 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^9.0, uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== uvu@^0.5.0: version "0.5.6" @@ -21440,19 +20650,24 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" -v8-compile-cache@2.3.0, v8-compile-cache@^2.0.3: +v8-compile-cache@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== +v8-compile-cache@^2.0.3: + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" + convert-source-map "^2.0.0" validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" @@ -21652,19 +20867,22 @@ webidl-conversions@^7.0.0: integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== webpack-bundle-analyzer@^4.4.2, webpack-bundle-analyzer@^4.5.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" - integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw== + version "4.10.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz#84b7473b630a7b8c21c741f81d8fe4593208b454" + integrity sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ== dependencies: "@discoveryjs/json-ext" "0.5.7" acorn "^8.0.4" acorn-walk "^8.0.0" - chalk "^4.1.0" commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" gzip-size "^6.0.0" - lodash "^4.17.20" + html-escaper "^2.0.2" + is-plain-object "^5.0.0" opener "^1.5.2" - sirv "^1.0.7" + picocolors "^1.0.0" + sirv "^2.0.3" ws "^7.3.1" webpack-cli@^4.7.2: @@ -21796,11 +21014,12 @@ webpack-merge@5.7.3: wildcard "^2.0.0" webpack-merge@^5.7.3, webpack-merge@^5.8.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" + flat "^5.0.2" wildcard "^2.0.0" webpack-sources@^1.1.0, webpack-sources@^1.4.3: @@ -21821,10 +21040,15 @@ webpack-virtual-modules@^0.5.0: resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== +webpack-virtual-modules@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" + integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== + webpack@5, webpack@^5.50.0, webpack@^5.73.0, webpack@^5.81.0: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -21928,13 +21152,41 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2, which-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" @@ -22190,7 +21442,7 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^6.2.0: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -22289,9 +21541,9 @@ ws@^7.3.1: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.1.0, ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + version "8.15.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997" + integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ== xdg-basedir@^4.0.0: version "4.0.0" @@ -22337,9 +21589,9 @@ xmlchars@^2.2.0: integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== xstate@^4.10.0: - version "4.38.1" - resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.38.1.tgz#9be54c2dfc44d1d566c697393921edaf6d3c9998" - integrity sha512-1gBUcFWBj/rv/pRcP2Bedl5sNRGX2d36CaOx9z7fE9uSiHaOEHIWzLg1B853q2xdUHUA9pEiWKjLZ3can4SJaQ== + version "4.38.3" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.38.3.tgz#4e15e7ad3aa0ca1eea2010548a5379966d8f1075" + integrity sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw== xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" @@ -22381,7 +21633,7 @@ yargs-parser@21.1.1, yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: +yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -22438,6 +21690,11 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +zstddec@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.1.0.tgz#7050f3f0e0c3978562d0c566b3e5a427d2bad7ec" + integrity sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg== + zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" From b1a04ecac3ccdf2ca9aea9ea59b6eb1e238aa01a Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 15:29:09 +0000 Subject: [PATCH 092/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 83edc592a..2ec8ebf4c 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -59576d695d4d26601d35c43f73d602f0b12d72bf \ No newline at end of file +f707b4ebc996f379cd30337badc06b07e6e35ac5 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 902a5dee7..0591bc574 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/i18n": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/i18n": "3.8.0-beta.29", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4256089f3..67110d6d0 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/i18n": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/i18n": "3.8.0-beta.29", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ef7a3b404..004e9fad2 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-measurement-tracking": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-measurement-tracking": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 83b44fb59..c61493a06 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 5ea599890..49d0b12a0 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/i18n": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/i18n": "3.8.0-beta.29", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index c9a7196e9..c8ba52188 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/i18n": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/i18n": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 5957fdddf..f0fa9f05b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 28079739b..efc7f88b9 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6325ed225..6bd626d99 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index e1fe09ac6..21267b35c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index b3fbeff76..d7db07098 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 3731dfa0b..254bb5050 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/extension-dicom-pdf": "3.8.0-beta.28", - "@ohif/extension-dicom-video": "3.8.0-beta.28" + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/extension-dicom-pdf": "3.8.0-beta.29", + "@ohif/extension-dicom-video": "3.8.0-beta.29" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 06e2c401a..75e650332 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/extension-dicom-pdf": "3.8.0-beta.28", - "@ohif/extension-dicom-video": "3.8.0-beta.28", - "@ohif/extension-measurement-tracking": "3.8.0-beta.28", - "@ohif/extension-test": "3.8.0-beta.28" + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/extension-dicom-pdf": "3.8.0-beta.29", + "@ohif/extension-dicom-video": "3.8.0-beta.29", + "@ohif/extension-measurement-tracking": "3.8.0-beta.29", + "@ohif/extension-test": "3.8.0-beta.29" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 8f2e64e65..977b87dde 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/extension-dicom-pdf": "3.8.0-beta.28", - "@ohif/extension-dicom-video": "3.8.0-beta.28", - "@ohif/extension-measurement-tracking": "3.8.0-beta.28" + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/extension-dicom-pdf": "3.8.0-beta.29", + "@ohif/extension-dicom-video": "3.8.0-beta.29", + "@ohif/extension-measurement-tracking": "3.8.0-beta.29" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 778659601..4493c8d2d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.28" + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.29" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d68701936..a75a515db 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28" + "@ohif/core": "3.8.0-beta.29" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f5ad0a404..2230d9890 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/extension-dicom-pdf": "3.8.0-beta.28", - "@ohif/extension-dicom-video": "3.8.0-beta.28", - "@ohif/extension-measurement-tracking": "3.8.0-beta.28" + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/extension-dicom-pdf": "3.8.0-beta.29", + "@ohif/extension-dicom-video": "3.8.0-beta.29", + "@ohif/extension-measurement-tracking": "3.8.0-beta.29" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 6fa03f119..8491d6d66 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.29", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 93b60f158..bfb872bb5 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.28", - "commit": "59576d695d4d26601d35c43f73d602f0b12d72bf" + "version": "3.8.0-beta.29", + "commit": "f707b4ebc996f379cd30337badc06b07e6e35ac5" } \ No newline at end of file diff --git a/version.txt b/version.txt index 11332dc61..353b07c40 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.28 \ No newline at end of file +3.8.0-beta.29 \ No newline at end of file From d1c07d90f0aaed2d74d6669b03de5bafb337d731 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 15:29:16 +0000 Subject: [PATCH 093/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 17 ++++++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 12 +++++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 12 +++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 12 +++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 12 +++++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 17 ++++++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 12 +++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 12 +++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 11 ++++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 11 ++++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 16 +++++++++ platform/ui/package.json | 2 +- 48 files changed, 301 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c47c40dd..ee0bd59d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Bug Fixes + +* address and improve system vulnerabilities ([#3851](https://github.com/OHIF/Viewers/issues/3851)) ([805c532](https://github.com/OHIF/Viewers/commit/805c53270f243ec61f142a3ffa0af500021cd5ec)) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 4dca2e4af..cee348817 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 0591bc574..6adf69089 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index b22f8dc09..381e6f6aa 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 67110d6d0..b7404fa8f 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index bab3df2df..ebb54f407 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 004e9fad2..f9f3dab6a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 040ecd4b7..e86895eea 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index c61493a06..9fe7166fb 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index e2b6c8d0c..cf3afe3f3 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 49d0b12a0..ac305d37e 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index e9de316b5..154eb8ccc 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index c8ba52188..9ed4bbcf7 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 78cacf7db..9aefd38d6 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f0fa9f05b..1d51812ae 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 26f27d6f6..dca4efa42 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index efc7f88b9..38c9ccc99 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 14c2a0829..18f72cf76 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6bd626d99..24728b5cc 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/ui": "3.8.0-beta.29", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 8b332faf1..27f266896 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 21267b35c..495ffe32f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index bd523fad3..ecb91c022 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index d7db07098..bb59862f7 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 7ec7e4c7a..747cd9644 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index e1ff736f4..77f59e43a 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 254bb5050..c59caf78a 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index f577152fd..f49ccf081 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 75e650332..5c53c8538 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 5fe9fb31d..1665b5835 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 977b87dde..6e899b06d 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 2f5b6c98d..51598b86a 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 4493c8d2d..624787f17 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 765ad73d8..5eed3442f 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Bug Fixes + +* address and improve system vulnerabilities ([#3851](https://github.com/OHIF/Viewers/issues/3851)) ([805c532](https://github.com/OHIF/Viewers/commit/805c53270f243ec61f142a3ffa0af500021cd5ec)) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index a75a515db..b9f133dd7 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 83d2d5938..5756da1cf 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 2230d9890..54d5ba782 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index cb8025575..a55f0d8bb 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 1a1d3752e..95de8896a 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.28", - "@ohif/extension-cornerstone": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.28", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.28", - "@ohif/extension-default": "3.8.0-beta.28", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.28", - "@ohif/extension-dicom-pdf": "3.8.0-beta.28", - "@ohif/extension-dicom-video": "3.8.0-beta.28", - "@ohif/extension-test": "3.8.0-beta.28", - "@ohif/i18n": "3.8.0-beta.28", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.28", - "@ohif/mode-longitudinal": "3.8.0-beta.28", - "@ohif/mode-microscopy": "3.8.0-beta.28", - "@ohif/mode-test": "3.8.0-beta.28", - "@ohif/ui": "3.8.0-beta.28", + "@ohif/core": "3.8.0-beta.29", + "@ohif/extension-cornerstone": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.29", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", + "@ohif/extension-default": "3.8.0-beta.29", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.29", + "@ohif/extension-dicom-pdf": "3.8.0-beta.29", + "@ohif/extension-dicom-video": "3.8.0-beta.29", + "@ohif/extension-test": "3.8.0-beta.29", + "@ohif/i18n": "3.8.0-beta.29", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.29", + "@ohif/mode-longitudinal": "3.8.0-beta.29", + "@ohif/mode-microscopy": "3.8.0-beta.29", + "@ohif/mode-test": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.29", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index c65198b1e..8e82aae9b 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Bug Fixes + +* address and improve system vulnerabilities ([#3851](https://github.com/OHIF/Viewers/issues/3851)) ([805c532](https://github.com/OHIF/Viewers/commit/805c53270f243ec61f142a3ffa0af500021cd5ec)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 6039f9e19..e34ada6a5 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index a929d1e41..3382a94d2 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 8491d6d66..694dbb086 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 947b3ea66..7c40f6383 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **config:** Add activateViewportBeforeInteraction parameter for viewport interaction customization ([#3847](https://github.com/OHIF/Viewers/issues/3847)) ([f707b4e](https://github.com/OHIF/Viewers/commit/f707b4ebc996f379cd30337badc06b07e6e35ac5)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index b989acb86..0b65af840 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 54a06ea2c..ea6ea4825 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Features + +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index bb12c4857..9eeab941d 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index cfcdfdcbb..d371be3ad 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) + + +### Bug Fixes + +* address and improve system vulnerabilities ([#3851](https://github.com/OHIF/Viewers/issues/3851)) ([805c532](https://github.com/OHIF/Viewers/commit/805c53270f243ec61f142a3ffa0af500021cd5ec)) + + +### Features + +* **i18n:** enhanced i18n support ([#3761](https://github.com/OHIF/Viewers/issues/3761)) ([d14a8f0](https://github.com/OHIF/Viewers/commit/d14a8f0199db95cd9e85866a011b64d6bf830d57)) + + + + + # [3.8.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.27...v3.8.0-beta.28) (2023-12-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 43c01428e..b2dd48de4 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.28", + "version": "3.8.0-beta.29", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Wed, 13 Dec 2023 16:21:46 -0300 Subject: [PATCH 094/289] feat(customizationService): Enable saving and loading of private tags in SRs (#3842) --- .../src/commandsModule.js | 14 ++++++- .../src/getSopClassHandlerModule.ts | 37 ++++++++++++++-- .../src/tools/DICOMSRDisplayTool.ts | 4 +- .../src/utils/addMeasurement.ts | 2 +- .../src/utils/hydrateStructuredReport.js | 12 +++++- .../utils/measurementServiceMappings/Angle.ts | 3 +- .../ArrowAnnotate.ts | 3 +- .../Bidirectional.ts | 3 +- .../measurementServiceMappings/CircleROI.ts | 3 +- .../measurementServiceMappings/CobbAngle.ts | 3 +- .../EllipticalROI.ts | 3 +- .../measurementServiceMappings/Length.ts | 3 +- .../PlanarFreehandROI.ts | 3 +- .../RectangleROI.ts | 3 +- .../default/src/DicomWebDataSource/index.js | 42 ++++++++++++------- .../src/DicomWebProxyDataSource/index.js | 4 +- .../default/src/MergeDataSource/index.ts | 2 +- .../core/src/extensions/ExtensionManager.ts | 3 +- .../MeasurementService/MeasurementService.ts | 1 + 19 files changed, 110 insertions(+), 38 deletions(-) diff --git a/extensions/cornerstone-dicom-sr/src/commandsModule.js b/extensions/cornerstone-dicom-sr/src/commandsModule.js index ec68cabb9..33e8a869f 100644 --- a/extensions/cornerstone-dicom-sr/src/commandsModule.js +++ b/extensions/cornerstone-dicom-sr/src/commandsModule.js @@ -40,7 +40,9 @@ const _generateReport = (measurementData, additionalFindingTypes, options = {}) return dataset; }; -const commandsModule = ({}) => { +const commandsModule = props => { + const { servicesManager } = props; + const { customizationService } = servicesManager.services; const actions = { /** * @@ -95,7 +97,15 @@ const commandsModule = ({}) => { throw new Error('Invalid report, no content'); } - await dataSource.store.dicom(naturalizedReport); + const onBeforeDicomStore = + customizationService.getModeCustomization('onBeforeDicomStore')?.value; + + let dicomDict; + if (typeof onBeforeDicomStore === 'function') { + dicomDict = onBeforeDicomStore({ measurementData, naturalizedReport }); + } + + await dataSource.store.dicom(naturalizedReport, null, dicomDict); if (StudyInstanceUID) { dataSource.deleteStudyMetadataPromise(StudyInstanceUID); diff --git a/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts b/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts index d89849fdf..fbeaa5316 100644 --- a/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts +++ b/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts @@ -171,7 +171,12 @@ function _load(displaySet, servicesManager, extensionManager) { // Check currently added displaySets and add measurements if the sources exist. displaySetService.activeDisplaySets.forEach(activeDisplaySet => { - _checkIfCanAddMeasurementsToDisplaySet(displaySet, activeDisplaySet, dataSource); + _checkIfCanAddMeasurementsToDisplaySet( + displaySet, + activeDisplaySet, + dataSource, + servicesManager + ); }); // Subscribe to new displaySets as the source may come in after. @@ -180,12 +185,23 @@ function _load(displaySet, servicesManager, extensionManager) { // If there are still some measurements that have not yet been loaded into cornerstone, // See if we can load them onto any of the new displaySets. displaySetsAdded.forEach(newDisplaySet => { - _checkIfCanAddMeasurementsToDisplaySet(displaySet, newDisplaySet, dataSource); + _checkIfCanAddMeasurementsToDisplaySet( + displaySet, + newDisplaySet, + dataSource, + servicesManager + ); }); }); } -function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dataSource) { +function _checkIfCanAddMeasurementsToDisplaySet( + srDisplaySet, + newDisplaySet, + dataSource, + servicesManager +) { + const { customizationService } = servicesManager.services; let unloadedMeasurements = srDisplaySet.measurements.filter( measurement => measurement.loaded === false ); @@ -244,7 +260,20 @@ function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dat if (SOPInstanceUIDs.includes(SOPInstanceUID)) { for (let j = unloadedMeasurements.length - 1; j >= 0; j--) { - const measurement = unloadedMeasurements[j]; + let measurement = unloadedMeasurements[j]; + + const onBeforeSRAddMeasurement = customizationService.getModeCustomization( + 'onBeforeSRAddMeasurement' + )?.value; + + if (typeof onBeforeSRAddMeasurement === 'function') { + measurement = onBeforeSRAddMeasurement({ + measurement, + StudyInstanceUID: srDisplaySet.StudyInstanceUID, + SeriesInstanceUID: srDisplaySet.SeriesInstanceUID, + }); + } + if (_measurementReferencesSOPInstanceUID(measurement, SOPInstanceUID, frameNumber)) { addMeasurement(measurement, imageId, newDisplaySet.displaySetInstanceUID); diff --git a/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts b/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts index 8160ea650..7b14b107f 100644 --- a/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts +++ b/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts @@ -339,7 +339,9 @@ export default class DICOMSRDisplayTool extends AnnotationTool { const textLines = this._getTextBoxLinesFromLabels(label); const canvasTextBoxCoords = utilities.drawing.getTextBoxCoordsCanvas(adaptedCanvasCoordinates); - annotation.data.handles.textBox.worldPosition = viewport.canvasToWorld(canvasTextBoxCoords); + if (!annotation.data?.handles?.textBox?.worldPosition) { + annotation.data.handles.textBox.worldPosition = viewport.canvasToWorld(canvasTextBoxCoords); + } const textBoxPosition = viewport.worldToCanvas(annotation.data.handles.textBox.worldPosition); diff --git a/extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts b/extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts index e78b3c7f1..348a7a79d 100644 --- a/extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts +++ b/extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts @@ -52,7 +52,7 @@ export default function addMeasurement(measurement, imageId, displaySetInstanceU data: { label: measurement.labels, handles: { - textBox: {}, + textBox: measurement.textBox ?? {}, }, cachedStats: { TrackingUniqueIdentifier: measurementData.TrackingUniqueIdentifier, diff --git a/extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js b/extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js index 17216a844..7dc9e657a 100644 --- a/extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js +++ b/extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js @@ -90,7 +90,7 @@ export default function hydrateStructuredReport( const datasetToUse = _mapLegacyDataSet(instance); // Use dcmjs to generate toolState. - const storedMeasurementByAnnotationType = MeasurementReport.generateToolState( + let storedMeasurementByAnnotationType = MeasurementReport.generateToolState( datasetToUse, // NOTE: we need to pass in the imageIds to dcmjs since the we use them // for the imageToWorld transformation. The following assumes that the order @@ -101,6 +101,16 @@ export default function hydrateStructuredReport( metaData ); + const onBeforeSRHydration = + customizationService.getModeCustomization('onBeforeSRHydration')?.value; + + if (typeof onBeforeSRHydration === 'function') { + storedMeasurementByAnnotationType = onBeforeSRHydration({ + storedMeasurementByAnnotationType, + displaySet, + }); + } + // Filter what is found by DICOM SR to measurements we support. const mappingDefinitions = mappings.map(m => m.annotationType); const hydratableMeasurementsInSR = {}; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts index 5708582a4..7173e1344 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts @@ -50,7 +50,7 @@ const Angle = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); @@ -62,6 +62,7 @@ const Angle = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts index 9ebb12079..3d5904171 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts @@ -48,7 +48,7 @@ const Length = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); @@ -59,6 +59,7 @@ const Length = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts index 11e1c7c02..958e22ed6 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts @@ -45,7 +45,7 @@ const Bidirectional = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); @@ -57,6 +57,7 @@ const Bidirectional = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts index 6ec79919b..e65564c81 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts @@ -43,7 +43,7 @@ const CircleROI = { displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, DisplaySetService); @@ -55,6 +55,7 @@ const CircleROI = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts index f61356c29..dbde82860 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts @@ -50,7 +50,7 @@ const CobbAngle = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); @@ -62,6 +62,7 @@ const CobbAngle = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts index a38b6f835..1882d9ba0 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts @@ -43,7 +43,7 @@ const EllipticalROI = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); @@ -55,6 +55,7 @@ const EllipticalROI = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts index 5c5072d2c..e5e9886b3 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts @@ -53,7 +53,7 @@ const Length = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); @@ -65,6 +65,7 @@ const Length = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts index b6db513b6..d1322e484 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts @@ -48,7 +48,7 @@ const PlanarFreehandROI = { displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, DisplaySetService); @@ -60,6 +60,7 @@ const PlanarFreehandROI = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts index c7cdb3e41..6c7e4b4ca 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts @@ -43,7 +43,7 @@ const RectangleROI = { displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points } = data.handles; + const { points, textBox } = data.handles; const mappedAnnotations = getMappedAnnotations(annotation, DisplaySetService); @@ -55,6 +55,7 @@ const RectangleROI = { SOPInstanceUID, FrameOfReferenceUID, points, + textBox, metadata, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, diff --git a/extensions/default/src/DicomWebDataSource/index.js b/extensions/default/src/DicomWebDataSource/index.js index 2d26a90b8..2ae44dc7e 100644 --- a/extensions/default/src/DicomWebDataSource/index.js +++ b/extensions/default/src/DicomWebDataSource/index.js @@ -40,7 +40,8 @@ const metadataProvider = classes.MetadataProvider; * @param {bool} lazyLoadStudy - "enableStudyLazyLoad"; Request series meta async instead of blocking * @param {string|bool} singlepart - indicates of the retrieves can fetch singlepart. Options are bulkdata, video, image or boolean true */ -function createDicomWebApi(dicomWebConfig, userAuthenticationService) { +function createDicomWebApi(dicomWebConfig, servicesManager) { + const { userAuthenticationService, customizationService } = servicesManager.services; let dicomWebConfigCopy, qidoConfig, wadoConfig, @@ -140,7 +141,13 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) { instances: { search: (studyInstanceUid, queryParameters) => { qidoDicomWebClient.headers = getAuthrorizationHeader(); - return qidoSearch.call(undefined, qidoDicomWebClient, studyInstanceUid, null, queryParameters); + return qidoSearch.call( + undefined, + qidoDicomWebClient, + studyInstanceUid, + null, + queryParameters + ); }, }, }, @@ -211,7 +218,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) { }, store: { - dicom: async (dataset, request) => { + dicom: async (dataset, request, dicomDict) => { wadoDicomWebClient.headers = getAuthrorizationHeader(); if (dataset instanceof ArrayBuffer) { const options = { @@ -220,21 +227,26 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) { }; await wadoDicomWebClient.storeInstances(options); } else { - const meta = { - FileMetaInformationVersion: dataset._meta?.FileMetaInformationVersion?.Value, - MediaStorageSOPClassUID: dataset.SOPClassUID, - MediaStorageSOPInstanceUID: dataset.SOPInstanceUID, - TransferSyntaxUID: EXPLICIT_VR_LITTLE_ENDIAN, - ImplementationClassUID, - ImplementationVersionName, - }; + let effectiveDicomDict = dicomDict; - const denaturalized = denaturalizeDataset(meta); - const dicomDict = new DicomDict(denaturalized); + if (!dicomDict) { + const meta = { + FileMetaInformationVersion: dataset._meta?.FileMetaInformationVersion?.Value, + MediaStorageSOPClassUID: dataset.SOPClassUID, + MediaStorageSOPInstanceUID: dataset.SOPInstanceUID, + TransferSyntaxUID: EXPLICIT_VR_LITTLE_ENDIAN, + ImplementationClassUID, + ImplementationVersionName, + }; - dicomDict.dict = denaturalizeDataset(dataset); + const denaturalized = denaturalizeDataset(meta); + const defaultDicomDict = new DicomDict(denaturalized); + defaultDicomDict.dict = denaturalizeDataset(dataset); - const part10Buffer = dicomDict.write(); + effectiveDicomDict = defaultDicomDict; + } + + const part10Buffer = effectiveDicomDict.write(); const options = { datasets: [part10Buffer], diff --git a/extensions/default/src/DicomWebProxyDataSource/index.js b/extensions/default/src/DicomWebProxyDataSource/index.js index ab1d8e49e..99007de3e 100644 --- a/extensions/default/src/DicomWebProxyDataSource/index.js +++ b/extensions/default/src/DicomWebProxyDataSource/index.js @@ -9,7 +9,7 @@ import { createDicomWebApi } from '../DicomWebDataSource/index'; * dicomWeb configuration array * */ -function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService) { +function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) { const { name } = dicomWebProxyConfig; let dicomWebDelegate = undefined; @@ -28,7 +28,7 @@ function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService) dicomWebDelegate = createDicomWebApi( data.servers.dicomWeb[0].configuration, - UserAuthenticationService + servicesManager ); dicomWebDelegate.initialize({ params, query }); } diff --git a/extensions/default/src/MergeDataSource/index.ts b/extensions/default/src/MergeDataSource/index.ts index 7143ee894..1c14069b6 100644 --- a/extensions/default/src/MergeDataSource/index.ts +++ b/extensions/default/src/MergeDataSource/index.ts @@ -139,7 +139,7 @@ export const callByRetrieveAETitle = ({ function createMergeDataSourceApi( mergeConfig: MergeConfig, - UserAuthenticationService: unknown, + servicesManager: unknown, extensionManager ) { const { seriesMerge } = mergeConfig; diff --git a/platform/core/src/extensions/ExtensionManager.ts b/platform/core/src/extensions/ExtensionManager.ts index 5b2e4b560..083fde7f2 100644 --- a/platform/core/src/extensions/ExtensionManager.ts +++ b/platform/core/src/extensions/ExtensionManager.ts @@ -461,10 +461,9 @@ export default class ExtensionManager extends PubSubService { this.dataSourceDefs[dataSourceDef.sourceName] = dataSourceDef; - const { userAuthenticationService } = this._servicesManager.services; const dataSourceInstance = module.createDataSource( dataSourceDef.configuration, - userAuthenticationService, + this._servicesManager, this ); diff --git a/platform/core/src/services/MeasurementService/MeasurementService.ts b/platform/core/src/services/MeasurementService/MeasurementService.ts index 30228a251..7d253ecff 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.ts +++ b/platform/core/src/services/MeasurementService/MeasurementService.ts @@ -58,6 +58,7 @@ const MEASUREMENT_SCHEMA_KEYS = [ 'longestDiameter', 'cachedStats', 'selected', + 'textBox', ]; const EVENTS = { From 920256d3a40a6b4b0bedfdeb6433cb501c92622c Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 19:29:48 +0000 Subject: [PATCH 095/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 2ec8ebf4c..f0aa6d1e4 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -f707b4ebc996f379cd30337badc06b07e6e35ac5 \ No newline at end of file +e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 6adf69089..860ec7857 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/i18n": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/i18n": "3.8.0-beta.30", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b7404fa8f..5d9925a6e 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/i18n": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/i18n": "3.8.0-beta.30", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index f9f3dab6a..7e1f7671b 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-measurement-tracking": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-measurement-tracking": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9fe7166fb..6503ff7aa 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index ac305d37e..084addd95 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/i18n": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/i18n": "3.8.0-beta.30", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 9ed4bbcf7..0e6c5ec45 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/i18n": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/i18n": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 1d51812ae..fbbcd58b6 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 38c9ccc99..03a8b45f0 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 24728b5cc..f382db431 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 495ffe32f..e560c0f52 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index bb59862f7..97667d529 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index c59caf78a..ed05db3a4 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/extension-dicom-pdf": "3.8.0-beta.29", - "@ohif/extension-dicom-video": "3.8.0-beta.29" + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/extension-dicom-pdf": "3.8.0-beta.30", + "@ohif/extension-dicom-video": "3.8.0-beta.30" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5c53c8538..68ccea15d 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/extension-dicom-pdf": "3.8.0-beta.29", - "@ohif/extension-dicom-video": "3.8.0-beta.29", - "@ohif/extension-measurement-tracking": "3.8.0-beta.29", - "@ohif/extension-test": "3.8.0-beta.29" + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/extension-dicom-pdf": "3.8.0-beta.30", + "@ohif/extension-dicom-video": "3.8.0-beta.30", + "@ohif/extension-measurement-tracking": "3.8.0-beta.30", + "@ohif/extension-test": "3.8.0-beta.30" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 6e899b06d..e80239be1 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/extension-dicom-pdf": "3.8.0-beta.29", - "@ohif/extension-dicom-video": "3.8.0-beta.29", - "@ohif/extension-measurement-tracking": "3.8.0-beta.29" + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/extension-dicom-pdf": "3.8.0-beta.30", + "@ohif/extension-dicom-video": "3.8.0-beta.30", + "@ohif/extension-measurement-tracking": "3.8.0-beta.30" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 624787f17..34273bd7e 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.29" + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.30" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index b9f133dd7..7bc2024f8 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29" + "@ohif/core": "3.8.0-beta.30" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 54d5ba782..e16f39539 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/extension-dicom-pdf": "3.8.0-beta.29", - "@ohif/extension-dicom-video": "3.8.0-beta.29", - "@ohif/extension-measurement-tracking": "3.8.0-beta.29" + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/extension-dicom-pdf": "3.8.0-beta.30", + "@ohif/extension-dicom-video": "3.8.0-beta.30", + "@ohif/extension-measurement-tracking": "3.8.0-beta.30" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 694dbb086..b5c941e88 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.30", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index bfb872bb5..881587333 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.29", - "commit": "f707b4ebc996f379cd30337badc06b07e6e35ac5" + "version": "3.8.0-beta.30", + "commit": "e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23" } \ No newline at end of file diff --git a/version.txt b/version.txt index 353b07c40..5f8085267 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.29 \ No newline at end of file +3.8.0-beta.30 \ No newline at end of file From 7f0ca857fa2c7fa0990c8a1e952e5f2c63d94765 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 19:29:55 +0000 Subject: [PATCH 096/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 248 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee0bd59d9..c927b7d58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + + +### Features + +* **customizationService:** Enable saving and loading of private tags in SRs ([#3842](https://github.com/OHIF/Viewers/issues/3842)) ([e1f55e6](https://github.com/OHIF/Viewers/commit/e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23)) + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index cee348817..ce9e66a55 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 860ec7857..1cdd4ea46 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 381e6f6aa..fed7a2d64 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 5d9925a6e..99322b250 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index ebb54f407..542f8f8bd 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + + +### Features + +* **customizationService:** Enable saving and loading of private tags in SRs ([#3842](https://github.com/OHIF/Viewers/issues/3842)) ([e1f55e6](https://github.com/OHIF/Viewers/commit/e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23)) + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 7e1f7671b..e639d5fea 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index e86895eea..146217196 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + + +### Features + +* **customizationService:** Enable saving and loading of private tags in SRs ([#3842](https://github.com/OHIF/Viewers/issues/3842)) ([e1f55e6](https://github.com/OHIF/Viewers/commit/e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23)) + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 6503ff7aa..e61d2dad0 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index cf3afe3f3..bd2e069ea 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + + +### Features + +* **customizationService:** Enable saving and loading of private tags in SRs ([#3842](https://github.com/OHIF/Viewers/issues/3842)) ([e1f55e6](https://github.com/OHIF/Viewers/commit/e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23)) + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/extensions/default/package.json b/extensions/default/package.json index 084addd95..ba7d2e356 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 154eb8ccc..327ecc388 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 0e6c5ec45..80798fd77 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 9aefd38d6..ec73f67c2 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index fbbcd58b6..289c77ea2 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index dca4efa42..e3e042c48 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 03a8b45f0..620dab73f 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 18f72cf76..ba932ffb4 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f382db431..acdcccb9f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/ui": "3.8.0-beta.30", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 27f266896..df34d9fc7 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index e560c0f52..9fc06a2b7 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index ecb91c022..aa4443980 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 97667d529..767af47f1 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 747cd9644..606eb0220 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 77f59e43a..d641911e6 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index ed05db3a4..d16ccaf37 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index f49ccf081..7b34f305d 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 68ccea15d..a4f73b462 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 1665b5835..521e0353c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e80239be1..07b0e415e 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 51598b86a..4974e53ee 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 34273bd7e..3441e4ad1 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 5eed3442f..9fa59e257 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 7bc2024f8..fca05bfbc 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 5756da1cf..6621c7d6f 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index e16f39539..bcad537b2 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index a55f0d8bb..b91716700 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/platform/app/package.json b/platform/app/package.json index 95de8896a..41b60db35 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.29", - "@ohif/extension-cornerstone": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.29", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29", - "@ohif/extension-default": "3.8.0-beta.29", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.29", - "@ohif/extension-dicom-pdf": "3.8.0-beta.29", - "@ohif/extension-dicom-video": "3.8.0-beta.29", - "@ohif/extension-test": "3.8.0-beta.29", - "@ohif/i18n": "3.8.0-beta.29", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.29", - "@ohif/mode-longitudinal": "3.8.0-beta.29", - "@ohif/mode-microscopy": "3.8.0-beta.29", - "@ohif/mode-test": "3.8.0-beta.29", - "@ohif/ui": "3.8.0-beta.29", + "@ohif/core": "3.8.0-beta.30", + "@ohif/extension-cornerstone": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.30", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", + "@ohif/extension-default": "3.8.0-beta.30", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.30", + "@ohif/extension-dicom-pdf": "3.8.0-beta.30", + "@ohif/extension-dicom-video": "3.8.0-beta.30", + "@ohif/extension-test": "3.8.0-beta.30", + "@ohif/i18n": "3.8.0-beta.30", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.30", + "@ohif/mode-longitudinal": "3.8.0-beta.30", + "@ohif/mode-microscopy": "3.8.0-beta.30", + "@ohif/mode-test": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.30", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8e82aae9b..c29306022 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/platform/cli/package.json b/platform/cli/package.json index e34ada6a5..7c38feaf2 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 3382a94d2..67a826a04 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + + +### Features + +* **customizationService:** Enable saving and loading of private tags in SRs ([#3842](https://github.com/OHIF/Viewers/issues/3842)) ([e1f55e6](https://github.com/OHIF/Viewers/commit/e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23)) + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/platform/core/package.json b/platform/core/package.json index b5c941e88..4538f18d7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 7c40f6383..1ff1b7298 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/platform/docs/package.json b/platform/docs/package.json index 0b65af840..7fcfd969b 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index ea6ea4825..de8ae6cf6 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 9eeab941d..2206477d1 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index d371be3ad..f59d585f0 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.28...v3.8.0-beta.29) (2023-12-13) diff --git a/platform/ui/package.json b/platform/ui/package.json index b2dd48de4..875b565e0 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.29", + "version": "3.8.0-beta.30", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 9c6e1cd305c334f8e3a2d3d9ac6fb4bba1d34c67 Mon Sep 17 00:00:00 2001 From: Salim Kanoun Date: Wed, 13 Dec 2023 20:47:12 +0100 Subject: [PATCH 097/289] Fix(HPService): custom image load performed is now reset to false on HP exit (#3809) --- .../services/HangingProtocolService/HangingProtocolService.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts b/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts index 104c4be34..c2c987c31 100644 --- a/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts +++ b/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts @@ -413,7 +413,7 @@ export default class HangingProtocolService extends PubSubService { * * @returns A boolean indicating whether a custom image load has been performed or not. */ - public getCustomImageLoadPerformed(): boolean { + private getCustomImageLoadPerformed(): boolean { return this.customImageLoadPerformed; } @@ -957,6 +957,8 @@ export default class HangingProtocolService extends PubSubService { try { if (!this.protocol || this.protocol.id !== protocol.id) { this.stageIndex = options?.stageIndex || 0; + //Reset load performed to false to re-fire loading strategy at new study opening + this.customImageLoadPerformed = false; this._originalProtocol = this._copyProtocol(protocol); // before reassigning the protocol, we need to check if there is a callback From ae16c7f9723fc9f6a8fb61c1f51db2cc2f89b0dd Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 19:55:28 +0000 Subject: [PATCH 098/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index f0aa6d1e4..8607af737 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23 \ No newline at end of file +9c6e1cd305c334f8e3a2d3d9ac6fb4bba1d34c67 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 1cdd4ea46..a627dd8fc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/i18n": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/i18n": "3.8.0-beta.31", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 99322b250..41c0c2aa5 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/i18n": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/i18n": "3.8.0-beta.31", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index e639d5fea..5b5c66493 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-measurement-tracking": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-measurement-tracking": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e61d2dad0..dd7a5994b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index ba7d2e356..72d999492 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/i18n": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/i18n": "3.8.0-beta.31", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 80798fd77..bb50336a4 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/i18n": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/i18n": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 289c77ea2..50eadd37d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 620dab73f..c0b3f272d 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index acdcccb9f..dd5acdfdf 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 9fc06a2b7..2058d5017 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 767af47f1..30343afe6 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d16ccaf37..7661a5886 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/extension-dicom-pdf": "3.8.0-beta.30", - "@ohif/extension-dicom-video": "3.8.0-beta.30" + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/extension-dicom-pdf": "3.8.0-beta.31", + "@ohif/extension-dicom-video": "3.8.0-beta.31" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index a4f73b462..5cf4e3b28 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/extension-dicom-pdf": "3.8.0-beta.30", - "@ohif/extension-dicom-video": "3.8.0-beta.30", - "@ohif/extension-measurement-tracking": "3.8.0-beta.30", - "@ohif/extension-test": "3.8.0-beta.30" + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/extension-dicom-pdf": "3.8.0-beta.31", + "@ohif/extension-dicom-video": "3.8.0-beta.31", + "@ohif/extension-measurement-tracking": "3.8.0-beta.31", + "@ohif/extension-test": "3.8.0-beta.31" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 07b0e415e..23f5095a7 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/extension-dicom-pdf": "3.8.0-beta.30", - "@ohif/extension-dicom-video": "3.8.0-beta.30", - "@ohif/extension-measurement-tracking": "3.8.0-beta.30" + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/extension-dicom-pdf": "3.8.0-beta.31", + "@ohif/extension-dicom-video": "3.8.0-beta.31", + "@ohif/extension-measurement-tracking": "3.8.0-beta.31" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 3441e4ad1..adc132db0 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.30" + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.31" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index fca05bfbc..835832e74 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30" + "@ohif/core": "3.8.0-beta.31" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index bcad537b2..d1f512e1f 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/extension-dicom-pdf": "3.8.0-beta.30", - "@ohif/extension-dicom-video": "3.8.0-beta.30", - "@ohif/extension-measurement-tracking": "3.8.0-beta.30" + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/extension-dicom-pdf": "3.8.0-beta.31", + "@ohif/extension-dicom-video": "3.8.0-beta.31", + "@ohif/extension-measurement-tracking": "3.8.0-beta.31" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 4538f18d7..658e21303 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.31", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 881587333..d0685fc88 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.30", - "commit": "e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23" + "version": "3.8.0-beta.31", + "commit": "9c6e1cd305c334f8e3a2d3d9ac6fb4bba1d34c67" } \ No newline at end of file diff --git a/version.txt b/version.txt index 5f8085267..88b7f59ca 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.30 \ No newline at end of file +3.8.0-beta.31 \ No newline at end of file From f99645f3a1f1ddf4bf674afa76dfe00a928130db Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 19:55:36 +0000 Subject: [PATCH 099/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c927b7d58..84496a31e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index ce9e66a55..3f15df4fa 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a627dd8fc..15f5f5abd 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index fed7a2d64..146d26e90 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 41c0c2aa5..82a9725e7 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 542f8f8bd..69fa84f81 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 5b5c66493..40f718397 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 146217196..a92a8a551 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index dd7a5994b..672dc02c7 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index bd2e069ea..f5a40c4bc 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) diff --git a/extensions/default/package.json b/extensions/default/package.json index 72d999492..9bdf94f99 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 327ecc388..5324f5a07 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index bb50336a4..260733244 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index ec73f67c2..52243b2b0 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 50eadd37d..48b98f6ec 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e3e042c48..3ad62d362 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index c0b3f272d..8ff6eb3b6 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index ba932ffb4..a00ce0a79 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index dd5acdfdf..2935dd782 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/ui": "3.8.0-beta.31", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index df34d9fc7..06447416b 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 2058d5017..b589c3567 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index aa4443980..8af5fb50e 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 30343afe6..ab2d6932d 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 606eb0220..dce8f4229 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index d641911e6..a593f1357 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 7661a5886..cac08ce31 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 7b34f305d..4d36e02fa 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5cf4e3b28..975cd0157 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 521e0353c..db7107f78 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 23f5095a7..e7a3d0d93 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 4974e53ee..0f49e44e9 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index adc132db0..05b09bf68 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 9fa59e257..609c99faa 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 835832e74..3a22229ee 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 6621c7d6f..3ad08bd2a 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index d1f512e1f..53dae015d 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index b91716700..2eea22110 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 41b60db35..339a422d4 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.30", - "@ohif/extension-cornerstone": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.30", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30", - "@ohif/extension-default": "3.8.0-beta.30", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.30", - "@ohif/extension-dicom-pdf": "3.8.0-beta.30", - "@ohif/extension-dicom-video": "3.8.0-beta.30", - "@ohif/extension-test": "3.8.0-beta.30", - "@ohif/i18n": "3.8.0-beta.30", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.30", - "@ohif/mode-longitudinal": "3.8.0-beta.30", - "@ohif/mode-microscopy": "3.8.0-beta.30", - "@ohif/mode-test": "3.8.0-beta.30", - "@ohif/ui": "3.8.0-beta.30", + "@ohif/core": "3.8.0-beta.31", + "@ohif/extension-cornerstone": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.31", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", + "@ohif/extension-default": "3.8.0-beta.31", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.31", + "@ohif/extension-dicom-pdf": "3.8.0-beta.31", + "@ohif/extension-dicom-video": "3.8.0-beta.31", + "@ohif/extension-test": "3.8.0-beta.31", + "@ohif/i18n": "3.8.0-beta.31", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.31", + "@ohif/mode-longitudinal": "3.8.0-beta.31", + "@ohif/mode-microscopy": "3.8.0-beta.31", + "@ohif/mode-test": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.31", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index c29306022..f89e7324b 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 7c38feaf2..46ceb311e 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 67a826a04..a767538b5 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) diff --git a/platform/core/package.json b/platform/core/package.json index 658e21303..5f1d49d66 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 1ff1b7298..0842749b2 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 7fcfd969b..6f67efd56 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index de8ae6cf6..fb49fdd63 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 2206477d1..1d1d7d610 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index f59d585f0..b416cdb50 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.29...v3.8.0-beta.30) (2023-12-13) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 875b565e0..58d5d85d5 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.30", + "version": "3.8.0-beta.31", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 97cb1f94e184798d75b54a4446815b8aef10d63e Mon Sep 17 00:00:00 2001 From: Celian-abd <101793092+Celian-abd@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:03:09 +0100 Subject: [PATCH 100/289] fix(dicom-seg) : Fix the missing color tag when loading Dicom-Seg (#3822) Co-authored-by: Alireza --- .../src/getSopClassHandlerModule.js | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js index 7548d492e..68a6b15bd 100644 --- a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js +++ b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js @@ -1,5 +1,6 @@ import { utils } from '@ohif/core'; import { metaData, cache, triggerEvent, eventTarget } from '@cornerstonejs/core'; +import { CONSTANTS } from '@cornerstonejs/tools'; import { adaptersSEG, Enums } from '@cornerstonejs/adapters'; import { SOPClassHandlerId } from './id'; @@ -141,7 +142,7 @@ async function _loadSegments({ extensionManager, servicesManager, segDisplaySet, '@ohif/extension-cornerstone.utilityModule.common' ); - const { segmentationService } = servicesManager.services; + const { segmentationService, uiNotificationService } = servicesManager.services; const { dicomLoaderService } = utilityModule.exports; const arrayBuffer = await dicomLoaderService.findDicomDataPromise(segDisplaySet, null, headers); @@ -174,12 +175,31 @@ async function _loadSegments({ extensionManager, servicesManager, segDisplaySet, { skipOverlapping, tolerance, eventTarget, triggerEvent } ); + let usedRecommendedDisplayCIELabValue = true; results.segMetadata.data.forEach((data, i) => { if (i > 0) { - data.rgba = dicomlabToRGB(data.RecommendedDisplayCIELabValue); + data.rgba = data.RecommendedDisplayCIELabValue; + + if (data.rgba) { + data.rgba = dicomlabToRGB(data.rgba); + } else { + usedRecommendedDisplayCIELabValue = false; + data.rgba = CONSTANTS.COLOR_LUT[i % CONSTANTS.COLOR_LUT.length]; + } } }); + if (!usedRecommendedDisplayCIELabValue) { + // Display a notification about the non-utilization of RecommendedDisplayCIELabValue + uiNotificationService.show({ + title: 'DICOM SEG import', + message: + 'RecommendedDisplayCIELabValue not found for one or more segments. The default color was used instead.', + type: 'warning', + duration: 5000, + }); + } + Object.assign(segDisplaySet, results); } From 7bb2713c5c77464320de5dc74714636e2ba42563 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 20:11:39 +0000 Subject: [PATCH 101/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 8607af737..705cd64ef 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -9c6e1cd305c334f8e3a2d3d9ac6fb4bba1d34c67 \ No newline at end of file +97cb1f94e184798d75b54a4446815b8aef10d63e \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 15f5f5abd..bcdfadda9 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/i18n": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/i18n": "3.8.0-beta.32", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 82a9725e7..572da36be 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/i18n": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/i18n": "3.8.0-beta.32", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 40f718397..6bb73bc83 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-measurement-tracking": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-measurement-tracking": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 672dc02c7..2a0cc3e5b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 9bdf94f99..62ce4dd7c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/i18n": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/i18n": "3.8.0-beta.32", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 260733244..4abdb8377 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/i18n": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/i18n": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 48b98f6ec..df921ea27 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 8ff6eb3b6..2c05ac5b6 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 2935dd782..deebc83f7 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index b589c3567..970101354 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index ab2d6932d..6c460d35c 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index cac08ce31..5896f126b 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/extension-dicom-pdf": "3.8.0-beta.31", - "@ohif/extension-dicom-video": "3.8.0-beta.31" + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/extension-dicom-pdf": "3.8.0-beta.32", + "@ohif/extension-dicom-video": "3.8.0-beta.32" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 975cd0157..235075fc8 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/extension-dicom-pdf": "3.8.0-beta.31", - "@ohif/extension-dicom-video": "3.8.0-beta.31", - "@ohif/extension-measurement-tracking": "3.8.0-beta.31", - "@ohif/extension-test": "3.8.0-beta.31" + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/extension-dicom-pdf": "3.8.0-beta.32", + "@ohif/extension-dicom-video": "3.8.0-beta.32", + "@ohif/extension-measurement-tracking": "3.8.0-beta.32", + "@ohif/extension-test": "3.8.0-beta.32" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e7a3d0d93..5ce1be578 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/extension-dicom-pdf": "3.8.0-beta.31", - "@ohif/extension-dicom-video": "3.8.0-beta.31", - "@ohif/extension-measurement-tracking": "3.8.0-beta.31" + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/extension-dicom-pdf": "3.8.0-beta.32", + "@ohif/extension-dicom-video": "3.8.0-beta.32", + "@ohif/extension-measurement-tracking": "3.8.0-beta.32" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 05b09bf68..1af42afd0 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.31" + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.32" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 3a22229ee..38e6f720a 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31" + "@ohif/core": "3.8.0-beta.32" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 53dae015d..56bb1ad26 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/extension-dicom-pdf": "3.8.0-beta.31", - "@ohif/extension-dicom-video": "3.8.0-beta.31", - "@ohif/extension-measurement-tracking": "3.8.0-beta.31" + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/extension-dicom-pdf": "3.8.0-beta.32", + "@ohif/extension-dicom-video": "3.8.0-beta.32", + "@ohif/extension-measurement-tracking": "3.8.0-beta.32" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 5f1d49d66..9a3d353f1 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.32", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index d0685fc88..031c2d150 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.31", - "commit": "9c6e1cd305c334f8e3a2d3d9ac6fb4bba1d34c67" + "version": "3.8.0-beta.32", + "commit": "97cb1f94e184798d75b54a4446815b8aef10d63e" } \ No newline at end of file diff --git a/version.txt b/version.txt index 88b7f59ca..a6e4fead0 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.31 \ No newline at end of file +3.8.0-beta.32 \ No newline at end of file From c45f60dce2092a86bf6fe145933d8ab589e587b6 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 20:11:48 +0000 Subject: [PATCH 102/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84496a31e..3871e0202 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 3f15df4fa..d0761a80f 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index bcdfadda9..1ae43b632 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 146d26e90..ed75616b5 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 572da36be..da9fdd582 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 69fa84f81..b8b5f5e4f 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 6bb73bc83..0f4540d6a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index a92a8a551..1ab838131 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 2a0cc3e5b..63b9b6d67 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index f5a40c4bc..72cdadab8 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 62ce4dd7c..d56f22697 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 5324f5a07..b7a28d82a 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 4abdb8377..3b922e656 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 52243b2b0..9d3aef39f 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index df921ea27..714cde09f 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 3ad62d362..dc4d18333 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 2c05ac5b6..b7011ae87 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index a00ce0a79..1a2b6c40f 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index deebc83f7..259e21c0e 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/ui": "3.8.0-beta.32", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 06447416b..66345f704 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 970101354..96193de44 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 8af5fb50e..aab76356c 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 6c460d35c..0acb67391 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index dce8f4229..e7d80dd2d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index a593f1357..5771f6143 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 5896f126b..8eb022c2d 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 4d36e02fa..2f891c8ad 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 235075fc8..9ed184512 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index db7107f78..4f4658729 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 5ce1be578..a6d365af9 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 0f49e44e9..b0ac95506 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 1af42afd0..cf6045c5f 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 609c99faa..41021d7ca 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 38e6f720a..868c3aa16 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 3ad08bd2a..fd4fb5807 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 56bb1ad26..8bab02ad9 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 2eea22110..dc1c1df71 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 339a422d4..12c835720 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.31", - "@ohif/extension-cornerstone": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.31", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.31", - "@ohif/extension-default": "3.8.0-beta.31", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.31", - "@ohif/extension-dicom-pdf": "3.8.0-beta.31", - "@ohif/extension-dicom-video": "3.8.0-beta.31", - "@ohif/extension-test": "3.8.0-beta.31", - "@ohif/i18n": "3.8.0-beta.31", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.31", - "@ohif/mode-longitudinal": "3.8.0-beta.31", - "@ohif/mode-microscopy": "3.8.0-beta.31", - "@ohif/mode-test": "3.8.0-beta.31", - "@ohif/ui": "3.8.0-beta.31", + "@ohif/core": "3.8.0-beta.32", + "@ohif/extension-cornerstone": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.32", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", + "@ohif/extension-default": "3.8.0-beta.32", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.32", + "@ohif/extension-dicom-pdf": "3.8.0-beta.32", + "@ohif/extension-dicom-video": "3.8.0-beta.32", + "@ohif/extension-test": "3.8.0-beta.32", + "@ohif/i18n": "3.8.0-beta.32", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.32", + "@ohif/mode-longitudinal": "3.8.0-beta.32", + "@ohif/mode-microscopy": "3.8.0-beta.32", + "@ohif/mode-test": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.32", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index f89e7324b..8adac7652 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 46ceb311e..7f4623f54 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index a767538b5..f602d09e7 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 9a3d353f1..aaecacb9b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 0842749b2..3b62febad 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 6f67efd56..c70e10e76 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index fb49fdd63..d63ab1cca 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 1d1d7d610..3889741c1 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index b416cdb50..e5ab9a192 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.30...v3.8.0-beta.31) (2023-12-13) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 58d5d85d5..e9e543161 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.31", + "version": "3.8.0-beta.32", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 13d0c883f8310a2d0a626e1a4942415bef7d8f9e Mon Sep 17 00:00:00 2001 From: dxlin Date: Wed, 13 Dec 2023 15:18:15 -0500 Subject: [PATCH 103/289] =?UTF-8?q?docs:=20Update=20HangingProtocolService?= =?UTF-8?q?.md=20doc=20sameAs=20example=20to=20contain=20constr=E2=80=A6?= =?UTF-8?q?=20(#3765)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/data/HangingProtocolService.md | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/platform/docs/docs/platform/services/data/HangingProtocolService.md b/platform/docs/docs/platform/services/data/HangingProtocolService.md index 58caa82c3..de33e9bbd 100644 --- a/platform/docs/docs/platform/services/data/HangingProtocolService.md +++ b/platform/docs/docs/platform/services/data/HangingProtocolService.md @@ -350,13 +350,18 @@ The below example modifies the included hanging protocol (extensions/tmtv/src/ge ```javascript ptDisplaySet: { - ... - seriesMatchingRules: [ - { - attribute: 'sameAs', - sameAttribute: 'FrameOfReferenceUID', - sameDisplaySetId: 'ctDisplaySet', - required: true, - }, - ... + ... + seriesMatchingRules: [ + { + attribute: 'sameAs', + sameAttribute: 'FrameOfReferenceUID', + sameDisplaySetId: 'ctDisplaySet', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ... ``` From 7a05d169ef7add1d43e8e4ef3026fde50b48430f Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 20:27:14 +0000 Subject: [PATCH 104/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 705cd64ef..233857580 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -97cb1f94e184798d75b54a4446815b8aef10d63e \ No newline at end of file +13d0c883f8310a2d0a626e1a4942415bef7d8f9e \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 1ae43b632..6e70265e2 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/i18n": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/i18n": "3.8.0-beta.33", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index da9fdd582..3489cfb45 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/i18n": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/i18n": "3.8.0-beta.33", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 0f4540d6a..c45c0f954 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-measurement-tracking": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-measurement-tracking": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 63b9b6d67..52d8486c8 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index d56f22697..8b3853f35 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/i18n": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/i18n": "3.8.0-beta.33", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 3b922e656..7dc5bcdc3 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/i18n": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/i18n": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 714cde09f..c1487ebce 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index b7011ae87..b8a1713e8 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 259e21c0e..a7c9b1769 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 96193de44..ee3d766fa 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0acb67391..a03f74ddb 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 8eb022c2d..6d2e38663 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/extension-dicom-pdf": "3.8.0-beta.32", - "@ohif/extension-dicom-video": "3.8.0-beta.32" + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/extension-dicom-pdf": "3.8.0-beta.33", + "@ohif/extension-dicom-video": "3.8.0-beta.33" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 9ed184512..dfd571fe7 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/extension-dicom-pdf": "3.8.0-beta.32", - "@ohif/extension-dicom-video": "3.8.0-beta.32", - "@ohif/extension-measurement-tracking": "3.8.0-beta.32", - "@ohif/extension-test": "3.8.0-beta.32" + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/extension-dicom-pdf": "3.8.0-beta.33", + "@ohif/extension-dicom-video": "3.8.0-beta.33", + "@ohif/extension-measurement-tracking": "3.8.0-beta.33", + "@ohif/extension-test": "3.8.0-beta.33" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index a6d365af9..f229791d1 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/extension-dicom-pdf": "3.8.0-beta.32", - "@ohif/extension-dicom-video": "3.8.0-beta.32", - "@ohif/extension-measurement-tracking": "3.8.0-beta.32" + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/extension-dicom-pdf": "3.8.0-beta.33", + "@ohif/extension-dicom-video": "3.8.0-beta.33", + "@ohif/extension-measurement-tracking": "3.8.0-beta.33" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index cf6045c5f..27bfb74da 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.32" + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.33" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 868c3aa16..898fa859d 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32" + "@ohif/core": "3.8.0-beta.33" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 8bab02ad9..89d9a6920 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/extension-dicom-pdf": "3.8.0-beta.32", - "@ohif/extension-dicom-video": "3.8.0-beta.32", - "@ohif/extension-measurement-tracking": "3.8.0-beta.32" + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/extension-dicom-pdf": "3.8.0-beta.33", + "@ohif/extension-dicom-video": "3.8.0-beta.33", + "@ohif/extension-measurement-tracking": "3.8.0-beta.33" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index aaecacb9b..5d3e1a25f 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.33", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 031c2d150..a430b4ec6 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.32", - "commit": "97cb1f94e184798d75b54a4446815b8aef10d63e" + "version": "3.8.0-beta.33", + "commit": "13d0c883f8310a2d0a626e1a4942415bef7d8f9e" } \ No newline at end of file diff --git a/version.txt b/version.txt index a6e4fead0..059bde4c0 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.32 \ No newline at end of file +3.8.0-beta.33 \ No newline at end of file From c4064acfbcd389b8ed88e55e21e72c66017dcc60 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 20:27:22 +0000 Subject: [PATCH 105/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3871e0202..53a493529 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index d0761a80f..5eac0787f 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 6e70265e2..0348c713f 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index ed75616b5..b56fc751c 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 3489cfb45..58d3c98f2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index b8b5f5e4f..56991bbae 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c45c0f954..e014ce78a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 1ab838131..2b6896fee 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 52d8486c8..a6cec9758 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 72cdadab8..17707ed93 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 8b3853f35..8579ef3fa 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index b7a28d82a..8eddc7979 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 7dc5bcdc3..e877485d3 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 9d3aef39f..47f0d8306 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index c1487ebce..fdf1b84e8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index dc4d18333..236ee759d 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index b8a1713e8..45ad40a88 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 1a2b6c40f..b17dd05a8 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index a7c9b1769..bcac378fc 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/ui": "3.8.0-beta.33", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 66345f704..2cebcd6d5 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index ee3d766fa..030836dbb 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index aab76356c..cc64c7e37 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index a03f74ddb..0bf9252c9 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index e7d80dd2d..94e49d4f5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 5771f6143..60d58fb8c 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 6d2e38663..6ea5c8a10 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 2f891c8ad..baba462f8 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index dfd571fe7..64afcfe27 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 4f4658729..082a1a7cd 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index f229791d1..f929e1f29 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index b0ac95506..86abb1fa4 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 27bfb74da..a252f1e62 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 41021d7ca..ade3e1363 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 898fa859d..1c3ef9942 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index fd4fb5807..c6b31aeb8 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 89d9a6920..a4bbaa2be 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index dc1c1df71..a5f0f63fb 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 12c835720..fa7f03fba 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.32", - "@ohif/extension-cornerstone": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.32", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.32", - "@ohif/extension-default": "3.8.0-beta.32", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.32", - "@ohif/extension-dicom-pdf": "3.8.0-beta.32", - "@ohif/extension-dicom-video": "3.8.0-beta.32", - "@ohif/extension-test": "3.8.0-beta.32", - "@ohif/i18n": "3.8.0-beta.32", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.32", - "@ohif/mode-longitudinal": "3.8.0-beta.32", - "@ohif/mode-microscopy": "3.8.0-beta.32", - "@ohif/mode-test": "3.8.0-beta.32", - "@ohif/ui": "3.8.0-beta.32", + "@ohif/core": "3.8.0-beta.33", + "@ohif/extension-cornerstone": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.33", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", + "@ohif/extension-default": "3.8.0-beta.33", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.33", + "@ohif/extension-dicom-pdf": "3.8.0-beta.33", + "@ohif/extension-dicom-video": "3.8.0-beta.33", + "@ohif/extension-test": "3.8.0-beta.33", + "@ohif/i18n": "3.8.0-beta.33", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.33", + "@ohif/mode-longitudinal": "3.8.0-beta.33", + "@ohif/mode-microscopy": "3.8.0-beta.33", + "@ohif/mode-test": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.33", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8adac7652..441450c29 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 7f4623f54..e0d361126 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index f602d09e7..9a1bf84f3 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 5d3e1a25f..081974320 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 3b62febad..eaae70f62 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index c70e10e76..6f5734062 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index d63ab1cca..a012bc3fc 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 3889741c1..54b4f6a5c 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index e5ab9a192..8729c6ccf 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.32](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.31...v3.8.0-beta.32) (2023-12-13) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index e9e543161..5c278cf93 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.32", + "version": "3.8.0-beta.33", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 0177b625ba86760168bc4db58c8a109aa9ee83cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Wed, 13 Dec 2023 18:18:49 -0300 Subject: [PATCH 106/289] feat(overlay): add inline binary overlays (#3852) --- .../cornerstone/src/tools/ImageOverlayViewerTool.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx b/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx index 0a3fa641f..c2ba56cbd 100644 --- a/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx +++ b/extensions/cornerstone/src/tools/ImageOverlayViewerTool.tsx @@ -1,7 +1,7 @@ import { VolumeViewport, metaData, utilities } from '@cornerstonejs/core'; import { IStackViewport, IVolumeViewport, Point3 } from '@cornerstonejs/core/dist/esm/types'; import { AnnotationDisplayTool, drawing } from '@cornerstonejs/tools'; -import { guid } from '@ohif/core/src/utils'; +import { guid, b64toBlob } from '@ohif/core/src/utils'; import OverlayPlaneModuleProvider from './OverlayPlaneModuleProvider'; interface CachedStat { @@ -46,7 +46,7 @@ class ImageOverlayViewerTool extends AnnotationDisplayTool { super(toolProps, defaultToolProps); } - onSetToolDisabled = (): void => { }; + onSetToolDisabled = (): void => {}; protected getReferencedImageId(viewport: IStackViewport | IVolumeViewport): string { if (viewport instanceof VolumeViewport) { @@ -174,6 +174,10 @@ class ImageOverlayViewerTool extends AnnotationDisplayTool { pixelData = overlay.pixelData[0]; } else if (overlay.pixelData.retrieveBulkData) { pixelData = await overlay.pixelData.retrieveBulkData(); + } else if (overlay.pixelData.InlineBinary) { + const blob = b64toBlob(overlay.pixelData.InlineBinary); + const arrayBuffer = await blob.arrayBuffer(); + pixelData = arrayBuffer; } if (!pixelData) { From 6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e Mon Sep 17 00:00:00 2001 From: Sofien-Sellami <73444179+Sofien-Sellami@users.noreply.github.com> Date: Wed, 13 Dec 2023 22:28:20 +0100 Subject: [PATCH 107/289] fix(icon-style): Ensure consistent icon dimensions (#3727) --- platform/ui/src/components/SidePanel/SidePanel.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/ui/src/components/SidePanel/SidePanel.tsx b/platform/ui/src/components/SidePanel/SidePanel.tsx index 602ab10d1..4e25615cc 100644 --- a/platform/ui/src/components/SidePanel/SidePanel.tsx +++ b/platform/ui/src/components/SidePanel/SidePanel.tsx @@ -276,7 +276,13 @@ const SidePanel = ({ side, className, activeTabIndex: activeTabIndexProp, tabs, data-cy={`${tab.name}-btn`} >
- +
From de4ad88a09314777bf9d5932d907a82d66cd3bbe Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 21:37:03 +0000 Subject: [PATCH 108/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 233857580..02690384c 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -13d0c883f8310a2d0a626e1a4942415bef7d8f9e \ No newline at end of file +6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 0348c713f..bbb7ffd6b 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/i18n": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/i18n": "3.8.0-beta.34", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 58d3c98f2..c7bdaddcb 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/i18n": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/i18n": "3.8.0-beta.34", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index e014ce78a..5076864f7 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-measurement-tracking": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-measurement-tracking": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index a6cec9758..4ac556d71 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 8579ef3fa..9694b8a1f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/i18n": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/i18n": "3.8.0-beta.34", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index e877485d3..099b3b9e2 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/i18n": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/i18n": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index fdf1b84e8..4a3177200 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 45ad40a88..5a9bf8d4e 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index bcac378fc..f91bfae0d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.36.1", "@cornerstonejs/tools": "^1.36.1", - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 030836dbb..c60d7c635 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0bf9252c9..457ac5faf 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 6ea5c8a10..33cc078ea 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/extension-dicom-pdf": "3.8.0-beta.33", - "@ohif/extension-dicom-video": "3.8.0-beta.33" + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/extension-dicom-pdf": "3.8.0-beta.34", + "@ohif/extension-dicom-video": "3.8.0-beta.34" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 64afcfe27..28b4ad80f 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/extension-dicom-pdf": "3.8.0-beta.33", - "@ohif/extension-dicom-video": "3.8.0-beta.33", - "@ohif/extension-measurement-tracking": "3.8.0-beta.33", - "@ohif/extension-test": "3.8.0-beta.33" + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/extension-dicom-pdf": "3.8.0-beta.34", + "@ohif/extension-dicom-video": "3.8.0-beta.34", + "@ohif/extension-measurement-tracking": "3.8.0-beta.34", + "@ohif/extension-test": "3.8.0-beta.34" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index f929e1f29..bcc5f3779 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/extension-dicom-pdf": "3.8.0-beta.33", - "@ohif/extension-dicom-video": "3.8.0-beta.33", - "@ohif/extension-measurement-tracking": "3.8.0-beta.33" + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/extension-dicom-pdf": "3.8.0-beta.34", + "@ohif/extension-dicom-video": "3.8.0-beta.34", + "@ohif/extension-measurement-tracking": "3.8.0-beta.34" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index a252f1e62..51f3b86f9 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.33" + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.34" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 1c3ef9942..1f779ca5e 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33" + "@ohif/core": "3.8.0-beta.34" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index a4bbaa2be..2e67c0e29 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/extension-dicom-pdf": "3.8.0-beta.33", - "@ohif/extension-dicom-video": "3.8.0-beta.33", - "@ohif/extension-measurement-tracking": "3.8.0-beta.33" + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/extension-dicom-pdf": "3.8.0-beta.34", + "@ohif/extension-dicom-video": "3.8.0-beta.34", + "@ohif/extension-measurement-tracking": "3.8.0-beta.34" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 081974320..f0ced2de6 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.34", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index a430b4ec6..59b1e9236 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.33", - "commit": "13d0c883f8310a2d0a626e1a4942415bef7d8f9e" + "version": "3.8.0-beta.34", + "commit": "6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e" } \ No newline at end of file diff --git a/version.txt b/version.txt index 059bde4c0..ee72cac6b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.33 \ No newline at end of file +3.8.0-beta.34 \ No newline at end of file From 2fa335c6d9c109b5e7f8bdd2c646d48cbbd914c4 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 13 Dec 2023 21:37:11 +0000 Subject: [PATCH 109/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 16 +++++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 247 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53a493529..7259c7ee5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + + +### Bug Fixes + +* **icon-style:** Ensure consistent icon dimensions ([#3727](https://github.com/OHIF/Viewers/issues/3727)) ([6ca13c0](https://github.com/OHIF/Viewers/commit/6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e)) + + +### Features + +* **overlay:** add inline binary overlays ([#3852](https://github.com/OHIF/Viewers/issues/3852)) ([0177b62](https://github.com/OHIF/Viewers/commit/0177b625ba86760168bc4db58c8a109aa9ee83cb)) + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 5eac0787f..88f2e680b 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index bbb7ffd6b..68afc0737 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index b56fc751c..74598e00c 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index c7bdaddcb..d9e6d2ad5 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 56991bbae..a3feb904c 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 5076864f7..014c9d747 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 2b6896fee..9163fc703 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + + +### Features + +* **overlay:** add inline binary overlays ([#3852](https://github.com/OHIF/Viewers/issues/3852)) ([0177b62](https://github.com/OHIF/Viewers/commit/0177b625ba86760168bc4db58c8a109aa9ee83cb)) + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 4ac556d71..ad5eab141 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 17707ed93..578681e4c 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 9694b8a1f..b795fdce5 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 8eddc7979..9d6679e2d 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 099b3b9e2..fb686b6ce 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 47f0d8306..96e6cd54e 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 4a3177200..6b8cbc4fb 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 236ee759d..92595953e 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 5a9bf8d4e..d4fe272bd 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index b17dd05a8..d1f12aaf3 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f91bfae0d..f250d3f7f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/ui": "3.8.0-beta.34", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 2cebcd6d5..cc037fddf 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c60d7c635..f31265fe3 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index cc64c7e37..dd9d27d66 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 457ac5faf..acdb1dff1 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 94e49d4f5..ff203b251 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 60d58fb8c..0f8eda3ce 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 33cc078ea..71eb41688 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index baba462f8..00f160a36 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 28b4ad80f..4026ac6b1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 082a1a7cd..7cf76faf1 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index bcc5f3779..01564ad16 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 86abb1fa4..1b09afdc0 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 51f3b86f9..728e55197 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index ade3e1363..8102456f8 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 1f779ca5e..24c17a847 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index c6b31aeb8..183907b68 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 2e67c0e29..155ef8bf1 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index a5f0f63fb..1fbc5a69f 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index fa7f03fba..e1e355860 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.36.1", - "@ohif/core": "3.8.0-beta.33", - "@ohif/extension-cornerstone": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.33", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.33", - "@ohif/extension-default": "3.8.0-beta.33", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.33", - "@ohif/extension-dicom-pdf": "3.8.0-beta.33", - "@ohif/extension-dicom-video": "3.8.0-beta.33", - "@ohif/extension-test": "3.8.0-beta.33", - "@ohif/i18n": "3.8.0-beta.33", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.33", - "@ohif/mode-longitudinal": "3.8.0-beta.33", - "@ohif/mode-microscopy": "3.8.0-beta.33", - "@ohif/mode-test": "3.8.0-beta.33", - "@ohif/ui": "3.8.0-beta.33", + "@ohif/core": "3.8.0-beta.34", + "@ohif/extension-cornerstone": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.34", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", + "@ohif/extension-default": "3.8.0-beta.34", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.34", + "@ohif/extension-dicom-pdf": "3.8.0-beta.34", + "@ohif/extension-dicom-video": "3.8.0-beta.34", + "@ohif/extension-test": "3.8.0-beta.34", + "@ohif/i18n": "3.8.0-beta.34", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.34", + "@ohif/mode-longitudinal": "3.8.0-beta.34", + "@ohif/mode-microscopy": "3.8.0-beta.34", + "@ohif/mode-test": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.34", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 441450c29..c88666b89 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index e0d361126..a6e5c7adf 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 9a1bf84f3..becd191cb 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index f0ced2de6..82e07baf7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index eaae70f62..4a73f0857 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 6f5734062..eea7d0840 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a012bc3fc..a485426b7 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 54b4f6a5c..0d6d649ed 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 8729c6ccf..5dee7a13a 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) + + +### Bug Fixes + +* **icon-style:** Ensure consistent icon dimensions ([#3727](https://github.com/OHIF/Viewers/issues/3727)) ([6ca13c0](https://github.com/OHIF/Viewers/commit/6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e)) + + + + + # [3.8.0-beta.33](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.32...v3.8.0-beta.33) (2023-12-13) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 5c278cf93..56a0fd2c6 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.33", + "version": "3.8.0-beta.34", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 5915fada83d89c9acddeffc0f04a006aeeee2576 Mon Sep 17 00:00:00 2001 From: Alireza Date: Wed, 13 Dec 2023 22:39:41 -0500 Subject: [PATCH 110/289] chore(version): upgrade cornerstone3D versions (#3853) --- babel.config.js | 1 + extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +-- extensions/cornerstone/package.json | 10 ++-- extensions/measurement-tracking/package.json | 4 +- platform/app/package.json | 2 +- platform/core/package.json | 2 +- yarn.lock | 50 +++++++++---------- 8 files changed, 40 insertions(+), 39 deletions(-) diff --git a/babel.config.js b/babel.config.js index 7c669be35..9fbd80463 100644 --- a/babel.config.js +++ b/babel.config.js @@ -26,6 +26,7 @@ module.exports = { '@babel/plugin-transform-typescript', ['@babel/plugin-proposal-private-property-in-object', { loose: true }], ['@babel/plugin-proposal-private-methods', { loose: true }], + '@babel/plugin-transform-class-static-block', ], env: { test: { diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index d9e6d2ad5..def83091b 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -44,8 +44,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.36.1", - "@cornerstonejs/tools": "^1.36.1", + "@cornerstonejs/adapters": "^1.40.1", + "@cornerstonejs/tools": "^1.40.1", "@kitware/vtk.js": "27.3.1", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 014c9d747..13e87abc6 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -44,9 +44,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.36.1", - "@cornerstonejs/core": "^1.36.1", - "@cornerstonejs/tools": "^1.36.1", + "@cornerstonejs/adapters": "^1.40.1", + "@cornerstonejs/core": "^1.40.1", + "@cornerstonejs/tools": "^1.40.1", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ad5eab141..96ef74013 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.36.1", + "@cornerstonejs/dicom-image-loader": "^1.40.1", "@ohif/core": "3.8.0-beta.34", "@ohif/ui": "3.8.0-beta.34", "dcmjs": "^0.29.12", @@ -52,10 +52,10 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.36.1", - "@cornerstonejs/core": "^1.36.1", - "@cornerstonejs/streaming-image-volume-loader": "^1.36.1", - "@cornerstonejs/tools": "^1.36.1", + "@cornerstonejs/adapters": "^1.40.1", + "@cornerstonejs/core": "^1.40.1", + "@cornerstonejs/streaming-image-volume-loader": "^1.40.1", + "@cornerstonejs/tools": "^1.40.1", "@kitware/vtk.js": "27.3.1", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f250d3f7f..99361d7b0 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.36.1", - "@cornerstonejs/tools": "^1.36.1", + "@cornerstonejs/core": "^1.40.1", + "@cornerstonejs/tools": "^1.40.1", "@ohif/core": "3.8.0-beta.34", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", "@ohif/ui": "3.8.0-beta.34", diff --git a/platform/app/package.json b/platform/app/package.json index e1e355860..8f4815659 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -51,7 +51,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.36.1", + "@cornerstonejs/dicom-image-loader": "^1.40.1", "@ohif/core": "3.8.0-beta.34", "@ohif/extension-cornerstone": "3.8.0-beta.34", "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.34", diff --git a/platform/core/package.json b/platform/core/package.json index 82e07baf7..79003f506 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -35,7 +35,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.36.1", + "@cornerstonejs/dicom-image-loader": "^1.40.1", "@ohif/ui": "3.8.0-beta.34", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/yarn.lock b/yarn.lock index bf3c66eec..d4af3b2d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1450,10 +1450,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.36.1": - version "1.38.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.38.0.tgz#761445550a604202472a9a49e6c03a700dfc453e" - integrity sha512-qBygzr/C5z3INsv8z/ZcKN8aLOwLeRZjmcsFoWqECnMRceZZ0V7k682FRt6GA5iu/aOFU2yQAZbduKHtHnGKkg== +"@cornerstonejs/adapters@^1.40.1": + version "1.40.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.40.1.tgz#e1c28fb912189d17a21c74c55fbec21738ad4290" + integrity sha512-9sNhTdHiHOjY7ZfBYxSUkSRs6zhMKcmbXPNdUe1D6tpmRZozlx8vuWNFusadFJ4X+ZqfP6d8BJWgs4A9YyNmHg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1502,10 +1502,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.36.1", "@cornerstonejs/core@^1.38.0": - version "1.38.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.38.0.tgz#955439b9ba848ea0337a35e8c2622014a2eeb3a5" - integrity sha512-AgrJFxdl/LYtdqSYDLEdGaXSzUkdRpeFLYNPwJqpUNt2ToaJ6ovw8Z2d6eC0l5iKLsWfEUgIipaJkw6N7Bl/mw== +"@cornerstonejs/core@^1.40.1": + version "1.40.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.40.1.tgz#7509abaebe53cb878677774b01f82733a31647a5" + integrity sha512-JmZp9sLdV91XyMoRZYNd4c2u9yRbeZx/4Vch+aSW7Jllw7Gu4ZxXcsmRevCpEtSbirpq5Tc2bBXtmdEtjCQYww== dependencies: "@kitware/vtk.js" "27.3.1" comlink "^4.4.1" @@ -1513,34 +1513,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.36.1": - version "1.38.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.38.0.tgz#33835f9fb10e523301fc86e7e2364246d41813fe" - integrity sha512-ejq5acUG2fkM9bkt59eCnY31FTLGYTHfxnwGBlLJWYUDuJJ0KcKfp5SnRGaiiRBmH74NX+Eb9GvUfrwJ2qCexA== +"@cornerstonejs/dicom-image-loader@^1.40.1": + version "1.40.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.40.1.tgz#c2add832f7ff3fad1e10493b57edd7a91966c534" + integrity sha512-wvqKGavtrWSBpV66YKMDBN4TIVP8cNwdEbLW040MpKMj037Nx+1jUR4twsLP/4F7/h/7i+kyjVkELzIQC3dzAA== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.38.0" + "@cornerstonejs/core" "^1.40.1" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.36.1": - version "1.38.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.38.0.tgz#ff300e8d8eebb7ae5ee207ca875b3c93b32fd9ec" - integrity sha512-XmIt3/WUeMkUKyHkb6Xjw5ojvJ8SuBoh3QreDIfUq4M4zAwwscdBAKUfBvb9UJ2cyimnxGiAWUDwN1j7tO0ZVA== +"@cornerstonejs/streaming-image-volume-loader@^1.40.1": + version "1.40.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.40.1.tgz#00a7677b93f2b2b1ef16974e04d46eafb7cc4411" + integrity sha512-/8yoshBGh0Tp2F7ILF/oATCAVH3naKJShKefu5Vy4t50qVjz3zDNAIHKi2xJ2duukYVJO73Mo75B2FEDktU0Og== dependencies: - "@cornerstonejs/core" "^1.38.0" + "@cornerstonejs/core" "^1.40.1" comlink "^4.4.1" -"@cornerstonejs/tools@^1.36.1": - version "1.38.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.38.0.tgz#c8bc53dff24fa061e9cc1b648bef5027bcf9cc37" - integrity sha512-PYLiBJ30+IddZGz+TzKL4eIaKrv7MFbfQMPprUd1MxhDgTuAgWVK8xqC9lsoOslw4B6Orp/znlPXKhezkuZaOQ== +"@cornerstonejs/tools@^1.40.1": + version "1.40.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.40.1.tgz#10e935e3f666400c088b8f6caa77a186dd9135be" + integrity sha512-PQjgsbLi1d1Iy8QrVe8pXlfDsGAl/3zlcUq3RPT3uTNvkqS2O2jHRIpOo5aDDTAPJ2TKfYIGXPOfFmUWeIfPRA== dependencies: - "@cornerstonejs/core" "^1.38.0" + "@cornerstonejs/core" "^1.40.1" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -14217,7 +14217,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -medium-zoom@^1.0.8: +medium-zoom@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== @@ -16168,7 +16168,7 @@ plugin-image-zoom@ataft/plugin-image-zoom: version "1.1.0" resolved "https://codeload.github.com/ataft/plugin-image-zoom/tar.gz/8e1b866c79ed6d42cefc4c52f851f1dfd1d0c7de" dependencies: - medium-zoom "^1.0.8" + medium-zoom "^1.0.4" polished@^4.2.2: version "4.2.2" From b0bf5dc780bd0949cb63e2ae4045252a11632b2e Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 14 Dec 2023 03:48:15 +0000 Subject: [PATCH 111/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 02690384c..2b09a20a6 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e \ No newline at end of file +5915fada83d89c9acddeffc0f04a006aeeee2576 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 68afc0737..b0708d20c 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/i18n": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/i18n": "3.8.0-beta.35", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index def83091b..bf38eda93 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/i18n": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/i18n": "3.8.0-beta.35", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 13e87abc6..c44ca6833 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-measurement-tracking": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-measurement-tracking": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 96ef74013..ffe6cad4a 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.1", - "@ohif/core": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index b795fdce5..c6ebe19f3 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/i18n": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/i18n": "3.8.0-beta.35", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index fb686b6ce..5d48102de 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/i18n": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/i18n": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 6b8cbc4fb..78b9595dd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index d4fe272bd..3e9c69365 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 99361d7b0..a874a64eb 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.1", "@cornerstonejs/tools": "^1.40.1", - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f31265fe3..f0062746e 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index acdb1dff1..0a3b16c47 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 71eb41688..cde11ccf2 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/extension-dicom-pdf": "3.8.0-beta.34", - "@ohif/extension-dicom-video": "3.8.0-beta.34" + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/extension-dicom-pdf": "3.8.0-beta.35", + "@ohif/extension-dicom-video": "3.8.0-beta.35" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 4026ac6b1..d2d0172ac 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/extension-dicom-pdf": "3.8.0-beta.34", - "@ohif/extension-dicom-video": "3.8.0-beta.34", - "@ohif/extension-measurement-tracking": "3.8.0-beta.34", - "@ohif/extension-test": "3.8.0-beta.34" + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/extension-dicom-pdf": "3.8.0-beta.35", + "@ohif/extension-dicom-video": "3.8.0-beta.35", + "@ohif/extension-measurement-tracking": "3.8.0-beta.35", + "@ohif/extension-test": "3.8.0-beta.35" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 01564ad16..c0c493487 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/extension-dicom-pdf": "3.8.0-beta.34", - "@ohif/extension-dicom-video": "3.8.0-beta.34", - "@ohif/extension-measurement-tracking": "3.8.0-beta.34" + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/extension-dicom-pdf": "3.8.0-beta.35", + "@ohif/extension-dicom-video": "3.8.0-beta.35", + "@ohif/extension-measurement-tracking": "3.8.0-beta.35" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 728e55197..b3c90a6b1 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.34" + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.35" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 24c17a847..e7c5348cf 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34" + "@ohif/core": "3.8.0-beta.35" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 155ef8bf1..97253db22 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/extension-dicom-pdf": "3.8.0-beta.34", - "@ohif/extension-dicom-video": "3.8.0-beta.34", - "@ohif/extension-measurement-tracking": "3.8.0-beta.34" + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/extension-dicom-pdf": "3.8.0-beta.35", + "@ohif/extension-dicom-video": "3.8.0-beta.35", + "@ohif/extension-measurement-tracking": "3.8.0-beta.35" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 79003f506..9a39126cc 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.1", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.35", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 59b1e9236..53f578c27 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.34", - "commit": "6ca13c0a4cb5a95bbb52b0db902b5dbf72f8aa6e" + "version": "3.8.0-beta.35", + "commit": "5915fada83d89c9acddeffc0f04a006aeeee2576" } \ No newline at end of file diff --git a/version.txt b/version.txt index ee72cac6b..8177d1a83 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.34 \ No newline at end of file +3.8.0-beta.35 \ No newline at end of file From 44a5a24d4f204b990b79a36242778977e8bf4bcc Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 14 Dec 2023 03:48:22 +0000 Subject: [PATCH 112/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7259c7ee5..7a7963495 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 88f2e680b..da7113883 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index b0708d20c..2efe6ecc5 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 74598e00c..460a60d26 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index bf38eda93..844247758 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index a3feb904c..dd75b0112 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c44ca6833..9a67cc8a4 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 9163fc703..80eb6fbcf 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ffe6cad4a..35058aa55 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 578681e4c..a85edb885 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index c6ebe19f3..3ec3eb003 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 9d6679e2d..b76d5c222 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 5d48102de..164f836bf 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 96e6cd54e..cc2c4c320 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 78b9595dd..8257b6684 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 92595953e..ca88d90a4 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 3e9c69365..6bd9b6ef8 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index d1f12aaf3..09cab2971 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index a874a64eb..dc1cbe4b4 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/ui": "3.8.0-beta.35", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index cc037fddf..cc0d68844 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f0062746e..c6f043181 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index dd9d27d66..1fa679f57 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0a3b16c47..8bba40103 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index ff203b251..a90d93757 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 0f8eda3ce..ff0c8169e 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index cde11ccf2..58675ec2e 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 00f160a36..a61db7aef 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d2d0172ac..d9d1f85f0 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 7cf76faf1..5204b970a 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index c0c493487..32d1549b4 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 1b09afdc0..3cc28464b 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index b3c90a6b1..a1ee0eb3c 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 8102456f8..1ad94a14e 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e7c5348cf..d9d871ff0 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 183907b68..2974c2267 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 97253db22..dbb7b1c58 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 1fbc5a69f..282bc003f 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 8f4815659..e4639a9ee 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.1", - "@ohif/core": "3.8.0-beta.34", - "@ohif/extension-cornerstone": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.34", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.34", - "@ohif/extension-default": "3.8.0-beta.34", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.34", - "@ohif/extension-dicom-pdf": "3.8.0-beta.34", - "@ohif/extension-dicom-video": "3.8.0-beta.34", - "@ohif/extension-test": "3.8.0-beta.34", - "@ohif/i18n": "3.8.0-beta.34", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.34", - "@ohif/mode-longitudinal": "3.8.0-beta.34", - "@ohif/mode-microscopy": "3.8.0-beta.34", - "@ohif/mode-test": "3.8.0-beta.34", - "@ohif/ui": "3.8.0-beta.34", + "@ohif/core": "3.8.0-beta.35", + "@ohif/extension-cornerstone": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.35", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", + "@ohif/extension-default": "3.8.0-beta.35", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.35", + "@ohif/extension-dicom-pdf": "3.8.0-beta.35", + "@ohif/extension-dicom-video": "3.8.0-beta.35", + "@ohif/extension-test": "3.8.0-beta.35", + "@ohif/i18n": "3.8.0-beta.35", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.35", + "@ohif/mode-longitudinal": "3.8.0-beta.35", + "@ohif/mode-microscopy": "3.8.0-beta.35", + "@ohif/mode-test": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.35", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index c88666b89..d60a6123e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index a6e5c7adf..bebeb562b 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index becd191cb..838f21468 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 9a39126cc..cd4416d8b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 4a73f0857..da08a2647 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index eea7d0840..7312ac5d2 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a485426b7..ac2ae4cd3 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 0d6d649ed..bbd9a53b9 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 5dee7a13a..77bb1949b 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.34](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.33...v3.8.0-beta.34) (2023-12-13) diff --git a/platform/ui/package.json b/platform/ui/package.json index 56a0fd2c6..f8b0260a5 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.34", + "version": "3.8.0-beta.35", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 0eb502aaf0d95d7515e23ed0e03b140ac17bb862 Mon Sep 17 00:00:00 2001 From: Alireza Date: Thu, 14 Dec 2023 21:47:15 -0500 Subject: [PATCH 113/289] chore(version): upgrade cornerstone3D versions to fix orientation (#3854) --- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +-- extensions/cornerstone/package.json | 10 ++-- extensions/measurement-tracking/package.json | 4 +- platform/app/package.json | 2 +- platform/core/package.json | 2 +- yarn.lock | 46 +++++++++---------- 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 844247758..b57542a6b 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -44,8 +44,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.40.1", - "@cornerstonejs/tools": "^1.40.1", + "@cornerstonejs/adapters": "^1.40.3", + "@cornerstonejs/tools": "^1.40.3", "@kitware/vtk.js": "27.3.1", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9a67cc8a4..d22273838 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -44,9 +44,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.40.1", - "@cornerstonejs/core": "^1.40.1", - "@cornerstonejs/tools": "^1.40.1", + "@cornerstonejs/adapters": "^1.40.3", + "@cornerstonejs/core": "^1.40.3", + "@cornerstonejs/tools": "^1.40.3", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 35058aa55..fe74a455b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.40.1", + "@cornerstonejs/dicom-image-loader": "^1.40.3", "@ohif/core": "3.8.0-beta.35", "@ohif/ui": "3.8.0-beta.35", "dcmjs": "^0.29.12", @@ -52,10 +52,10 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.40.1", - "@cornerstonejs/core": "^1.40.1", - "@cornerstonejs/streaming-image-volume-loader": "^1.40.1", - "@cornerstonejs/tools": "^1.40.1", + "@cornerstonejs/adapters": "^1.40.3", + "@cornerstonejs/core": "^1.40.3", + "@cornerstonejs/streaming-image-volume-loader": "^1.40.3", + "@cornerstonejs/tools": "^1.40.3", "@kitware/vtk.js": "27.3.1", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index dc1cbe4b4..0a8f949bf 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.40.1", - "@cornerstonejs/tools": "^1.40.1", + "@cornerstonejs/core": "^1.40.3", + "@cornerstonejs/tools": "^1.40.3", "@ohif/core": "3.8.0-beta.35", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", "@ohif/ui": "3.8.0-beta.35", diff --git a/platform/app/package.json b/platform/app/package.json index e4639a9ee..fc3a25e83 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -51,7 +51,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.40.1", + "@cornerstonejs/dicom-image-loader": "^1.40.3", "@ohif/core": "3.8.0-beta.35", "@ohif/extension-cornerstone": "3.8.0-beta.35", "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.35", diff --git a/platform/core/package.json b/platform/core/package.json index cd4416d8b..4d6ae6d17 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -35,7 +35,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.40.1", + "@cornerstonejs/dicom-image-loader": "^1.40.3", "@ohif/ui": "3.8.0-beta.35", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/yarn.lock b/yarn.lock index d4af3b2d0..599edd71a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1450,10 +1450,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.40.1": - version "1.40.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.40.1.tgz#e1c28fb912189d17a21c74c55fbec21738ad4290" - integrity sha512-9sNhTdHiHOjY7ZfBYxSUkSRs6zhMKcmbXPNdUe1D6tpmRZozlx8vuWNFusadFJ4X+ZqfP6d8BJWgs4A9YyNmHg== +"@cornerstonejs/adapters@^1.40.3": + version "1.40.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.40.3.tgz#aaf9e86e648bf3e6531f1d16d9439be48aee40f5" + integrity sha512-StTYbq1RWBHI9yd2Xax6ebk0PX/pvKDmA4j9+WkBTh1MNnNGxABGpRHSdRKa96YlhGnVM1z5u0Ox5BmBMIAy2w== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1502,10 +1502,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.40.1": - version "1.40.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.40.1.tgz#7509abaebe53cb878677774b01f82733a31647a5" - integrity sha512-JmZp9sLdV91XyMoRZYNd4c2u9yRbeZx/4Vch+aSW7Jllw7Gu4ZxXcsmRevCpEtSbirpq5Tc2bBXtmdEtjCQYww== +"@cornerstonejs/core@^1.40.3": + version "1.40.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.40.3.tgz#b591434fa9b80397f97541e4380c09b5cb4b28a0" + integrity sha512-7YgEJM02zZLJZNP4RHp+X1xg+i70ZnV5TkhQaOZSCaoKTEup1I7w3ywMDCrvMMXdE+D8qB6dmvSamJjtWDzKbg== dependencies: "@kitware/vtk.js" "27.3.1" comlink "^4.4.1" @@ -1513,34 +1513,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.40.1": - version "1.40.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.40.1.tgz#c2add832f7ff3fad1e10493b57edd7a91966c534" - integrity sha512-wvqKGavtrWSBpV66YKMDBN4TIVP8cNwdEbLW040MpKMj037Nx+1jUR4twsLP/4F7/h/7i+kyjVkELzIQC3dzAA== +"@cornerstonejs/dicom-image-loader@^1.40.3": + version "1.40.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.40.3.tgz#2a397bcb306231bf8ead1826d3cb98bc9614ed66" + integrity sha512-GaxI9kYmbc8NtbqQAuyv5Ofu91L/ASxcNDKbNVX6rFQ3HQ0n0OspxsarMLKn4oTY0hRFf+3dJYgM+cTmd8obtw== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.40.1" + "@cornerstonejs/core" "^1.40.3" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.40.1": - version "1.40.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.40.1.tgz#00a7677b93f2b2b1ef16974e04d46eafb7cc4411" - integrity sha512-/8yoshBGh0Tp2F7ILF/oATCAVH3naKJShKefu5Vy4t50qVjz3zDNAIHKi2xJ2duukYVJO73Mo75B2FEDktU0Og== +"@cornerstonejs/streaming-image-volume-loader@^1.40.3": + version "1.40.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.40.3.tgz#bf3f5e53a9986c2400dc62d8d13ee138fc192b4a" + integrity sha512-QYgdlKOvJxDyoD+2LxlY1EAaxKza0b/2dD65u1055qWvfWWJe8sqipGUbuDtShlcDdCSZLe6oPCHV5IVFhI5cQ== dependencies: - "@cornerstonejs/core" "^1.40.1" + "@cornerstonejs/core" "^1.40.3" comlink "^4.4.1" -"@cornerstonejs/tools@^1.40.1": - version "1.40.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.40.1.tgz#10e935e3f666400c088b8f6caa77a186dd9135be" - integrity sha512-PQjgsbLi1d1Iy8QrVe8pXlfDsGAl/3zlcUq3RPT3uTNvkqS2O2jHRIpOo5aDDTAPJ2TKfYIGXPOfFmUWeIfPRA== +"@cornerstonejs/tools@^1.40.3": + version "1.40.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.40.3.tgz#2878185a5b848bd07e0a90482a2661525c2e2df8" + integrity sha512-h5+AibxT19nUPg5mTJ0v6xwyjUcN+a4Y1tLo9/mZmzjqLEUk4VljNAtcIj+bRPplNqET5sygZ/StOwC94fFItQ== dependencies: - "@cornerstonejs/core" "^1.40.1" + "@cornerstonejs/core" "^1.40.3" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" From c6214d66b98a03d2b530479142a95f94ce419e06 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 15 Dec 2023 02:55:55 +0000 Subject: [PATCH 114/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 2b09a20a6..441833b40 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -5915fada83d89c9acddeffc0f04a006aeeee2576 \ No newline at end of file +0eb502aaf0d95d7515e23ed0e03b140ac17bb862 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 2efe6ecc5..052d305f4 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/i18n": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/i18n": "3.8.0-beta.36", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b57542a6b..fb500d9a7 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/i18n": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/i18n": "3.8.0-beta.36", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d22273838..062d794f4 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-measurement-tracking": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-measurement-tracking": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index fe74a455b..f5e9c1a2c 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 3ec3eb003..3d8bac91b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/i18n": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/i18n": "3.8.0-beta.36", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 164f836bf..9b82c27bf 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/i18n": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/i18n": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8257b6684..88ad9bc5b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 6bd9b6ef8..42cb75ef0 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 0a8f949bf..1e6912cb9 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c6f043181..02be7bbd9 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 8bba40103..10f90dcd6 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 58675ec2e..0b6dcf181 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/extension-dicom-pdf": "3.8.0-beta.35", - "@ohif/extension-dicom-video": "3.8.0-beta.35" + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/extension-dicom-pdf": "3.8.0-beta.36", + "@ohif/extension-dicom-video": "3.8.0-beta.36" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d9d1f85f0..d4d18c36d 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/extension-dicom-pdf": "3.8.0-beta.35", - "@ohif/extension-dicom-video": "3.8.0-beta.35", - "@ohif/extension-measurement-tracking": "3.8.0-beta.35", - "@ohif/extension-test": "3.8.0-beta.35" + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/extension-dicom-pdf": "3.8.0-beta.36", + "@ohif/extension-dicom-video": "3.8.0-beta.36", + "@ohif/extension-measurement-tracking": "3.8.0-beta.36", + "@ohif/extension-test": "3.8.0-beta.36" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 32d1549b4..c2a6f753a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/extension-dicom-pdf": "3.8.0-beta.35", - "@ohif/extension-dicom-video": "3.8.0-beta.35", - "@ohif/extension-measurement-tracking": "3.8.0-beta.35" + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/extension-dicom-pdf": "3.8.0-beta.36", + "@ohif/extension-dicom-video": "3.8.0-beta.36", + "@ohif/extension-measurement-tracking": "3.8.0-beta.36" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index a1ee0eb3c..76f61dcd8 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.35" + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.36" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d9d871ff0..74acbb134 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35" + "@ohif/core": "3.8.0-beta.36" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index dbb7b1c58..d33bc1971 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/extension-dicom-pdf": "3.8.0-beta.35", - "@ohif/extension-dicom-video": "3.8.0-beta.35", - "@ohif/extension-measurement-tracking": "3.8.0-beta.35" + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/extension-dicom-pdf": "3.8.0-beta.36", + "@ohif/extension-dicom-video": "3.8.0-beta.36", + "@ohif/extension-measurement-tracking": "3.8.0-beta.36" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 4d6ae6d17..d5830bf46 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.36", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 53f578c27..6ead0b84a 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.35", - "commit": "5915fada83d89c9acddeffc0f04a006aeeee2576" + "version": "3.8.0-beta.36", + "commit": "0eb502aaf0d95d7515e23ed0e03b140ac17bb862" } \ No newline at end of file diff --git a/version.txt b/version.txt index 8177d1a83..b70696cc2 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.35 \ No newline at end of file +3.8.0-beta.36 \ No newline at end of file From eb7c950d7e0dee35c0c51ac77e549798278ddcc4 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 15 Dec 2023 02:56:03 +0000 Subject: [PATCH 115/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a7963495..a0c881e61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index da7113883..4e4498e42 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 052d305f4..9e1e51856 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 460a60d26..259d80f37 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index fb500d9a7..4ce799f65 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index dd75b0112..f118269ea 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 062d794f4..4a93e9e75 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 80eb6fbcf..60a20928e 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index f5e9c1a2c..7e87c6296 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index a85edb885..a0a2ec1ab 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 3d8bac91b..acc85fe73 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index b76d5c222..6a86398a8 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 9b82c27bf..84e4fd4f0 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index cc2c4c320..738dda510 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 88ad9bc5b..4cdfca8a6 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index ca88d90a4..85d8f4634 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 42cb75ef0..a9ee676e4 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 09cab2971..ca6fe2e76 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 1e6912cb9..d5185df99 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/ui": "3.8.0-beta.36", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index cc0d68844..5a43e74c5 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 02be7bbd9..6371b0837 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 1fa679f57..e6173f0d8 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 10f90dcd6..3adb929ba 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index a90d93757..21529299c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index ff0c8169e..3aa245fad 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 0b6dcf181..7d727fc6c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index a61db7aef..3f44daed4 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d4d18c36d..b726b40e9 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 5204b970a..028b6753e 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index c2a6f753a..d4b6ee18b 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 3cc28464b..111065617 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 76f61dcd8..121874992 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 1ad94a14e..ef00a6096 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 74acbb134..e4e389ca4 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 2974c2267..9bc5629a1 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index d33bc1971..cfdf780f8 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 282bc003f..b41a36a47 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index fc3a25e83..6c6243bd5 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.35", - "@ohif/extension-cornerstone": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.35", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.35", - "@ohif/extension-default": "3.8.0-beta.35", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.35", - "@ohif/extension-dicom-pdf": "3.8.0-beta.35", - "@ohif/extension-dicom-video": "3.8.0-beta.35", - "@ohif/extension-test": "3.8.0-beta.35", - "@ohif/i18n": "3.8.0-beta.35", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.35", - "@ohif/mode-longitudinal": "3.8.0-beta.35", - "@ohif/mode-microscopy": "3.8.0-beta.35", - "@ohif/mode-test": "3.8.0-beta.35", - "@ohif/ui": "3.8.0-beta.35", + "@ohif/core": "3.8.0-beta.36", + "@ohif/extension-cornerstone": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.36", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", + "@ohif/extension-default": "3.8.0-beta.36", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.36", + "@ohif/extension-dicom-pdf": "3.8.0-beta.36", + "@ohif/extension-dicom-video": "3.8.0-beta.36", + "@ohif/extension-test": "3.8.0-beta.36", + "@ohif/i18n": "3.8.0-beta.36", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.36", + "@ohif/mode-longitudinal": "3.8.0-beta.36", + "@ohif/mode-microscopy": "3.8.0-beta.36", + "@ohif/mode-test": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.36", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index d60a6123e..beb69a022 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index bebeb562b..aec3cb7ec 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 838f21468..8cef87299 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index d5830bf46..3409d9330 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index da08a2647..4ff22d149 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 7312ac5d2..0c181de80 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index ac2ae4cd3..3e5ff49c4 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index bbd9a53b9..0d4312e5e 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 77bb1949b..bf777f026 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.35](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.34...v3.8.0-beta.35) (2023-12-14) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index f8b0260a5..e42214338 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.35", + "version": "3.8.0-beta.36", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From e8858f3eb55552f695af4a55980f9ae2e9af7291 Mon Sep 17 00:00:00 2001 From: Celian-abd <101793092+Celian-abd@users.noreply.github.com> Date: Mon, 8 Jan 2024 18:28:22 +0100 Subject: [PATCH 116/289] fix: colormap for stack viewports via HangingProtocol (#3866) --- .../ViewportService/CornerstoneViewportService.ts | 10 +++++++--- .../src/services/ViewportService/Viewport.ts | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index 71b33ffd4..8443f9eac 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -340,7 +340,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi const properties = { ...presentations.lutPresentation?.properties }; if (!presentations.lutPresentation?.properties) { - const { voi, voiInverted } = displaySetOptions[0]; + const { voi, voiInverted, colormap } = displaySetOptions[0]; if (voi && (voi.windowWidth || voi.windowCenter)) { const { lower, upper } = csUtils.windowLevel.toLowHighRange( voi.windowWidth, @@ -352,6 +352,10 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi if (voiInverted !== undefined) { properties.invert = voiInverted; } + + if (colormap !== undefined) { + properties.colormap = colormap; + } } return viewport.setStack(imageIds, initialImageIndexToUse).then(() => { @@ -736,8 +740,8 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi const { dimensions } = imageVolume; const slabThickness = Math.sqrt( dimensions[0] * dimensions[0] + - dimensions[1] * dimensions[1] + - dimensions[2] * dimensions[2] + dimensions[1] * dimensions[1] + + dimensions[2] * dimensions[2] ); return slabThickness; diff --git a/extensions/cornerstone/src/services/ViewportService/Viewport.ts b/extensions/cornerstone/src/services/ViewportService/Viewport.ts index 685652279..26063a9b1 100644 --- a/extensions/cornerstone/src/services/ViewportService/Viewport.ts +++ b/extensions/cornerstone/src/services/ViewportService/Viewport.ts @@ -71,7 +71,7 @@ export type DisplaySetOptions = { voiInverted: boolean; blendMode?: Enums.BlendModes; slabThickness?: number; - colormap?: string; + colormap?: { name: string, opacity?: number }; displayPreset?: string; }; From 636d8b0458a61be051519bace92c9891b7ba43d6 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 17:37:08 +0000 Subject: [PATCH 117/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 441833b40..be08b5c0e 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -0eb502aaf0d95d7515e23ed0e03b140ac17bb862 \ No newline at end of file +e8858f3eb55552f695af4a55980f9ae2e9af7291 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9e1e51856..932aa0a4c 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/i18n": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/i18n": "3.8.0-beta.37", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4ce799f65..5eb5d8fc4 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/i18n": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/i18n": "3.8.0-beta.37", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 4a93e9e75..47bf7b50a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-measurement-tracking": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-measurement-tracking": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 7e87c6296..5ecf1406d 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index acc85fe73..bf73f371b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/i18n": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/i18n": "3.8.0-beta.37", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 84e4fd4f0..1371d9ec5 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/i18n": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/i18n": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 4cdfca8a6..9709a09f5 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index a9ee676e4..ade3c9116 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index d5185df99..6d8940736 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 6371b0837..56199c105 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 3adb929ba..35b0c24da 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 7d727fc6c..fc57e700c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/extension-dicom-pdf": "3.8.0-beta.36", - "@ohif/extension-dicom-video": "3.8.0-beta.36" + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/extension-dicom-pdf": "3.8.0-beta.37", + "@ohif/extension-dicom-video": "3.8.0-beta.37" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index b726b40e9..d28522632 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/extension-dicom-pdf": "3.8.0-beta.36", - "@ohif/extension-dicom-video": "3.8.0-beta.36", - "@ohif/extension-measurement-tracking": "3.8.0-beta.36", - "@ohif/extension-test": "3.8.0-beta.36" + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/extension-dicom-pdf": "3.8.0-beta.37", + "@ohif/extension-dicom-video": "3.8.0-beta.37", + "@ohif/extension-measurement-tracking": "3.8.0-beta.37", + "@ohif/extension-test": "3.8.0-beta.37" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index d4b6ee18b..eb08a48c9 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/extension-dicom-pdf": "3.8.0-beta.36", - "@ohif/extension-dicom-video": "3.8.0-beta.36", - "@ohif/extension-measurement-tracking": "3.8.0-beta.36" + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/extension-dicom-pdf": "3.8.0-beta.37", + "@ohif/extension-dicom-video": "3.8.0-beta.37", + "@ohif/extension-measurement-tracking": "3.8.0-beta.37" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 121874992..729736ff6 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.36" + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.37" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e4e389ca4..56654d14e 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36" + "@ohif/core": "3.8.0-beta.37" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index cfdf780f8..de50bda12 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/extension-dicom-pdf": "3.8.0-beta.36", - "@ohif/extension-dicom-video": "3.8.0-beta.36", - "@ohif/extension-measurement-tracking": "3.8.0-beta.36" + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/extension-dicom-pdf": "3.8.0-beta.37", + "@ohif/extension-dicom-video": "3.8.0-beta.37", + "@ohif/extension-measurement-tracking": "3.8.0-beta.37" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 3409d9330..1fdf60606 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.37", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 6ead0b84a..3f409f3d5 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.36", - "commit": "0eb502aaf0d95d7515e23ed0e03b140ac17bb862" + "version": "3.8.0-beta.37", + "commit": "e8858f3eb55552f695af4a55980f9ae2e9af7291" } \ No newline at end of file diff --git a/version.txt b/version.txt index b70696cc2..60e052281 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.36 \ No newline at end of file +3.8.0-beta.37 \ No newline at end of file From b5dc9047ba5dadc1ab7c8d2daf3822977c9160e6 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 17:37:17 +0000 Subject: [PATCH 118/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0c881e61..aa2e7faba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + + +### Bug Fixes + +* colormap for stack viewports via HangingProtocol ([#3866](https://github.com/OHIF/Viewers/issues/3866)) ([e8858f3](https://github.com/OHIF/Viewers/commit/e8858f3eb55552f695af4a55980f9ae2e9af7291)) + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 4e4498e42..4c5a27272 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 932aa0a4c..945c7cb51 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 259d80f37..8acc63f61 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 5eb5d8fc4..c944cd194 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index f118269ea..71b855e9d 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 47bf7b50a..9a85b8969 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 60a20928e..925a76743 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + + +### Bug Fixes + +* colormap for stack viewports via HangingProtocol ([#3866](https://github.com/OHIF/Viewers/issues/3866)) ([e8858f3](https://github.com/OHIF/Viewers/commit/e8858f3eb55552f695af4a55980f9ae2e9af7291)) + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 5ecf1406d..fc2ae803b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index a0a2ec1ab..149766ee9 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index bf73f371b..847a060a5 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 6a86398a8..49894f62f 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 1371d9ec5..183af7f56 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 738dda510..aac244efe 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 9709a09f5..44a5f581c 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 85d8f4634..df7025f97 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ade3c9116..8940dce2f 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index ca6fe2e76..5fed511eb 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6d8940736..c28a6ce5e 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/ui": "3.8.0-beta.37", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 5a43e74c5..9764470b4 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 56199c105..8d32c6865 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index e6173f0d8..8df119ef0 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 35b0c24da..d0477c987 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 21529299c..d9a91ec42 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 3aa245fad..15a011c03 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index fc57e700c..a9bba794c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 3f44daed4..d7f1ccd2c 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d28522632..fc904e769 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 028b6753e..1b94fcdb3 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index eb08a48c9..ee9cc9968 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 111065617..096ad03d4 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 729736ff6..fe03c8a18 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index ef00a6096..0d3d21bb6 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 56654d14e..2537464e5 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 9bc5629a1..2695ceb1a 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index de50bda12..5f0db9259 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index b41a36a47..8a8656b40 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 6c6243bd5..7a3b780d6 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.36", - "@ohif/extension-cornerstone": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.36", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.36", - "@ohif/extension-default": "3.8.0-beta.36", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.36", - "@ohif/extension-dicom-pdf": "3.8.0-beta.36", - "@ohif/extension-dicom-video": "3.8.0-beta.36", - "@ohif/extension-test": "3.8.0-beta.36", - "@ohif/i18n": "3.8.0-beta.36", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.36", - "@ohif/mode-longitudinal": "3.8.0-beta.36", - "@ohif/mode-microscopy": "3.8.0-beta.36", - "@ohif/mode-test": "3.8.0-beta.36", - "@ohif/ui": "3.8.0-beta.36", + "@ohif/core": "3.8.0-beta.37", + "@ohif/extension-cornerstone": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.37", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", + "@ohif/extension-default": "3.8.0-beta.37", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.37", + "@ohif/extension-dicom-pdf": "3.8.0-beta.37", + "@ohif/extension-dicom-video": "3.8.0-beta.37", + "@ohif/extension-test": "3.8.0-beta.37", + "@ohif/i18n": "3.8.0-beta.37", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.37", + "@ohif/mode-longitudinal": "3.8.0-beta.37", + "@ohif/mode-microscopy": "3.8.0-beta.37", + "@ohif/mode-test": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.37", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index beb69a022..9f271bd41 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index aec3cb7ec..2473119f9 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 8cef87299..10c2effff 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 1fdf60606..cfc11b576 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 4ff22d149..597f7774a 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 0c181de80..d667b0355 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 3e5ff49c4..2a9fc6d48 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 0d4312e5e..9cb06456d 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index bf777f026..1203a9205 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.35...v3.8.0-beta.36) (2023-12-15) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index e42214338..bec0e94f6 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.36", + "version": "3.8.0-beta.37", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From bf846c94c378f04b9f44dcd71be3f056dbcfe0b5 Mon Sep 17 00:00:00 2001 From: Salim Kanoun Date: Mon, 8 Jan 2024 19:09:22 +0100 Subject: [PATCH 119/289] fix: convert radian to degree value for mip rotation (#3881) --- modes/tmtv/src/initToolGroups.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/tmtv/src/initToolGroups.js b/modes/tmtv/src/initToolGroups.js index a8f4fcf31..f66dbd0c4 100644 --- a/modes/tmtv/src/initToolGroups.js +++ b/modes/tmtv/src/initToolGroups.js @@ -84,7 +84,7 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { { toolName: toolNames.VolumeRotateMouseWheel, configuration: { - rotateIncrementDegrees: 0.1, + rotateIncrementDegrees: 5, }, }, { From 98650302c7575f0aea386e32cfc4112c378035e6 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Mon, 8 Jan 2024 13:15:54 -0500 Subject: [PATCH 120/289] fix: PDF display request in v3 (#3878) Co-authored-by: Alireza --- .circleci/config.yml | 2 +- extensions/default/package.json | 2 +- .../default/src/DicomWebDataSource/index.js | 11 ++++++++--- extensions/default/src/utils/getDirectURL.js | 6 +++++- platform/app/package.json | 2 +- platform/app/public/config/e2e.js | 2 +- platform/core/package.json | 2 +- yarn.lock | 18 +++++++++--------- 8 files changed, 27 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d2fce6395..30c35af46 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,7 +13,7 @@ version: 2.1 ## orbs: codecov: codecov/codecov@1.0.5 - cypress: cypress-io/cypress@3.1.4 + cypress: cypress-io/cypress@3.2.1 executors: cypress-custom: diff --git a/extensions/default/package.json b/extensions/default/package.json index 847a060a5..96d6ef6f1 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -33,7 +33,7 @@ "@ohif/core": "3.8.0-beta.37", "@ohif/i18n": "3.8.0-beta.37", "dcmjs": "^0.29.12", - "dicomweb-client": "^0.10.2", + "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/default/src/DicomWebDataSource/index.js b/extensions/default/src/DicomWebDataSource/index.js index 2ae44dc7e..a0748d864 100644 --- a/extensions/default/src/DicomWebDataSource/index.js +++ b/extensions/default/src/DicomWebDataSource/index.js @@ -373,11 +373,12 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { // in which case it isn't necessary to re-read this. if (value && value.BulkDataURI && !value.Value) { // Provide a method to fetch bulkdata - value.retrieveBulkData = () => { + value.retrieveBulkData = (options = {}) => { // handle the scenarios where bulkDataURI is relative path fixBulkDataURI(value, naturalized, dicomWebConfig); - const options = { + const { mediaType } = options; + const useOptions = { // The bulkdata fetches work with either multipart or // singlepart, so set multipart to false to let the server // decide which type to respond with. @@ -388,9 +389,13 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { // isn't well specified in the standard, but is needed in // any implementation that stores static copies of the metadata StudyInstanceUID: naturalized.StudyInstanceUID, + mediaTypes: mediaType + ? [{ mediaType }, { mediaType: 'application/octet-stream' }] + : undefined, + ...options, }; // Todo: this needs to be from wado dicom web client - return qidoDicomWebClient.retrieveBulkData(options).then(val => { + return qidoDicomWebClient.retrieveBulkData(useOptions).then(val => { // There are DICOM PDF cases where the first ArrayBuffer in the array is // the bulk data and DICOM video cases where the second ArrayBuffer is // the bulk data. Here we play it safe and do a find. diff --git a/extensions/default/src/utils/getDirectURL.js b/extensions/default/src/utils/getDirectURL.js index a43bdeb45..823d7eaef 100644 --- a/extensions/default/src/utils/getDirectURL.js +++ b/extensions/default/src/utils/getDirectURL.js @@ -37,7 +37,11 @@ const getDirectURL = (config, params) => { } if (!singlepart || (singlepart !== true && singlepart.indexOf(fetchPart) === -1)) { if (value.retrieveBulkData) { - return value.retrieveBulkData().then(arr => { + // Try the specified retrieve type. + const options = { + mediaType: defaultType, + }; + return value.retrieveBulkData(options).then(arr => { value.DirectRetrieveURL = URL.createObjectURL(new Blob([arr], { type: defaultType })); return value.DirectRetrieveURL; }); diff --git a/platform/app/package.json b/platform/app/package.json index 7a3b780d6..7f246d557 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -95,7 +95,7 @@ "devDependencies": { "@babel/plugin-proposal-private-methods": "^7.18.6", "@percy/cypress": "^3.1.1", - "cypress": "^13.2.0", + "cypress": "13.6.2", "cypress-file-upload": "^3.5.3", "glob": "^8.0.3", "identity-obj-proxy": "3.0.x", diff --git a/platform/app/public/config/e2e.js b/platform/app/public/config/e2e.js index 5ffdab32a..46a50c939 100644 --- a/platform/app/public/config/e2e.js +++ b/platform/app/public/config/e2e.js @@ -53,7 +53,7 @@ window.config = { supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, - singlepart: 'bulkdata,video,pdf', + singlepart: 'video', bulkDataURI: { enabled: true, relativeResolution: 'studies', diff --git a/platform/core/package.json b/platform/core/package.json index cfc11b576..0a7fd09da 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -43,7 +43,7 @@ "dependencies": { "@babel/runtime": "^7.20.13", "dcmjs": "^0.29.12", - "dicomweb-client": "^0.10.2", + "dicomweb-client": "^0.10.4", "gl-matrix": "^3.4.3", "isomorphic-base64": "^1.0.2", "lodash.clonedeep": "^4.5.0", diff --git a/yarn.lock b/yarn.lock index 599edd71a..ed1ecc288 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8281,10 +8281,10 @@ cypress-file-upload@^3.5.3: resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-3.5.3.tgz#cd706485de3fb2cbd4a8c2dd90fe96d537bb4311" integrity sha512-S/czzqAj1BYz6Xxnfpx2aSc6hXsj76fd8/iuycJ2RxoxCcQMliw8eQV0ugzVlkzr1GD5dKGviNFGYqv3nRJ+Tg== -cypress@^13.2.0: - version "13.6.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.1.tgz#c5f714f08551666ed3ac1fa95718eabb23a416df" - integrity sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw== +cypress@13.6.2: + version "13.6.2" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.2.tgz#c70df09db0a45063298b3cecba2fa21109768e08" + integrity sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ== dependencies: "@cypress/request" "^3.0.0" "@cypress/xvfb" "^1.2.4" @@ -8832,10 +8832,10 @@ dicomicc@^0.1: resolved "https://registry.yarnpkg.com/dicomicc/-/dicomicc-0.1.0.tgz#c73acc60a8e2d73a20f462c8c7d0e1e0d977c486" integrity sha512-kZejPGjLQ9NsgovSyVsiAuCpq6LofNR9Erc8Tt/vQAYGYCoQnTyWDlg5D0TJJQATKul7cSr9k/q0TF8G9qdDkQ== -dicomweb-client@^0.10.2: - version "0.10.3" - resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.10.3.tgz#b4fe550037166dff5d8afd88db3800eb579c91f4" - integrity sha512-/fHNEAYiz8j+9TNOrNJ0k+hYqirbOT85B7vM7I4VkY8DeDQb4BDUeL3RX6huDVtn6ZQlR91dI+2tejLc5c99wA== +dicomweb-client@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.10.4.tgz#f32f8659e51fbaf3f924c81fe8b7ad80297f2bc5" + integrity sha512-TEt26c0JI37IGmSqoj1k1/Y/ZIyq33/ysVaUwE0/Haosn2IBM55NEIPkT+AnhFss2nFAMVtKKWKWLox4luthVw== dicomweb-client@^0.8: version "0.8.4" @@ -14217,7 +14217,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -medium-zoom@^1.0.4: +medium-zoom@^1.0.8: version "1.1.0" resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== From 1b6910bf764b7d11046bdd793939c788c5f9b997 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 18:23:58 +0000 Subject: [PATCH 121/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index be08b5c0e..76d2ef866 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -e8858f3eb55552f695af4a55980f9ae2e9af7291 \ No newline at end of file +98650302c7575f0aea386e32cfc4112c378035e6 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 945c7cb51..24c335d53 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/i18n": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/i18n": "3.8.0-beta.38", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index c944cd194..4671bf4aa 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/i18n": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/i18n": "3.8.0-beta.38", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9a85b8969..4574e5144 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-measurement-tracking": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-measurement-tracking": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index fc2ae803b..a2c048b23 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 96d6ef6f1..208744e31 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/i18n": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/i18n": "3.8.0-beta.38", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 183af7f56..9483a8eeb 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/i18n": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/i18n": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 44a5f581c..aee2312fd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 8940dce2f..dfec8f2ae 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index c28a6ce5e..4641de18b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 8d32c6865..a471199f9 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index d0477c987..95f0a16b1 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index a9bba794c..9cdb568bc 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/extension-dicom-pdf": "3.8.0-beta.37", - "@ohif/extension-dicom-video": "3.8.0-beta.37" + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/extension-dicom-pdf": "3.8.0-beta.38", + "@ohif/extension-dicom-video": "3.8.0-beta.38" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index fc904e769..7e8d2936b 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/extension-dicom-pdf": "3.8.0-beta.37", - "@ohif/extension-dicom-video": "3.8.0-beta.37", - "@ohif/extension-measurement-tracking": "3.8.0-beta.37", - "@ohif/extension-test": "3.8.0-beta.37" + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/extension-dicom-pdf": "3.8.0-beta.38", + "@ohif/extension-dicom-video": "3.8.0-beta.38", + "@ohif/extension-measurement-tracking": "3.8.0-beta.38", + "@ohif/extension-test": "3.8.0-beta.38" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index ee9cc9968..061058eb4 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/extension-dicom-pdf": "3.8.0-beta.37", - "@ohif/extension-dicom-video": "3.8.0-beta.37", - "@ohif/extension-measurement-tracking": "3.8.0-beta.37" + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/extension-dicom-pdf": "3.8.0-beta.38", + "@ohif/extension-dicom-video": "3.8.0-beta.38", + "@ohif/extension-measurement-tracking": "3.8.0-beta.38" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index fe03c8a18..837dfd3bd 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.37" + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.38" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 2537464e5..09299db61 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37" + "@ohif/core": "3.8.0-beta.38" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 5f0db9259..6aeeaf9dd 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/extension-dicom-pdf": "3.8.0-beta.37", - "@ohif/extension-dicom-video": "3.8.0-beta.37", - "@ohif/extension-measurement-tracking": "3.8.0-beta.37" + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/extension-dicom-pdf": "3.8.0-beta.38", + "@ohif/extension-dicom-video": "3.8.0-beta.38", + "@ohif/extension-measurement-tracking": "3.8.0-beta.38" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 0a7fd09da..4e722c5a0 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.38", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 3f409f3d5..2d70dd56c 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.37", - "commit": "e8858f3eb55552f695af4a55980f9ae2e9af7291" + "version": "3.8.0-beta.38", + "commit": "98650302c7575f0aea386e32cfc4112c378035e6" } \ No newline at end of file diff --git a/version.txt b/version.txt index 60e052281..3a87cf852 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.37 \ No newline at end of file +3.8.0-beta.38 \ No newline at end of file From 7d5607073d71189384f767725631fed60605c596 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 18:24:06 +0000 Subject: [PATCH 122/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 12 +++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 249 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa2e7faba..738ba0003 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + + +### Bug Fixes + +* convert radian to degree value for mip rotation ([#3881](https://github.com/OHIF/Viewers/issues/3881)) ([bf846c9](https://github.com/OHIF/Viewers/commit/bf846c94c378f04b9f44dcd71be3f056dbcfe0b5)) +* PDF display request in v3 ([#3878](https://github.com/OHIF/Viewers/issues/3878)) ([9865030](https://github.com/OHIF/Viewers/commit/98650302c7575f0aea386e32cfc4112c378035e6)) + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 4c5a27272..372e1ce7f 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 24c335d53..158a99e6f 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 8acc63f61..84e190f97 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4671bf4aa..61b730083 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 71b855e9d..8e328455a 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 4574e5144..b697bbe3f 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 925a76743..f440006e8 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index a2c048b23..517faea31 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 149766ee9..749a45198 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + + +### Bug Fixes + +* PDF display request in v3 ([#3878](https://github.com/OHIF/Viewers/issues/3878)) ([9865030](https://github.com/OHIF/Viewers/commit/98650302c7575f0aea386e32cfc4112c378035e6)) + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 208744e31..1de2ebb28 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 49894f62f..6222fc0cf 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 9483a8eeb..6592d4161 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index aac244efe..a0c6bf407 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index aee2312fd..434122570 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index df7025f97..a15148006 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index dfec8f2ae..2f0c2dccf 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 5fed511eb..17783be64 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 4641de18b..ffa189b33 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/ui": "3.8.0-beta.38", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 9764470b4..0daa05746 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index a471199f9..4a7803191 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 8df119ef0..308d5f81d 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 95f0a16b1..025a395bb 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index d9a91ec42..6d5031db1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 15a011c03..1833d6093 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 9cdb568bc..c69427828 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index d7f1ccd2c..09f4ddd6e 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 7e8d2936b..7b58a9324 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 1b94fcdb3..3e78f40b2 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 061058eb4..66b961e89 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 096ad03d4..8b206ef1b 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 837dfd3bd..fdc20d444 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 0d3d21bb6..44a1fdb9c 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 09299db61..bbf68ce62 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 2695ceb1a..368e66397 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + + +### Bug Fixes + +* convert radian to degree value for mip rotation ([#3881](https://github.com/OHIF/Viewers/issues/3881)) ([bf846c9](https://github.com/OHIF/Viewers/commit/bf846c94c378f04b9f44dcd71be3f056dbcfe0b5)) + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 6aeeaf9dd..e63ef659e 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 8a8656b40..15ecf823c 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + + +### Bug Fixes + +* PDF display request in v3 ([#3878](https://github.com/OHIF/Viewers/issues/3878)) ([9865030](https://github.com/OHIF/Viewers/commit/98650302c7575f0aea386e32cfc4112c378035e6)) + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 7f246d557..5dbbcc272 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.37", - "@ohif/extension-cornerstone": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.37", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.37", - "@ohif/extension-default": "3.8.0-beta.37", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.37", - "@ohif/extension-dicom-pdf": "3.8.0-beta.37", - "@ohif/extension-dicom-video": "3.8.0-beta.37", - "@ohif/extension-test": "3.8.0-beta.37", - "@ohif/i18n": "3.8.0-beta.37", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.37", - "@ohif/mode-longitudinal": "3.8.0-beta.37", - "@ohif/mode-microscopy": "3.8.0-beta.37", - "@ohif/mode-test": "3.8.0-beta.37", - "@ohif/ui": "3.8.0-beta.37", + "@ohif/core": "3.8.0-beta.38", + "@ohif/extension-cornerstone": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.38", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", + "@ohif/extension-default": "3.8.0-beta.38", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.38", + "@ohif/extension-dicom-pdf": "3.8.0-beta.38", + "@ohif/extension-dicom-video": "3.8.0-beta.38", + "@ohif/extension-test": "3.8.0-beta.38", + "@ohif/i18n": "3.8.0-beta.38", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.38", + "@ohif/mode-longitudinal": "3.8.0-beta.38", + "@ohif/mode-microscopy": "3.8.0-beta.38", + "@ohif/mode-test": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.38", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 9f271bd41..1e8f9b56a 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 2473119f9..d2d4ae947 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 10c2effff..8a06b35c4 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + + +### Bug Fixes + +* PDF display request in v3 ([#3878](https://github.com/OHIF/Viewers/issues/3878)) ([9865030](https://github.com/OHIF/Viewers/commit/98650302c7575f0aea386e32cfc4112c378035e6)) + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 4e722c5a0..b31b2ff3b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 597f7774a..0ae80b3a9 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index d667b0355..04d592d64 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 2a9fc6d48..eb801b6b7 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 9cb06456d..d9a2f31ad 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 1203a9205..987fa82b5 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.36...v3.8.0-beta.37) (2024-01-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index bec0e94f6..9cda1eebb 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.37", + "version": "3.8.0-beta.38", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 2049c0936c86f819604c243d3dc7b3fe971b5b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Mon, 8 Jan 2024 15:45:24 -0300 Subject: [PATCH 123/289] feat: improve disableEditing flag (#3875) Co-authored-by: Igor Octaviano --- .../ContextMenuController.tsx | 13 ++++++ .../hydrateStructuredReport.tsx | 4 +- .../PanelMeasurementTableTracking/index.tsx | 32 +++++++------- .../MeasurementTable/MeasurementItem.tsx | 42 ++++++++++++------- .../MeasurementTable/MeasurementTable.tsx | 35 ++++++++++------ 5 files changed, 82 insertions(+), 44 deletions(-) diff --git a/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx b/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx index 9d65b971d..752929063 100644 --- a/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx +++ b/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx @@ -1,6 +1,7 @@ import * as ContextMenuItemsBuilder from './ContextMenuItemsBuilder'; import ContextMenu from '../../../../platform/ui/src/components/ContextMenu/ContextMenu'; import { CommandsManager, ServicesManager, Types } from '@ohif/core'; +import { annotation as CsAnnotation } from '@cornerstonejs/tools'; import { Menu, MenuItem, Point, ContextMenuProps } from './types'; /** @@ -47,6 +48,18 @@ export default class ContextMenuController { const { event, subMenu, menuId, menus, selectorProps } = contextMenuProps; + const annotationManager = CsAnnotation.state.getAnnotationManager(); + const { locking } = CsAnnotation; + const targetAnnotationId = selectorProps?.nearbyToolData?.annotationUID as string; + const isLocked = locking.isAnnotationLocked( + annotationManager.getAnnotation(targetAnnotationId) + ); + + if (isLocked) { + console.warn('Annotation is locked.'); + return; + } + console.log('Getting items from', menus); const items = ContextMenuItemsBuilder.getMenuItems( selectorProps || contextMenuProps, diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/hydrateStructuredReport.tsx b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/hydrateStructuredReport.tsx index 22d04aaf7..480b33310 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/hydrateStructuredReport.tsx +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/hydrateStructuredReport.tsx @@ -1,13 +1,13 @@ import { hydrateStructuredReport as baseHydrateStructuredReport } from '@ohif/extension-cornerstone-dicom-sr'; -function hydrateStructuredReport({ servicesManager, extensionManager }, ctx, evt) { +function hydrateStructuredReport({ servicesManager, extensionManager, appConfig }, ctx, evt) { const { displaySetService } = servicesManager.services; const { viewportId, displaySetInstanceUID } = evt; const srDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID); return new Promise((resolve, reject) => { const hydrationResult = baseHydrateStructuredReport( - { servicesManager, extensionManager }, + { servicesManager, extensionManager, appConfig }, displaySetInstanceUID ); diff --git a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx index 7b0ca7977..3605995c6 100644 --- a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx +++ b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx @@ -10,6 +10,7 @@ import { } from '@ohif/ui'; import { DicomMetadataStore, utils } from '@ohif/core'; import { useDebounce } from '@hooks'; +import { useAppConfig } from '@state'; import ActionButtons from './ActionButtons'; import { useTrackedMeasurements } from '../../getContextModule'; import debounce from 'lodash.debounce'; @@ -36,6 +37,7 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { ); const [displayMeasurements, setDisplayMeasurements] = useState([]); const measurementsPanelRef = useRef(null); + const [appConfig] = useAppConfig(); useEffect(() => { const measurements = measurementService.getMeasurements(); @@ -244,20 +246,22 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { /> )} -
- { - sendTrackedMeasurementsEvent('SAVE_REPORT', { - viewportId: viewportGrid.activeViewportId, - isBackupSave: true, - }); - }} - disabled={ - additionalFindings.length === 0 && displayMeasurementsWithoutFindings.length === 0 - } - /> -
+ {!appConfig?.disableEditing && ( +
+ { + sendTrackedMeasurementsEvent('SAVE_REPORT', { + viewportId: viewportGrid.activeViewportId, + isBackupSave: true, + }); + }} + disabled={ + additionalFindings.length === 0 && displayMeasurementsWithoutFindings.length === 0 + } + /> +
+ )} ); } diff --git a/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx b/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx index d807616a2..7e3bbeb2b 100644 --- a/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx +++ b/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx @@ -4,7 +4,17 @@ import classnames from 'classnames'; import Icon from '../Icon'; -const MeasurementItem = ({ uid, index, label, displayText, isActive, onClick, onEdit, item }) => { +const MeasurementItem = ({ + uid, + index, + label, + displayText, + isActive, + isLocked, + onClick, + onEdit, + item, +}) => { const [isHovering, setIsHovering] = useState(false); const onEditHandler = event => { @@ -49,20 +59,22 @@ const MeasurementItem = ({ uid, index, label, displayText, isActive, onClick, on dangerouslySetInnerHTML={{ __html: line }} > ))} - + {!isLocked && ( + + )} ); diff --git a/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx b/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx index 5316263e8..bc6d23647 100644 --- a/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx +++ b/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { ServicesManager } from '@ohif/core'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; +import { annotation as CsAnnotation } from '@cornerstonejs/tools'; import MeasurementItem from './MeasurementItem'; @@ -16,6 +17,8 @@ const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) => contentProps: {}, }); const CustomMeasurementItem = itemCustomization.content; + const annotationManager = CsAnnotation.state.getAnnotationManager(); + const { locking } = CsAnnotation; return (
@@ -25,19 +28,25 @@ const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) =>
{data.length !== 0 && - data.map((measurementItem, index) => ( - - ))} + data.map((measurementItem, index) => { + const isLocked = locking.isAnnotationLocked( + annotationManager.getAnnotation(measurementItem.uid) + ); + return ( + + ); + })} {data.length === 0 && (
From bf9770a55c966808e061fe64ab7c6aef0d339935 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 18:53:35 +0000 Subject: [PATCH 124/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 76d2ef866..516f0f797 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -98650302c7575f0aea386e32cfc4112c378035e6 \ No newline at end of file +2049c0936c86f819604c243d3dc7b3fe971b5b2c \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 158a99e6f..71c4573b5 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/i18n": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/i18n": "3.8.0-beta.39", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 61b730083..fabe0ae8b 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/i18n": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/i18n": "3.8.0-beta.39", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index b697bbe3f..0bc8e7ab3 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-measurement-tracking": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-measurement-tracking": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 517faea31..75507be7e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 1de2ebb28..b030440a7 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/i18n": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/i18n": "3.8.0-beta.39", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 6592d4161..714025e9c 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/i18n": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/i18n": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 434122570..8b54c7b2a 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 2f0c2dccf..ac06917db 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index ffa189b33..c32928487 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 4a7803191..deae16b09 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 025a395bb..ea270f488 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index c69427828..037aaab2b 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/extension-dicom-pdf": "3.8.0-beta.38", - "@ohif/extension-dicom-video": "3.8.0-beta.38" + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/extension-dicom-pdf": "3.8.0-beta.39", + "@ohif/extension-dicom-video": "3.8.0-beta.39" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 7b58a9324..a59bbd323 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/extension-dicom-pdf": "3.8.0-beta.38", - "@ohif/extension-dicom-video": "3.8.0-beta.38", - "@ohif/extension-measurement-tracking": "3.8.0-beta.38", - "@ohif/extension-test": "3.8.0-beta.38" + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/extension-dicom-pdf": "3.8.0-beta.39", + "@ohif/extension-dicom-video": "3.8.0-beta.39", + "@ohif/extension-measurement-tracking": "3.8.0-beta.39", + "@ohif/extension-test": "3.8.0-beta.39" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 66b961e89..6fec04024 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/extension-dicom-pdf": "3.8.0-beta.38", - "@ohif/extension-dicom-video": "3.8.0-beta.38", - "@ohif/extension-measurement-tracking": "3.8.0-beta.38" + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/extension-dicom-pdf": "3.8.0-beta.39", + "@ohif/extension-dicom-video": "3.8.0-beta.39", + "@ohif/extension-measurement-tracking": "3.8.0-beta.39" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index fdc20d444..d7537a1c5 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.38" + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.39" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index bbf68ce62..e96eb566c 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38" + "@ohif/core": "3.8.0-beta.39" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index e63ef659e..f77f02de1 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/extension-dicom-pdf": "3.8.0-beta.38", - "@ohif/extension-dicom-video": "3.8.0-beta.38", - "@ohif/extension-measurement-tracking": "3.8.0-beta.38" + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/extension-dicom-pdf": "3.8.0-beta.39", + "@ohif/extension-dicom-video": "3.8.0-beta.39", + "@ohif/extension-measurement-tracking": "3.8.0-beta.39" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index b31b2ff3b..597aa5246 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.39", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 2d70dd56c..d86b3c40f 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.38", - "commit": "98650302c7575f0aea386e32cfc4112c378035e6" + "version": "3.8.0-beta.39", + "commit": "2049c0936c86f819604c243d3dc7b3fe971b5b2c" } \ No newline at end of file diff --git a/version.txt b/version.txt index 3a87cf852..c4737d0c8 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.38 \ No newline at end of file +3.8.0-beta.39 \ No newline at end of file From 3d985480720f0973013bb854f36989706f4a6b3b Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 18:53:43 +0000 Subject: [PATCH 125/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 245 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 738ba0003..9de5a3498 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + + +### Features + +* improve disableEditing flag ([#3875](https://github.com/OHIF/Viewers/issues/3875)) ([2049c09](https://github.com/OHIF/Viewers/commit/2049c0936c86f819604c243d3dc7b3fe971b5b2c)) + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 372e1ce7f..24c1d1d3c 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 71c4573b5..d791a3476 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 84e190f97..0d9a279b1 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index fabe0ae8b..a08bbcf12 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 8e328455a..e83b7400c 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 0bc8e7ab3..8db21ff31 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index f440006e8..fb646ff46 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 75507be7e..7e67104ae 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 749a45198..8bdd27711 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + + +### Features + +* improve disableEditing flag ([#3875](https://github.com/OHIF/Viewers/issues/3875)) ([2049c09](https://github.com/OHIF/Viewers/commit/2049c0936c86f819604c243d3dc7b3fe971b5b2c)) + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) diff --git a/extensions/default/package.json b/extensions/default/package.json index b030440a7..a23e61f21 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 6222fc0cf..94e25f01f 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 714025e9c..db87cc9d9 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index a0c6bf407..c89c805e4 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8b54c7b2a..9707457a8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index a15148006..ac9a4be24 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ac06917db..f440b6479 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 17783be64..3449837ea 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + + +### Features + +* improve disableEditing flag ([#3875](https://github.com/OHIF/Viewers/issues/3875)) ([2049c09](https://github.com/OHIF/Viewers/commit/2049c0936c86f819604c243d3dc7b3fe971b5b2c)) + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index c32928487..152519de2 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/ui": "3.8.0-beta.39", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 0daa05746..a8ff32f7e 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index deae16b09..90171024b 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 308d5f81d..d3f1ed38d 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index ea270f488..dba123761 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 6d5031db1..4703018c7 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 1833d6093..2bcaad1bb 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 037aaab2b..796909ddd 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 09f4ddd6e..9509d6a6e 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index a59bbd323..6e21e4c2b 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 3e78f40b2..00642b4ab 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 6fec04024..b822a53cd 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 8b206ef1b..4b6eb882c 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index d7537a1c5..079112647 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 44a1fdb9c..8074c0704 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e96eb566c..3f1e76cc6 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 368e66397..9b1a1c632 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f77f02de1..9c66e8953 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 15ecf823c..8d41bcd52 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) diff --git a/platform/app/package.json b/platform/app/package.json index 5dbbcc272..5bd88757b 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.38", - "@ohif/extension-cornerstone": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.38", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.38", - "@ohif/extension-default": "3.8.0-beta.38", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.38", - "@ohif/extension-dicom-pdf": "3.8.0-beta.38", - "@ohif/extension-dicom-video": "3.8.0-beta.38", - "@ohif/extension-test": "3.8.0-beta.38", - "@ohif/i18n": "3.8.0-beta.38", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.38", - "@ohif/mode-longitudinal": "3.8.0-beta.38", - "@ohif/mode-microscopy": "3.8.0-beta.38", - "@ohif/mode-test": "3.8.0-beta.38", - "@ohif/ui": "3.8.0-beta.38", + "@ohif/core": "3.8.0-beta.39", + "@ohif/extension-cornerstone": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.39", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", + "@ohif/extension-default": "3.8.0-beta.39", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.39", + "@ohif/extension-dicom-pdf": "3.8.0-beta.39", + "@ohif/extension-dicom-video": "3.8.0-beta.39", + "@ohif/extension-test": "3.8.0-beta.39", + "@ohif/i18n": "3.8.0-beta.39", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.39", + "@ohif/mode-longitudinal": "3.8.0-beta.39", + "@ohif/mode-microscopy": "3.8.0-beta.39", + "@ohif/mode-test": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.39", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 1e8f9b56a..da47ff79a 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index d2d4ae947..1b1fb70e3 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 8a06b35c4..01e8a021e 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) diff --git a/platform/core/package.json b/platform/core/package.json index 597aa5246..e5d67d133 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 0ae80b3a9..07ad595dd 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 04d592d64..20393a48a 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index eb801b6b7..a82c286ea 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index d9a2f31ad..4a16ad7e7 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 987fa82b5..211e7b647 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) + + +### Features + +* improve disableEditing flag ([#3875](https://github.com/OHIF/Viewers/issues/3875)) ([2049c09](https://github.com/OHIF/Viewers/commit/2049c0936c86f819604c243d3dc7b3fe971b5b2c)) + + + + + # [3.8.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.37...v3.8.0-beta.38) (2024-01-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 9cda1eebb..e4b71e55b 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.38", + "version": "3.8.0-beta.39", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 61bf22c6f80e764bdf5c3b56bb0124a95aa0f793 Mon Sep 17 00:00:00 2001 From: Sofien-Sellami <73444179+Sofien-Sellami@users.noreply.github.com> Date: Mon, 8 Jan 2024 19:59:20 +0100 Subject: [PATCH 126/289] feat(ui): sidePanel expandedWidth (#3728) --- .../src/Components/SidePanelWithServices.tsx | 5 +- .../ui/src/components/SidePanel/SidePanel.tsx | 97 +++++++++++++------ 2 files changed, 69 insertions(+), 33 deletions(-) diff --git a/extensions/default/src/Components/SidePanelWithServices.tsx b/extensions/default/src/Components/SidePanelWithServices.tsx index 23e9841b0..5e6ba0074 100644 --- a/extensions/default/src/Components/SidePanelWithServices.tsx +++ b/extensions/default/src/Components/SidePanelWithServices.tsx @@ -8,6 +8,7 @@ export type SidePanelWithServicesProps = { className: string; activeTabIndex: number; tabs: any; + expandedWidth?: number; }; const SidePanelWithServices = ({ @@ -16,7 +17,8 @@ const SidePanelWithServices = ({ className, activeTabIndex: activeTabIndexProp, tabs, -}) => { + expandedWidth, +}: SidePanelWithServicesProps) => { const panelService: PanelService = servicesManager?.services?.panelService; // Tracks whether this SidePanel has been opened at least once since this SidePanel was inserted into the DOM. @@ -53,6 +55,7 @@ const SidePanelWithServices = ({ onOpen={() => { setHasBeenOpened(true); }} + expandedWidth={expandedWidth} > ); }; diff --git a/platform/ui/src/components/SidePanel/SidePanel.tsx b/platform/ui/src/components/SidePanel/SidePanel.tsx index 4e25615cc..030c802b4 100644 --- a/platform/ui/src/components/SidePanel/SidePanel.tsx +++ b/platform/ui/src/components/SidePanel/SidePanel.tsx @@ -1,39 +1,26 @@ import classnames from 'classnames'; import PropTypes from 'prop-types'; import React, { CSSProperties, useCallback, useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import Icon from '../Icon'; import Tooltip from '../Tooltip'; +type StyleMap = { + open: { + left: { marginLeft: string }; + right: { marginRight: string }; + }; + closed: { + left: { marginLeft: string }; + right: { marginRight: string }; + }; +}; const borderSize = 4; -const expandedWidth = 248; const collapsedWidth = 25; const closeIconWidth = 30; const gridHorizontalPadding = 10; const tabSpacerWidth = 2; -const gridAvailableWidth = expandedWidth - closeIconWidth - gridHorizontalPadding; - -const baseStyle = { - maxWidth: `${expandedWidth}px`, - width: `${expandedWidth}px`, - // To align the top of the side panel with the top of the viewport grid, use position relative and offset the - // top by the same top offset as the viewport grid. Also adjust the height so that there is no overflow. - position: 'relative', - top: '0.2%', - height: '99.8%', -}; - -const collapsedHideWidth = expandedWidth - collapsedWidth - borderSize; -const styleMap = { - open: { - left: { marginLeft: '0px' }, - right: { marginRight: '0px' }, - }, - closed: { - left: { marginLeft: `-${collapsedHideWidth}px` }, - right: { marginRight: `-${collapsedHideWidth}px` }, - }, -}; const baseClasses = 'transition-all duration-300 ease-in-out bg-black border-black justify-start box-content flex flex-col'; @@ -62,7 +49,7 @@ const getTabWidth = (numTabs: number) => { } }; -const getGridWidth = (numTabs: number) => { +const getGridWidth = (numTabs: number, gridAvailableWidth: number) => { const spacersWidth = (numTabs - 1) * tabSpacerWidth; const tabsWidth = getTabWidth(numTabs) * numTabs; @@ -73,14 +60,13 @@ const getGridWidth = (numTabs: number) => { return gridAvailableWidth; }; -const getNumGridColumns = (numTabs: number) => { +const getNumGridColumns = (numTabs: number, gridWidth: number) => { if (numTabs === 1) { return 1; } // Start by calculating the number of tabs assuming each tab was accompanied by a spacer. const tabWidth = getTabWidth(numTabs); - const gridWidth = getGridWidth(numTabs); const numTabsWithOneSpacerEach = Math.floor(gridWidth / (tabWidth + tabSpacerWidth)); // But there is always one less spacer than tabs, so now check if an extra tab with one less spacer fits. @@ -94,8 +80,12 @@ const getNumGridColumns = (numTabs: number) => { return numTabsWithOneSpacerEach; }; -const getGridStyle = (side: string, numTabs: number = 0): CSSProperties => { - const gridWidth = getGridWidth(numTabs); +const getGridStyle = ( + side: string, + numTabs: number = 0, + gridWidth: number, + expandedWidth: number +): CSSProperties => { const relativePosition = Math.max(0, Math.floor(expandedWidth - gridWidth) / 2 - closeIconWidth); return { position: 'relative', @@ -128,11 +118,53 @@ const getTabIconClassNames = (numTabs: number, isActiveTab: boolean) => { rounded: isActiveTab, }); }; +const createStyleMap = ( + expandedWidth: number, + borderSize: number, + collapsedWidth: number +): StyleMap => { + const collapsedHideWidth = expandedWidth - collapsedWidth - borderSize; + + return { + open: { + left: { marginLeft: '0px' }, + right: { marginRight: '0px' }, + }, + closed: { + left: { marginLeft: `-${collapsedHideWidth}px` }, + right: { marginRight: `-${collapsedHideWidth}px` }, + }, + }; +}; + +const createBaseStyle = (expandedWidth: number) => { + return { + maxWidth: `${expandedWidth}px`, + width: `${expandedWidth}px`, + // To align the top of the side panel with the top of the viewport grid, use position relative and offset the + // top by the same top offset as the viewport grid. Also adjust the height so that there is no overflow. + position: 'relative', + top: '0.2%', + height: '99.8%', + }; +}; +const SidePanel = ({ + side, + className, + activeTabIndex: activeTabIndexProp, + tabs, + onOpen, + expandedWidth = 248, +}) => { + const { t } = useTranslation('SidePanel'); -const SidePanel = ({ side, className, activeTabIndex: activeTabIndexProp, tabs, onOpen }) => { const [panelOpen, setPanelOpen] = useState(activeTabIndexProp !== null); const [activeTabIndex, setActiveTabIndex] = useState(0); + const styleMap = createStyleMap(expandedWidth, borderSize, collapsedWidth); + const baseStyle = createBaseStyle(expandedWidth); + const gridAvailableWidth = expandedWidth - closeIconWidth - gridHorizontalPadding; + const gridWidth = getGridWidth(tabs.length, gridAvailableWidth); const openStatus = panelOpen ? 'open' : 'closed'; const style = Object.assign({}, styleMap[openStatus][side], baseStyle); @@ -238,13 +270,13 @@ const SidePanel = ({ side, className, activeTabIndex: activeTabIndexProp, tabs, }; const getTabGridComponent = () => { - const numCols = getNumGridColumns(tabs.length); + const numCols = getNumGridColumns(tabs.length, gridWidth); return (
{tabs.map((tab, tabIndex) => { return ( @@ -360,6 +392,7 @@ SidePanel.propTypes = { ), ]), onOpen: PropTypes.func, + expandedWidth: PropTypes.number, }; export default SidePanel; From c5bd79552a3e478b978a8e87296713d6891424ee Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 19:07:56 +0000 Subject: [PATCH 127/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 516f0f797..7cfe50690 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -2049c0936c86f819604c243d3dc7b3fe971b5b2c \ No newline at end of file +61bf22c6f80e764bdf5c3b56bb0124a95aa0f793 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index d791a3476..499c5ae70 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/i18n": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/i18n": "3.8.0-beta.40", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a08bbcf12..9cc6ddce2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/i18n": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/i18n": "3.8.0-beta.40", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 8db21ff31..9010bc8f5 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-measurement-tracking": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-measurement-tracking": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 7e67104ae..a07893a70 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index a23e61f21..6bed8585d 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/i18n": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/i18n": "3.8.0-beta.40", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index db87cc9d9..6251a572c 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/i18n": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/i18n": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 9707457a8..07ea70d5e 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index f440b6479..4a51bccf8 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 152519de2..6c5ec1a51 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 90171024b..085a5117b 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index dba123761..ba324a846 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 796909ddd..d87ed8526 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/extension-dicom-pdf": "3.8.0-beta.39", - "@ohif/extension-dicom-video": "3.8.0-beta.39" + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/extension-dicom-pdf": "3.8.0-beta.40", + "@ohif/extension-dicom-video": "3.8.0-beta.40" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 6e21e4c2b..68d3b3afb 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/extension-dicom-pdf": "3.8.0-beta.39", - "@ohif/extension-dicom-video": "3.8.0-beta.39", - "@ohif/extension-measurement-tracking": "3.8.0-beta.39", - "@ohif/extension-test": "3.8.0-beta.39" + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/extension-dicom-pdf": "3.8.0-beta.40", + "@ohif/extension-dicom-video": "3.8.0-beta.40", + "@ohif/extension-measurement-tracking": "3.8.0-beta.40", + "@ohif/extension-test": "3.8.0-beta.40" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index b822a53cd..e5d74adb8 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/extension-dicom-pdf": "3.8.0-beta.39", - "@ohif/extension-dicom-video": "3.8.0-beta.39", - "@ohif/extension-measurement-tracking": "3.8.0-beta.39" + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/extension-dicom-pdf": "3.8.0-beta.40", + "@ohif/extension-dicom-video": "3.8.0-beta.40", + "@ohif/extension-measurement-tracking": "3.8.0-beta.40" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 079112647..8c8ae1592 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.39" + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.40" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 3f1e76cc6..f0bed9b87 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39" + "@ohif/core": "3.8.0-beta.40" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 9c66e8953..63fe80533 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/extension-dicom-pdf": "3.8.0-beta.39", - "@ohif/extension-dicom-video": "3.8.0-beta.39", - "@ohif/extension-measurement-tracking": "3.8.0-beta.39" + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/extension-dicom-pdf": "3.8.0-beta.40", + "@ohif/extension-dicom-video": "3.8.0-beta.40", + "@ohif/extension-measurement-tracking": "3.8.0-beta.40" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index e5d67d133..c1e85d108 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.40", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index d86b3c40f..f602257bd 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.39", - "commit": "2049c0936c86f819604c243d3dc7b3fe971b5b2c" + "version": "3.8.0-beta.40", + "commit": "61bf22c6f80e764bdf5c3b56bb0124a95aa0f793" } \ No newline at end of file diff --git a/version.txt b/version.txt index c4737d0c8..2c1cfb691 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.39 \ No newline at end of file +3.8.0-beta.40 \ No newline at end of file From 5a1cb842f03c590c9d5c44e36f255664291e0d3a Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 19:08:04 +0000 Subject: [PATCH 128/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 242 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9de5a3498..869d0efa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + + +### Features + +* **ui:** sidePanel expandedWidth ([#3728](https://github.com/OHIF/Viewers/issues/3728)) ([61bf22c](https://github.com/OHIF/Viewers/commit/61bf22c6f80e764bdf5c3b56bb0124a95aa0f793)) + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 24c1d1d3c..cb5da2e13 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 499c5ae70..e040169a1 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 0d9a279b1..e8af78d96 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 9cc6ddce2..b02a1f8ba 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index e83b7400c..f7a3f7ba6 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9010bc8f5..9957a48fd 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index fb646ff46..bd20f6cfc 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index a07893a70..f228dd57c 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 8bdd27711..a25c41d56 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + + +### Features + +* **ui:** sidePanel expandedWidth ([#3728](https://github.com/OHIF/Viewers/issues/3728)) ([61bf22c](https://github.com/OHIF/Viewers/commit/61bf22c6f80e764bdf5c3b56bb0124a95aa0f793)) + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) diff --git a/extensions/default/package.json b/extensions/default/package.json index 6bed8585d..11fba8768 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 94e25f01f..7a4f3dd0a 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 6251a572c..d16df5eab 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index c89c805e4..dc8a90bb5 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 07ea70d5e..40c1018ef 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index ac9a4be24..05448bd13 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 4a51bccf8..3337ffc3d 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 3449837ea..18438fb9d 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6c5ec1a51..2d247d9bc 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/ui": "3.8.0-beta.40", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index a8ff32f7e..5cf4aa413 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 085a5117b..4be06ce22 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index d3f1ed38d..014428483 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index ba324a846..0e194c744 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 4703018c7..33a5f3720 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 2bcaad1bb..0b587d4d0 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d87ed8526..e5f99c63c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 9509d6a6e..314f95310 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 68d3b3afb..5b7d89d5d 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 00642b4ab..d36b5bc5a 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e5d74adb8..8b491b1d3 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 4b6eb882c..e3f0ad4d4 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 8c8ae1592..166d67973 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 8074c0704..88f7f8328 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index f0bed9b87..d0ad93f69 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 9b1a1c632..8ccc10305 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 63fe80533..c56ee88a5 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 8d41bcd52..ad71f5283 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 5bd88757b..dc0f1e7fa 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.39", - "@ohif/extension-cornerstone": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.39", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.39", - "@ohif/extension-default": "3.8.0-beta.39", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.39", - "@ohif/extension-dicom-pdf": "3.8.0-beta.39", - "@ohif/extension-dicom-video": "3.8.0-beta.39", - "@ohif/extension-test": "3.8.0-beta.39", - "@ohif/i18n": "3.8.0-beta.39", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.39", - "@ohif/mode-longitudinal": "3.8.0-beta.39", - "@ohif/mode-microscopy": "3.8.0-beta.39", - "@ohif/mode-test": "3.8.0-beta.39", - "@ohif/ui": "3.8.0-beta.39", + "@ohif/core": "3.8.0-beta.40", + "@ohif/extension-cornerstone": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.40", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", + "@ohif/extension-default": "3.8.0-beta.40", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.40", + "@ohif/extension-dicom-pdf": "3.8.0-beta.40", + "@ohif/extension-dicom-video": "3.8.0-beta.40", + "@ohif/extension-test": "3.8.0-beta.40", + "@ohif/i18n": "3.8.0-beta.40", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.40", + "@ohif/mode-longitudinal": "3.8.0-beta.40", + "@ohif/mode-microscopy": "3.8.0-beta.40", + "@ohif/mode-test": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.40", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index da47ff79a..8f47e8003 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 1b1fb70e3..13cd7179f 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 01e8a021e..cebd090d9 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index c1e85d108..7be2b7dbd 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 07ad595dd..cdd8a0761 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 20393a48a..5d5952aed 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a82c286ea..76a60da21 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 4a16ad7e7..2a26a3557 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 211e7b647..79b0e1724 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) + + +### Features + +* **ui:** sidePanel expandedWidth ([#3728](https://github.com/OHIF/Viewers/issues/3728)) ([61bf22c](https://github.com/OHIF/Viewers/commit/61bf22c6f80e764bdf5c3b56bb0124a95aa0f793)) + + + + + # [3.8.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.38...v3.8.0-beta.39) (2024-01-08) diff --git a/platform/ui/package.json b/platform/ui/package.json index e4b71e55b..dbc02d193 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.39", + "version": "3.8.0-beta.40", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From f58725ce40685f7297181ef98d81bc28420c8291 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Mon, 8 Jan 2024 16:12:26 -0300 Subject: [PATCH 129/289] feat: Add on mode init hook (#3882) --- platform/app/src/routes/Mode/Mode.tsx | 10 ++++++++++ platform/docs/docs/platform/modes/lifecycle.md | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index 000a28fed..cb53db00c 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -124,6 +124,15 @@ export default function ModeRoute({ const params = useParams(); // The URL's query search parameters where the keys casing is maintained const query = useSearchParams(); + + mode?.onModeInit?.({ + servicesManager, + extensionManager, + commandsManager, + appConfig, + query, + }); + // The URL's query search parameters where the keys are all lower case. const lowerCaseSearchParams = useSearchParams({ lowerCaseKeys: true }); @@ -341,6 +350,7 @@ export default function ModeRoute({ servicesManager, extensionManager, commandsManager, + appConfig, }); /** diff --git a/platform/docs/docs/platform/modes/lifecycle.md b/platform/docs/docs/platform/modes/lifecycle.md index 92edeed5d..587fe1bbd 100644 --- a/platform/docs/docs/platform/modes/lifecycle.md +++ b/platform/docs/docs/platform/modes/lifecycle.md @@ -9,9 +9,18 @@ sidebar_label: Lifecycle Hooks Currently, there are two hooks that are called for modes: +- onModeInit - onModeEnter - onModeExit +## onModeInit + +This hook gets run before the defined route has been entered by the mode. This +hook can be used for initialization before the first render. + +This is called before `onModeEnter` calls. This allows modes to add or activate their own +data sources and configuration before entering the mode (pre registrations). + ## onModeEnter This hook gets run after the defined route has been entered by the mode. This From 4c29670d769146786361db843c71410b66028919 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 19:21:04 +0000 Subject: [PATCH 130/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 7cfe50690..144962727 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -61bf22c6f80e764bdf5c3b56bb0124a95aa0f793 \ No newline at end of file +f58725ce40685f7297181ef98d81bc28420c8291 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e040169a1..0c1adc3dc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/i18n": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/i18n": "3.8.0-beta.41", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b02a1f8ba..ddbe0cf65 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/i18n": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/i18n": "3.8.0-beta.41", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9957a48fd..ed690cac6 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-measurement-tracking": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-measurement-tracking": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index f228dd57c..3360dab3b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 11fba8768..ce510204f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/i18n": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/i18n": "3.8.0-beta.41", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index d16df5eab..fa2968780 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/i18n": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/i18n": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 40c1018ef..692d291e2 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 3337ffc3d..1d4e51ec9 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 2d247d9bc..f3c3e0a06 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 4be06ce22..7fb71f90e 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0e194c744..520fa4c33 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index e5f99c63c..0966ab0e6 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/extension-dicom-pdf": "3.8.0-beta.40", - "@ohif/extension-dicom-video": "3.8.0-beta.40" + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/extension-dicom-pdf": "3.8.0-beta.41", + "@ohif/extension-dicom-video": "3.8.0-beta.41" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5b7d89d5d..777df682a 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/extension-dicom-pdf": "3.8.0-beta.40", - "@ohif/extension-dicom-video": "3.8.0-beta.40", - "@ohif/extension-measurement-tracking": "3.8.0-beta.40", - "@ohif/extension-test": "3.8.0-beta.40" + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/extension-dicom-pdf": "3.8.0-beta.41", + "@ohif/extension-dicom-video": "3.8.0-beta.41", + "@ohif/extension-measurement-tracking": "3.8.0-beta.41", + "@ohif/extension-test": "3.8.0-beta.41" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 8b491b1d3..00c5ad7cc 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/extension-dicom-pdf": "3.8.0-beta.40", - "@ohif/extension-dicom-video": "3.8.0-beta.40", - "@ohif/extension-measurement-tracking": "3.8.0-beta.40" + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/extension-dicom-pdf": "3.8.0-beta.41", + "@ohif/extension-dicom-video": "3.8.0-beta.41", + "@ohif/extension-measurement-tracking": "3.8.0-beta.41" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 166d67973..f91669bea 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.40" + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.41" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d0ad93f69..53f8f7004 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40" + "@ohif/core": "3.8.0-beta.41" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index c56ee88a5..cdde23435 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/extension-dicom-pdf": "3.8.0-beta.40", - "@ohif/extension-dicom-video": "3.8.0-beta.40", - "@ohif/extension-measurement-tracking": "3.8.0-beta.40" + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/extension-dicom-pdf": "3.8.0-beta.41", + "@ohif/extension-dicom-video": "3.8.0-beta.41", + "@ohif/extension-measurement-tracking": "3.8.0-beta.41" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 7be2b7dbd..b3c29527b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.41", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index f602257bd..4f0e07935 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.40", - "commit": "61bf22c6f80e764bdf5c3b56bb0124a95aa0f793" + "version": "3.8.0-beta.41", + "commit": "f58725ce40685f7297181ef98d81bc28420c8291" } \ No newline at end of file diff --git a/version.txt b/version.txt index 2c1cfb691..28a5a3d06 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.40 \ No newline at end of file +3.8.0-beta.41 \ No newline at end of file From fd809e4a0b53ba43dd69457952431409ae7ffe0c Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 19:21:13 +0000 Subject: [PATCH 131/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 242 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 869d0efa1..71cde5564 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + + +### Features + +* Add on mode init hook ([#3882](https://github.com/OHIF/Viewers/issues/3882)) ([f58725c](https://github.com/OHIF/Viewers/commit/f58725ce40685f7297181ef98d81bc28420c8291)) + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index cb5da2e13..e9e3a7258 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 0c1adc3dc..4fcc1d266 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index e8af78d96..af08d447b 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ddbe0cf65..c0f1ffd86 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index f7a3f7ba6..cd71054e3 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ed690cac6..ff8a5dd95 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index bd20f6cfc..2de4fdcfe 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 3360dab3b..7cecea378 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index a25c41d56..ef7c3b978 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) diff --git a/extensions/default/package.json b/extensions/default/package.json index ce510204f..c87728507 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 7a4f3dd0a..c4dc032c0 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index fa2968780..3f96cd370 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index dc8a90bb5..145c1f17b 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 692d291e2..992a0e0bb 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 05448bd13..8ec5c61d1 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 1d4e51ec9..100a38799 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 18438fb9d..a4d4090e5 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f3c3e0a06..220c3d67b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/ui": "3.8.0-beta.41", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 5cf4aa413..7511c0b90 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 7fb71f90e..9cf4af389 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 014428483..0add1c60e 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 520fa4c33..322e74751 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 33a5f3720..1b313b8ca 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 0b587d4d0..a02cc784b 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 0966ab0e6..f936255ee 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 314f95310..ca8fe6249 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 777df682a..2f14622c1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index d36b5bc5a..c30f05b9c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 00c5ad7cc..605a1db45 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index e3f0ad4d4..f36c225d7 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index f91669bea..98b0afddd 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 88f7f8328..c1bf93515 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 53f8f7004..c26a44935 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 8ccc10305..acd91f6b4 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index cdde23435..613414033 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index ad71f5283..51e72fd33 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + + +### Features + +* Add on mode init hook ([#3882](https://github.com/OHIF/Viewers/issues/3882)) ([f58725c](https://github.com/OHIF/Viewers/commit/f58725ce40685f7297181ef98d81bc28420c8291)) + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index dc0f1e7fa..9f81ad0e5 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.40", - "@ohif/extension-cornerstone": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.40", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.40", - "@ohif/extension-default": "3.8.0-beta.40", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.40", - "@ohif/extension-dicom-pdf": "3.8.0-beta.40", - "@ohif/extension-dicom-video": "3.8.0-beta.40", - "@ohif/extension-test": "3.8.0-beta.40", - "@ohif/i18n": "3.8.0-beta.40", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.40", - "@ohif/mode-longitudinal": "3.8.0-beta.40", - "@ohif/mode-microscopy": "3.8.0-beta.40", - "@ohif/mode-test": "3.8.0-beta.40", - "@ohif/ui": "3.8.0-beta.40", + "@ohif/core": "3.8.0-beta.41", + "@ohif/extension-cornerstone": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.41", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", + "@ohif/extension-default": "3.8.0-beta.41", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.41", + "@ohif/extension-dicom-pdf": "3.8.0-beta.41", + "@ohif/extension-dicom-video": "3.8.0-beta.41", + "@ohif/extension-test": "3.8.0-beta.41", + "@ohif/i18n": "3.8.0-beta.41", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.41", + "@ohif/mode-longitudinal": "3.8.0-beta.41", + "@ohif/mode-microscopy": "3.8.0-beta.41", + "@ohif/mode-test": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.41", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8f47e8003..a65f4d1af 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 13cd7179f..4cf7314bf 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index cebd090d9..f6248ebea 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index b3c29527b..f5aa3a7fe 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index cdd8a0761..864068b71 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + + +### Features + +* Add on mode init hook ([#3882](https://github.com/OHIF/Viewers/issues/3882)) ([f58725c](https://github.com/OHIF/Viewers/commit/f58725ce40685f7297181ef98d81bc28420c8291)) + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 5d5952aed..15a31db31 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 76a60da21..07492474f 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 2a26a3557..781a08518 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 79b0e1724..d3b7eb50e 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.39...v3.8.0-beta.40) (2024-01-08) diff --git a/platform/ui/package.json b/platform/ui/package.json index dbc02d193..956348ae6 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.40", + "version": "3.8.0-beta.41", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From d181eb4fdc064ef5c5fada42abb6d9a362284b01 Mon Sep 17 00:00:00 2001 From: AbishekBista9 <133620692+AbishekBista9@users.noreply.github.com> Date: Tue, 9 Jan 2024 01:09:42 +0545 Subject: [PATCH 132/289] docs: Update user-account-control.md (#3877) --- platform/docs/docs/deployment/user-account-control.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/docs/docs/deployment/user-account-control.md b/platform/docs/docs/deployment/user-account-control.md index d67708df1..5447ce282 100644 --- a/platform/docs/docs/deployment/user-account-control.md +++ b/platform/docs/docs/deployment/user-account-control.md @@ -63,7 +63,7 @@ in command prompt or terminal_ _Spin Things Up_ -- Navigate to `/docker/OpenResty-Orthanc-Keycloak` in your shell +- Navigate to `platform\app\.recipes\OpenResty-Orthanc-Keycloak` in your shell - Run `docker-compose up` _Create Your First User_ From 6878c1a2648b5f76b419293a29dfd51749b36788 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 19:34:49 +0000 Subject: [PATCH 133/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 144962727..bad9a9a36 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -f58725ce40685f7297181ef98d81bc28420c8291 \ No newline at end of file +d181eb4fdc064ef5c5fada42abb6d9a362284b01 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 4fcc1d266..a8b2d16fc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/i18n": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/i18n": "3.8.0-beta.42", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index c0f1ffd86..4a91b946b 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/i18n": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/i18n": "3.8.0-beta.42", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ff8a5dd95..3dd6a2a6a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-measurement-tracking": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-measurement-tracking": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 7cecea378..692d938f9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index c87728507..c7db3354c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/i18n": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/i18n": "3.8.0-beta.42", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 3f96cd370..9827ffc0a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/i18n": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/i18n": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 992a0e0bb..b69339ccd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 100a38799..474d5a895 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 220c3d67b..f951ac0d9 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.40.3", "@cornerstonejs/tools": "^1.40.3", - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 9cf4af389..93956912f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 322e74751..2170fc324 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index f936255ee..f46be578b 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/extension-dicom-pdf": "3.8.0-beta.41", - "@ohif/extension-dicom-video": "3.8.0-beta.41" + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/extension-dicom-pdf": "3.8.0-beta.42", + "@ohif/extension-dicom-video": "3.8.0-beta.42" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 2f14622c1..3052d5ffe 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/extension-dicom-pdf": "3.8.0-beta.41", - "@ohif/extension-dicom-video": "3.8.0-beta.41", - "@ohif/extension-measurement-tracking": "3.8.0-beta.41", - "@ohif/extension-test": "3.8.0-beta.41" + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/extension-dicom-pdf": "3.8.0-beta.42", + "@ohif/extension-dicom-video": "3.8.0-beta.42", + "@ohif/extension-measurement-tracking": "3.8.0-beta.42", + "@ohif/extension-test": "3.8.0-beta.42" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 605a1db45..bd26ef677 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/extension-dicom-pdf": "3.8.0-beta.41", - "@ohif/extension-dicom-video": "3.8.0-beta.41", - "@ohif/extension-measurement-tracking": "3.8.0-beta.41" + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/extension-dicom-pdf": "3.8.0-beta.42", + "@ohif/extension-dicom-video": "3.8.0-beta.42", + "@ohif/extension-measurement-tracking": "3.8.0-beta.42" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 98b0afddd..9c8115f80 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.41" + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.42" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index c26a44935..eccb38ebf 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41" + "@ohif/core": "3.8.0-beta.42" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 613414033..2ab668cee 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/extension-dicom-pdf": "3.8.0-beta.41", - "@ohif/extension-dicom-video": "3.8.0-beta.41", - "@ohif/extension-measurement-tracking": "3.8.0-beta.41" + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/extension-dicom-pdf": "3.8.0-beta.42", + "@ohif/extension-dicom-video": "3.8.0-beta.42", + "@ohif/extension-measurement-tracking": "3.8.0-beta.42" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index f5aa3a7fe..45da43043 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.42", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 4f0e07935..e56854dd8 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.41", - "commit": "f58725ce40685f7297181ef98d81bc28420c8291" + "version": "3.8.0-beta.42", + "commit": "d181eb4fdc064ef5c5fada42abb6d9a362284b01" } \ No newline at end of file diff --git a/version.txt b/version.txt index 28a5a3d06..17f964040 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.41 \ No newline at end of file +3.8.0-beta.42 \ No newline at end of file From a8a0bdb2df8ad91ca403b220b295f57dafb05e9c Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Jan 2024 19:34:59 +0000 Subject: [PATCH 134/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71cde5564..c538b40b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index e9e3a7258..e7bb0fc6b 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a8b2d16fc..a26ab8221 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index af08d447b..7e5edf1eb 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4a91b946b..ba9ae5afe 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index cd71054e3..e011ca0e8 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3dd6a2a6a..8fcf38ea0 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 2de4fdcfe..abfd9f9ec 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 692d938f9..febb6224d 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index ef7c3b978..13fdbdbd0 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index c7db3354c..65868e06d 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index c4dc032c0..ba7b9f6e8 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 9827ffc0a..508840058 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 145c1f17b..971337ecc 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index b69339ccd..756e3f66b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 8ec5c61d1..f7dcd1096 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 474d5a895..8e896fca1 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index a4d4090e5..aa3a70f74 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f951ac0d9..582067a8d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/ui": "3.8.0-beta.42", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 7511c0b90..08349a2c4 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 93956912f..03d923209 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 0add1c60e..6d4623b06 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2170fc324..b4d7e0516 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 1b313b8ca..edc3d3027 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index a02cc784b..37e72b4c6 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index f46be578b..2dd6f9f5a 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index ca8fe6249..5802726f3 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 3052d5ffe..f129149d6 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index c30f05b9c..3d80c0d0c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index bd26ef677..dc729446d 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index f36c225d7..b6743cddc 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 9c8115f80..9b76a44ec 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index c1bf93515..3cd2af373 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index eccb38ebf..f51ac892b 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index acd91f6b4..369fffb3e 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 2ab668cee..86df37b1d 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 51e72fd33..8f5927814 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) diff --git a/platform/app/package.json b/platform/app/package.json index 9f81ad0e5..314e9e285 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.40.3", - "@ohif/core": "3.8.0-beta.41", - "@ohif/extension-cornerstone": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.41", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.41", - "@ohif/extension-default": "3.8.0-beta.41", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.41", - "@ohif/extension-dicom-pdf": "3.8.0-beta.41", - "@ohif/extension-dicom-video": "3.8.0-beta.41", - "@ohif/extension-test": "3.8.0-beta.41", - "@ohif/i18n": "3.8.0-beta.41", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.41", - "@ohif/mode-longitudinal": "3.8.0-beta.41", - "@ohif/mode-microscopy": "3.8.0-beta.41", - "@ohif/mode-test": "3.8.0-beta.41", - "@ohif/ui": "3.8.0-beta.41", + "@ohif/core": "3.8.0-beta.42", + "@ohif/extension-cornerstone": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.42", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", + "@ohif/extension-default": "3.8.0-beta.42", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.42", + "@ohif/extension-dicom-pdf": "3.8.0-beta.42", + "@ohif/extension-dicom-video": "3.8.0-beta.42", + "@ohif/extension-test": "3.8.0-beta.42", + "@ohif/i18n": "3.8.0-beta.42", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.42", + "@ohif/mode-longitudinal": "3.8.0-beta.42", + "@ohif/mode-microscopy": "3.8.0-beta.42", + "@ohif/mode-test": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.42", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index a65f4d1af..cdcf5000c 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 4cf7314bf..861022f1d 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index f6248ebea..8f2439536 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 45da43043..6c6962c46 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 864068b71..e8f636e26 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) diff --git a/platform/docs/package.json b/platform/docs/package.json index 15a31db31..b7f9e9ed4 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 07492474f..4ef19dff8 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 781a08518..8b9415303 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index d3b7eb50e..98b09022a 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.40...v3.8.0-beta.41) (2024-01-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 956348ae6..b9c27ac95 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.41", + "version": "3.8.0-beta.42", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From b1efe40aa146e4052cc47b3f774cabbb47a8d1a6 Mon Sep 17 00:00:00 2001 From: Alireza Date: Tue, 9 Jan 2024 10:15:56 -0500 Subject: [PATCH 135/289] fix(segmentation): upgrade cs3d to fix various segmentation bugs (#3885) --- .../viewports/OHIFCornerstoneRTViewport.tsx | 2 + extensions/cornerstone-dicom-seg/package.json | 6 +- .../src/getSopClassHandlerModule.js | 9 ++ .../src/panels/PanelSegmentation.tsx | 2 +- .../src/panels/SegmentationToolbox.tsx | 30 +++- .../viewports/OHIFCornerstoneSEGViewport.tsx | 8 -- extensions/cornerstone-dicom-sr/package.json | 6 +- extensions/cornerstone/package.json | 12 +- extensions/cornerstone/src/init.tsx | 6 +- .../SegmentationService.ts | 40 ------ .../src/services/ViewportService/Viewport.ts | 8 +- .../cornerstone/src/types/Presentation.ts | 4 +- extensions/measurement-tracking/package.json | 4 +- modes/segmentation/src/initToolGroups.ts | 88 +++++++----- package.json | 2 +- .../OHIFCornerstoneToolbar.spec.js | 2 +- platform/app/package.json | 2 +- platform/app/src/components/ViewportGrid.tsx | 18 +-- platform/core/package.json | 2 +- .../src/services/ViewportGridService/index.ts | 2 + platform/core/src/types/index.ts | 2 + platform/docs/docusaurus.config.js | 20 ++- platform/docs/package.json | 3 +- .../AdvancedToolbox/ToolSettings.tsx | 2 +- platform/ui/src/types/index.ts | 1 - yarn.lock | 131 +++++++++++++----- 26 files changed, 241 insertions(+), 171 deletions(-) diff --git a/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx b/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx index e9c7450c6..e0e12ca57 100644 --- a/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx +++ b/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx @@ -168,6 +168,8 @@ function OHIFCornerstoneRTViewport(props) { }, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]); useEffect(() => { + // I'm not sure what is this, since in RT we support Overlapping segmnets + // via contours const { unsubscribe } = segmentationService.subscribe( segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE, evt => { diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ba9ae5afe..80091f016 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -44,9 +44,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.40.3", - "@cornerstonejs/tools": "^1.40.3", - "@kitware/vtk.js": "27.3.1", + "@cornerstonejs/adapters": "^1.43.7", + "@cornerstonejs/tools": "^1.43.7", + "@kitware/vtk.js": "29.3.0", "react-color": "^2.19.3" } } diff --git a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js index 68a6b15bd..d150201e0 100644 --- a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js +++ b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js @@ -189,6 +189,15 @@ async function _loadSegments({ extensionManager, servicesManager, segDisplaySet, } }); + if (results.overlappingSegments) { + uiNotificationService.show({ + title: 'Overlapping Segments', + message: + 'Unsupported overlapping segments detected, segmentation rendering results may be incorrect.', + type: 'warning', + }); + } + if (!usedRecommendedDisplayCIELabValue) { // Display a notification about the non-utilization of RecommendedDisplayCIELabValue uiNotificationService.show({ diff --git a/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx b/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx index 381fa7cc5..ea1ab1de6 100644 --- a/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx +++ b/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx @@ -1,7 +1,7 @@ import { createReportAsync } from '@ohif/extension-default'; import React, { useEffect, useState, useCallback } from 'react'; import PropTypes from 'prop-types'; -import { SegmentationGroupTable, LegacyButtonGroup, LegacyButton } from '@ohif/ui'; +import { SegmentationGroupTable } from '@ohif/ui'; import callInputDialog from './callInputDialog'; import callColorPickerDialog from './colorPickerDialog'; diff --git a/extensions/cornerstone-dicom-seg/src/panels/SegmentationToolbox.tsx b/extensions/cornerstone-dicom-seg/src/panels/SegmentationToolbox.tsx index f2d580cff..868a5279f 100644 --- a/extensions/cornerstone-dicom-seg/src/panels/SegmentationToolbox.tsx +++ b/extensions/cornerstone-dicom-seg/src/panels/SegmentationToolbox.tsx @@ -37,7 +37,7 @@ const initialState = { }, ThresholdBrush: { brushSize: 15, - thresholdRange: [-500, 500], + thresholdRange: null, }, activeTool: null, }; @@ -88,6 +88,8 @@ function SegmentationToolbox({ servicesManager, extensionManager }) { const setToolActive = useCallback( toolName => { + initializeThresholdValue(toolName); + toolbarService.recordInteraction({ interactionType: 'tool', commands: [ @@ -178,6 +180,24 @@ function SegmentationToolbox({ servicesManager, extensionManager }) { [toolGroupService] ); + function initializeThresholdValue(toolName: any) { + if (state.ThresholdBrush.thresholdRange === null) { + // set the default threshold range from the tool configuration + const toolGroupIds = toolGroupService.getToolGroupIds(); + const toolGroupId = toolGroupIds[0]; + const toolGroup = toolGroupService.getToolGroup(toolGroupId); + const toolConfig = toolGroup.getToolConfiguration(toolName); + const defaultThresholdRange = toolConfig?.strategySpecificConfiguration?.THRESHOLD?.threshold; + dispatch({ + type: ACTIONS.SET_TOOL_CONFIG, + payload: { + tool: 'ThresholdBrush', + config: { thresholdRange: defaultThresholdRange }, + }, + }); + } + } + const onBrushSizeChange = useCallback( (valueAsStringOrNumber, toolCategory) => { const value = Number(valueAsStringOrNumber); @@ -200,8 +220,8 @@ function SegmentationToolbox({ servicesManager, extensionManager }) { const handleRangeChange = useCallback( newRange => { if ( - newRange[0] === state.ThresholdBrush.thresholdRange[0] && - newRange[1] === state.ThresholdBrush.thresholdRange[1] + newRange[0] === state.ThresholdBrush.thresholdRange?.[0] && + newRange[1] === state.ThresholdBrush.thresholdRange?.[1] ) { return; } @@ -213,7 +233,7 @@ function SegmentationToolbox({ servicesManager, extensionManager }) { const toolGroup = toolGroupService.getToolGroup(toolGroupId); toolGroup.setToolConfiguration(toolName, { strategySpecificConfiguration: { - THRESHOLD_INSIDE_CIRCLE: { + THRESHOLD: { threshold: newRange, }, }, @@ -365,7 +385,7 @@ function SegmentationToolbox({ servicesManager, extensionManager }) { { - const handler = errorHandler.getHTTPErrorHandler() + const handler = errorHandler.getHTTPErrorHandler(); handler(detail.error); }; @@ -290,7 +290,7 @@ export default async function init({ }); eventTarget.addEventListener(EVENTS.IMAGE_LOAD_FAILED, imageLoadFailedHandler); eventTarget.addEventListener(EVENTS.IMAGE_LOAD_ERROR, imageLoadFailedHandler); - + function elementEnabledHandler(evt) { const { element } = evt.detail; diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts index 6c48d5dfb..f71dbff5d 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts @@ -1,5 +1,3 @@ -import cloneDeep from 'lodash.clonedeep'; - import { Types as OhifTypes, ServicesManager, PubSubService } from '@ohif/core'; import { cache, @@ -11,7 +9,6 @@ import { volumeLoader, } from '@cornerstonejs/core'; import { - CONSTANTS as cstConstants, Enums as csToolsEnums, segmentation as cstSegmentation, Types as cstTypes, @@ -23,7 +20,6 @@ import { easeInOutBell, reverseEaseInOutBell } from '../../utils/transitions'; import { Segment, Segmentation, SegmentationConfig } from './SegmentationServiceTypes'; import { mapROIContoursToRTStructData } from './RTSTRUCT/mapROIContoursToRTStructData'; -const { COLOR_LUT } = cstConstants; const LABELMAP = csToolsEnums.SegmentationRepresentations.Labelmap; const CONTOUR = csToolsEnums.SegmentationRepresentations.Contour; @@ -465,15 +461,6 @@ class SegmentationService extends PubSubService { }, ]); - // if first segmentation, we can use the default colorLUT, otherwise - // we need to generate a new one and use a new colorLUT - const colorLUTIndex = 0; - if (Object.keys(this.segmentations).length !== 0) { - const newColorLUT = this.generateNewColorLUT(); - const colorLUTIndex = this.getNextColorLUTIndex(); - cstSegmentation.config.color.addColorLUT(newColorLUT, colorLUTIndex); - } - this.segmentations[segmentationId] = { ...segmentation, label: segmentation.label || '', @@ -482,7 +469,6 @@ class SegmentationService extends PubSubService { segmentCount: segmentation.segmentCount ?? 0, isActive: false, isVisible: true, - colorLUTIndex, }; cachedSegmentation = this.segmentations[segmentationId]; @@ -1037,8 +1023,6 @@ class SegmentationService extends PubSubService { segmentation.hydrated = true; } - const { colorLUTIndex } = segmentation; - // Based on the segmentationId, set the colorLUTIndex. const segmentationRepresentationUIDs = await cstSegmentation.addSegmentationRepresentations( toolGroupId, @@ -1057,12 +1041,6 @@ class SegmentationService extends PubSubService { segmentationRepresentationUIDs[0] ); - cstSegmentation.config.color.setColorLUT( - toolGroupId, - segmentationRepresentationUIDs[0], - colorLUTIndex - ); - // add the segmentation segments properly for (const segment of segmentation.segments) { if (segment === null || segment === undefined) { @@ -1530,7 +1508,6 @@ class SegmentationService extends PubSubService { segments: [], isVisible: true, isActive: false, - colorLUTIndex: 0, }; } @@ -2124,23 +2101,6 @@ class SegmentationService extends PubSubService { return viewportInfo.getToolGroupId(); }; - private getNextColorLUTIndex = (): number => { - let i = 0; - while (true) { - if (cstSegmentation.state.getColorLUT(i) === undefined) { - return i; - } - - i++; - } - }; - - private generateNewColorLUT() { - const newColorLUT = cloneDeep(COLOR_LUT); - - return newColorLUT; - } - /** * Converts object of objects to array. * diff --git a/extensions/cornerstone/src/services/ViewportService/Viewport.ts b/extensions/cornerstone/src/services/ViewportService/Viewport.ts index 26063a9b1..f0e417090 100644 --- a/extensions/cornerstone/src/services/ViewportService/Viewport.ts +++ b/extensions/cornerstone/src/services/ViewportService/Viewport.ts @@ -1,5 +1,5 @@ import { Types, Enums } from '@cornerstonejs/core'; -import { Types as UITypes } from '@ohif/ui'; +import { Types as CoreTypes } from '@ohif/core'; import { StackViewportData, VolumeViewportData } from '../../types/CornerstoneCacheService'; import getCornerstoneBlendMode from '../../utils/getCornerstoneBlendMode'; import getCornerstoneOrientation from '../../utils/getCornerstoneOrientation'; @@ -18,7 +18,7 @@ export type ViewportOptions = { toolGroupId: string; viewportId: string; // Presentation ID to store/load presentation state from - presentationIds?: UITypes.PresentationIds; + presentationIds?: CoreTypes.PresentationIds; orientation?: Enums.OrientationAxis; background?: Types.Point3; displayArea?: Types.DisplayArea; @@ -36,7 +36,7 @@ export type PublicViewportOptions = { id?: string; viewportType?: string; toolGroupId?: string; - presentationIds?: UITypes.PresentationIds; + presentationIds?: CoreTypes.PresentationIds; viewportId?: string; orientation?: Enums.OrientationAxis; background?: Types.Point3; @@ -71,7 +71,7 @@ export type DisplaySetOptions = { voiInverted: boolean; blendMode?: Enums.BlendModes; slabThickness?: number; - colormap?: { name: string, opacity?: number }; + colormap?: { name: string; opacity?: number }; displayPreset?: string; }; diff --git a/extensions/cornerstone/src/types/Presentation.ts b/extensions/cornerstone/src/types/Presentation.ts index 82f13f745..f8711b686 100644 --- a/extensions/cornerstone/src/types/Presentation.ts +++ b/extensions/cornerstone/src/types/Presentation.ts @@ -1,12 +1,12 @@ /** Store presentation data for either stack viewports or volume viewports */ import { Types } from '@cornerstonejs/core'; -import { Types as UITypes } from '@ohif/ui'; +import { Types as CoreTypes } from '@ohif/core'; /** * Has information on the presentation of the viewport. */ export interface Presentation extends Types.StackViewportProperties { - presentationIds: UITypes.PresentationIds; + presentationIds: CoreTypes.PresentationIds; viewportType: string; initialImageIndex: number; camera: Types.ICamera; diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 582067a8d..3f5bbb629 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.40.3", - "@cornerstonejs/tools": "^1.40.3", + "@cornerstonejs/core": "^1.43.7", + "@cornerstonejs/tools": "^1.43.7", "@ohif/core": "3.8.0-beta.42", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", "@ohif/ui": "3.8.0-beta.42", diff --git a/modes/segmentation/src/initToolGroups.ts b/modes/segmentation/src/initToolGroups.ts index 58204839e..e549f7a89 100644 --- a/modes/segmentation/src/initToolGroups.ts +++ b/modes/segmentation/src/initToolGroups.ts @@ -1,21 +1,3 @@ -const brushInstanceNames = { - CircularBrush: 'CircularBrush', - CircularEraser: 'CircularEraser', - SphereBrush: 'SphereBrush', - SphereEraser: 'SphereEraser', - ThresholdCircularBrush: 'ThresholdCircularBrush', - ThresholdSphereBrush: 'ThresholdSphereBrush', -}; - -const brushStrategies = { - CircularBrush: 'FILL_INSIDE_CIRCLE', - CircularEraser: 'ERASE_INSIDE_CIRCLE', - SphereBrush: 'FILL_INSIDE_SPHERE', - SphereEraser: 'ERASE_INSIDE_SPHERE', - ThresholdCircularBrush: 'THRESHOLD_INSIDE_CIRCLE', - ThresholdSphereBrush: 'THRESHOLD_INSIDE_SPHERE', -}; - function createTools(utilityModule) { const { toolNames, Enums } = utilityModule.exports; return { @@ -25,22 +7,66 @@ function createTools(utilityModule) { { toolName: toolNames.Zoom, bindings: [{ mouseButton: Enums.MouseBindings.Secondary }] }, { toolName: toolNames.StackScrollMouseWheel, bindings: [] }, ], - passive: Object.keys(brushInstanceNames) - .map(brushName => ({ - toolName: brushName, + passive: [ + { + toolName: 'CircularBrush', parentTool: 'Brush', configuration: { - activeStrategy: brushStrategies[brushName], + activeStrategy: 'FILL_INSIDE_CIRCLE', }, - })) - .concat([ - { toolName: toolNames.CircleScissors }, - { toolName: toolNames.RectangleScissors }, - { toolName: toolNames.SphereScissors }, - { toolName: toolNames.StackScroll }, - { toolName: toolNames.Magnify }, - { toolName: toolNames.SegmentationDisplay }, - ]), + }, + { + toolName: 'CircularEraser', + parentTool: 'Brush', + configuration: { + activeStrategy: 'ERASE_INSIDE_CIRCLE', + }, + }, + { + toolName: 'SphereBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'FILL_INSIDE_SPHERE', + }, + }, + { + toolName: 'SphereEraser', + parentTool: 'Brush', + configuration: { + activeStrategy: 'ERASE_INSIDE_SPHERE', + }, + }, + { + toolName: 'ThresholdCircularBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'THRESHOLD_INSIDE_CIRCLE', + strategySpecificConfiguration: { + THRESHOLD: { + threshold: [-500, 500], + }, + }, + }, + }, + { + toolName: 'ThresholdSphereBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'THRESHOLD_INSIDE_SPHERE', + strategySpecificConfiguration: { + THRESHOLD: { + threshold: [-500, 500], + }, + }, + }, + }, + { toolName: toolNames.CircleScissors }, + { toolName: toolNames.RectangleScissors }, + { toolName: toolNames.SphereScissors }, + { toolName: toolNames.StackScroll }, + { toolName: toolNames.Magnify }, + { toolName: toolNames.SegmentationDisplay }, + ], disabled: [{ toolName: toolNames.ReferenceLines }], }; } diff --git a/package.json b/package.json index e4882be7a..4c37e921a 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@kitware/vtk.js": "27.3.1", + "@kitware/vtk.js": "29.3.0", "core-js": "^3.2.1" }, "peerDependencies": { diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index d6a7bb24d..b9721a21f 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -85,7 +85,7 @@ describe('OHIF Cornerstone Toolbar', () => { // The exact text is slightly dependent on the viewport resolution, so leave a range cy.get('@viewportInfoTopLeft').should($txt => { const text = $txt.text(); - expect(text).to.include('W:193').include('L:479'); + expect(text).to.include('W:1185').include('L:479'); }); }); diff --git a/platform/app/package.json b/platform/app/package.json index 314e9e285..7374762e1 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -51,7 +51,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.40.3", + "@cornerstonejs/dicom-image-loader": "^1.43.7", "@ohif/core": "3.8.0-beta.42", "@ohif/extension-cornerstone": "3.8.0-beta.42", "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.42", diff --git a/platform/app/src/components/ViewportGrid.tsx b/platform/app/src/components/ViewportGrid.tsx index ac43a24d8..c3151116d 100644 --- a/platform/app/src/components/ViewportGrid.tsx +++ b/platform/app/src/components/ViewportGrid.tsx @@ -1,4 +1,4 @@ -import React, {useEffect, useCallback, useMemo} from 'react'; +import React, { useEffect, useCallback } from 'react'; import PropTypes from 'prop-types'; import { ServicesManager, Types, MeasurementService } from '@ohif/core'; import { ViewportGrid, ViewportPane, useViewportGrid } from '@ohif/ui'; @@ -9,6 +9,7 @@ import { useAppConfig } from '@state'; function ViewerViewportGrid(props) { const { servicesManager, viewportComponents, dataSource } = props; const [viewportGrid, viewportGridService] = useViewportGrid(); + const [appConfig] = useAppConfig(); const { layout, activeViewportId, viewports } = viewportGrid; const { numCols, numRows } = layout; @@ -18,18 +19,6 @@ function ViewerViewportGrid(props) { servicesManager as ServicesManager ).services; - /** - * Determine whether users need to use the tools directly, or whether they need to click once to activate the viewport before using tools. - * If 'activateViewportBeforeInteraction' is available in the 'window.config' object, use its value; - * otherwise, default to true. - * If true, users need to click once to activate the viewport before using the tools. - * if false, tools can be used directly. - */ - const activateViewportBeforeInteraction = useMemo(() => { - const [appConfig] = useAppConfig(); - return appConfig?.activateViewportBeforeInteraction ?? true; - }, []); - /** * This callback runs after the viewports structure has changed in any way. * On initial display, that means if it has changed by applying a HangingProtocol, @@ -324,7 +313,8 @@ function ViewerViewportGrid(props) {
img', + // background: { + // light: 'rgb(255, 255, 255)', + // dark: 'rgb(50, 50, 50)', + // }, + // config: { + // // options you can specify via https://github.com/francoischalifour/medium-zoom#usage + // }, + // }, navbar: { hideOnScroll: false, logo: { diff --git a/platform/docs/package.json b/platform/docs/package.json index b7f9e9ed4..a5a519b89 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -35,12 +35,13 @@ "@docusaurus/preset-classic": "2.4.3", "@docusaurus/remark-plugin-npm2yarn": "2.4.3", "@docusaurus/theme-live-codeblock": "2.4.3", + "docusaurus-plugin-image-zoom": "^1.0.1", + "@docusaurus/theme-classic": "2.4.3", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^5.5.0", "classnames": "^2.3.2", "clsx": "^1.1.1", "file-loader": "^6.2.0", - "plugin-image-zoom": "ataft/plugin-image-zoom", "url-loader": "^4.1.1" }, "peerDependencies": { diff --git a/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx b/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx index 14a5c5a5c..75eae9129 100644 --- a/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx +++ b/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx @@ -45,7 +45,7 @@ function ToolSettings({ options }) { onChange={e => option.onChange(e)} allowNumberEdit={true} showAdjustmentArrows={false} - inputClassName="ml-1 w-4/5" + inputClassName="ml-1 w-4/5 cursor-pointer" />
diff --git a/platform/ui/src/types/index.ts b/platform/ui/src/types/index.ts index 284eea278..2553d6200 100644 --- a/platform/ui/src/types/index.ts +++ b/platform/ui/src/types/index.ts @@ -1,6 +1,5 @@ import PropTypes from 'prop-types'; import ThumbnailType from './ThumbnailType'; -import type { PresentationIds } from '../contextProviders/getPresentationIds'; // A few miscellaneous types declared inline here. diff --git a/yarn.lock b/yarn.lock index ed1ecc288..6fb798c06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1394,7 +1394,7 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@7.17.9", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.23.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@7.22.11", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.23.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== @@ -1450,10 +1450,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.40.3": - version "1.40.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.40.3.tgz#aaf9e86e648bf3e6531f1d16d9439be48aee40f5" - integrity sha512-StTYbq1RWBHI9yd2Xax6ebk0PX/pvKDmA4j9+WkBTh1MNnNGxABGpRHSdRKa96YlhGnVM1z5u0Ox5BmBMIAy2w== +"@cornerstonejs/adapters@^1.43.7": + version "1.43.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.43.7.tgz#920344cd6548cfa26ebe05db01ea94ef9121dc5e" + integrity sha512-X6tQDcT9PeXXrmEoDaCb/hHjWEk+h7svz4XRfCWJKqbTRNmpTWmr70KY2lMRMm/FVPC+Ix2KdHStBN2/9zLDsg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1502,45 +1502,45 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.40.3": - version "1.40.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.40.3.tgz#b591434fa9b80397f97541e4380c09b5cb4b28a0" - integrity sha512-7YgEJM02zZLJZNP4RHp+X1xg+i70ZnV5TkhQaOZSCaoKTEup1I7w3ywMDCrvMMXdE+D8qB6dmvSamJjtWDzKbg== +"@cornerstonejs/core@^1.43.7": + version "1.43.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.43.7.tgz#6da8c3598fc79b99357f1bc039b385447179ab67" + integrity sha512-36jYRnIxIGHyEL2pngpHiLX3HQINXabzi8P8K6BMf7HcWv9sgbWwmglUv71+gCo2my3Ai+vDUWrpoGIrmu+RGA== dependencies: - "@kitware/vtk.js" "27.3.1" + "@kitware/vtk.js" "29.3.0" comlink "^4.4.1" detect-gpu "^5.0.22" gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.40.3": - version "1.40.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.40.3.tgz#2a397bcb306231bf8ead1826d3cb98bc9614ed66" - integrity sha512-GaxI9kYmbc8NtbqQAuyv5Ofu91L/ASxcNDKbNVX6rFQ3HQ0n0OspxsarMLKn4oTY0hRFf+3dJYgM+cTmd8obtw== +"@cornerstonejs/dicom-image-loader@^1.43.7": + version "1.43.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.43.7.tgz#76b013815f7c5688604f76c7473a292397ad31ad" + integrity sha512-9wvXOx0S4TgIU+2SdYJUnGjv5yM4ylVJWt2q1q6yV6FuCEyhd1NB6cvAJSF61DlqWwS3oSiQRqU6wRf7wh73Jw== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.40.3" + "@cornerstonejs/core" "^1.43.7" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.40.3": - version "1.40.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.40.3.tgz#bf3f5e53a9986c2400dc62d8d13ee138fc192b4a" - integrity sha512-QYgdlKOvJxDyoD+2LxlY1EAaxKza0b/2dD65u1055qWvfWWJe8sqipGUbuDtShlcDdCSZLe6oPCHV5IVFhI5cQ== +"@cornerstonejs/streaming-image-volume-loader@^1.43.7": + version "1.43.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.43.7.tgz#972f675bd6de81cb6e65d495f0243013c17062bf" + integrity sha512-0FmGeLzFub4TSLhhxq8fDRAj20UF2C7lM9EA4UvEc/iR/B65ly9lGiMONB58Wodl9HamHHkmr4moD1Sjn3sfBg== dependencies: - "@cornerstonejs/core" "^1.40.3" + "@cornerstonejs/core" "^1.43.7" comlink "^4.4.1" -"@cornerstonejs/tools@^1.40.3": - version "1.40.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.40.3.tgz#2878185a5b848bd07e0a90482a2661525c2e2df8" - integrity sha512-h5+AibxT19nUPg5mTJ0v6xwyjUcN+a4Y1tLo9/mZmzjqLEUk4VljNAtcIj+bRPplNqET5sygZ/StOwC94fFItQ== +"@cornerstonejs/tools@^1.43.7": + version "1.43.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.43.7.tgz#70c3e75636bde19f6fa7d9c86ef61ececf8a2b9c" + integrity sha512-4yhWGeNsSF2F06T6sGLjARX7F7atUwUNv5qnMqFVZ7b/TfQbpdB8zkXHA0Rhz/YB3ebr/zWvRxDtzah+5VMxnQ== dependencies: - "@cornerstonejs/core" "^1.40.3" + "@cornerstonejs/core" "^1.43.7" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -2789,12 +2789,35 @@ resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@kitware/vtk.js@27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-27.3.1.tgz#65004b041642663da94e6a488ebb813576e7de7d" - integrity sha512-GvAXdOKtDDbkaSdO+UhKnDST4CW1C3fHgaDvA0wn1ZWTLm/6SFAMzarTjpzsVGYCPoEYIhCAAlBQ7K7aDcu3Vg== +"@kitware/vtk.js@29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.3.0.tgz#8601e07cde3da61c285aabfcb3484ae1ffb1074b" + integrity sha512-EofIxo6Qcfhh8SRx8Xp7B8HGM//2tzjQbhrMQsiaoPgs3yhtrqm+CBFmqboxt+waF8qUKxuUQb+DzM8cX2ivAg== dependencies: - "@babel/runtime" "7.17.9" + "@babel/runtime" "7.22.11" + "@types/webxr" "^0.5.5" + commander "9.2.0" + d3-scale "4.0.2" + fast-deep-equal "^3.1.3" + fflate "0.7.3" + gl-matrix "3.4.3" + globalthis "1.0.3" + seedrandom "3.0.5" + shader-loader "1.3.1" + shelljs "0.8.5" + spark-md5 "3.0.2" + stream-browserify "3.0.0" + webworker-promise "0.5.0" + worker-loader "3.0.8" + xmlbuilder2 "3.0.2" + +"@kitware/vtk.js@29.3.01": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.3.1.tgz#007df75c1f4744b4779087b9306a667c6acdc3c8" + integrity sha512-TM3uBVwJWdMIU+VD+OnSxQU45lJiJiOxxkx56Du6K4d18u5fHi7nBkSlNhTtOCX5H8amwIofaPCKRnYRNkjosA== + dependencies: + "@babel/runtime" "7.22.11" + "@types/webxr" "^0.5.5" commander "9.2.0" d3-scale "4.0.2" fast-deep-equal "^3.1.3" @@ -5459,6 +5482,11 @@ anymatch "^3.0.0" source-map "^0.6.0" +"@types/webxr@^0.5.5": + version "0.5.10" + resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.10.tgz#19c76208ec015ca3f139505e14d94d6b740f518a" + integrity sha512-n3u5sqXQJhf1CS68mw3Wf16FQ4cRPNBBwdYLFzq3UddiADOim1Pn3Y6PBdDilz1vOJF3ybLxJ8ZEDlLIzrOQZg== + "@types/ws@^8.2.2", "@types/ws@^8.5.5": version "8.5.10" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" @@ -8936,6 +8964,14 @@ document.contains@^1.0.1: dependencies: define-properties "^1.1.3" +docusaurus-plugin-image-zoom@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/docusaurus-plugin-image-zoom/-/docusaurus-plugin-image-zoom-1.0.1.tgz#17afec39f2e630cac50a4ed3a8bbdad8d0aa8b9d" + integrity sha512-96IpSKUx2RWy3db9aZ0s673OQo5DWgV9UVWouS+CPOSIVEdCWh6HKmWf6tB9rsoaiIF3oNn9keiyv6neEyKb1Q== + dependencies: + medium-zoom "^1.0.6" + validate-peer-dependencies "^2.2.0" + dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -14217,7 +14253,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -medium-zoom@^1.0.8: +medium-zoom@^1.0.6: version "1.1.0" resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.1.0.tgz#6efb6bbda861a02064ee71a2617a8dc4381ecc71" integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ== @@ -15974,6 +16010,18 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + path-scurry@^1.10.1, path-scurry@^1.6.1: version "1.10.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" @@ -16164,12 +16212,6 @@ please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -plugin-image-zoom@ataft/plugin-image-zoom: - version "1.1.0" - resolved "https://codeload.github.com/ataft/plugin-image-zoom/tar.gz/8e1b866c79ed6d42cefc4c52f851f1dfd1d0c7de" - dependencies: - medium-zoom "^1.0.4" - polished@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/polished/-/polished-4.2.2.tgz#2529bb7c3198945373c52e34618c8fe7b1aa84d1" @@ -18189,6 +18231,13 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-package-path@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/resolve-package-path/-/resolve-package-path-4.0.3.tgz#31dab6897236ea6613c72b83658d88898a9040aa" + integrity sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA== + dependencies: + path-root "^0.1.1" + resolve-pathname@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" @@ -20691,6 +20740,14 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +validate-peer-dependencies@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/validate-peer-dependencies/-/validate-peer-dependencies-2.2.0.tgz#47b8ff008f66a66fc5d8699123844522c1d874f4" + integrity sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA== + dependencies: + resolve-package-path "^4.0.3" + semver "^7.3.8" + validate.js@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/validate.js/-/validate.js-0.12.0.tgz#17f989e37c192ea2f826bbf19bf4e97e6e4be68f" From 0b2c2a235f37246f40fff05438d42889a7758b85 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 9 Jan 2024 15:24:28 +0000 Subject: [PATCH 136/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index bad9a9a36..ab5879b70 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -d181eb4fdc064ef5c5fada42abb6d9a362284b01 \ No newline at end of file +b1efe40aa146e4052cc47b3f774cabbb47a8d1a6 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a26ab8221..d55d92cc4 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/i18n": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/i18n": "3.8.0-beta.43", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 80091f016..531117fec 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/i18n": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/i18n": "3.8.0-beta.43", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 2cbbfa369..ac48e1152 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-measurement-tracking": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-measurement-tracking": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ac1c1b00e..54dd8ebd1 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/core": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 65868e06d..d4afbcc1c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/i18n": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/i18n": "3.8.0-beta.43", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 508840058..cfd3d3d31 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/i18n": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/i18n": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 756e3f66b..8a47065bd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 8e896fca1..da14d128b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 3f5bbb629..ea6f8bb45 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.43.7", "@cornerstonejs/tools": "^1.43.7", - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 03d923209..8b2bc033a 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index b4d7e0516..f3771978e 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 2dd6f9f5a..e4f973a6b 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/extension-dicom-pdf": "3.8.0-beta.42", - "@ohif/extension-dicom-video": "3.8.0-beta.42" + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/extension-dicom-pdf": "3.8.0-beta.43", + "@ohif/extension-dicom-video": "3.8.0-beta.43" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index f129149d6..21ab5801c 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/extension-dicom-pdf": "3.8.0-beta.42", - "@ohif/extension-dicom-video": "3.8.0-beta.42", - "@ohif/extension-measurement-tracking": "3.8.0-beta.42", - "@ohif/extension-test": "3.8.0-beta.42" + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/extension-dicom-pdf": "3.8.0-beta.43", + "@ohif/extension-dicom-video": "3.8.0-beta.43", + "@ohif/extension-measurement-tracking": "3.8.0-beta.43", + "@ohif/extension-test": "3.8.0-beta.43" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index dc729446d..a86a2eb7a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/extension-dicom-pdf": "3.8.0-beta.42", - "@ohif/extension-dicom-video": "3.8.0-beta.42", - "@ohif/extension-measurement-tracking": "3.8.0-beta.42" + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/extension-dicom-pdf": "3.8.0-beta.43", + "@ohif/extension-dicom-video": "3.8.0-beta.43", + "@ohif/extension-measurement-tracking": "3.8.0-beta.43" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 9b76a44ec..78e8dc0a7 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.42" + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.43" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index f51ac892b..2d2892fea 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42" + "@ohif/core": "3.8.0-beta.43" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 86df37b1d..63a304e82 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/extension-dicom-pdf": "3.8.0-beta.42", - "@ohif/extension-dicom-video": "3.8.0-beta.42", - "@ohif/extension-measurement-tracking": "3.8.0-beta.42" + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/extension-dicom-pdf": "3.8.0-beta.43", + "@ohif/extension-dicom-video": "3.8.0-beta.43", + "@ohif/extension-measurement-tracking": "3.8.0-beta.43" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index edab4495e..5a1a334cf 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.43", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index e56854dd8..0a216962e 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.42", - "commit": "d181eb4fdc064ef5c5fada42abb6d9a362284b01" + "version": "3.8.0-beta.43", + "commit": "b1efe40aa146e4052cc47b3f774cabbb47a8d1a6" } \ No newline at end of file diff --git a/version.txt b/version.txt index 17f964040..801d7d055 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.42 \ No newline at end of file +3.8.0-beta.43 \ No newline at end of file From 7c551f50432dca86c716468c461098e2f55021a6 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 9 Jan 2024 15:24:36 +0000 Subject: [PATCH 137/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 6 ++-- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 268 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c538b40b9..8abb1dc6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index e7bb0fc6b..6eaf2fe0c 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index d55d92cc4..1d1628879 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 7e5edf1eb..68b684e0c 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 531117fec..b90ec2b97 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index e011ca0e8..e7b02624f 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ac48e1152..a3ab32d5a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index abfd9f9ec..2c532e301 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 54dd8ebd1..343859afe 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 13fdbdbd0..817efbeb2 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index d4afbcc1c..996f721d8 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index ba7b9f6e8..965eb19aa 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index cfd3d3d31..306fd57a7 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 971337ecc..a33ac0863 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8a47065bd..7828c7f94 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index f7dcd1096..a7560b196 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index da14d128b..1003b365b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index aa3a70f74..c83855b1a 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index ea6f8bb45..1bcb2a88c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/ui": "3.8.0-beta.43", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 08349a2c4..04ffe7c91 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 8b2bc033a..5f0d13abb 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 6d4623b06..b73e5a467 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index f3771978e..908fdf297 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index edc3d3027..b29e9afb4 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 37e72b4c6..2c2b401df 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index e4f973a6b..92d4c2e5c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 5802726f3..3df7dbfa6 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 21ab5801c..fea0a56aa 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 3d80c0d0c..31642c76c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index a86a2eb7a..650e95a14 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index b6743cddc..3ab120232 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 78e8dc0a7..3b4ebd632 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 3cd2af373..906c5da71 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 2d2892fea..16cc9c0ae 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 369fffb3e..a3722fa23 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 63a304e82..ef3ea6a26 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 8f5927814..66a75a2be 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 7374762e1..fd7e85796 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/core": "3.8.0-beta.42", - "@ohif/extension-cornerstone": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.42", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.42", - "@ohif/extension-default": "3.8.0-beta.42", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.42", - "@ohif/extension-dicom-pdf": "3.8.0-beta.42", - "@ohif/extension-dicom-video": "3.8.0-beta.42", - "@ohif/extension-test": "3.8.0-beta.42", - "@ohif/i18n": "3.8.0-beta.42", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.42", - "@ohif/mode-longitudinal": "3.8.0-beta.42", - "@ohif/mode-microscopy": "3.8.0-beta.42", - "@ohif/mode-test": "3.8.0-beta.42", - "@ohif/ui": "3.8.0-beta.42", + "@ohif/core": "3.8.0-beta.43", + "@ohif/extension-cornerstone": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.43", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", + "@ohif/extension-default": "3.8.0-beta.43", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.43", + "@ohif/extension-dicom-pdf": "3.8.0-beta.43", + "@ohif/extension-dicom-video": "3.8.0-beta.43", + "@ohif/extension-test": "3.8.0-beta.43", + "@ohif/i18n": "3.8.0-beta.43", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.43", + "@ohif/mode-longitudinal": "3.8.0-beta.43", + "@ohif/mode-microscopy": "3.8.0-beta.43", + "@ohif/mode-test": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.43", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index cdcf5000c..42f0aedf1 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 861022f1d..b4ff1269c 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 8f2439536..4c09bc164 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 5a1a334cf..8605eb2aa 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index e8f636e26..b6683b29c 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index a5a519b89..b32e548b4 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "private": true, "workspaces": { "nohoist": [ @@ -34,13 +34,13 @@ "@docusaurus/plugin-pwa": "2.4.3", "@docusaurus/preset-classic": "2.4.3", "@docusaurus/remark-plugin-npm2yarn": "2.4.3", - "@docusaurus/theme-live-codeblock": "2.4.3", - "docusaurus-plugin-image-zoom": "^1.0.1", "@docusaurus/theme-classic": "2.4.3", + "@docusaurus/theme-live-codeblock": "2.4.3", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^5.5.0", "classnames": "^2.3.2", "clsx": "^1.1.1", + "docusaurus-plugin-image-zoom": "^1.0.1", "file-loader": "^6.2.0", "url-loader": "^4.1.1" }, diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 4ef19dff8..a887e883c 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 8b9415303..b8ac3a960 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 98b09022a..4516270f3 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) + + +### Bug Fixes + +* **segmentation:** upgrade cs3d to fix various segmentation bugs ([#3885](https://github.com/OHIF/Viewers/issues/3885)) ([b1efe40](https://github.com/OHIF/Viewers/commit/b1efe40aa146e4052cc47b3f774cabbb47a8d1a6)) + + + + + # [3.8.0-beta.42](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.41...v3.8.0-beta.42) (2024-01-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index b9c27ac95..0deeea0c6 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.42", + "version": "3.8.0-beta.43", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 1456a493d66c90c787b022256c9f2846afb115fc Mon Sep 17 00:00:00 2001 From: Alireza Date: Tue, 9 Jan 2024 12:36:29 -0500 Subject: [PATCH 138/289] feat(transferSyntax): prefer server transcoded transfer syntax for all images (#3883) --- platform/app/public/config/local_orthanc.js | 1 + platform/app/public/config/netlify.js | 1 - .../core/src/utils/generateAcceptHeader.ts | 3 ++- .../docs/configuration/configurationFiles.md | 23 +++++++++++++++---- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/platform/app/public/config/local_orthanc.js b/platform/app/public/config/local_orthanc.js index eabb22f21..f8ae80c86 100644 --- a/platform/app/public/config/local_orthanc.js +++ b/platform/app/public/config/local_orthanc.js @@ -32,6 +32,7 @@ window.config = { supportsFuzzyMatching: true, supportsWildcard: true, dicomUploadEnabled: true, + omitQuotationForMultipartRequest: true, bulkDataURI: { enabled: true, }, diff --git a/platform/app/public/config/netlify.js b/platform/app/public/config/netlify.js index a729d1c8d..3976b79bc 100644 --- a/platform/app/public/config/netlify.js +++ b/platform/app/public/config/netlify.js @@ -20,7 +20,6 @@ window.config = { wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', - qidoSupportsIncludeField: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', diff --git a/platform/core/src/utils/generateAcceptHeader.ts b/platform/core/src/utils/generateAcceptHeader.ts index a428be0f7..7d455441c 100644 --- a/platform/core/src/utils/generateAcceptHeader.ts +++ b/platform/core/src/utils/generateAcceptHeader.ts @@ -1,6 +1,6 @@ const generateAcceptHeader = ( configAcceptHeader = [], - requestTransferSyntaxUID = null, + requestTransferSyntaxUID = '*', //default to accept all transfer syntax omitQuotationForMultipartRequest = false ): string[] => { //if acceptedHeader is passed by config use it as it. @@ -17,6 +17,7 @@ const generateAcceptHeader = ( acceptHeader.push('type=application/octet-stream'); } + acceptHeader.push('transfer-syntax=*'); if (!omitQuotationForMultipartRequest) { //need to add quotation for each mime type of each accept entry acceptHeader = acceptHeader.map(mime => { diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index df0299fec..71ba36b06 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -239,12 +239,27 @@ Example usage:
This configuration would allow the user to build a dicomweb configuration from a GCP healthcare api path e.g. http://localhost:3000/projects/your-gcp-project/locations/us-central1/datasets/your-dataset/dicomStores/your-dicom-store/study/1.3.6.1.4.1.1234.5.2.1.1234.1234.123123123123123123123123123123 - +- **Avoids Transcoding**: Transcoding (converting from one transfer syntax to another) can be a resource-intensive process. + Since the OHIF Viewer supports all transfer syntaxes, it is fine to accept any transfer syntax (transfer-syntax=*). + This allows the server to send the images in their stored syntax, avoiding the need for costly on-the-fly conversions. + This approach not only saves server resources but also reduces response times by leveraging the viewer's capability to handle various syntaxes directly. + +- **Faster Data Transfer**: Compressed transfer syntaxes generally result in smaller file sizes compared + to uncompressed ones. Smaller files transmit faster over the network, leading to quicker load + times for the end-user. By accepting any syntax, the client can take advantage of compression when available. + +However, if you would like to get compressed data in a specific transfer syntax, you can modify the `acceptHeader` configuration or +`requestTransferSyntaxUID` configuration. ## Environment Variables From c793df727b42d9e1709b030dcedc9889419dfedd Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 9 Jan 2024 17:45:30 +0000 Subject: [PATCH 139/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index ab5879b70..f1d522ac8 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -b1efe40aa146e4052cc47b3f774cabbb47a8d1a6 \ No newline at end of file +1456a493d66c90c787b022256c9f2846afb115fc \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 1d1628879..a2bdcc31c 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/i18n": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/i18n": "3.8.0-beta.44", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b90ec2b97..cd4e382fd 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/i18n": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/i18n": "3.8.0-beta.44", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index a3ab32d5a..c02af433f 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-measurement-tracking": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-measurement-tracking": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 343859afe..df5cef80d 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/core": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 996f721d8..07006bac9 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/i18n": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/i18n": "3.8.0-beta.44", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 306fd57a7..a53662a9b 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/i18n": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/i18n": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7828c7f94..eff12455c 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 1003b365b..3dd779008 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 1bcb2a88c..242b3e2e5 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.43.7", "@cornerstonejs/tools": "^1.43.7", - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 5f0d13abb..1f0ecd1c1 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 908fdf297..1e6b505c5 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 92d4c2e5c..7c3f75bfc 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/extension-dicom-pdf": "3.8.0-beta.43", - "@ohif/extension-dicom-video": "3.8.0-beta.43" + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/extension-dicom-pdf": "3.8.0-beta.44", + "@ohif/extension-dicom-video": "3.8.0-beta.44" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index fea0a56aa..40620c704 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/extension-dicom-pdf": "3.8.0-beta.43", - "@ohif/extension-dicom-video": "3.8.0-beta.43", - "@ohif/extension-measurement-tracking": "3.8.0-beta.43", - "@ohif/extension-test": "3.8.0-beta.43" + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/extension-dicom-pdf": "3.8.0-beta.44", + "@ohif/extension-dicom-video": "3.8.0-beta.44", + "@ohif/extension-measurement-tracking": "3.8.0-beta.44", + "@ohif/extension-test": "3.8.0-beta.44" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 650e95a14..deeac2961 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/extension-dicom-pdf": "3.8.0-beta.43", - "@ohif/extension-dicom-video": "3.8.0-beta.43", - "@ohif/extension-measurement-tracking": "3.8.0-beta.43" + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/extension-dicom-pdf": "3.8.0-beta.44", + "@ohif/extension-dicom-video": "3.8.0-beta.44", + "@ohif/extension-measurement-tracking": "3.8.0-beta.44" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 3b4ebd632..d7c87de9b 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.43" + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.44" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 16cc9c0ae..0089715f5 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43" + "@ohif/core": "3.8.0-beta.44" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index ef3ea6a26..2dfd49183 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/extension-dicom-pdf": "3.8.0-beta.43", - "@ohif/extension-dicom-video": "3.8.0-beta.43", - "@ohif/extension-measurement-tracking": "3.8.0-beta.43" + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/extension-dicom-pdf": "3.8.0-beta.44", + "@ohif/extension-dicom-video": "3.8.0-beta.44", + "@ohif/extension-measurement-tracking": "3.8.0-beta.44" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 8605eb2aa..860f413c0 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.44", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 0a216962e..abaf60b33 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.43", - "commit": "b1efe40aa146e4052cc47b3f774cabbb47a8d1a6" + "version": "3.8.0-beta.44", + "commit": "1456a493d66c90c787b022256c9f2846afb115fc" } \ No newline at end of file diff --git a/version.txt b/version.txt index 801d7d055..5222548c9 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.43 \ No newline at end of file +3.8.0-beta.44 \ No newline at end of file From b5cdf88a57cdb69759a7d337fe3904575df32d92 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 9 Jan 2024 17:45:39 +0000 Subject: [PATCH 140/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 245 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8abb1dc6d..12a59adfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + + +### Features + +* **transferSyntax:** prefer server transcoded transfer syntax for all images ([#3883](https://github.com/OHIF/Viewers/issues/3883)) ([1456a49](https://github.com/OHIF/Viewers/commit/1456a493d66c90c787b022256c9f2846afb115fc)) + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 6eaf2fe0c..c9707ac0e 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a2bdcc31c..4d2dfcf4b 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 68b684e0c..79b4635a2 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index cd4e382fd..e5b7c89e9 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index e7b02624f..e9568dc44 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c02af433f..d3d050fd6 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 2c532e301..10c60d446 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index df5cef80d..4532aede5 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 817efbeb2..6327203f6 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 07006bac9..44aced6e5 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 965eb19aa..91ce30251 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index a53662a9b..a5caa3eac 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index a33ac0863..9be6eafb0 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index eff12455c..fb7333bfe 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index a7560b196..567ac7df0 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 3dd779008..6bb062c81 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index c83855b1a..b3f1cb7c1 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 242b3e2e5..984350254 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/ui": "3.8.0-beta.44", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 04ffe7c91..44dfa8478 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 1f0ecd1c1..83cd77ac0 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index b73e5a467..165969a7b 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 1e6b505c5..a8dc812e5 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index b29e9afb4..aa7cd1544 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 2c2b401df..17c446cc6 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 7c3f75bfc..f7927f4ac 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 3df7dbfa6..36e7418c9 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 40620c704..a42511b5e 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 31642c76c..1965e7d19 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index deeac2961..e3e60630a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 3ab120232..46bd4a78b 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index d7c87de9b..896c00ff0 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 906c5da71..a8b4d1796 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 0089715f5..662353a41 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index a3722fa23..78b61bc94 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 2dfd49183..13b3a74b1 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 66a75a2be..a978b724e 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + + +### Features + +* **transferSyntax:** prefer server transcoded transfer syntax for all images ([#3883](https://github.com/OHIF/Viewers/issues/3883)) ([1456a49](https://github.com/OHIF/Viewers/commit/1456a493d66c90c787b022256c9f2846afb115fc)) + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/platform/app/package.json b/platform/app/package.json index fd7e85796..66b728a6d 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/core": "3.8.0-beta.43", - "@ohif/extension-cornerstone": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.43", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.43", - "@ohif/extension-default": "3.8.0-beta.43", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.43", - "@ohif/extension-dicom-pdf": "3.8.0-beta.43", - "@ohif/extension-dicom-video": "3.8.0-beta.43", - "@ohif/extension-test": "3.8.0-beta.43", - "@ohif/i18n": "3.8.0-beta.43", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.43", - "@ohif/mode-longitudinal": "3.8.0-beta.43", - "@ohif/mode-microscopy": "3.8.0-beta.43", - "@ohif/mode-test": "3.8.0-beta.43", - "@ohif/ui": "3.8.0-beta.43", + "@ohif/core": "3.8.0-beta.44", + "@ohif/extension-cornerstone": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.44", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", + "@ohif/extension-default": "3.8.0-beta.44", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.44", + "@ohif/extension-dicom-pdf": "3.8.0-beta.44", + "@ohif/extension-dicom-video": "3.8.0-beta.44", + "@ohif/extension-test": "3.8.0-beta.44", + "@ohif/i18n": "3.8.0-beta.44", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.44", + "@ohif/mode-longitudinal": "3.8.0-beta.44", + "@ohif/mode-microscopy": "3.8.0-beta.44", + "@ohif/mode-test": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.44", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 42f0aedf1..353159818 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index b4ff1269c..adf0de62b 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 4c09bc164..52fb146b0 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + + +### Features + +* **transferSyntax:** prefer server transcoded transfer syntax for all images ([#3883](https://github.com/OHIF/Viewers/issues/3883)) ([1456a49](https://github.com/OHIF/Viewers/commit/1456a493d66c90c787b022256c9f2846afb115fc)) + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/platform/core/package.json b/platform/core/package.json index 860f413c0..c6d48c7bb 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index b6683b29c..a5786a6c5 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + + +### Features + +* **transferSyntax:** prefer server transcoded transfer syntax for all images ([#3883](https://github.com/OHIF/Viewers/issues/3883)) ([1456a49](https://github.com/OHIF/Viewers/commit/1456a493d66c90c787b022256c9f2846afb115fc)) + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/platform/docs/package.json b/platform/docs/package.json index b32e548b4..3eafe94c0 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a887e883c..b04fb2b87 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index b8ac3a960..41d240cbc 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 4516270f3..58e3f942e 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.43](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.42...v3.8.0-beta.43) (2024-01-09) diff --git a/platform/ui/package.json b/platform/ui/package.json index 0deeea0c6..55b25c553 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.43", + "version": "3.8.0-beta.44", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 0049f4c0303f0b6ea995972326fc8784259f5a47 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Tue, 9 Jan 2024 16:22:00 -0300 Subject: [PATCH 141/289] feat(hp): enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol (#3804) Co-authored-by: rodrigobasilio2022 Co-authored-by: rodrigobasilio2022 <114958722+rodrigobasilio2022@users.noreply.github.com> --- .../default/src/DicomWebDataSource/index.js | 72 ++++++++++---- .../utils/StaticWadoClient.ts | 1 + .../wado/retrieveMetadataLoader.js | 24 ++--- .../wado/retrieveMetadataLoaderAsync.js | 98 +++++++++++++++---- .../default/src/getHangingProtocolModule.js | 1 + .../PanelStudyBrowserTracking.tsx | 2 +- platform/app/src/routes/Mode/Mode.tsx | 75 ++++++++++---- .../HangingProtocolService.ts | 30 +++++- platform/core/src/types/HangingProtocol.ts | 11 +++ 9 files changed, 240 insertions(+), 74 deletions(-) diff --git a/extensions/default/src/DicomWebDataSource/index.js b/extensions/default/src/DicomWebDataSource/index.js index a0748d864..23c5329c4 100644 --- a/extensions/default/src/DicomWebDataSource/index.js +++ b/extensions/default/src/DicomWebDataSource/index.js @@ -28,17 +28,35 @@ const EXPLICIT_VR_LITTLE_ENDIAN = '1.2.840.10008.1.2.1'; const metadataProvider = classes.MetadataProvider; /** + * Creates a DICOM Web API based on the provided configuration. * - * @param {string} name - Data source name - * @param {string} wadoUriRoot - Legacy? (potentially unused/replaced) - * @param {string} qidoRoot - Base URL to use for QIDO requests - * @param {string} wadoRoot - Base URL to use for WADO requests - * @param {boolean} qidoSupportsIncludeField - Whether QIDO supports the "Include" option to request additional fields in response - * @param {string} imageRengering - wadors | ? (unsure of where/how this is used) - * @param {string} thumbnailRendering - wadors | ? (unsure of where/how this is used) - * @param {bool} supportsReject - Whether the server supports reject calls (i.e. DCM4CHEE) - * @param {bool} lazyLoadStudy - "enableStudyLazyLoad"; Request series meta async instead of blocking - * @param {string|bool} singlepart - indicates of the retrieves can fetch singlepart. Options are bulkdata, video, image or boolean true + * @param {object} dicomWebConfig - Configuration for the DICOM Web API + * @param {string} dicomWebConfig.name - Data source name + * @param {string} dicomWebConfig.wadoUriRoot - Legacy? (potentially unused/replaced) + * @param {string} dicomWebConfig.qidoRoot - Base URL to use for QIDO requests + * @param {string} dicomWebConfig.wadoRoot - Base URL to use for WADO requests + * @param {string} dicomWebConfig.wadoUri - Base URL to use for WADO URI requests + * @param {boolean} dicomWebConfig.qidoSupportsIncludeField - Whether QIDO supports the "Include" option to request additional fields in response + * @param {string} dicomWebConfig.imageRendering - wadors | ? (unsure of where/how this is used) + * @param {string} dicomWebConfig.thumbnailRendering - wadors | ? (unsure of where/how this is used) + * @param {boolean} dicomWebConfig.supportsReject - Whether the server supports reject calls (i.e. DCM4CHEE) + * @param {boolean} dicomWebConfig.lazyLoadStudy - "enableStudyLazyLoad"; Request series meta async instead of blocking + * @param {string|boolean} dicomWebConfig.singlepart - indicates if the retrieves can fetch singlepart. Options are bulkdata, video, image, or boolean true + * @param {string} dicomWebConfig.requestTransferSyntaxUID - Transfer syntax to request from the server + * @param {object} dicomWebConfig.acceptHeader - Accept header to use for requests + * @param {boolean} dicomWebConfig.omitQuotationForMultipartRequest - Whether to omit quotation marks for multipart requests + * @param {boolean} dicomWebConfig.supportsFuzzyMatching - Whether the server supports fuzzy matching + * @param {boolean} dicomWebConfig.supportsWildcard - Whether the server supports wildcard matching + * @param {boolean} dicomWebConfig.supportsNativeDICOMModel - Whether the server supports the native DICOM model + * @param {boolean} dicomWebConfig.enableStudyLazyLoad - Whether to enable study lazy loading + * @param {boolean} dicomWebConfig.enableRequestTag - Whether to enable request tag + * @param {boolean} dicomWebConfig.enableStudyLazyLoad - Whether to enable study lazy loading + * @param {boolean} dicomWebConfig.bulkDataURI - Whether to enable bulkDataURI + * @param {function} dicomWebConfig.onConfiguration - Function that is called after the configuration is initialized + * @param {boolean} dicomWebConfig.staticWado - Whether to use the static WADO client + * @param {object} userAuthenticationService - User authentication service + * @param {object} userAuthenticationService.getAuthorizationHeader - Function that returns the authorization header + * @returns {object} - DICOM Web API object */ function createDicomWebApi(dicomWebConfig, servicesManager) { const { userAuthenticationService, customizationService } = servicesManager.services; @@ -191,6 +209,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { sortCriteria, sortFunction, madeInClient = false, + returnPromises = false, } = {}) => { if (!StudyInstanceUID) { throw new Error('Unable to query for SeriesMetadata without StudyInstanceUID'); @@ -202,7 +221,8 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { filters, sortCriteria, sortFunction, - madeInClient + madeInClient, + returnPromises ); } @@ -336,7 +356,8 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { filters, sortCriteria, sortFunction, - madeInClient = false + madeInClient = false, + returnPromises = false ) => { const enableStudyLazyLoad = true; wadoDicomWebClient.headers = generateWadoHeader(); @@ -416,7 +437,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { const naturalizedInstances = instances.map(addRetrieveBulkData); // Adding instanceMetadata to OHIF MetadataProvider - naturalizedInstances.forEach((instance, index) => { + naturalizedInstances.forEach(instance => { instance.wadoRoot = dicomWebConfig.wadoRoot; instance.wadoUri = dicomWebConfig.wadoUri; @@ -443,7 +464,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { } function setSuccessFlag() { - const study = DicomMetadataStore.getStudy(StudyInstanceUID, madeInClient); + const study = DicomMetadataStore.getStudy(StudyInstanceUID); if (!study) { return; } @@ -458,13 +479,22 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { DicomMetadataStore.addSeriesMetadata(seriesSummaryMetadata, madeInClient); - const seriesDeliveredPromises = seriesPromises.map(promise => - promise.then(instances => { + const seriesDeliveredPromises = seriesPromises.map(promise => { + if (!returnPromises) { + promise?.start(); + } + return promise.then(instances => { storeInstances(instances); - }) - ); - await Promise.all(seriesDeliveredPromises); - setSuccessFlag(); + }); + }); + + if (returnPromises) { + Promise.all(seriesDeliveredPromises).then(() => setSuccessFlag()); + return seriesPromises; + } else { + await Promise.all(seriesDeliveredPromises); + setSuccessFlag(); + } return seriesSummaryMetadata; }, @@ -496,7 +526,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) { return imageIds; }, - getImageIdsForInstance({ instance, frame }) { + getImageIdsForInstance({ instance, frame = undefined }) { const imageIds = getImageId({ instance, frame, diff --git a/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts b/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts index 1ba2aad90..ed2815c60 100644 --- a/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts +++ b/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts @@ -7,6 +7,7 @@ import { api } from 'dicomweb-client'; * performing searches doesn't work. This version fixes the query issue * by manually implementing a query option. */ + export default class StaticWadoClient extends api.DICOMwebClient { static studyFilterKeys = { studyinstanceuid: '0020000D', diff --git a/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoader.js b/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoader.js index da747c88b..e0143000c 100644 --- a/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoader.js +++ b/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoader.js @@ -11,10 +11,17 @@ export default class RetrieveMetadataLoader { * @param {Object} client The dicomweb-client. * @param {Array} studyInstanceUID Study instance ui to be retrieved * @param {Object} [filters] - Object containing filters to be applied on retrieve metadata process - * @param {string} [filter.seriesInstanceUID] - series instance uid to filter results against - * @param {Function} [sortSeries] - Custom sort function for series + * @param {string} [filters.seriesInstanceUID] - series instance uid to filter results against + * @param {Object} [sortCriteria] - Custom sort criteria used for series + * @param {Function} [sortFunction] - Custom sort function for series */ - constructor(client, studyInstanceUID, filters = {}, sortCriteria, sortFunction) { + constructor( + client, + studyInstanceUID, + filters = {}, + sortCriteria = undefined, + sortFunction = undefined + ) { this.client = client; this.studyInstanceUID = studyInstanceUID; this.filters = filters; @@ -26,7 +33,6 @@ export default class RetrieveMetadataLoader { const preLoadData = await this.preLoad(); const loadData = await this.load(preLoadData); const postLoadData = await this.posLoad(loadData); - return postLoadData; } @@ -37,13 +43,9 @@ export default class RetrieveMetadataLoader { async runLoaders(loaders) { let result; for (const loader of loaders) { - try { - result = await loader(); - if (result && result.length) { - break; // closes iterator in case data is retrieved successfully - } - } catch (e) { - throw e; + result = await loader(); + if (result && result.length) { + break; // closes iterator in case data is retrieved successfully } } diff --git a/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoaderAsync.js b/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoaderAsync.js index ffaa83418..0c9a65603 100644 --- a/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoaderAsync.js +++ b/extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoaderAsync.js @@ -1,7 +1,58 @@ import dcmjs from 'dcmjs'; -import { sortStudySeries, sortingCriteria } from '@ohif/core/src/utils/sortStudy'; +import { sortStudySeries } from '@ohif/core/src/utils/sortStudy'; import RetrieveMetadataLoader from './retrieveMetadataLoader'; +// Series Date, Series Time, Series Description and Series Number to be included +// in the series metadata query result +const includeField = ['00080021', '00080031', '0008103E', '00200011'].join(','); + +export class DeferredPromise { + metadata = undefined; + processFunction = undefined; + internalPromise = undefined; + thenFunction = undefined; + rejectFunction = undefined; + + setMetadata(metadata) { + this.metadata = metadata; + } + setProcessFunction(func) { + this.processFunction = func; + } + getPromise() { + return this.start(); + } + start() { + if (this.internalPromise) { + return this.internalPromise; + } + this.internalPromise = this.processFunction(); + // in case then and reject functions called before start + if (this.thenFunction) { + this.then(this.thenFunction); + this.thenFunction = undefined; + } + if (this.rejectFunction) { + this.reject(this.rejectFunction); + this.rejectFunction = undefined; + } + return this.internalPromise; + } + then(func) { + if (this.internalPromise) { + return this.internalPromise.then(func); + } else { + this.thenFunction = func; + } + } + reject(func) { + if (this.internalPromise) { + return this.internalPromise.reject(func); + } else { + this.rejectFunction = func; + } + } +} /** * Creates an immutable series loader object which loads each series sequentially using the iterator interface. * @@ -16,12 +67,17 @@ function makeSeriesAsyncLoader(client, studyInstanceUID, seriesInstanceUIDList) hasNext() { return seriesInstanceUIDList.length > 0; }, - async next() { - const seriesInstanceUID = seriesInstanceUIDList.shift(); - return client.retrieveSeriesMetadata({ - studyInstanceUID, - seriesInstanceUID, + next() { + const { seriesInstanceUID, metadata } = seriesInstanceUIDList.shift(); + const promise = new DeferredPromise(); + promise.setMetadata(metadata); + promise.setProcessFunction(() => { + return client.retrieveSeriesMetadata({ + studyInstanceUID, + seriesInstanceUID, + }); }); + return promise; }, }); } @@ -40,15 +96,22 @@ export default class RetrieveMetadataLoaderAsync extends RetrieveMetadataLoader const preLoaders = []; const { studyInstanceUID, filters: { seriesInstanceUID } = {}, client } = this; + // asking to include Series Date, Series Time, Series Description + // and Series Number in the series metadata returned to better sort series + // in preLoad function + let options = { + studyInstanceUID, + queryParams: { + includefield: includeField, + }, + }; + if (seriesInstanceUID) { - const options = { - studyInstanceUID, - queryParams: { SeriesInstanceUID: seriesInstanceUID }, - }; + options.queryParams.SeriesInstanceUID = seriesInstanceUID; preLoaders.push(client.searchForSeries.bind(client, options)); } // Fallback preloader - preLoaders.push(client.searchForSeries.bind(client, { studyInstanceUID })); + preLoaders.push(client.searchForSeries.bind(client, options)); yield* preLoaders; } @@ -62,24 +125,23 @@ export default class RetrieveMetadataLoaderAsync extends RetrieveMetadataLoader const { naturalizeDataset } = dcmjs.data.DicomMetaDictionary; const naturalized = result.map(naturalizeDataset); - return sortStudySeries( - naturalized, - sortCriteria || sortingCriteria.seriesSortCriteria.seriesInfoSortingCriteria, - sortFunction - ); + return sortStudySeries(naturalized, sortCriteria, sortFunction); } async load(preLoadData) { const { client, studyInstanceUID } = this; - const seriesInstanceUIDs = preLoadData.map(s => s.SeriesInstanceUID); + const seriesInstanceUIDs = preLoadData.map(seriesMetadata => { + return { seriesInstanceUID: seriesMetadata.SeriesInstanceUID, metadata: seriesMetadata }; + }); const seriesAsyncLoader = makeSeriesAsyncLoader(client, studyInstanceUID, seriesInstanceUIDs); const promises = []; while (seriesAsyncLoader.hasNext()) { - promises.push(seriesAsyncLoader.next()); + const promise = seriesAsyncLoader.next(); + promises.push(promise); } return { diff --git a/extensions/default/src/getHangingProtocolModule.js b/extensions/default/src/getHangingProtocolModule.js index 596e3031d..f9ad9bbbb 100644 --- a/extensions/default/src/getHangingProtocolModule.js +++ b/extensions/default/src/getHangingProtocolModule.js @@ -14,6 +14,7 @@ const defaultProtocol = { editableBy: {}, protocolMatchingRules: [], toolGroupIds: ['default'], + hpInitiationCriteria: { minSeriesLoaded: 1 }, // -1 would be used to indicate active only, whereas other values are // the number of required priors referenced - so 0 means active with // 0 or more priors. diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx index 98bc050c3..f9715783e 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx @@ -635,4 +635,4 @@ function _findTabAndStudyOfDisplaySet(displaySetInstanceUID, tabs) { } } } -} +} \ No newline at end of file diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index cb53db00c..228403246 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -13,7 +13,7 @@ import { history } from '../../utils/history'; import loadModules from '../../pluginImports'; import isSeriesFilterUsed from '../../utils/isSeriesFilterUsed'; -const { getSplitParam } = utils; +const { getSplitParam, sortingCriteria } = utils; const { TimingEnum } = Types; /** @@ -26,11 +26,33 @@ const { TimingEnum } = Types; * @returns array of subscriptions to cancel */ function defaultRouteInit( - { servicesManager, studyInstanceUIDs, dataSource, filters }, + { servicesManager, studyInstanceUIDs, dataSource, filters, appConfig }, hangingProtocolId ) { - const { displaySetService, hangingProtocolService, uiNotificationService } = + const { displaySetService, hangingProtocolService, uiNotificationService, customizationService } = servicesManager.services; + /** + * Function to apply the hanging protocol when the minimum number of display sets were + * received or all display sets retrieval were completed + * @returns + */ + function applyHangingProtocol() { + const displaySets = displaySetService.getActiveDisplaySets(); + + if (!displaySets || !displaySets.length) { + return; + } + + // Gets the studies list to use + const studies = getStudies(studyInstanceUIDs, displaySets); + + // study being displayed, and is thus the "active" study. + const activeStudy = studies[0]; + + // run the hanging protocol matching on the displaySets with the predefined + // hanging protocol in the mode configuration + hangingProtocolService.run({ studies, activeStudy, displaySets }, hangingProtocolId); + } const unsubscriptions = []; const issuedWarningSeries = []; @@ -55,6 +77,7 @@ function defaultRouteInit( duration: 7000, }); } + displaySetService.makeDisplaySets(seriesMetadata.instances, madeInClient); } ); @@ -63,10 +86,15 @@ function defaultRouteInit( log.time(TimingEnum.STUDY_TO_DISPLAY_SETS); log.time(TimingEnum.STUDY_TO_FIRST_IMAGE); + const allRetrieves = studyInstanceUIDs.map(StudyInstanceUID => dataSource.retrieve.series.metadata({ StudyInstanceUID, filters, + returnPromises: true, + sortCriteria: + customizationService.get('sortingCriteria') || + sortingCriteria.seriesSortCriteria.seriesInfoSortingCriteria, }) ); @@ -77,31 +105,34 @@ function defaultRouteInit( }); }); - // The hanging protocol matching service is fairly expensive to run multiple - // times, and doesn't allow partial matches to be made (it will simply fail - // to display anything if a required match fails), so we wait here until all metadata - // is retrieved (which will synchronously trigger the display set creation) - // until we run the hanging protocol matching service. - - Promise.allSettled(allRetrieves).then(() => { + Promise.allSettled(allRetrieves).then(promises => { log.timeEnd(TimingEnum.STUDY_TO_DISPLAY_SETS); log.time(TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); log.time(TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); - const displaySets = displaySetService.getActiveDisplaySets(); - if (!displaySets || !displaySets.length) { - return; + const allPromises = []; + const remainingPromises = []; + + function startRemainingPromises(remainingPromises) { + remainingPromises.forEach(p => p.forEach(p => p.start())); } - // Gets the studies list to use - const studies = getStudies(studyInstanceUIDs, displaySets); + promises.forEach(promise => { + const retrieveSeriesMetadataPromise = promise.value; + if (Array.isArray(retrieveSeriesMetadataPromise)) { + const { requiredSeries, remaining } = hangingProtocolService.filterSeriesRequiredForRun( + hangingProtocolId, + retrieveSeriesMetadataPromise + ); + const requiredSeriesPromises = requiredSeries.map(promise => promise.start()); + allPromises.push(Promise.allSettled(requiredSeriesPromises)); + remainingPromises.push(remaining); + } + }); - // study being displayed, and is thus the "active" study. - const activeStudy = studies[0]; - - // run the hanging protocol matching on the displaySets with the predefined - // hanging protocol in the mode configuration - hangingProtocolService.run({ studies, activeStudy, displaySets }, hangingProtocolId); + Promise.allSettled(allPromises).then(applyHangingProtocol); + startRemainingPromises(remainingPromises); + applyHangingProtocol(); }); return unsubscriptions; @@ -401,6 +432,7 @@ export default function ModeRoute({ studyInstanceUIDs, dataSource, filters, + appConfig, }, hangingProtocolIdToUse ); @@ -482,4 +514,5 @@ ModeRoute.propTypes = { extensionManager: PropTypes.object, servicesManager: PropTypes.object, hotkeysManager: PropTypes.object, + commandsManager: PropTypes.object, }; diff --git a/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts b/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts index c2c987c31..7c20251a3 100644 --- a/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts +++ b/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts @@ -214,6 +214,32 @@ export default class HangingProtocolService extends PubSubService { }; } + /** + * Filters the series required for running a hanging protocol. + * + * This can be extended in the future with more complex selection rules e.g. + * N series of a given type, and M of a different type, such as all CT series, + * and all SR, and then everything else. + * + * @param protocolId - The ID of the hanging protocol. + * @param seriesPromises - An array of promises representing the series. + * @returns An object containing the required series and the remaining series. + */ + public filterSeriesRequiredForRun(protocolId, seriesPromises) { + if (Array.isArray(protocolId)) { + protocolId = protocolId[0]; + } + const minSeriesLoadedToRunHP = + this.getProtocolById(protocolId)?.hpInitiationCriteria?.minSeriesLoaded || + seriesPromises.length; + const requiredSeries = seriesPromises.slice(0, minSeriesLoadedToRunHP); + const remaining = seriesPromises.slice(minSeriesLoadedToRunHP); + return { + requiredSeries, + remaining, + }; + } + /** Gets the protocol with id 'default' */ public getDefaultProtocol(): HangingProtocol.Protocol { return this.getProtocolById('default'); @@ -543,8 +569,8 @@ export default class HangingProtocolService extends PubSubService { viewportId: existingViewportId ? existingViewportId : index === 0 - ? 'default' - : uuidv4(), + ? 'default' + : uuidv4(), }, displaySets: viewport.displaySets || [], }; diff --git a/platform/core/src/types/HangingProtocol.ts b/platform/core/src/types/HangingProtocol.ts index 8059b5675..0e23b1d2e 100644 --- a/platform/core/src/types/HangingProtocol.ts +++ b/platform/core/src/types/HangingProtocol.ts @@ -293,6 +293,17 @@ export type Protocol = { */ numberOfPriorsReferenced?: number; syncDataForViewports?: boolean; + /** + * Set of minimal conditions necessary to run the hanging protocol. + */ + hpInitiationCriteria?: { + /* If configured, sets the minimum number of series needed to run the hanging + * protocol and start displaying images. Used when OHIF needs to handle studies + * with several series and it is required that the first image should be loaded + * faster. + */ + minSeriesLoaded: number; + }; }; /** Used to dynamically generate protocols. From 9100b1f02e548dd5f92d10d74e490d020803fdfb Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 9 Jan 2024 19:31:10 +0000 Subject: [PATCH 142/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index f1d522ac8..bf08e168e 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -1456a493d66c90c787b022256c9f2846afb115fc \ No newline at end of file +0049f4c0303f0b6ea995972326fc8784259f5a47 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 4d2dfcf4b..f73346c8b 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/i18n": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/i18n": "3.8.0-beta.45", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index e5b7c89e9..61194b5cc 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/i18n": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/i18n": "3.8.0-beta.45", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d3d050fd6..c1ce91ce3 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-measurement-tracking": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-measurement-tracking": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 4532aede5..27f290e16 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/core": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 44aced6e5..e2025f59f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/i18n": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/i18n": "3.8.0-beta.45", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index a5caa3eac..63ceec28a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/i18n": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/i18n": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index fb7333bfe..7f717013e 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 6bb062c81..88bba054c 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 984350254..6886461fa 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.43.7", "@cornerstonejs/tools": "^1.43.7", - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 83cd77ac0..feebb5dc1 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index a8dc812e5..2a2dacc00 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index f7927f4ac..8028eb422 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/extension-dicom-pdf": "3.8.0-beta.44", - "@ohif/extension-dicom-video": "3.8.0-beta.44" + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/extension-dicom-pdf": "3.8.0-beta.45", + "@ohif/extension-dicom-video": "3.8.0-beta.45" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index a42511b5e..e960efe4e 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/extension-dicom-pdf": "3.8.0-beta.44", - "@ohif/extension-dicom-video": "3.8.0-beta.44", - "@ohif/extension-measurement-tracking": "3.8.0-beta.44", - "@ohif/extension-test": "3.8.0-beta.44" + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/extension-dicom-pdf": "3.8.0-beta.45", + "@ohif/extension-dicom-video": "3.8.0-beta.45", + "@ohif/extension-measurement-tracking": "3.8.0-beta.45", + "@ohif/extension-test": "3.8.0-beta.45" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e3e60630a..888e50843 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/extension-dicom-pdf": "3.8.0-beta.44", - "@ohif/extension-dicom-video": "3.8.0-beta.44", - "@ohif/extension-measurement-tracking": "3.8.0-beta.44" + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/extension-dicom-pdf": "3.8.0-beta.45", + "@ohif/extension-dicom-video": "3.8.0-beta.45", + "@ohif/extension-measurement-tracking": "3.8.0-beta.45" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 896c00ff0..d824c5a98 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.44" + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.45" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 662353a41..159c42e64 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44" + "@ohif/core": "3.8.0-beta.45" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 13b3a74b1..52d439848 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/extension-dicom-pdf": "3.8.0-beta.44", - "@ohif/extension-dicom-video": "3.8.0-beta.44", - "@ohif/extension-measurement-tracking": "3.8.0-beta.44" + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/extension-dicom-pdf": "3.8.0-beta.45", + "@ohif/extension-dicom-video": "3.8.0-beta.45", + "@ohif/extension-measurement-tracking": "3.8.0-beta.45" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index c6d48c7bb..340af1091 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.45", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index abaf60b33..ad3f8f90c 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.44", - "commit": "1456a493d66c90c787b022256c9f2846afb115fc" + "version": "3.8.0-beta.45", + "commit": "0049f4c0303f0b6ea995972326fc8784259f5a47" } \ No newline at end of file diff --git a/version.txt b/version.txt index 5222548c9..3ed230073 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.44 \ No newline at end of file +3.8.0-beta.45 \ No newline at end of file From 710a2dca722ddf0290cdd2f38856f91e88aea9b5 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 9 Jan 2024 19:31:20 +0000 Subject: [PATCH 143/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 248 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12a59adfa..090c4976a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + + +### Features + +* **hp:** enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol ([#3804](https://github.com/OHIF/Viewers/issues/3804)) ([0049f4c](https://github.com/OHIF/Viewers/commit/0049f4c0303f0b6ea995972326fc8784259f5a47)) + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index c9707ac0e..3f0d87aed 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index f73346c8b..c0d3e427c 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 79b4635a2..8cc2eab59 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 61194b5cc..a19caa144 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index e9568dc44..2b78296c9 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c1ce91ce3..b7859ac6b 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 10c60d446..ae1a4d827 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 27f290e16..df58f6314 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 6327203f6..069f37a6c 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + + +### Features + +* **hp:** enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol ([#3804](https://github.com/OHIF/Viewers/issues/3804)) ([0049f4c](https://github.com/OHIF/Viewers/commit/0049f4c0303f0b6ea995972326fc8784259f5a47)) + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index e2025f59f..05f20f6bb 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 91ce30251..a65430ff9 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 63ceec28a..948d9f111 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 9be6eafb0..19e6bba48 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7f717013e..33fcaa503 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 567ac7df0..2e2718fde 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 88bba054c..7860828cd 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index b3f1cb7c1..4b5d5ccd1 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + + +### Features + +* **hp:** enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol ([#3804](https://github.com/OHIF/Viewers/issues/3804)) ([0049f4c](https://github.com/OHIF/Viewers/commit/0049f4c0303f0b6ea995972326fc8784259f5a47)) + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6886461fa..d6fa59655 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/ui": "3.8.0-beta.45", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 44dfa8478..9217cdc4e 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index feebb5dc1..246017cc6 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 165969a7b..38be551bb 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2a2dacc00..1654b668b 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index aa7cd1544..54cbf1706 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 17c446cc6..40873892c 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 8028eb422..01033e0f1 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 36e7418c9..6aa9ed01b 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index e960efe4e..8e0bd4730 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 1965e7d19..ed5dca601 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 888e50843..7a618f0ad 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 46bd4a78b..94d4d4083 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index d824c5a98..62a17626a 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index a8b4d1796..defbeb886 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 159c42e64..ffb4fba3f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 78b61bc94..3f43374ad 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 52d439848..cf705996b 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index a978b724e..88d83cfee 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + + +### Features + +* **hp:** enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol ([#3804](https://github.com/OHIF/Viewers/issues/3804)) ([0049f4c](https://github.com/OHIF/Viewers/commit/0049f4c0303f0b6ea995972326fc8784259f5a47)) + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) diff --git a/platform/app/package.json b/platform/app/package.json index 66b728a6d..c105796d2 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.43.7", - "@ohif/core": "3.8.0-beta.44", - "@ohif/extension-cornerstone": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.44", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.44", - "@ohif/extension-default": "3.8.0-beta.44", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.44", - "@ohif/extension-dicom-pdf": "3.8.0-beta.44", - "@ohif/extension-dicom-video": "3.8.0-beta.44", - "@ohif/extension-test": "3.8.0-beta.44", - "@ohif/i18n": "3.8.0-beta.44", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.44", - "@ohif/mode-longitudinal": "3.8.0-beta.44", - "@ohif/mode-microscopy": "3.8.0-beta.44", - "@ohif/mode-test": "3.8.0-beta.44", - "@ohif/ui": "3.8.0-beta.44", + "@ohif/core": "3.8.0-beta.45", + "@ohif/extension-cornerstone": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.45", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", + "@ohif/extension-default": "3.8.0-beta.45", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.45", + "@ohif/extension-dicom-pdf": "3.8.0-beta.45", + "@ohif/extension-dicom-video": "3.8.0-beta.45", + "@ohif/extension-test": "3.8.0-beta.45", + "@ohif/i18n": "3.8.0-beta.45", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.45", + "@ohif/mode-longitudinal": "3.8.0-beta.45", + "@ohif/mode-microscopy": "3.8.0-beta.45", + "@ohif/mode-test": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.45", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 353159818..8a7308a13 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index adf0de62b..86c085d09 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 52fb146b0..386d25d6b 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + + +### Features + +* **hp:** enable OHIF to run with partial metadata for large studies at the cost of less effective hanging protocol ([#3804](https://github.com/OHIF/Viewers/issues/3804)) ([0049f4c](https://github.com/OHIF/Viewers/commit/0049f4c0303f0b6ea995972326fc8784259f5a47)) + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) diff --git a/platform/core/package.json b/platform/core/package.json index 340af1091..be65e0ce8 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index a5786a6c5..e27bb79a1 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) diff --git a/platform/docs/package.json b/platform/docs/package.json index 3eafe94c0..5cd200070 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index b04fb2b87..f1cd123b7 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 41d240cbc..0f53f9153 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 58e3f942e..c2f712c38 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.44](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.43...v3.8.0-beta.44) (2024-01-09) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 55b25c553..0d46112bd 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.44", + "version": "3.8.0-beta.45", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From d00a86b022742ea089d246d06cfd691f43b64412 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Fri, 12 Jan 2024 08:48:15 -0500 Subject: [PATCH 144/289] fix: Update CS3D to fix second render (#3892) --- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +-- extensions/cornerstone/package.json | 10 ++-- extensions/measurement-tracking/package.json | 4 +- platform/app/package.json | 2 +- platform/core/package.json | 2 +- yarn.lock | 46 +++++++++---------- 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a19caa144..2effd4d83 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -44,8 +44,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.43.7", - "@cornerstonejs/tools": "^1.43.7", + "@cornerstonejs/adapters": "^1.44.1", + "@cornerstonejs/tools": "^1.44.1", "@kitware/vtk.js": "29.3.0", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index b7859ac6b..abefa51d7 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -44,9 +44,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.43.7", - "@cornerstonejs/core": "^1.43.7", - "@cornerstonejs/tools": "^1.43.7", + "@cornerstonejs/adapters": "^1.44.1", + "@cornerstonejs/core": "^1.44.1", + "@cornerstonejs/tools": "^1.44.1", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index df58f6314..aa7c4236e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.43.7", + "@cornerstonejs/dicom-image-loader": "^1.44.1", "@ohif/core": "3.8.0-beta.45", "@ohif/ui": "3.8.0-beta.45", "dcmjs": "^0.29.12", @@ -52,10 +52,10 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.43.7", - "@cornerstonejs/core": "^1.43.7", - "@cornerstonejs/streaming-image-volume-loader": "^1.43.7", - "@cornerstonejs/tools": "^1.43.7", + "@cornerstonejs/adapters": "^1.44.1", + "@cornerstonejs/core": "^1.44.1", + "@cornerstonejs/streaming-image-volume-loader": "^1.44.1", + "@cornerstonejs/tools": "^1.44.1", "@kitware/vtk.js": "29.3.01", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index d6fa59655..2595da79b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.43.7", - "@cornerstonejs/tools": "^1.43.7", + "@cornerstonejs/core": "^1.44.1", + "@cornerstonejs/tools": "^1.44.1", "@ohif/core": "3.8.0-beta.45", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", "@ohif/ui": "3.8.0-beta.45", diff --git a/platform/app/package.json b/platform/app/package.json index c105796d2..a516bed4c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -51,7 +51,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.43.7", + "@cornerstonejs/dicom-image-loader": "^1.44.1", "@ohif/core": "3.8.0-beta.45", "@ohif/extension-cornerstone": "3.8.0-beta.45", "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.45", diff --git a/platform/core/package.json b/platform/core/package.json index be65e0ce8..fadeba313 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -35,7 +35,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.43.7", + "@cornerstonejs/dicom-image-loader": "^1.44.1", "@ohif/ui": "3.8.0-beta.45", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/yarn.lock b/yarn.lock index 6fb798c06..126ead441 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1450,10 +1450,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.43.7": - version "1.43.7" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.43.7.tgz#920344cd6548cfa26ebe05db01ea94ef9121dc5e" - integrity sha512-X6tQDcT9PeXXrmEoDaCb/hHjWEk+h7svz4XRfCWJKqbTRNmpTWmr70KY2lMRMm/FVPC+Ix2KdHStBN2/9zLDsg== +"@cornerstonejs/adapters@^1.44.1": + version "1.44.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.44.3.tgz#1354e2f47fb9a543e1437df3f1430c9e96a1bca5" + integrity sha512-cFw4ph1rPjgCtfLb7Kxfy9RRoLmNVBQTtp2N5ke0HmX0Sw22fka9Nv19nokKcQ5VGSKi/2j3h13a4Ldr8GUwJg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1502,10 +1502,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.43.7": - version "1.43.7" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.43.7.tgz#6da8c3598fc79b99357f1bc039b385447179ab67" - integrity sha512-36jYRnIxIGHyEL2pngpHiLX3HQINXabzi8P8K6BMf7HcWv9sgbWwmglUv71+gCo2my3Ai+vDUWrpoGIrmu+RGA== +"@cornerstonejs/core@^1.44.1", "@cornerstonejs/core@^1.44.3": + version "1.44.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.44.3.tgz#50ed86a69c71b92723f2f4f9a5440737e42eda58" + integrity sha512-aQXQ9G7abPSRTtjdKK6onA/ueaimt53PvFtLpqnpW01LC/tSuuVD2uKgldJh7GmuPzJwb0JBHqz+xC8KPoRCKA== dependencies: "@kitware/vtk.js" "29.3.0" comlink "^4.4.1" @@ -1513,34 +1513,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.43.7": - version "1.43.7" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.43.7.tgz#76b013815f7c5688604f76c7473a292397ad31ad" - integrity sha512-9wvXOx0S4TgIU+2SdYJUnGjv5yM4ylVJWt2q1q6yV6FuCEyhd1NB6cvAJSF61DlqWwS3oSiQRqU6wRf7wh73Jw== +"@cornerstonejs/dicom-image-loader@^1.44.1": + version "1.44.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.44.3.tgz#7e503d422cd94c5cba0d9ab7ee53815630dbf469" + integrity sha512-mOE7tgWD2x70ekuwUoHXqa5a5DZTrme1/CgcdUmrKwR4290rXMlhSloFTPTGVMhqqr5GhVyeM/3BaUJWstsoyw== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.43.7" + "@cornerstonejs/core" "^1.44.3" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.43.7": - version "1.43.7" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.43.7.tgz#972f675bd6de81cb6e65d495f0243013c17062bf" - integrity sha512-0FmGeLzFub4TSLhhxq8fDRAj20UF2C7lM9EA4UvEc/iR/B65ly9lGiMONB58Wodl9HamHHkmr4moD1Sjn3sfBg== +"@cornerstonejs/streaming-image-volume-loader@^1.44.1": + version "1.44.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.44.3.tgz#420ceb87b277ce729bfbb7e873162d72d124f468" + integrity sha512-B9s4zD6ll57NV4p7W5hdkcOXufqE6VlEyqrhlL5YN89awBEuCM7ppvqWJmcR9gKoInU9R4gMzfAHiq+LsIeFHA== dependencies: - "@cornerstonejs/core" "^1.43.7" + "@cornerstonejs/core" "^1.44.3" comlink "^4.4.1" -"@cornerstonejs/tools@^1.43.7": - version "1.43.7" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.43.7.tgz#70c3e75636bde19f6fa7d9c86ef61ececf8a2b9c" - integrity sha512-4yhWGeNsSF2F06T6sGLjARX7F7atUwUNv5qnMqFVZ7b/TfQbpdB8zkXHA0Rhz/YB3ebr/zWvRxDtzah+5VMxnQ== +"@cornerstonejs/tools@^1.44.1": + version "1.44.3" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.44.3.tgz#c345666c00fb14fb04d150c7b0200c202f2b32e9" + integrity sha512-LBueaPWPKQIXVsIGJJIhKcL5XegMDUamSokCny4JqwfaNLr7rhQqn48BoZUc1GwjolfYqFbSAVilHYrPOINzVQ== dependencies: - "@cornerstonejs/core" "^1.43.7" + "@cornerstonejs/core" "^1.44.3" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" From 5a62a983e545b27890621a4d4dbac86f11c3d767 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 12 Jan 2024 13:57:58 +0000 Subject: [PATCH 145/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index bf08e168e..413cdf4d5 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -0049f4c0303f0b6ea995972326fc8784259f5a47 \ No newline at end of file +d00a86b022742ea089d246d06cfd691f43b64412 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index c0d3e427c..9d6da4850 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/i18n": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/i18n": "3.8.0-beta.46", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 2effd4d83..42f64b57a 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/i18n": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/i18n": "3.8.0-beta.46", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index abefa51d7..a8a29c27c 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-measurement-tracking": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-measurement-tracking": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index aa7c4236e..0cbc31365 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 05f20f6bb..f12016d6c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/i18n": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/i18n": "3.8.0-beta.46", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 948d9f111..9c2159090 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/i18n": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/i18n": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 33fcaa503..677e84efa 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 7860828cd..0813a3a60 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 2595da79b..6b3b914f1 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 246017cc6..af201be8d 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 1654b668b..fb4d99d2b 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 01033e0f1..6af627624 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/extension-dicom-pdf": "3.8.0-beta.45", - "@ohif/extension-dicom-video": "3.8.0-beta.45" + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/extension-dicom-pdf": "3.8.0-beta.46", + "@ohif/extension-dicom-video": "3.8.0-beta.46" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 8e0bd4730..6621f2d59 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/extension-dicom-pdf": "3.8.0-beta.45", - "@ohif/extension-dicom-video": "3.8.0-beta.45", - "@ohif/extension-measurement-tracking": "3.8.0-beta.45", - "@ohif/extension-test": "3.8.0-beta.45" + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/extension-dicom-pdf": "3.8.0-beta.46", + "@ohif/extension-dicom-video": "3.8.0-beta.46", + "@ohif/extension-measurement-tracking": "3.8.0-beta.46", + "@ohif/extension-test": "3.8.0-beta.46" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7a618f0ad..f516d6e77 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/extension-dicom-pdf": "3.8.0-beta.45", - "@ohif/extension-dicom-video": "3.8.0-beta.45", - "@ohif/extension-measurement-tracking": "3.8.0-beta.45" + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/extension-dicom-pdf": "3.8.0-beta.46", + "@ohif/extension-dicom-video": "3.8.0-beta.46", + "@ohif/extension-measurement-tracking": "3.8.0-beta.46" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 62a17626a..42a9158db 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.45" + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.46" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index ffb4fba3f..3a7947e9f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45" + "@ohif/core": "3.8.0-beta.46" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index cf705996b..d0ec9b172 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/extension-dicom-pdf": "3.8.0-beta.45", - "@ohif/extension-dicom-video": "3.8.0-beta.45", - "@ohif/extension-measurement-tracking": "3.8.0-beta.45" + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/extension-dicom-pdf": "3.8.0-beta.46", + "@ohif/extension-dicom-video": "3.8.0-beta.46", + "@ohif/extension-measurement-tracking": "3.8.0-beta.46" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index fadeba313..09abe6e44 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.46", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index ad3f8f90c..75d6de872 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.45", - "commit": "0049f4c0303f0b6ea995972326fc8784259f5a47" + "version": "3.8.0-beta.46", + "commit": "d00a86b022742ea089d246d06cfd691f43b64412" } \ No newline at end of file diff --git a/version.txt b/version.txt index 3ed230073..00c2fa5f5 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.45 \ No newline at end of file +3.8.0-beta.46 \ No newline at end of file From 83a15234081abf3eddd856aed8cee87bb1f066ec Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 12 Jan 2024 13:58:08 +0000 Subject: [PATCH 146/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 254 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 090c4976a..73ddf0f58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 3f0d87aed..d906174d3 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9d6da4850..072b57bca 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 8cc2eab59..9450e8eca 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 42f64b57a..89faee92c 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 2b78296c9..7850620db 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index a8a29c27c..db531c2d2 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index ae1a4d827..ccf242bee 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 0cbc31365..97eb93326 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 069f37a6c..7a5bcdf8d 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) diff --git a/extensions/default/package.json b/extensions/default/package.json index f12016d6c..93772722b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index a65430ff9..c66649771 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 9c2159090..1b054e2ba 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 19e6bba48..6dd1e09f2 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 677e84efa..a1c09a9df 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 2e2718fde..63124f2d2 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 0813a3a60..40291b150 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 4b5d5ccd1..9a07fe4e4 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6b3b914f1..b60ae98b0 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/ui": "3.8.0-beta.46", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 9217cdc4e..ad0bcfe11 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index af201be8d..fd9f05692 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 38be551bb..e21b0e006 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index fb4d99d2b..403ba7417 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 54cbf1706..547053dec 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 40873892c..62bc77690 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 6af627624..d0487e53e 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 6aa9ed01b..c0730e26e 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 6621f2d59..e00d39119 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index ed5dca601..e1118ebf3 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index f516d6e77..1f17cdb9f 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 94d4d4083..410c2ee31 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 42a9158db..294ef45f4 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index defbeb886..5d6ce5135 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 3a7947e9f..ccc58c3bd 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 3f43374ad..2cc64cf56 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index d0ec9b172..8ce1e3cc9 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 88d83cfee..e682be91f 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) diff --git a/platform/app/package.json b/platform/app/package.json index a516bed4c..bc3fb15ef 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.45", - "@ohif/extension-cornerstone": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.45", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.45", - "@ohif/extension-default": "3.8.0-beta.45", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.45", - "@ohif/extension-dicom-pdf": "3.8.0-beta.45", - "@ohif/extension-dicom-video": "3.8.0-beta.45", - "@ohif/extension-test": "3.8.0-beta.45", - "@ohif/i18n": "3.8.0-beta.45", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.45", - "@ohif/mode-longitudinal": "3.8.0-beta.45", - "@ohif/mode-microscopy": "3.8.0-beta.45", - "@ohif/mode-test": "3.8.0-beta.45", - "@ohif/ui": "3.8.0-beta.45", + "@ohif/core": "3.8.0-beta.46", + "@ohif/extension-cornerstone": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.46", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", + "@ohif/extension-default": "3.8.0-beta.46", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.46", + "@ohif/extension-dicom-pdf": "3.8.0-beta.46", + "@ohif/extension-dicom-video": "3.8.0-beta.46", + "@ohif/extension-test": "3.8.0-beta.46", + "@ohif/i18n": "3.8.0-beta.46", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.46", + "@ohif/mode-longitudinal": "3.8.0-beta.46", + "@ohif/mode-microscopy": "3.8.0-beta.46", + "@ohif/mode-test": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.46", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8a7308a13..2a7c67be3 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 86c085d09..3775758c7 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 386d25d6b..78af0bddc 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + + +### Bug Fixes + +* Update CS3D to fix second render ([#3892](https://github.com/OHIF/Viewers/issues/3892)) ([d00a86b](https://github.com/OHIF/Viewers/commit/d00a86b022742ea089d246d06cfd691f43b64412)) + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) diff --git a/platform/core/package.json b/platform/core/package.json index 09abe6e44..6083aafc1 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index e27bb79a1..e2f4356e3 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 5cd200070..bb9de19fe 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index f1cd123b7..ae5485515 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 0f53f9153..d2b7975bb 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index c2f712c38..7086417c3 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.45](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.44...v3.8.0-beta.45) (2024-01-09) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 0d46112bd..3538ec17e 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.45", + "version": "3.8.0-beta.46", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From df2f50748e98283db458b0cb2fb20931d536b161 Mon Sep 17 00:00:00 2001 From: AbishekBista9 <133620692+AbishekBista9@users.noreply.github.com> Date: Fri, 12 Jan 2024 21:45:17 +0545 Subject: [PATCH 147/289] docs: Update architecture.md (#3891) --- platform/docs/docs/development/architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/docs/docs/development/architecture.md b/platform/docs/docs/development/architecture.md index e3760240d..4ac056194 100644 --- a/platform/docs/docs/development/architecture.md +++ b/platform/docs/docs/development/architecture.md @@ -40,7 +40,7 @@ you'll see the following: │ ├── core # Business Logic │ ├── i18n # Internationalization Support │ ├── ui # React component library -│ └── viewer # Connects platform and extension projects +│ └── app # Connects platform and extension projects │ ├── ... # misc. shared configuration ├── lerna.json # MonoRepo (Lerna) settings From 144dd3939340919db47470c600052adc1218a790 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 12 Jan 2024 16:09:58 +0000 Subject: [PATCH 148/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 413cdf4d5..3b8694d14 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -d00a86b022742ea089d246d06cfd691f43b64412 \ No newline at end of file +df2f50748e98283db458b0cb2fb20931d536b161 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 072b57bca..cfa133d5a 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/i18n": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/i18n": "3.8.0-beta.47", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 89faee92c..834e5617a 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/i18n": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/i18n": "3.8.0-beta.47", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index db531c2d2..6f580be07 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-measurement-tracking": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-measurement-tracking": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 97eb93326..158bcbd80 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 93772722b..0f3bfe04e 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/i18n": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/i18n": "3.8.0-beta.47", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 1b054e2ba..82c8f30c6 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/i18n": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/i18n": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index a1c09a9df..27001c2ae 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 40291b150..b5dcf04af 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b60ae98b0..81d0ac961 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index fd9f05692..8ed654139 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 403ba7417..7d23bd8d4 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d0487e53e..56cc70b5f 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/extension-dicom-pdf": "3.8.0-beta.46", - "@ohif/extension-dicom-video": "3.8.0-beta.46" + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/extension-dicom-pdf": "3.8.0-beta.47", + "@ohif/extension-dicom-video": "3.8.0-beta.47" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index e00d39119..df5ee2e6d 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/extension-dicom-pdf": "3.8.0-beta.46", - "@ohif/extension-dicom-video": "3.8.0-beta.46", - "@ohif/extension-measurement-tracking": "3.8.0-beta.46", - "@ohif/extension-test": "3.8.0-beta.46" + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/extension-dicom-pdf": "3.8.0-beta.47", + "@ohif/extension-dicom-video": "3.8.0-beta.47", + "@ohif/extension-measurement-tracking": "3.8.0-beta.47", + "@ohif/extension-test": "3.8.0-beta.47" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 1f17cdb9f..c9d8ee123 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/extension-dicom-pdf": "3.8.0-beta.46", - "@ohif/extension-dicom-video": "3.8.0-beta.46", - "@ohif/extension-measurement-tracking": "3.8.0-beta.46" + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/extension-dicom-pdf": "3.8.0-beta.47", + "@ohif/extension-dicom-video": "3.8.0-beta.47", + "@ohif/extension-measurement-tracking": "3.8.0-beta.47" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 294ef45f4..9f53636dd 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.46" + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.47" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index ccc58c3bd..52148b9fb 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46" + "@ohif/core": "3.8.0-beta.47" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 8ce1e3cc9..ff3ab7a3f 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/extension-dicom-pdf": "3.8.0-beta.46", - "@ohif/extension-dicom-video": "3.8.0-beta.46", - "@ohif/extension-measurement-tracking": "3.8.0-beta.46" + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/extension-dicom-pdf": "3.8.0-beta.47", + "@ohif/extension-dicom-video": "3.8.0-beta.47", + "@ohif/extension-measurement-tracking": "3.8.0-beta.47" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 6083aafc1..2123816b7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.47", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 75d6de872..d437bcf89 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.46", - "commit": "d00a86b022742ea089d246d06cfd691f43b64412" + "version": "3.8.0-beta.47", + "commit": "df2f50748e98283db458b0cb2fb20931d536b161" } \ No newline at end of file diff --git a/version.txt b/version.txt index 00c2fa5f5..87ce98aaf 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.46 \ No newline at end of file +3.8.0-beta.47 \ No newline at end of file From 9c553fded431b22a0704e0b58375707f41608a8f Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 12 Jan 2024 16:10:06 +0000 Subject: [PATCH 149/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73ddf0f58..23f31ebc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index d906174d3..200aa5564 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index cfa133d5a..507bc537a 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 9450e8eca..6305ae0e9 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 834e5617a..89f19a0f1 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 7850620db..b2cacf15b 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 6f580be07..bacb0e049 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index ccf242bee..25d9966e2 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 158bcbd80..28088b328 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 7a5bcdf8d..c2ef5c514 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 0f3bfe04e..225299f3f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index c66649771..c4e4aa118 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 82c8f30c6..117dd0364 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 6dd1e09f2..efff38dd9 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 27001c2ae..2c7ec4de6 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 63124f2d2..c60ce2377 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index b5dcf04af..05f390999 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 9a07fe4e4..2c1052df3 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 81d0ac961..b7459cb0e 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/ui": "3.8.0-beta.47", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index ad0bcfe11..788e36bc5 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 8ed654139..0f5c1028c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index e21b0e006..3c472e062 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 7d23bd8d4..6255684fc 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 547053dec..a6c5f5f3c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 62bc77690..6d0367bd7 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 56cc70b5f..41a598a84 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index c0730e26e..155ad3182 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index df5ee2e6d..ea43d3238 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index e1118ebf3..e33098bf4 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index c9d8ee123..7656a1cbd 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 410c2ee31..0718d861c 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 9f53636dd..8a83d464a 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 5d6ce5135..18dfde3e8 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 52148b9fb..998849a99 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 2cc64cf56..32a9aeb40 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index ff3ab7a3f..0145921f2 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index e682be91f..ad49b2845 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/platform/app/package.json b/platform/app/package.json index bc3fb15ef..dcad7e1f0 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.46", - "@ohif/extension-cornerstone": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.46", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.46", - "@ohif/extension-default": "3.8.0-beta.46", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.46", - "@ohif/extension-dicom-pdf": "3.8.0-beta.46", - "@ohif/extension-dicom-video": "3.8.0-beta.46", - "@ohif/extension-test": "3.8.0-beta.46", - "@ohif/i18n": "3.8.0-beta.46", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.46", - "@ohif/mode-longitudinal": "3.8.0-beta.46", - "@ohif/mode-microscopy": "3.8.0-beta.46", - "@ohif/mode-test": "3.8.0-beta.46", - "@ohif/ui": "3.8.0-beta.46", + "@ohif/core": "3.8.0-beta.47", + "@ohif/extension-cornerstone": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.47", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", + "@ohif/extension-default": "3.8.0-beta.47", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.47", + "@ohif/extension-dicom-pdf": "3.8.0-beta.47", + "@ohif/extension-dicom-video": "3.8.0-beta.47", + "@ohif/extension-test": "3.8.0-beta.47", + "@ohif/i18n": "3.8.0-beta.47", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.47", + "@ohif/mode-longitudinal": "3.8.0-beta.47", + "@ohif/mode-microscopy": "3.8.0-beta.47", + "@ohif/mode-test": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.47", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 2a7c67be3..e1dc0502e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 3775758c7..65de60023 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 78af0bddc..f4f525ca2 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) diff --git a/platform/core/package.json b/platform/core/package.json index 2123816b7..c344cfcd5 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index e2f4356e3..a6a411b64 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index bb9de19fe..07db7846d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index ae5485515..7e28dbcf7 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index d2b7975bb..5daaf89ca 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 7086417c3..c40e69f2e 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.46](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.45...v3.8.0-beta.46) (2024-01-12) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 3538ec17e..973cb20a3 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.46", + "version": "3.8.0-beta.47", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 911d67283536b2fe7930948f2819ea0ad66e2a32 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Wed, 17 Jan 2024 12:51:49 -0300 Subject: [PATCH 150/289] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Check=20merge=20k?= =?UTF-8?q?ey=20for=20merge=20data=20source=20(#3901)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/default/src/MergeDataSource/index.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/extensions/default/src/MergeDataSource/index.ts b/extensions/default/src/MergeDataSource/index.ts index 1c14069b6..9db282e82 100644 --- a/extensions/default/src/MergeDataSource/index.ts +++ b/extensions/default/src/MergeDataSource/index.ts @@ -60,7 +60,14 @@ export const callForAllDataSourcesAsync = async ({ await Promise.allSettled(promises); - return uniqBy(mergedData.flat(), obj => obj[mergeKey]); + let results = []; + if (mergeKey) { + results = uniqBy(mergedData.flat(), obj => get(obj, mergeKey)); + } else { + results = mergedData.flat(); + } + + return results; }; /** From 40bbe33a9d68f99a3adb4ff21c0c9c4d35f59fa7 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 17 Jan 2024 16:01:24 +0000 Subject: [PATCH 151/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 3b8694d14..a239d26de 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -df2f50748e98283db458b0cb2fb20931d536b161 \ No newline at end of file +911d67283536b2fe7930948f2819ea0ad66e2a32 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 507bc537a..5e7cac307 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/i18n": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/i18n": "3.8.0-beta.48", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 89f19a0f1..a5d8f856d 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/i18n": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/i18n": "3.8.0-beta.48", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index bacb0e049..1e643d442 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-measurement-tracking": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-measurement-tracking": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 28088b328..9e51dc466 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 225299f3f..8d089841b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/i18n": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/i18n": "3.8.0-beta.48", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 117dd0364..d1154bed5 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/i18n": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/i18n": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 2c7ec4de6..b6f7959d0 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 05f390999..4ad0fcb98 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b7459cb0e..28aff9279 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 0f5c1028c..7f2e48f97 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 6255684fc..fc1e46be4 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 41a598a84..7ba5a63e3 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/extension-dicom-pdf": "3.8.0-beta.47", - "@ohif/extension-dicom-video": "3.8.0-beta.47" + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/extension-dicom-pdf": "3.8.0-beta.48", + "@ohif/extension-dicom-video": "3.8.0-beta.48" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index ea43d3238..fba6d4841 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/extension-dicom-pdf": "3.8.0-beta.47", - "@ohif/extension-dicom-video": "3.8.0-beta.47", - "@ohif/extension-measurement-tracking": "3.8.0-beta.47", - "@ohif/extension-test": "3.8.0-beta.47" + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/extension-dicom-pdf": "3.8.0-beta.48", + "@ohif/extension-dicom-video": "3.8.0-beta.48", + "@ohif/extension-measurement-tracking": "3.8.0-beta.48", + "@ohif/extension-test": "3.8.0-beta.48" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7656a1cbd..bca097883 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/extension-dicom-pdf": "3.8.0-beta.47", - "@ohif/extension-dicom-video": "3.8.0-beta.47", - "@ohif/extension-measurement-tracking": "3.8.0-beta.47" + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/extension-dicom-pdf": "3.8.0-beta.48", + "@ohif/extension-dicom-video": "3.8.0-beta.48", + "@ohif/extension-measurement-tracking": "3.8.0-beta.48" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 8a83d464a..6805a033b 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.47" + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.48" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 998849a99..5ec50c8aa 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47" + "@ohif/core": "3.8.0-beta.48" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 0145921f2..7093e6c4e 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/extension-dicom-pdf": "3.8.0-beta.47", - "@ohif/extension-dicom-video": "3.8.0-beta.47", - "@ohif/extension-measurement-tracking": "3.8.0-beta.47" + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/extension-dicom-pdf": "3.8.0-beta.48", + "@ohif/extension-dicom-video": "3.8.0-beta.48", + "@ohif/extension-measurement-tracking": "3.8.0-beta.48" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index c344cfcd5..39691d70c 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.48", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index d437bcf89..3684ed995 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.47", - "commit": "df2f50748e98283db458b0cb2fb20931d536b161" + "version": "3.8.0-beta.48", + "commit": "911d67283536b2fe7930948f2819ea0ad66e2a32" } \ No newline at end of file diff --git a/version.txt b/version.txt index 87ce98aaf..fc076cc60 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.47 \ No newline at end of file +3.8.0-beta.48 \ No newline at end of file From 9bb00d71faf49edd91a346b1cf00578494e1cc18 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 17 Jan 2024 16:01:31 +0000 Subject: [PATCH 152/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23f31ebc6..b523a0343 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + + +### Bug Fixes + +* 🐛 Check merge key for merge data source ([#3901](https://github.com/OHIF/Viewers/issues/3901)) ([911d672](https://github.com/OHIF/Viewers/commit/911d67283536b2fe7930948f2819ea0ad66e2a32)) + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 200aa5564..48378741c 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 5e7cac307..ca15b7118 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 6305ae0e9..ea88920fc 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a5d8f856d..6380bb530 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index b2cacf15b..6da1f1dc8 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 1e643d442..5383401b7 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 25d9966e2..9ad1d7c80 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9e51dc466..1f59e6c17 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index c2ef5c514..0db2d0a7b 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + + +### Bug Fixes + +* 🐛 Check merge key for merge data source ([#3901](https://github.com/OHIF/Viewers/issues/3901)) ([911d672](https://github.com/OHIF/Viewers/commit/911d67283536b2fe7930948f2819ea0ad66e2a32)) + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 8d089841b..868ae44e1 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index c4e4aa118..83435ce0d 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index d1154bed5..f149a28f4 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index efff38dd9..62b739c21 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index b6f7959d0..fc9916d59 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index c60ce2377..f7e630cdd 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 4ad0fcb98..77cedd132 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 2c1052df3..ac8f3469d 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 28aff9279..095f0ff46 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/ui": "3.8.0-beta.48", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 788e36bc5..07162cdf4 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 7f2e48f97..f9864a615 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 3c472e062..b075cb608 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index fc1e46be4..b2e984295 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index a6c5f5f3c..65eb9b1e3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 6d0367bd7..2ceda43b1 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 7ba5a63e3..d782664c0 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 155ad3182..3a478c494 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index fba6d4841..af18dfe58 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index e33098bf4..f34da735c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index bca097883..699f61341 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 0718d861c..cbcabcb24 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 6805a033b..fd2d6138d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 18dfde3e8..33d246edd 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 5ec50c8aa..7c158e576 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 32a9aeb40..242c6b2e4 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 7093e6c4e..f313a3f4c 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index ad49b2845..b656db064 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index dcad7e1f0..b6524fdb7 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.47", - "@ohif/extension-cornerstone": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.47", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.47", - "@ohif/extension-default": "3.8.0-beta.47", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.47", - "@ohif/extension-dicom-pdf": "3.8.0-beta.47", - "@ohif/extension-dicom-video": "3.8.0-beta.47", - "@ohif/extension-test": "3.8.0-beta.47", - "@ohif/i18n": "3.8.0-beta.47", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.47", - "@ohif/mode-longitudinal": "3.8.0-beta.47", - "@ohif/mode-microscopy": "3.8.0-beta.47", - "@ohif/mode-test": "3.8.0-beta.47", - "@ohif/ui": "3.8.0-beta.47", + "@ohif/core": "3.8.0-beta.48", + "@ohif/extension-cornerstone": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.48", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", + "@ohif/extension-default": "3.8.0-beta.48", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.48", + "@ohif/extension-dicom-pdf": "3.8.0-beta.48", + "@ohif/extension-dicom-video": "3.8.0-beta.48", + "@ohif/extension-test": "3.8.0-beta.48", + "@ohif/i18n": "3.8.0-beta.48", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.48", + "@ohif/mode-longitudinal": "3.8.0-beta.48", + "@ohif/mode-microscopy": "3.8.0-beta.48", + "@ohif/mode-test": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.48", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index e1dc0502e..ae164032f 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 65de60023..23fed6122 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index f4f525ca2..4e8c6b9c4 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 39691d70c..5c1fb818d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index a6a411b64..724edf9cb 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 07db7846d..1fa5dc426 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 7e28dbcf7..0a3c6aec4 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 5daaf89ca..794fae777 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index c40e69f2e..6f976a5b2 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.47](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.46...v3.8.0-beta.47) (2024-01-12) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 973cb20a3..0a9ca1f83 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.47", + "version": "3.8.0-beta.48", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 31b837fa90f631d4984482c6e952373fbb8bdbfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Fri, 19 Jan 2024 10:21:22 -0300 Subject: [PATCH 153/289] fix: is same orientaiton (#3905) --- platform/core/src/utils/isDisplaySetReconstructable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/core/src/utils/isDisplaySetReconstructable.js b/platform/core/src/utils/isDisplaySetReconstructable.js index 2d36266c4..c32b565b0 100644 --- a/platform/core/src/utils/isDisplaySetReconstructable.js +++ b/platform/core/src/utils/isDisplaySetReconstructable.js @@ -184,7 +184,7 @@ function processSingleframe(instances) { } function _isSameOrientation(iop1, iop2) { - if (iop1 === undefined || !iop2 === undefined) { + if (iop1 === undefined || iop2 === undefined) { return; } From 4a958b8989f5608037f891910399b0ea80d0bafa Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 19 Jan 2024 13:30:47 +0000 Subject: [PATCH 154/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index a239d26de..7a413b198 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -911d67283536b2fe7930948f2819ea0ad66e2a32 \ No newline at end of file +31b837fa90f631d4984482c6e952373fbb8bdbfc \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index ca15b7118..e9590609d 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/i18n": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/i18n": "3.8.0-beta.49", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 6380bb530..57b444a76 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/i18n": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/i18n": "3.8.0-beta.49", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 5383401b7..069ea48ba 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-measurement-tracking": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-measurement-tracking": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 1f59e6c17..9b7923db1 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 868ae44e1..5d992c7c0 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/i18n": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/i18n": "3.8.0-beta.49", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index f149a28f4..5982dc36d 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/i18n": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/i18n": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index fc9916d59..e1b076fe3 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 77cedd132..6fba85c7c 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 095f0ff46..75ee18242 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f9864a615..7c0961c9b 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index b2e984295..b0e44ab85 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d782664c0..e63b9d594 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/extension-dicom-pdf": "3.8.0-beta.48", - "@ohif/extension-dicom-video": "3.8.0-beta.48" + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/extension-dicom-pdf": "3.8.0-beta.49", + "@ohif/extension-dicom-video": "3.8.0-beta.49" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index af18dfe58..9d3bf86db 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/extension-dicom-pdf": "3.8.0-beta.48", - "@ohif/extension-dicom-video": "3.8.0-beta.48", - "@ohif/extension-measurement-tracking": "3.8.0-beta.48", - "@ohif/extension-test": "3.8.0-beta.48" + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/extension-dicom-pdf": "3.8.0-beta.49", + "@ohif/extension-dicom-video": "3.8.0-beta.49", + "@ohif/extension-measurement-tracking": "3.8.0-beta.49", + "@ohif/extension-test": "3.8.0-beta.49" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 699f61341..3cfd7a81b 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/extension-dicom-pdf": "3.8.0-beta.48", - "@ohif/extension-dicom-video": "3.8.0-beta.48", - "@ohif/extension-measurement-tracking": "3.8.0-beta.48" + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/extension-dicom-pdf": "3.8.0-beta.49", + "@ohif/extension-dicom-video": "3.8.0-beta.49", + "@ohif/extension-measurement-tracking": "3.8.0-beta.49" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index fd2d6138d..fd27f6471 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.48" + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.49" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 7c158e576..879e7492e 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48" + "@ohif/core": "3.8.0-beta.49" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f313a3f4c..619abb0c8 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/extension-dicom-pdf": "3.8.0-beta.48", - "@ohif/extension-dicom-video": "3.8.0-beta.48", - "@ohif/extension-measurement-tracking": "3.8.0-beta.48" + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/extension-dicom-pdf": "3.8.0-beta.49", + "@ohif/extension-dicom-video": "3.8.0-beta.49", + "@ohif/extension-measurement-tracking": "3.8.0-beta.49" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 5c1fb818d..79801abad 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.49", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 3684ed995..2ee78d289 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.48", - "commit": "911d67283536b2fe7930948f2819ea0ad66e2a32" + "version": "3.8.0-beta.49", + "commit": "31b837fa90f631d4984482c6e952373fbb8bdbfc" } \ No newline at end of file diff --git a/version.txt b/version.txt index fc076cc60..f012e3662 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.48 \ No newline at end of file +3.8.0-beta.49 \ No newline at end of file From 2460d28afcb8e823f662bc4cc70238773b5c9e6a Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 19 Jan 2024 13:30:55 +0000 Subject: [PATCH 155/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b523a0343..838b9ba60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + + +### Bug Fixes + +* is same orientaiton ([#3905](https://github.com/OHIF/Viewers/issues/3905)) ([31b837f](https://github.com/OHIF/Viewers/commit/31b837fa90f631d4984482c6e952373fbb8bdbfc)) + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 48378741c..3164c19b3 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e9590609d..65b781ed9 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index ea88920fc..8ba3ad64f 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 57b444a76..fb5c31e65 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 6da1f1dc8..e2147e7a1 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 069ea48ba..d69dd956d 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 9ad1d7c80..1e4f9d0db 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9b7923db1..b9d125fc6 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 0db2d0a7b..a674e50e0 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) diff --git a/extensions/default/package.json b/extensions/default/package.json index 5d992c7c0..f7ed0aae2 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 83435ce0d..70a7e7a51 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 5982dc36d..5e935ff19 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 62b739c21..f3787ec70 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index e1b076fe3..05b33a218 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index f7e630cdd..ee438a1aa 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 6fba85c7c..867116df5 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index ac8f3469d..866213211 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 75ee18242..be19e12ff 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/ui": "3.8.0-beta.49", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 07162cdf4..a2bffb41e 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 7c0961c9b..4d59862a3 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index b075cb608..e054c6ee7 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index b0e44ab85..10d318537 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 65eb9b1e3..c4c0627ec 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 2ceda43b1..451e62c6d 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index e63b9d594..b622eb2f2 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 3a478c494..f5e74cafa 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 9d3bf86db..0ded751e9 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index f34da735c..26df83d6a 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 3cfd7a81b..ab70647ff 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index cbcabcb24..c0aabfbb3 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index fd27f6471..03e578a0a 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 33d246edd..81c161b1d 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 879e7492e..0bb57d1b4 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 242c6b2e4..720c1de39 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 619abb0c8..07d8c69d3 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index b656db064..222022c93 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index b6524fdb7..49ed6b66a 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.48", - "@ohif/extension-cornerstone": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.48", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.48", - "@ohif/extension-default": "3.8.0-beta.48", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.48", - "@ohif/extension-dicom-pdf": "3.8.0-beta.48", - "@ohif/extension-dicom-video": "3.8.0-beta.48", - "@ohif/extension-test": "3.8.0-beta.48", - "@ohif/i18n": "3.8.0-beta.48", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.48", - "@ohif/mode-longitudinal": "3.8.0-beta.48", - "@ohif/mode-microscopy": "3.8.0-beta.48", - "@ohif/mode-test": "3.8.0-beta.48", - "@ohif/ui": "3.8.0-beta.48", + "@ohif/core": "3.8.0-beta.49", + "@ohif/extension-cornerstone": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.49", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", + "@ohif/extension-default": "3.8.0-beta.49", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.49", + "@ohif/extension-dicom-pdf": "3.8.0-beta.49", + "@ohif/extension-dicom-video": "3.8.0-beta.49", + "@ohif/extension-test": "3.8.0-beta.49", + "@ohif/i18n": "3.8.0-beta.49", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.49", + "@ohif/mode-longitudinal": "3.8.0-beta.49", + "@ohif/mode-microscopy": "3.8.0-beta.49", + "@ohif/mode-test": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.49", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index ae164032f..bd2318e4e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 23fed6122..fcc7022ca 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 4e8c6b9c4..e4d4950be 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + + +### Bug Fixes + +* is same orientaiton ([#3905](https://github.com/OHIF/Viewers/issues/3905)) ([31b837f](https://github.com/OHIF/Viewers/commit/31b837fa90f631d4984482c6e952373fbb8bdbfc)) + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 79801abad..583657f13 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 724edf9cb..b33d78e8b 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 1fa5dc426..8dd0e25ff 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 0a3c6aec4..8d45f3aed 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 794fae777..053b62eef 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 6f976a5b2..97056efd4 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.48](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.47...v3.8.0-beta.48) (2024-01-17) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 0a9ca1f83..092146359 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.48", + "version": "3.8.0-beta.49", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From e4a116b074fcb85c8cbcc9db44fdec565f3386db Mon Sep 17 00:00:00 2001 From: Alireza Date: Mon, 22 Jan 2024 09:44:35 -0500 Subject: [PATCH 156/289] fix(viewport-sync): remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync (#3849) --- .../viewports/OHIFCornerstoneRTViewport.tsx | 2 +- .../src/Viewport/OHIFCornerstoneViewport.tsx | 66 +- extensions/cornerstone/src/commandsModule.ts | 10 +- extensions/cornerstone/src/init.tsx | 5 + .../SyncGroupService/SyncGroupService.ts | 17 +- .../CornerstoneViewportService.ts | 27 +- .../calculateViewportRegistrations.ts | 0 .../toggleImageSliceSync.ts} | 8 +- modes/basic-test-mode/src/moreTools.ts | 8 +- modes/longitudinal/src/moreTools.ts | 8 +- modes/longitudinal/src/moreToolsMpr.ts | 8 +- modes/segmentation/src/toolbarButtons.ts | 4 +- .../OHIFCornerstoneToolbar.spec.js | 2 +- .../cypress/integration/volume/MPR.spec.js | 6 +- yarn.lock | 1970 ++++++++--------- 15 files changed, 1110 insertions(+), 1031 deletions(-) rename extensions/cornerstone/src/utils/{stackSync => imageSliceSync}/calculateViewportRegistrations.ts (100%) rename extensions/cornerstone/src/utils/{stackSync/toggleStackImageSync.ts => imageSliceSync/toggleImageSliceSync.ts} (92%) diff --git a/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx b/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx index e0e12ca57..5c6a844dd 100644 --- a/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx +++ b/extensions/cornerstone-dicom-rt/src/viewports/OHIFCornerstoneRTViewport.tsx @@ -168,7 +168,7 @@ function OHIFCornerstoneRTViewport(props) { }, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]); useEffect(() => { - // I'm not sure what is this, since in RT we support Overlapping segmnets + // I'm not sure what is this, since in RT we support Overlapping segments // via contours const { unsubscribe } = segmentationService.subscribe( segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE, diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index 3de29dfd6..a0386e7db 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -175,6 +175,13 @@ const OHIFCornerstoneViewport = React.memo(props => { syncGroupService.addViewportToSyncGroup(viewportId, renderingEngineId, syncGroups); + const synchronizersStore = stateSyncService.getState().synchronizersStore; + + if (synchronizersStore?.[viewportId]?.length) { + // If the viewport used to have a synchronizer, re apply it again + _rehydrateSynchronizers(synchronizersStore, viewportId, syncGroupService); + } + if (onElementEnabled) { onElementEnabled(evt); } @@ -197,13 +204,18 @@ const OHIFCornerstoneViewport = React.memo(props => { return; } - cleanUpServices(viewportInfo); cornerstoneViewportService.storePresentation({ viewportId }); + // This should be done after the store presentation since synchronizers + // will get cleaned up and they need the viewportInfo to be present + cleanUpServices(viewportInfo); + if (onElementDisabled) { onElementDisabled(viewportInfo); } + cornerstoneViewportService.disableElement(viewportId); + eventTarget.removeEventListener(Enums.Events.ELEMENT_ENABLED, elementEnabledHandler); }; }, []); @@ -547,6 +559,58 @@ function _jumpToMeasurement( } } +function _rehydrateSynchronizers( + synchronizersStore: { [key: string]: unknown }, + viewportId: string, + syncGroupService: any +) { + synchronizersStore[viewportId].forEach(synchronizerObj => { + if (!synchronizerObj.id) { + return; + } + + const { id, sourceViewports, targetViewports } = synchronizerObj; + + const synchronizer = syncGroupService.getSynchronizer(id); + + if (!synchronizer) { + return; + } + + const sourceViewportInfo = sourceViewports.find( + sourceViewport => sourceViewport.viewportId === viewportId + ); + + const targetViewportInfo = targetViewports.find( + targetViewport => targetViewport.viewportId === viewportId + ); + + const isSourceViewportInSynchronizer = synchronizer + .getSourceViewports() + .find(sourceViewport => sourceViewport.viewportId === viewportId); + + const isTargetViewportInSynchronizer = synchronizer + .getTargetViewports() + .find(targetViewport => targetViewport.viewportId === viewportId); + + // if the viewport was previously a source viewport, add it again + if (sourceViewportInfo && !isSourceViewportInSynchronizer) { + synchronizer.addSource({ + viewportId: sourceViewportInfo.viewportId, + renderingEngineId: sourceViewportInfo.renderingEngineId, + }); + } + + // if the viewport was previously a target viewport, add it again + if (targetViewportInfo && !isTargetViewportInSynchronizer) { + synchronizer.addTarget({ + viewportId: targetViewportInfo.viewportId, + renderingEngineId: targetViewportInfo.renderingEngineId, + }); + } + }); +} + // Component displayName OHIFCornerstoneViewport.displayName = 'OHIFCornerstoneViewport'; diff --git a/extensions/cornerstone/src/commandsModule.ts b/extensions/cornerstone/src/commandsModule.ts index 526459381..e32155f99 100644 --- a/extensions/cornerstone/src/commandsModule.ts +++ b/extensions/cornerstone/src/commandsModule.ts @@ -17,7 +17,7 @@ import { vec3, mat4 } from 'gl-matrix'; import CornerstoneViewportDownloadForm from './utils/CornerstoneViewportDownloadForm'; import callInputDialog from './utils/callInputDialog'; -import toggleStackImageSync from './utils/stackSync/toggleStackImageSync'; +import toggleImageSliceSync from './utils/imageSliceSync/toggleImageSliceSync'; import { getFirstAnnotationSelected } from './utils/measurementServiceMappings/utils/selection'; import getActiveViewportEnabledElement from './utils/getActiveViewportEnabledElement'; import { CornerstoneServices } from './types'; @@ -566,8 +566,8 @@ function commandsModule({ viewportGridService.setActiveViewportId(viewportIds[nextViewportIndex] as string); }, - toggleStackImageSync: ({ toggledState }) => { - toggleStackImageSync({ + toggleImageSliceSync: ({ toggledState }) => { + toggleImageSliceSync({ servicesManager, toggledState, }); @@ -726,8 +726,8 @@ function commandsModule({ setViewportColormap: { commandFn: actions.setViewportColormap, }, - toggleStackImageSync: { - commandFn: actions.toggleStackImageSync, + toggleImageSliceSync: { + commandFn: actions.toggleImageSliceSync, }, setSourceViewportForReferenceLinesTool: { commandFn: actions.setSourceViewportForReferenceLinesTool, diff --git a/extensions/cornerstone/src/init.tsx b/extensions/cornerstone/src/init.tsx index 5c92740fc..10d2767a5 100644 --- a/extensions/cornerstone/src/init.tsx +++ b/extensions/cornerstone/src/init.tsx @@ -10,6 +10,7 @@ import { metaData, volumeLoader, imageLoadPoolManager, + getEnabledElement, Settings, utilities as csUtilities, Enums as csEnums, @@ -97,6 +98,7 @@ export default async function init({ toolbarService, viewportGridService, stateSyncService, + syncGroupService, } = servicesManager.services as CornerstoneServices; window.services = servicesManager.services; @@ -124,6 +126,9 @@ export default async function init({ // an OHIFCornerstoneViewport can be redisplayed with the same LUT stateSyncService.register('lutPresentationStore', { clearOnModeExit: true }); + // Stores synchronizers state to be restored + stateSyncService.register('synchronizersStore', { clearOnModeExit: true }); + // Stores a map from `positionPresentationId` to a Presentation object so that // an OHIFCornerstoneViewport can be redisplayed with the same position stateSyncService.register('positionPresentationStore', { diff --git a/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts b/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts index 0b1c22fb2..f93075e1c 100644 --- a/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts +++ b/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts @@ -45,7 +45,7 @@ export default class SyncGroupService { [POSITION]: synchronizers.createCameraPositionSynchronizer, [VOI]: synchronizers.createVOISynchronizer, [ZOOMPAN]: synchronizers.createZoomPanSynchronizer, - [STACKIMAGE]: synchronizers.createStackImageSynchronizer, + [STACKIMAGE]: synchronizers.createImageSliceSynchronizer, }; constructor(serviceManager: ServicesManager) { @@ -74,6 +74,10 @@ export default class SyncGroupService { this.synchronizerCreators[type.toLowerCase()] = creator; } + public getSynchronizer(id: string): Synchronizer | void { + return SynchronizerManager.getSynchronizer(id); + } + protected _getOrCreateSynchronizer( type: string, id: string, @@ -121,6 +125,17 @@ export default class SyncGroupService { SynchronizerManager.destroy(); } + public getSynchronizersForViewport( + viewportId: string, + renderingEngineId: string + ): Synchronizer[] { + return SynchronizerManager.getAllSynchronizers().filter( + s => + s.hasSourceViewport(renderingEngineId, viewportId) || + s.hasTargetViewport(renderingEngineId, viewportId) + ); + } + public removeViewportFromSyncGroup( viewportId: string, renderingEngineId: string, diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index 8443f9eac..937f42bad 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -178,7 +178,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } public storePresentation({ viewportId }) { - const stateSyncService = this.servicesManager.services.stateSyncService; + const { stateSyncService, syncGroupService } = this.servicesManager.services; let presentation; try { presentation = this.getPresentation(viewportId); @@ -189,7 +189,14 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi if (!presentation || !presentation.presentationIds) { return; } - const { lutPresentationStore, positionPresentationStore } = stateSyncService.getState(); + + const synchronizers = syncGroupService.getSynchronizersForViewport( + viewportId, + this.renderingEngine.id + ); + + const { lutPresentationStore, positionPresentationStore, synchronizersStore } = + stateSyncService.getState(); const { presentationIds } = presentation; const { lutPresentationId, positionPresentationId } = presentationIds || {}; const storeState = {}; @@ -205,6 +212,22 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi [positionPresentationId]: presentation, }; } + + if (synchronizers?.length) { + storeState.synchronizersStore = { + ...synchronizersStore, + [viewportId]: synchronizers.map(synchronizer => { + const sourceViewports = synchronizer.getSourceViewports(); + const targetViewports = synchronizer.getTargetViewports(); + return { + id: synchronizer.id, + sourceViewports: [...sourceViewports], + targetViewports: [...targetViewports], + }; + }), + }; + } + stateSyncService.store(storeState); } diff --git a/extensions/cornerstone/src/utils/stackSync/calculateViewportRegistrations.ts b/extensions/cornerstone/src/utils/imageSliceSync/calculateViewportRegistrations.ts similarity index 100% rename from extensions/cornerstone/src/utils/stackSync/calculateViewportRegistrations.ts rename to extensions/cornerstone/src/utils/imageSliceSync/calculateViewportRegistrations.ts diff --git a/extensions/cornerstone/src/utils/stackSync/toggleStackImageSync.ts b/extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts similarity index 92% rename from extensions/cornerstone/src/utils/stackSync/toggleStackImageSync.ts rename to extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts index d18768f38..38e5bdfed 100644 --- a/extensions/cornerstone/src/utils/stackSync/toggleStackImageSync.ts +++ b/extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts @@ -1,12 +1,12 @@ -const STACK_SYNC_NAME = 'stackImageSync'; +const IMAGE_SLICE_SYNC_NAME = 'IMAGE_SLICE_SYNC'; -export default function toggleStackImageSync({ +export default function toggleImageSliceSync({ toggledState, servicesManager, viewports: providedViewports, }) { if (!toggledState) { - return disableSync(STACK_SYNC_NAME, servicesManager); + return disableSync(IMAGE_SLICE_SYNC_NAME, servicesManager); } const { syncGroupService, viewportGridService, displaySetService, cornerstoneViewportService } = @@ -24,7 +24,7 @@ export default function toggleStackImageSync({ } syncGroupService.addViewportToSyncGroup(viewportId, viewport.getRenderingEngine().id, { type: 'stackimage', - id: STACK_SYNC_NAME, + id: IMAGE_SLICE_SYNC_NAME, source: true, target: true, }); diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts index 1baa17118..9b7726b80 100644 --- a/modes/basic-test-mode/src/moreTools.ts +++ b/modes/basic-test-mode/src/moreTools.ts @@ -79,19 +79,19 @@ const moreTools = [ 'Flip Horizontally' ), ToolbarService._createToggleButton( - 'StackImageSync', + 'ImageSliceSync', 'link', - 'Stack Image Sync', + 'Image Slice Sync', [ { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', }, ], 'Enable position synchronization on stack viewports', { listeners: { [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', commandOptions: { toggledState: true }, }, }, diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts index 5a20d1cbe..5ed2fddc7 100644 --- a/modes/longitudinal/src/moreTools.ts +++ b/modes/longitudinal/src/moreTools.ts @@ -83,19 +83,19 @@ const moreTools = [ 'Flip Horizontal' ), ToolbarService._createToggleButton( - 'StackImageSync', + 'ImageSliceSync', 'link', - 'Stack Image Sync', + 'Image Slice Sync', [ { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', }, ], 'Enable position synchronization on stack viewports', { listeners: { [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', commandOptions: { toggledState: true }, }, }, diff --git a/modes/longitudinal/src/moreToolsMpr.ts b/modes/longitudinal/src/moreToolsMpr.ts index 7930068dc..d34a42e47 100644 --- a/modes/longitudinal/src/moreToolsMpr.ts +++ b/modes/longitudinal/src/moreToolsMpr.ts @@ -57,19 +57,19 @@ const moreToolsMpr = [ 'Reset' ), ToolbarService._createToggleButton( - 'StackImageSync', + 'ImageSliceSync', 'link', - 'Stack Image Sync', + 'Image Slice Sync', [ { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', }, ], 'Enable position synchronization on stack viewports', { listeners: { [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', commandOptions: { toggledState: true }, }, }, diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index b17a33dea..9795beca7 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -261,9 +261,9 @@ const toolbarButtons = [ ], 'Flip Horizontal' ), - _createToggleButton('StackImageSync', 'link', 'Stack Image Sync', [ + _createToggleButton('ImageSliceSync', 'link', 'Stack Image Sync', [ { - commandName: 'toggleStackImageSync', + commandName: 'toggleImageSliceSync', commandOptions: {}, context: 'CORNERSTONE', }, diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index b9721a21f..385b67f94 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -427,7 +427,7 @@ describe('OHIF Cornerstone Toolbar', () => { it('checks if stack sync is preserved on new display set and uses FOR', () => { // Active stack image sync and reference lines cy.get('[data-cy="MoreTools-split-button-secondary"]').click(); - cy.get('[data-cy="StackImageSync"]').click(); + cy.get('[data-cy="ImageSliceSync"]').click(); // Add reference lines as that sometimes throws an exception cy.get('[data-cy="MoreTools-split-button-secondary"]').click(); cy.get('[data-cy="ReferenceLines"]').click(); diff --git a/platform/app/cypress/integration/volume/MPR.spec.js b/platform/app/cypress/integration/volume/MPR.spec.js index 2f2cb05cb..56a2aa869 100644 --- a/platform/app/cypress/integration/volume/MPR.spec.js +++ b/platform/app/cypress/integration/volume/MPR.spec.js @@ -65,9 +65,9 @@ describe('OHIF MPR', () => { const viewports = cornerstone.getRenderingEngines()[0].getViewports(); // The stack viewport still exists after the changes to viewportId and inde - const imageData1 = viewports[1].getImageData(); - const imageData2 = viewports[2].getImageData(); - const imageData3 = viewports[3].getImageData(); + const imageData1 = viewports[0].getImageData(); + const imageData2 = viewports[1].getImageData(); + const imageData3 = viewports[2].getImageData(); // for some reason map doesn't work here cy.wrap(imageData1).should('not.be', undefined); diff --git a/yarn.lock b/yarn.lock index 126ead441..066a8fd9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,114 +39,114 @@ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== -"@algolia/cache-browser-local-storage@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.21.1.tgz#ecd8e6fe9a6ecbb63c9c29a9574e47315846347e" - integrity sha512-vUkac/vgj8inyGR/IgunRjTOQ6IlBwl7afFkIfUZRqbqKKXBs+A/g5wgH+UnAlCSW8wjFRAIfCzuvSRb1/qjsQ== +"@algolia/cache-browser-local-storage@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz#14b6dc9abc9e3a304a5fffb063d15f30af1032d1" + integrity sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g== dependencies: - "@algolia/cache-common" "4.21.1" + "@algolia/cache-common" "4.22.1" -"@algolia/cache-common@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.21.1.tgz#86b9f5c8b5c21b7a6479d388e04678408a449e65" - integrity sha512-HUo4fRk8KXFMyCASW0k+Kl8iXBoRPdqAjV9OVaFibTNg1dbwnpe6eIxbSTM6AJ2X82ic/8x3GuAO8zF/E515PA== +"@algolia/cache-common@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.22.1.tgz#c625dff4bc2a74e79f9aed67b4e053b0ef1b3ec1" + integrity sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA== -"@algolia/cache-in-memory@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.21.1.tgz#dfd3249c4887250fdceb76191b05ba95b94821b3" - integrity sha512-+l2pLg6yIwRaGNtv41pGF/f/e9Qk80FeYE41f4OXS9lb5vpyrxzqM5nUaffWk/ZSFrPDuw5J2E226c//tIIffA== +"@algolia/cache-in-memory@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz#858a3d887f521362e87d04f3943e2810226a0d71" + integrity sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw== dependencies: - "@algolia/cache-common" "4.21.1" + "@algolia/cache-common" "4.22.1" -"@algolia/client-account@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.21.1.tgz#60e5225ea4b4440219030775dcb1b9bd3ad92e54" - integrity sha512-AC6SjA9n38th73gAUqcjsuxNUChpwaflaAhPL0qO9cUICN67njpQrnYaoSVZ/yx0opG5zQFRKbpEcuPGj0XjhQ== +"@algolia/client-account@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.22.1.tgz#a7fb8b66b9a4f0a428e1426b2561144267d76d43" + integrity sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw== dependencies: - "@algolia/client-common" "4.21.1" - "@algolia/client-search" "4.21.1" - "@algolia/transporter" "4.21.1" + "@algolia/client-common" "4.22.1" + "@algolia/client-search" "4.22.1" + "@algolia/transporter" "4.22.1" -"@algolia/client-analytics@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.21.1.tgz#400d7defd32e8312ccdf8cd41533055f5ab4f52a" - integrity sha512-q6AxvAcBl4fNZXZsMwRRQXcsxUv0PK5eUAz/lHDvgkMWAg6cP7Fl+WIq0fHcG7cJA4EHf2sT5fV6Z+yUlf7NfA== +"@algolia/client-analytics@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.22.1.tgz#506558740b4d49b1b1e3393861f729a8ce921851" + integrity sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg== dependencies: - "@algolia/client-common" "4.21.1" - "@algolia/client-search" "4.21.1" - "@algolia/requester-common" "4.21.1" - "@algolia/transporter" "4.21.1" + "@algolia/client-common" "4.22.1" + "@algolia/client-search" "4.22.1" + "@algolia/requester-common" "4.22.1" + "@algolia/transporter" "4.22.1" -"@algolia/client-common@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.21.1.tgz#20798c96c1d45078648bf28dfb84e50cd13a5d94" - integrity sha512-LOH7ncYwY/x7epOgxc/MIuV7m3qzl00wIjDG5/9rgImFpkV0X+D/ndJI9DmPsIx7yaTLd5xv/XYuKLcvrUR0eQ== +"@algolia/client-common@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.22.1.tgz#042b19c1b6157c485fa1b551349ab313944d2b05" + integrity sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ== dependencies: - "@algolia/requester-common" "4.21.1" - "@algolia/transporter" "4.21.1" + "@algolia/requester-common" "4.22.1" + "@algolia/transporter" "4.22.1" -"@algolia/client-personalization@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.21.1.tgz#55ed8edb8258b2f4b05bfc37d454dca9209bb106" - integrity sha512-u2CyQjHbyVwPqM5eSXd/o+rh1Pk949P/MO6s+OxyEGg6/R2YpYvmsafVZl9Q+xqT8pFaf5QygfcqlSdMUDHV5Q== +"@algolia/client-personalization@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.22.1.tgz#ff088d797648224fb582e9fe5828f8087835fa3d" + integrity sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ== dependencies: - "@algolia/client-common" "4.21.1" - "@algolia/requester-common" "4.21.1" - "@algolia/transporter" "4.21.1" + "@algolia/client-common" "4.22.1" + "@algolia/requester-common" "4.22.1" + "@algolia/transporter" "4.22.1" -"@algolia/client-search@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.21.1.tgz#b08f6ccfaf404530e3e5a38e8492a635ff15153f" - integrity sha512-3KqSmMkQmF+ACY/Ms5TdcvrcK8iqgQP/N0EPnNUUP4LMUzAACpLLTdzA+AtCuc6oaz5ITtGJBVdPUljj5Jf/Lg== +"@algolia/client-search@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.22.1.tgz#508cc6ab3d1f4e9c02735a630d4dff6fbb8514a2" + integrity sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA== dependencies: - "@algolia/client-common" "4.21.1" - "@algolia/requester-common" "4.21.1" - "@algolia/transporter" "4.21.1" + "@algolia/client-common" "4.22.1" + "@algolia/requester-common" "4.22.1" + "@algolia/transporter" "4.22.1" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/logger-common@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.21.1.tgz#b0979321592af12b986aea2b7ac4fc368920860f" - integrity sha512-9AyYpR2OO9vPkkDlpTtW2/6nX+RmMd7LUwzJiAF3uN+BYUiQqgXEp+oGaH8UC0dgetmK7wJO6hw4b39cnTdEpw== +"@algolia/logger-common@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.22.1.tgz#79cf4cd295de0377a94582c6aaac59b1ded731d9" + integrity sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg== -"@algolia/logger-console@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.21.1.tgz#59bdceab3d93ed478e4cb61cfe8f951cb9ef1487" - integrity sha512-9wizQiQ8kL4DiBmT82i403UwacNuv+0hpfsfaWYZQrGjpzG+yvXETWM4AgwFZLj007esuKQiGfOPUoYFZNkGGA== +"@algolia/logger-console@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.22.1.tgz#0355345f6940f67aaa78ae9b81c06e44e49f2336" + integrity sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA== dependencies: - "@algolia/logger-common" "4.21.1" + "@algolia/logger-common" "4.22.1" -"@algolia/requester-browser-xhr@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.21.1.tgz#c841a76f64171d3b892aea16e23d819b7f6a8e0a" - integrity sha512-9NudesJLuXtRHV+JD8fTkrsdVj/oAPQbtLnxBbSQeMduzV6+a7W+G9VuWo5fwFymCdXR8/Hb6jy8D1owQIq5Gw== +"@algolia/requester-browser-xhr@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz#f04df6fe9690a071b267c77d26b83a3be9280361" + integrity sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw== dependencies: - "@algolia/requester-common" "4.21.1" + "@algolia/requester-common" "4.22.1" -"@algolia/requester-common@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.21.1.tgz#5fd9acce9faa8b931f91b0e86e384956874c3c43" - integrity sha512-KtX2Ep3C43XxoN3xKw755cdf9enE6gPgzh6ufZQRJBl4rYCOoXbiREU6noDYX/Nq+Q+sl03V37WAp0YgtIlh9g== +"@algolia/requester-common@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.22.1.tgz#27be35f3718aafcb6b388ff9c3aa2defabd559ff" + integrity sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg== -"@algolia/requester-node-http@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.21.1.tgz#a39a0003e7697009da032238d2b3134a65ec9fae" - integrity sha512-EcD8cY6Bh2iMySpqXglTKU9+pt+km1ws3xF0V7CGMIUzW1HmN/ZVhi4apCBY4tEMytbyARv0XRTPsolSC4gSSw== +"@algolia/requester-node-http@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz#589a6fa828ad0f325e727a6fcaf4e1a2343cc62b" + integrity sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA== dependencies: - "@algolia/requester-common" "4.21.1" + "@algolia/requester-common" "4.22.1" -"@algolia/transporter@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.21.1.tgz#ffe43fb9d03c042aed89cec793687a41278fd35e" - integrity sha512-KGLFKz8krzOWRwcbR4FT49Grh1dES/mG8dHABEojbvrfUb6kUFxkAee/aezp2GIxuNx+gpQjRn1IzOsqbUZL0A== +"@algolia/transporter@4.22.1": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.22.1.tgz#8843841b857dc021668f31647aa557ff19cd9cb1" + integrity sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ== dependencies: - "@algolia/cache-common" "4.21.1" - "@algolia/logger-common" "4.21.1" - "@algolia/requester-common" "4.21.1" + "@algolia/cache-common" "4.22.1" + "@algolia/logger-common" "4.22.1" + "@algolia/requester-common" "4.22.1" "@ampproject/remapping@^2.2.0": version "2.2.1" @@ -305,6 +305,17 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" @@ -469,10 +480,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -697,7 +708,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.2", "@babel/plugin-transform-async-generator-functions@^7.23.4": +"@babel/plugin-transform-async-generator-functions@^7.23.2": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== @@ -707,6 +718,16 @@ "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-async-to-generator@^7.22.5", "@babel/plugin-transform-async-to-generator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" @@ -747,7 +768,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.15", "@babel/plugin-transform-classes@^7.23.5": +"@babel/plugin-transform-classes@^7.22.15": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== @@ -762,6 +783,20 @@ "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@^7.22.5", "@babel/plugin-transform-computed-properties@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" @@ -1061,15 +1096,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.18.6", "@babel/plugin-transform-runtime@^7.23.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz#bf853cd0a675c16ee33e6ba2a63b536e75e5d754" - integrity sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz#52bbd20054855beb9deae3bee9ceb05289c343e6" + integrity sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.22.5", "@babel/plugin-transform-shorthand-properties@^7.23.3": @@ -1236,9 +1271,9 @@ semver "^6.3.1" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4", "@babel/preset-env@^7.23.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a" - integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" + integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== dependencies: "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.23.6" @@ -1246,7 +1281,7 @@ "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -1267,13 +1302,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" @@ -1315,9 +1350,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1363,14 +1398,14 @@ "@babel/plugin-transform-typescript" "^7.23.3" "@babel/register@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.15.tgz#c2c294a361d59f5fa7bcc8b97ef7319c32ecaec7" - integrity sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.23.7.tgz#485a5e7951939d21304cae4af1719fdb887bc038" + integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.5" + pirates "^4.0.6" source-map-support "^0.5.16" "@babel/regjsgen@^0.8.0": @@ -1379,25 +1414,25 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime-corejs2@^7.17.8": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.23.6.tgz#00d4a77e49a33540160312ecb329ac1ba73df3f9" - integrity sha512-k8QKC2DmBqkwJDOLa4biAZjoCGPQIaAoA1HvHtZ+gR2E9AauudikJOB34h4ETEavN5UG21X0KPdM3IvBRxM0CA== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.23.8.tgz#fe322afe31a8edffb38cb9f8f8993c264ba3b8ed" + integrity sha512-U7JI0Qne1eSenXriL+BynbS4GyJE5nwGW/L72RnqOPJ+lgAZvEHS/jHtfU001R8NxD0Y/fqWKrHBoSBg8g2Vqw== dependencies: core-js "^2.6.12" regenerator-runtime "^0.14.0" "@babel/runtime-corejs3@^7.18.6", "@babel/runtime-corejs3@^7.22.5": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.6.tgz#c25dd662fc205a03fdaefd122066eb9d4533ccf9" - integrity sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.8.tgz#b8aa3d47570bdd08fed77fdfd69542118af0df26" + integrity sha512-2ZzmcDugdm0/YQKFVYsXiwUN7USPX8PM7cytpb4PFl87fM+qYPSvTZX//8tyeJB1j0YDmafBJEbl5f8NfLyuKw== dependencies: core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" "@babel/runtime@7.22.11", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.23.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" - integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== dependencies: regenerator-runtime "^0.14.0" @@ -1411,9 +1446,9 @@ "@babel/types" "^7.22.15" "@babel/traverse@^7.0.0", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.18.9", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.6", "@babel/traverse@^7.7.0": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" - integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: "@babel/code-frame" "^7.23.5" "@babel/generator" "^7.23.6" @@ -1451,9 +1486,9 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@cornerstonejs/adapters@^1.44.1": - version "1.44.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.44.3.tgz#1354e2f47fb9a543e1437df3f1430c9e96a1bca5" - integrity sha512-cFw4ph1rPjgCtfLb7Kxfy9RRoLmNVBQTtp2N5ke0HmX0Sw22fka9Nv19nokKcQ5VGSKi/2j3h13a4Ldr8GUwJg== + version "1.47.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.47.1.tgz#16a3196a16af3b2fb2d5bf4d2eeda165962e8c78" + integrity sha512-4/jyrlV2QwXSnyBfeFPWQHao+UuiloTJuVoZ6Sam1E6/gw4LnMdfi8UtugYxNjwZysPEGkc8BAdfDMux0xMrwA== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1502,10 +1537,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.44.1", "@cornerstonejs/core@^1.44.3": - version "1.44.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.44.3.tgz#50ed86a69c71b92723f2f4f9a5440737e42eda58" - integrity sha512-aQXQ9G7abPSRTtjdKK6onA/ueaimt53PvFtLpqnpW01LC/tSuuVD2uKgldJh7GmuPzJwb0JBHqz+xC8KPoRCKA== +"@cornerstonejs/core@^1.44.1", "@cornerstonejs/core@^1.47.1": + version "1.47.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.47.1.tgz#fc6b9fafde6862c7e87ca528d2e9b83886a82a0c" + integrity sha512-VR4B9jSPCU9zbcM2zAq2re+YYgu+onvKGVK7wgIdqpQ3W7CjEmaHzWqVb19ZjezeSNO5cbP6o14tlUhoog0acQ== dependencies: "@kitware/vtk.js" "29.3.0" comlink "^4.4.1" @@ -1514,33 +1549,33 @@ lodash.clonedeep "4.5.0" "@cornerstonejs/dicom-image-loader@^1.44.1": - version "1.44.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.44.3.tgz#7e503d422cd94c5cba0d9ab7ee53815630dbf469" - integrity sha512-mOE7tgWD2x70ekuwUoHXqa5a5DZTrme1/CgcdUmrKwR4290rXMlhSloFTPTGVMhqqr5GhVyeM/3BaUJWstsoyw== + version "1.47.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.47.1.tgz#a1a4ab2d598eba239c239b7fd1fa6c797014ff8d" + integrity sha512-6ebof2OZFHMWBgbbGahVMbSYN3iqDAivn9nY6FnxrDgXUl4HgKmWq9+gM/Fo8NCe6CwABWqExWO393G5Yb5I2Q== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.44.3" + "@cornerstonejs/core" "^1.47.1" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" "@cornerstonejs/streaming-image-volume-loader@^1.44.1": - version "1.44.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.44.3.tgz#420ceb87b277ce729bfbb7e873162d72d124f468" - integrity sha512-B9s4zD6ll57NV4p7W5hdkcOXufqE6VlEyqrhlL5YN89awBEuCM7ppvqWJmcR9gKoInU9R4gMzfAHiq+LsIeFHA== + version "1.47.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.47.1.tgz#4a5a5d81aab900dcd212c315ddc1eb61e5e94ef1" + integrity sha512-FzZ+Wtfc+X26p0fzguyAMkAfoZa8SfslC5wmPt5+vxHf+IGgRPSkPJ/vVMAxI7L6qC0mEOt4XcCmszX9wWS1mg== dependencies: - "@cornerstonejs/core" "^1.44.3" + "@cornerstonejs/core" "^1.47.1" comlink "^4.4.1" "@cornerstonejs/tools@^1.44.1": - version "1.44.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.44.3.tgz#c345666c00fb14fb04d150c7b0200c202f2b32e9" - integrity sha512-LBueaPWPKQIXVsIGJJIhKcL5XegMDUamSokCny4JqwfaNLr7rhQqn48BoZUc1GwjolfYqFbSAVilHYrPOINzVQ== + version "1.47.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.47.1.tgz#40085a824584de3970d4aa106b30a5a6ae6504ec" + integrity sha512-yPdkEp570S4B1ldP7mtyacT9Eu5Hh2CR/ZCbBMVMQmlnsi9SFKVYKFpOSxUQd1u+MK2AKcpzrr7BbH9OOR4lCg== dependencies: - "@cornerstonejs/core" "^1.44.3" + "@cornerstonejs/core" "^1.47.1" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -2251,23 +2286,23 @@ integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== "@emotion/react@^11.8.1": - version "11.11.1" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" - integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + version "11.11.3" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.3.tgz#96b855dc40a2a55f52a72f518a41db4f69c31a25" + integrity sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.11.0" "@emotion/cache" "^11.11.0" - "@emotion/serialize" "^1.1.2" + "@emotion/serialize" "^1.1.3" "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" "@emotion/utils" "^1.2.1" "@emotion/weak-memoize" "^0.3.1" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" - integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== +"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.3.tgz#84b77bfcfe3b7bb47d326602f640ccfcacd5ffb0" + integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== dependencies: "@emotion/hash" "^0.9.1" "@emotion/memoize" "^0.8.1" @@ -2447,44 +2482,44 @@ resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== -"@floating-ui/core@^1.4.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.2.tgz#53a0f7a98c550e63134d504f26804f6b83dbc071" - integrity sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A== - dependencies: - "@floating-ui/utils" "^0.1.3" - -"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.5.1": +"@floating-ui/core@^1.5.3": version "1.5.3" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" - integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.3.tgz#b6aa0827708d70971c8679a16cf680a515b8a52a" + integrity sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q== dependencies: - "@floating-ui/core" "^1.4.2" - "@floating-ui/utils" "^0.1.3" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.4.tgz#28df1e1cb373884224a463235c218dcbd81a16bb" + integrity sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ== + dependencies: + "@floating-ui/core" "^1.5.3" + "@floating-ui/utils" "^0.2.0" "@floating-ui/react-dom@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz#b076fafbdfeb881e1d86ae748b7ff95150e9f3ec" - integrity sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.6.tgz#5ffcf40b6550817a973b54cdd443374f51ca7a5c" + integrity sha512-IB8aCRFxr8nFkdYZgH+Otd9EVQPJoynxeFRGTB8voPoZMRWo8XjYuCRgpI1btvuKY69XMiLnW+ym7zoBHM90Rw== dependencies: - "@floating-ui/dom" "^1.5.1" + "@floating-ui/dom" "^1.5.4" -"@floating-ui/utils@^0.1.3": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" - integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== +"@floating-ui/utils@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@hapi/hoek@^9.0.0": +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== -"@hapi/topo@^5.0.0": +"@hapi/topo@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== @@ -2776,10 +2811,10 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.21" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" + integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -3342,9 +3377,9 @@ "@percy/sdk-utils" "^1.3.1" "@percy/sdk-utils@^1.3.1": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.27.5.tgz#4c69177a3fbb47c22fefcc971333c288a99d3f4a" - integrity sha512-MoL/PegKdx9xPgxmvG3xuEMBUYwKO3s/8CnqFXvLNURc5Es6XRqCol7SDI/scsQSpkOaUKc/0rYhmMCRQOt+EA== + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.27.7.tgz#b376c1ad653f3c70fea08a3db11eb63622ca6b53" + integrity sha512-E21dIEQ9wwGDno41FdMDYf6jJow5scbWGClqKE/ptB+950W4UF5C4hxhVVQoEJxDdLE/Gy/8ZJR7upvPHShWDg== "@petamoriken/float16@^3.4.7": version "3.8.4" @@ -3371,17 +3406,10 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/utils@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== "@pmmmwh/react-refresh-webpack-plugin@^0.5.11": version "0.5.11" @@ -3419,7 +3447,7 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@polka/url@^1.0.0-next.20": +"@polka/url@^1.0.0-next.24": version "1.0.0-next.24" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== @@ -3729,10 +3757,10 @@ resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a" integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg== -"@remix-run/router@1.13.1": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.13.1.tgz#07e2a8006f23a3bc898b3f317e0a58cc8076b86e" - integrity sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q== +"@remix-run/router@1.14.2": + version "1.14.2" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.14.2.tgz#4d58f59908d9197ba3179310077f25c88e49ed17" + integrity sha512-ACXpdMM9hmKZww21yEqWwiLws/UPLhNKvimN8RrYSqPSvB3ov7sLvAcfvaxePeLvccTQKGdkDIhLYApZVDFuKg== "@rollup/plugin-babel@^5.2.0": version "5.3.1" @@ -3778,7 +3806,7 @@ dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.3": +"@sideway/address@^4.1.4": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== @@ -3857,141 +3885,141 @@ p-map "^4.0.0" webpack-sources "^3.2.2" -"@storybook/addon-actions@7.6.4", "@storybook/addon-actions@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.4.tgz#b2d2941baa926718f0c53581c8cc8b19c2e0393b" - integrity sha512-91UD5KPDik74VKVioPMcbwwvDXN/non8p1wArYAHCHCmd/Pts5MJRiFueSdfomSpNjUtjtn6eSXtwpIL3XVOfQ== +"@storybook/addon-actions@7.6.10", "@storybook/addon-actions@^7.2.2": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.10.tgz#5b43534e158797114db032f4ad8505a81809ed00" + integrity sha512-pcKmf0H/caGzKDy8cz1adNSjv+KOBWLJ11RzGExrWm+Ad5ACifwlsQPykJ3TQ/21sTd9IXVrE9uuq4LldEnPbg== dependencies: - "@storybook/core-events" "7.6.4" + "@storybook/core-events" "7.6.10" "@storybook/global" "^5.0.0" "@types/uuid" "^9.0.1" dequal "^2.0.2" polished "^4.2.2" uuid "^9.0.0" -"@storybook/addon-backgrounds@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.4.tgz#8ba49f4ad88327f606edb1f08fb0aef4e8eb3f05" - integrity sha512-gNy3kIkHSr+Lg/jVDHwbZjIe1po5SDGZNVe39vrJwnqGz8T1clWes9WHCL6zk/uaCDA3yUna2Nt/KlOFAWDSoQ== +"@storybook/addon-backgrounds@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.10.tgz#4ecfc017befd400e5eabad347ab1819c2ea67a8c" + integrity sha512-kGzsN1QkfyI8Cz7TErEx9OCB3PMzpCFGLd/iy7FreXwbMbeAQ3/9fYgKUsNOYgOhuTz7S09koZUWjS/WJuZGFA== dependencies: "@storybook/global" "^5.0.0" memoizerific "^1.11.3" ts-dedent "^2.0.0" -"@storybook/addon-controls@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.6.4.tgz#8f8651a1e929f5f8506d025bcc5c3e454444b1c3" - integrity sha512-k4AtZfazmD/nL3JAtLGAB7raPhkhUo0jWnaZWrahd9h1Fm13mBU/RW+JzTRhCw3Mp2HPERD7NI5Qcd2fUP6WDA== +"@storybook/addon-controls@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.6.10.tgz#6cd309440bf2b86c21f11a8b5f20bc1340d6c045" + integrity sha512-LjwCQRMWq1apLtFwDi6U8MI6ITUr+KhxJucZ60tfc58RgB2v8ayozyDAonFEONsx9YSR1dNIJ2Z/e2rWTBJeYA== dependencies: - "@storybook/blocks" "7.6.4" + "@storybook/blocks" "7.6.10" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@7.6.4", "@storybook/addon-docs@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.6.4.tgz#e15ab003482d5c43da43edae8557ac6e0988017e" - integrity sha512-PbFMbvC9sK3sGdMhwmagXs9TqopTp9FySji+L8O7W9SHRC6wSmdwoWWPWybkOYxr/z/wXi7EM0azSAX7yQxLbw== +"@storybook/addon-docs@7.6.10", "@storybook/addon-docs@^7.2.2": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.6.10.tgz#aab69f253a9cfbb57fd84062f00fac08f9c796cd" + integrity sha512-GtyQ9bMx1AOOtl6ZS9vwK104HFRK+tqzxddRRxhXkpyeKu3olm9aMgXp35atE/3fJSqyyDm2vFtxxH8mzBA20A== dependencies: "@jest/transform" "^29.3.1" "@mdx-js/react" "^2.1.5" - "@storybook/blocks" "7.6.4" - "@storybook/client-logger" "7.6.4" - "@storybook/components" "7.6.4" - "@storybook/csf-plugin" "7.6.4" - "@storybook/csf-tools" "7.6.4" + "@storybook/blocks" "7.6.10" + "@storybook/client-logger" "7.6.10" + "@storybook/components" "7.6.10" + "@storybook/csf-plugin" "7.6.10" + "@storybook/csf-tools" "7.6.10" "@storybook/global" "^5.0.0" "@storybook/mdx2-csf" "^1.0.0" - "@storybook/node-logger" "7.6.4" - "@storybook/postinstall" "7.6.4" - "@storybook/preview-api" "7.6.4" - "@storybook/react-dom-shim" "7.6.4" - "@storybook/theming" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/node-logger" "7.6.10" + "@storybook/postinstall" "7.6.10" + "@storybook/preview-api" "7.6.10" + "@storybook/react-dom-shim" "7.6.10" + "@storybook/theming" "7.6.10" + "@storybook/types" "7.6.10" fs-extra "^11.1.0" remark-external-links "^8.0.0" remark-slug "^6.0.0" ts-dedent "^2.0.0" "@storybook/addon-essentials@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.6.4.tgz#9ae4fa2836a603cccaf6065ae0ca81d7fb5f7139" - integrity sha512-J+zPmP4pbuuFxQ3pjLRYQRnxEtp7jF3xRXGFO8brVnEqtqoxwJ6j3euUrRLe0rpGAU3AD7dYfaaFjd3xkENgTw== + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.6.10.tgz#9078abe56b15d976e3d4c15247c748b2e8e53c30" + integrity sha512-cjbuCCK/3dtUity0Uqi5LwbkgfxqCCE5x5mXZIk9lTMeDz5vB9q6M5nzncVDy8F8przF3NbDLLgxKlt8wjiICg== dependencies: - "@storybook/addon-actions" "7.6.4" - "@storybook/addon-backgrounds" "7.6.4" - "@storybook/addon-controls" "7.6.4" - "@storybook/addon-docs" "7.6.4" - "@storybook/addon-highlight" "7.6.4" - "@storybook/addon-measure" "7.6.4" - "@storybook/addon-outline" "7.6.4" - "@storybook/addon-toolbars" "7.6.4" - "@storybook/addon-viewport" "7.6.4" - "@storybook/core-common" "7.6.4" - "@storybook/manager-api" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/preview-api" "7.6.4" + "@storybook/addon-actions" "7.6.10" + "@storybook/addon-backgrounds" "7.6.10" + "@storybook/addon-controls" "7.6.10" + "@storybook/addon-docs" "7.6.10" + "@storybook/addon-highlight" "7.6.10" + "@storybook/addon-measure" "7.6.10" + "@storybook/addon-outline" "7.6.10" + "@storybook/addon-toolbars" "7.6.10" + "@storybook/addon-viewport" "7.6.10" + "@storybook/core-common" "7.6.10" + "@storybook/manager-api" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/preview-api" "7.6.10" ts-dedent "^2.0.0" -"@storybook/addon-highlight@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.6.4.tgz#0d71de9b081fd7d2fa0d7003a19b47002be1e4f3" - integrity sha512-0kvjDzquoPwWWU61QYmEtcSGWXufnV7Z/bfBTYh132uxvV/X9YzDFcXXrxGL7sBJkK32gNUUBDuiTOxs5NxyOQ== +"@storybook/addon-highlight@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.6.10.tgz#19cad3d67655e9b9eef3d2f6760789fc29ba0790" + integrity sha512-dIuS5QmoT1R+gFOcf6CoBa6D9UR5/wHCfPqPRH8dNNcCLtIGSHWQ4v964mS5OCq1Huj7CghmR15lOUk7SaYwUA== dependencies: "@storybook/global" "^5.0.0" "@storybook/addon-links@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.6.4.tgz#e484cd67d26c4877e3dd77b2211fc3d02875e3c1" - integrity sha512-TEhxYdMhJO28gD84ej1FCwLv9oLuCPt77bRXip9ndaNPRTdHYdWv6IP94dhbuDi8eHux7Z4A/mllciFuDFrnCw== + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.6.10.tgz#e437d35b360ac9a33ee6078d901417a73f916629" + integrity sha512-s/WkSYHpr2pb9p57j6u/xDBg3TKJhBq55YMl0GB5gXgkRPIeuGbPhGJhm2yTGVFLvXgr/aHHnOxb/R/W8PiRhA== dependencies: "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" ts-dedent "^2.0.0" -"@storybook/addon-measure@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.6.4.tgz#0597ae04a27ff596bc8f2015f7c746b33eef78a3" - integrity sha512-73wsJ8PALsgWniR3MA/cmxcFuU6cRruWdIyYzOMgM8ife2Jm3xSkV7cTTXAqXt2H9Uuki4PGnuMHWWFLpPeyVA== +"@storybook/addon-measure@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.6.10.tgz#5e41d64aa6e02b9c6df1696d918058979598250e" + integrity sha512-OVfTI56+kc4hLWfZ/YPV3WKj/aA9e4iKXYxZyPdhfX4Z8TgZdD1wv9Z6e8DKS0H5kuybYrHKHaID5ki6t7qz3w== dependencies: "@storybook/global" "^5.0.0" tiny-invariant "^1.3.1" -"@storybook/addon-outline@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.6.4.tgz#1c62a4c5e97f277ded888e3157d5948618ec98fb" - integrity sha512-CFxGASRse/qeFocetDKFNeWZ3Aa2wapVtRciDNa4Zx7k1wCnTjEsPIm54waOuCaNVcrvO+nJUAZG5WyiorQvcg== +"@storybook/addon-outline@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.6.10.tgz#02b51084cc1d555c270995cebfe512924df0ce7e" + integrity sha512-RVJrEoPArhI6zAIMNl1Gz0zrj84BTfEWYYz0yDWOTVgvN411ugsoIk1hw0671MOneXJ2RcQ9MFIeV/v6AVDQYg== dependencies: "@storybook/global" "^5.0.0" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.6.4.tgz#de76577d20db8a0e63c567d9cbfad7de15ca0f56" - integrity sha512-ENMQJgU4sRCLLDVXYfa+P3cQVV9PC0ZxwVAKeM3NPYPNH/ODoryGNtq+Q68LwHlM4ObCE2oc9MzaQqPxloFcCw== +"@storybook/addon-toolbars@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.6.10.tgz#4d841e87acca5455a8339a29c1062612ccb07df6" + integrity sha512-PaXY/oj9yxF7/H0CNdQKcioincyCkfeHpISZriZbZqhyqsjn3vca7RFEmsB88Q+ou6rMeqyA9st+6e2cx/Ct6A== -"@storybook/addon-viewport@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.6.4.tgz#f39601082f48a903c47cae71a84b05428ea20331" - integrity sha512-SoTcHIoqybhYD28v7QExF1EZnl7FfxuP74VDhtze5LyMd2CbqmVnUfwewLCz/3IvCNce0GqdNyg1m6QJ7Eq1uw== +"@storybook/addon-viewport@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.6.10.tgz#834bad76a56e4117ffb2dc935d349dca3b49bcc3" + integrity sha512-+bA6juC/lH4vEhk+w0rXakaG8JgLG4MOYrIudk5vJKQaC6X58LIM9N4kzIS2KSExRhkExXBPrWsnMfCo7uxmKg== dependencies: memoizerific "^1.11.3" -"@storybook/blocks@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.6.4.tgz#f5d0de020b886e0fd17021608df5b73e5e39ae69" - integrity sha512-iXinXXhTUBtReREP1Jifpu35DnGg7FidehjvCM8sM4E4aymfb8czdg9DdvG46T2UFUPUct36nnjIdMLWOya8Bw== +"@storybook/blocks@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.6.10.tgz#353a5efa6a922a9a3766254f9f24cc2adad34f83" + integrity sha512-oSIukGC3yuF8pojABC/HLu5tv2axZvf60TaUs8eDg7+NiiKhzYSPoMQxs5uMrKngl+EJDB92ESgWT9vvsfvIPg== dependencies: - "@storybook/channels" "7.6.4" - "@storybook/client-logger" "7.6.4" - "@storybook/components" "7.6.4" - "@storybook/core-events" "7.6.4" + "@storybook/channels" "7.6.10" + "@storybook/client-logger" "7.6.10" + "@storybook/components" "7.6.10" + "@storybook/core-events" "7.6.10" "@storybook/csf" "^0.1.2" - "@storybook/docs-tools" "7.6.4" + "@storybook/docs-tools" "7.6.10" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.6.4" - "@storybook/preview-api" "7.6.4" - "@storybook/theming" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/manager-api" "7.6.10" + "@storybook/preview-api" "7.6.10" + "@storybook/theming" "7.6.10" + "@storybook/types" "7.6.10" "@types/lodash" "^4.14.167" color-convert "^2.0.1" dequal "^2.0.2" @@ -4005,15 +4033,15 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-manager@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.6.4.tgz#64d4745f918bf370924b767cc3a767818fa45a47" - integrity sha512-k5+D3fXw7LdMOWd5tF7cIq8L3irrdW6/vmcEHLaJj1EXZ+DvsNCH9xSsLS+6zfrUcxug4oSfRqvF87w6Oz3DtA== +"@storybook/builder-manager@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.6.10.tgz#fc30b19dd74e6f6ae896d8f4045552c3206c25f9" + integrity sha512-f+YrjZwohGzvfDtH8BHzqM3xW0p4vjjg9u7uzRorqUiNIAAKHpfNrZ/WvwPlPYmrpAHt4xX/nXRJae4rFSygPw== dependencies: "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "7.6.4" - "@storybook/manager" "7.6.4" - "@storybook/node-logger" "7.6.4" + "@storybook/core-common" "7.6.10" + "@storybook/manager" "7.6.10" + "@storybook/node-logger" "7.6.10" "@types/ejs" "^3.1.1" "@types/find-cache-dir" "^3.2.1" "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" @@ -4027,26 +4055,27 @@ process "^0.11.10" util "^0.12.4" -"@storybook/builder-webpack5@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.6.4.tgz#9ad8cd4811fe1b82d2244d705acf61f613d53206" - integrity sha512-J5wzPn/rsowlur5A7W9pAfN3a5fMapOoHaZsDKUklGRud/JUeabAIVdL1P/eX+yE3xaJk9auYivEWbglSx2Kpg== +"@storybook/builder-webpack5@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.6.10.tgz#9cd8ae541e836c089e17e5f8d527b9cad6d4d99f" + integrity sha512-ja47rdy75tAs37T+JLSqgUGJiba+74zM/8IpEZAzgJmGxLetnHuCWEDskZWh3NXemxYS2uCvsg5rNc+dL9z4RA== dependencies: "@babel/core" "^7.23.2" - "@storybook/channels" "7.6.4" - "@storybook/client-logger" "7.6.4" - "@storybook/core-common" "7.6.4" - "@storybook/core-events" "7.6.4" - "@storybook/core-webpack" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/preview" "7.6.4" - "@storybook/preview-api" "7.6.4" + "@storybook/channels" "7.6.10" + "@storybook/client-logger" "7.6.10" + "@storybook/core-common" "7.6.10" + "@storybook/core-events" "7.6.10" + "@storybook/core-webpack" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/preview" "7.6.10" + "@storybook/preview-api" "7.6.10" "@swc/core" "^1.3.82" "@types/node" "^18.0.0" "@types/semver" "^7.3.4" babel-loader "^9.0.0" browser-assert "^1.2.1" case-sensitive-paths-webpack-plugin "^2.4.0" + cjs-module-lexer "^1.2.3" constants-browserify "^1.0.0" css-loader "^6.7.1" es-module-lexer "^1.4.1" @@ -4070,35 +4099,35 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.5.0" -"@storybook/channels@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.6.4.tgz#d0af47f1f049c3ad77bcdefec54253f56b3b0a47" - integrity sha512-Z4PY09/Czl70ap4ObmZ4bgin+EQhPaA3HdrEDNwpnH7A9ttfEO5u5KThytIjMq6kApCCihmEPDaYltoVrfYJJA== +"@storybook/channels@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.6.10.tgz#04fd2c2f0b530bb8d236f5763e8df8cb5fa7c921" + integrity sha512-ITCLhFuDBKgxetuKnWwYqMUWlU7zsfH3gEKZltTb+9/2OAWR7ez0iqU7H6bXP1ridm0DCKkt2UMWj2mmr9iQqg== dependencies: - "@storybook/client-logger" "7.6.4" - "@storybook/core-events" "7.6.4" + "@storybook/client-logger" "7.6.10" + "@storybook/core-events" "7.6.10" "@storybook/global" "^5.0.0" qs "^6.10.0" telejson "^7.2.0" tiny-invariant "^1.3.1" -"@storybook/cli@7.6.4", "@storybook/cli@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.6.4.tgz#3680233a32975a400c091341f8b6ae4cdb01c72f" - integrity sha512-GqvaFdkkBMJOdnrVe82XY0V3b+qFMhRNyVoTv2nqB87iMUXZHqh4Pu4LqwaJBsBpuNregvCvVOPe9LGgoOzy4A== +"@storybook/cli@7.6.10", "@storybook/cli@^7.2.2": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.6.10.tgz#2436276c5404b166a9f795fef44bbd75826d9bfe" + integrity sha512-pK1MEseMm73OMO2OVoSz79QWX8ymxgIGM8IeZTCo9gImiVRChMNDFYcv8yPWkjuyesY8c15CoO48aR7pdA1OjQ== dependencies: "@babel/core" "^7.23.2" "@babel/preset-env" "^7.23.2" "@babel/types" "^7.23.0" "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "7.6.4" - "@storybook/core-common" "7.6.4" - "@storybook/core-events" "7.6.4" - "@storybook/core-server" "7.6.4" - "@storybook/csf-tools" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/telemetry" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/codemod" "7.6.10" + "@storybook/core-common" "7.6.10" + "@storybook/core-events" "7.6.10" + "@storybook/core-server" "7.6.10" + "@storybook/csf-tools" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/telemetry" "7.6.10" + "@storybook/types" "7.6.10" "@types/semver" "^7.3.4" "@yarnpkg/fslib" "2.10.3" "@yarnpkg/libzip" "2.3.0" @@ -4123,31 +4152,30 @@ puppeteer-core "^2.1.1" read-pkg-up "^7.0.1" semver "^7.3.7" - simple-update-notifier "^2.0.0" strip-json-comments "^3.0.1" tempy "^1.0.1" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.6.4.tgz#7533f5194903f554c297b0d327efee04c5accfbb" - integrity sha512-vJwMShC98tcoFruRVQ4FphmFqvAZX1FqZqjFyk6IxtFumPKTVSnXJjlU1SnUIkSK2x97rgdUMqkdI+wAv/tugQ== +"@storybook/client-logger@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.6.10.tgz#5d66feb18a21836f84b63f71cf5b3a85d669f049" + integrity sha512-U7bbpu21ntgePMz/mKM18qvCSWCUGCUlYru8mgVlXLCKqFqfTeP887+CsPEQf29aoE3cLgDrxqbRJ1wxX9kL9A== dependencies: "@storybook/global" "^5.0.0" -"@storybook/codemod@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.6.4.tgz#e3a314ad07f9dc799bd2531bb7ffc6ab3cf15996" - integrity sha512-q4rZVOfozxzbDRH/LzuFDoIGBdXs+orAm18fi6iAx8PeMHe8J/MOXKccNV1zdkm/h7mTQowuRo45KwJHw8vX+g== +"@storybook/codemod@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.6.10.tgz#21cc0e69df6f57d567fc27264310f820662d62fa" + integrity sha512-pzFR0nocBb94vN9QCJLC3C3dP734ZigqyPmd0ZCDj9Xce2ytfHK3v1lKB6TZWzKAZT8zztauECYxrbo4LVuagw== dependencies: "@babel/core" "^7.23.2" "@babel/preset-env" "^7.23.2" "@babel/types" "^7.23.0" "@storybook/csf" "^0.1.2" - "@storybook/csf-tools" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/csf-tools" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/types" "7.6.10" "@types/cross-spawn" "^6.0.2" cross-spawn "^7.0.3" globby "^11.0.2" @@ -4156,38 +4184,38 @@ prettier "^2.8.0" recast "^0.23.1" -"@storybook/components@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.6.4.tgz#44cf5fa1b52af540157b4dee7d23a46817329ab1" - integrity sha512-K5RvEObJAnX+SbGJbkM1qrZEk+VR2cUhRCSrFnlfMwsn8/60T3qoH7U8bCXf8krDgbquhMwqev5WzDB+T1VV8g== +"@storybook/components@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.6.10.tgz#2d1b8c66c374327663b91f65db3b1be5749a1a6b" + integrity sha512-H5hF8pxwtbt0LxV24KMMsPlbYG9Oiui3ObvAQkvGu6q62EYxRPeNSrq3GBI5XEbI33OJY9bT24cVaZx18dXqwQ== dependencies: "@radix-ui/react-select" "^1.2.2" "@radix-ui/react-toolbar" "^1.0.4" - "@storybook/client-logger" "7.6.4" + "@storybook/client-logger" "7.6.10" "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/theming" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/theming" "7.6.10" + "@storybook/types" "7.6.10" memoizerific "^1.11.3" use-resize-observer "^9.1.0" util-deprecate "^1.0.2" -"@storybook/core-client@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.6.4.tgz#d38ddb80bbc6119017a8ba15b88c030cf03d27e0" - integrity sha512-0msqdGd+VYD1dRgAJ2StTu4d543Wveb7LVVujX3PwD/QCxmCaVUHuAoZrekM/H7jZLw546ZIbLZo0xWrADAUMw== +"@storybook/core-client@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.6.10.tgz#cd427d7017c1f32b2e956b4eb8ea89f3424b60c9" + integrity sha512-DjnzSzSNDmZyxyg6TxugzWQwOsW+n/iWVv6sHNEvEd5STr0mjuJjIEELmv58LIr5Lsre5+LEddqHsyuLyt8ubg== dependencies: - "@storybook/client-logger" "7.6.4" - "@storybook/preview-api" "7.6.4" + "@storybook/client-logger" "7.6.10" + "@storybook/preview-api" "7.6.10" -"@storybook/core-common@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.6.4.tgz#8ee282058ea4dd8fc0a053c30759f4bf65dab86b" - integrity sha512-qes4+mXqINu0kCgSMFjk++GZokmYjb71esId0zyJsk0pcIPkAiEjnhbSEQkMhbUfcvO1lztoaQTBW2P7Rd1tag== +"@storybook/core-common@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.6.10.tgz#00b73761eb3c4452105a7d79b5179237a6f01b32" + integrity sha512-K3YWqjCKMnpvYsWNjOciwTH6zWbuuZzmOiipziZaVJ+sB1XYmH52Y3WGEm07TZI8AYK9DRgwA13dR/7W0nw72Q== dependencies: - "@storybook/core-events" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/core-events" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/types" "7.6.10" "@types/find-cache-dir" "^3.2.1" "@types/node" "^18.0.0" "@types/node-fetch" "^2.6.4" @@ -4209,33 +4237,33 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/core-events@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.4.tgz#55405545dbc9ae5715654d2198ee1f1a3cc34ef7" - integrity sha512-i3xzcJ19ILSy4oJL5Dz9y0IlyApynn5RsGhAMIsW+mcfri+hGfeakq1stNCo0o7jW4Y3A7oluFTtIoK8DOxQdQ== +"@storybook/core-events@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.10.tgz#d521cbdadebfa56caaa8815a1e132694a20f05e9" + integrity sha512-yccDH67KoROrdZbRKwxgTswFMAco5nlCyxszCDASCLygGSV2Q2e+YuywrhchQl3U6joiWi3Ps1qWu56NeNafag== dependencies: ts-dedent "^2.0.0" -"@storybook/core-server@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.6.4.tgz#7732be1437af2affb3d7b0c5528446006a4c72a3" - integrity sha512-mXxZMpCwOhjEPPRjqrTHdiCpFdkc47f46vlgTj02SX+9xKHxslmZ2D3JG/8O4Ab9tG+bBl6lBm3RIrIzaiCu9Q== +"@storybook/core-server@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.6.10.tgz#53bf43b8b3c999c87196774a0b92e2e10a434e4c" + integrity sha512-2icnqJkn3vwq0eJPP0rNaHd7IOvxYf5q4lSVl2AWTxo/Ae19KhokI6j/2vvS2XQJMGQszwshlIwrZUNsj5p0yw== dependencies: "@aw-web-design/x-default-browser" "1.4.126" "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "7.6.4" - "@storybook/channels" "7.6.4" - "@storybook/core-common" "7.6.4" - "@storybook/core-events" "7.6.4" + "@storybook/builder-manager" "7.6.10" + "@storybook/channels" "7.6.10" + "@storybook/core-common" "7.6.10" + "@storybook/core-events" "7.6.10" "@storybook/csf" "^0.1.2" - "@storybook/csf-tools" "7.6.4" + "@storybook/csf-tools" "7.6.10" "@storybook/docs-mdx" "^0.1.0" "@storybook/global" "^5.0.0" - "@storybook/manager" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/preview-api" "7.6.4" - "@storybook/telemetry" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/manager" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/preview-api" "7.6.10" + "@storybook/telemetry" "7.6.10" + "@storybook/types" "7.6.10" "@types/detect-port" "^1.3.0" "@types/node" "^18.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -4263,36 +4291,36 @@ watchpack "^2.2.0" ws "^8.2.3" -"@storybook/core-webpack@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.6.4.tgz#fd9ff9eb54cfd57c6f1a3642b0605e9c80999044" - integrity sha512-+C2YddhOhO0Lp9KngzX9XYJZKzCzo4vjXA3IMXxSA7Vo7gFhaa8uQTAXnUx7xCrvFXM/iiHUY1SN+VppB0eBdA== +"@storybook/core-webpack@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.6.10.tgz#e4ca086973d4d10f08b5bed789f1398eb983d8b1" + integrity sha512-+GiCRp+2Hw0NO3NYRKamG/U5SyOQ8tOfRUxuAqWI7nduXwB3WWdjji3/ofjqOm/ryKesuQFtfhozaczvBJBvng== dependencies: - "@storybook/core-common" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/core-common" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/types" "7.6.10" "@types/node" "^18.0.0" ts-dedent "^2.0.0" -"@storybook/csf-plugin@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.6.4.tgz#5d18cffc1c92dfd12d8571b2ba9d1456de58d8b2" - integrity sha512-7g9p8s2ITX+Z9iThK5CehPhJOcusVN7JcUEEW+gVF5PlYT+uk/x+66gmQno+scQuNkV9+8UJD6RLFjP+zg2uCA== +"@storybook/csf-plugin@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.6.10.tgz#479cffe04c68a87f60589a6891a306805c758437" + integrity sha512-Sc+zZg/BnPH2X28tthNaQBnDiFfO0QmfjVoOx0fGYM9SvY3P5ehzWwp5hMRBim6a/twOTzePADtqYL+t6GMqqg== dependencies: - "@storybook/csf-tools" "7.6.4" + "@storybook/csf-tools" "7.6.10" unplugin "^1.3.1" -"@storybook/csf-tools@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.6.4.tgz#4c1ef7a79ecd6f96d7fc1cb092cf2ed942cd65e2" - integrity sha512-6sLayuhgReIK3/QauNj5BW4o4ZfEMJmKf+EWANPEM/xEOXXqrog6Un8sjtBuJS9N1DwyhHY6xfkEiPAwdttwqw== +"@storybook/csf-tools@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.6.10.tgz#320638f64e2e14cf539dd55188f676fd82789be5" + integrity sha512-TnDNAwIALcN6SA4l00Cb67G02XMOrYU38bIpFJk5VMDX2dvgPjUtJNBuLmEbybGcOt7nPyyFIHzKcY5FCVGoWA== dependencies: "@babel/generator" "^7.23.0" "@babel/parser" "^7.23.0" "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" "@storybook/csf" "^0.1.2" - "@storybook/types" "7.6.4" + "@storybook/types" "7.6.10" fs-extra "^11.1.0" recast "^0.23.1" ts-dedent "^2.0.0" @@ -4309,14 +4337,14 @@ resolved "https://registry.yarnpkg.com/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz#33ba0e39d1461caf048b57db354b2cc410705316" integrity sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg== -"@storybook/docs-tools@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.6.4.tgz#504b8654f348a109b69cc77cdab556f0bf9c2304" - integrity sha512-2eGam43aD7O3cocA72Z63kRi7t/ziMSpst0qB218QwBWAeZjT4EYDh8V6j/Xhv6zVQL3msW7AglrQP5kCKPvPA== +"@storybook/docs-tools@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.6.10.tgz#90ce6bcf468b8d0a479fb75e9a6ff87f482095dc" + integrity sha512-UgbikducoXzqQHf2TozO0f2rshaeBNnShVbL5Ai4oW7pDymBmrfzdjGbF/milO7yxNKcoIByeoNmu384eBamgQ== dependencies: - "@storybook/core-common" "7.6.4" - "@storybook/preview-api" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/core-common" "7.6.10" + "@storybook/preview-api" "7.6.10" + "@storybook/types" "7.6.10" "@types/doctrine" "^0.0.3" assert "^2.1.0" doctrine "^3.0.0" @@ -4327,59 +4355,58 @@ resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== -"@storybook/manager-api@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.6.4.tgz#edf5d553a78987ad8602700b7200391776010f48" - integrity sha512-RFb/iaBJfXygSgXkINPRq8dXu7AxBicTGX7MxqKXbz5FU7ANwV7abH6ONBYURkSDOH9//TQhRlVkF5u8zWg3bw== +"@storybook/manager-api@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.6.10.tgz#0c2932f42bb97de8fb25240844fcf64474fc8905" + integrity sha512-8eGVpRlpunuFScDtc7nxpPJf/4kJBAAZlNdlhmX09j8M3voX6GpcxabBamSEX5pXZqhwxQCshD4IbqBmjvadlw== dependencies: - "@storybook/channels" "7.6.4" - "@storybook/client-logger" "7.6.4" - "@storybook/core-events" "7.6.4" + "@storybook/channels" "7.6.10" + "@storybook/client-logger" "7.6.10" + "@storybook/core-events" "7.6.10" "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/router" "7.6.4" - "@storybook/theming" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/router" "7.6.10" + "@storybook/theming" "7.6.10" + "@storybook/types" "7.6.10" dequal "^2.0.2" lodash "^4.17.21" memoizerific "^1.11.3" - semver "^7.3.7" store2 "^2.14.2" telejson "^7.2.0" ts-dedent "^2.0.0" -"@storybook/manager@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.6.4.tgz#11ea1ce8f37a069c96e594a716957f0d6c7690f3" - integrity sha512-Ug2ejfKgKre8h/RJbkumukwAA44TbvTPEjDcJmyFdAI+kHYhOYdKPEC2UNmVYz8/4HjwMTJQ3M7t/esK8HHY4A== +"@storybook/manager@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.6.10.tgz#eb1b71c802fbf04353f3bf017dfb102eb0db217e" + integrity sha512-Co3sLCbNYY6O4iH2ggmRDLCPWLj03JE5s/DOG8OVoXc6vBwTc/Qgiyrsxxp6BHQnPpM0mxL6aKAxE3UjsW/Nog== "@storybook/mdx2-csf@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz#97f6df04d0bf616991cc1005a073ac004a7281e5" integrity sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw== -"@storybook/node-logger@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.6.4.tgz#e471ee117bbd329522113dd98e5a42e83e259f9c" - integrity sha512-GDkEnnDj4Op+PExs8ZY/P6ox3wg453CdEIaR8PR9TxF/H/T2fBL6puzma3hN2CMam6yzfAL8U+VeIIDLQ5BZdQ== +"@storybook/node-logger@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.6.10.tgz#d4c52d04384d2728d6610fb0afff6eb1feb50fd4" + integrity sha512-ZBuqrv4bjJzKXyfRGFkVIi+z6ekn6rOPoQao4KmsfLNQAUUsEdR8Baw/zMnnU417zw5dSEaZdpuwx75SCQAeOA== -"@storybook/postinstall@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.6.4.tgz#baefcec351ac79ee711ad27b65bf1ec28e545da6" - integrity sha512-7uoB82hSzlFSdDMS3hKQD+AaeSvPit/fAMvXCBxn0/D0UGJUZcq4M9JcKBwEHkZJcbuDROgOTJ6TUeXi/FWO0w== +"@storybook/postinstall@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.6.10.tgz#9e81c54b1f23f71a59a6db7ee8a4d5ac40852d17" + integrity sha512-SMdXtednPCy3+SRJ7oN1OPN1oVFhj3ih+ChOEX8/kZ5J3nfmV3wLPtsZvFGUCf0KWQEP1xL+1Urv48mzMKcV/w== -"@storybook/preset-react-webpack@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-7.6.4.tgz#ea1efab0a5e973136ddcb196cbdba85afe411233" - integrity sha512-rQ3hqehGUvmbwUosNdh1jnXevaHQ9ezqc4v8YlX5TELp1oz+qhRe0gnQOdsQ98SsdjA24EHfgc331dp9F3up6Q== +"@storybook/preset-react-webpack@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-7.6.10.tgz#86b34f7156258ddf6481bffd6c638e5382d01054" + integrity sha512-fUcr4dmXJdPIQdjkhA4bE8QF8Pavr4BSLxovtTRupbWxtRjZxJrH5hf+0HZycq1cp9umO/11Lsmw9Nx5Xg3Eww== dependencies: "@babel/preset-flow" "^7.22.15" "@babel/preset-react" "^7.22.15" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.11" - "@storybook/core-webpack" "7.6.4" - "@storybook/docs-tools" "7.6.4" - "@storybook/node-logger" "7.6.4" - "@storybook/react" "7.6.4" + "@storybook/core-webpack" "7.6.10" + "@storybook/docs-tools" "7.6.10" + "@storybook/node-logger" "7.6.10" + "@storybook/react" "7.6.10" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" "@types/node" "^18.0.0" "@types/semver" "^7.3.4" @@ -4391,17 +4418,17 @@ semver "^7.3.7" webpack "5" -"@storybook/preview-api@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.6.4.tgz#df103fbdfada5ceee540f6ea68001c0d2c718113" - integrity sha512-KhisNdQX5NdfAln+spLU4B82d804GJQp/CnI5M1mm/taTnjvMgs/wTH9AmR89OPoq+tFZVW0vhy2zgPS3ar71A== +"@storybook/preview-api@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.6.10.tgz#b8d5a4f897745fc28f0ae75f7e0e9278b0e4a50a" + integrity sha512-5A3etoIwZCx05yuv3KSTv1wynN4SR4rrzaIs/CTBp3BC4q1RBL+Or/tClk0IJPXQMlx/4Y134GtNIBbkiDofpw== dependencies: - "@storybook/channels" "7.6.4" - "@storybook/client-logger" "7.6.4" - "@storybook/core-events" "7.6.4" + "@storybook/channels" "7.6.10" + "@storybook/client-logger" "7.6.10" + "@storybook/core-events" "7.6.10" "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/types" "7.6.4" + "@storybook/types" "7.6.10" "@types/qs" "^6.9.5" dequal "^2.0.2" lodash "^4.17.21" @@ -4411,10 +4438,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/preview@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.6.4.tgz#36cca1d10fd3729f1a68789d95bfc400e33aa616" - integrity sha512-p9xIvNkgXgTpSRphOMV9KpIiNdkymH61jBg3B0XyoF6IfM1S2/mQGvC89lCVz1dMGk2SrH4g87/WcOapkU5ArA== +"@storybook/preview@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.6.10.tgz#895053c97f7e09141c6321fa42390fa8af377bef" + integrity sha512-F07BzVXTD3byq+KTWtvsw3pUu3fQbyiBNLFr2CnfU4XSdLKja5lDt8VqDQq70TayVQOf5qfUTzRd4M6pQkjw1w== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -4429,33 +4456,33 @@ react-docgen-typescript "^2.2.2" tslib "^2.0.0" -"@storybook/react-dom-shim@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.6.4.tgz#d1f5440c8f1ccd95abcc01117872ce46d0ab9dc3" - integrity sha512-wGJfomlDEBnowNmhmumWDu/AcUInxSoPqUUJPgk2f5oL0EW17fR9fDP/juG3XOEdieMDM0jDX48GML7lyvL2fg== +"@storybook/react-dom-shim@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.6.10.tgz#d16df5d65a51ed66df92430d8f51d50bd177f2c2" + integrity sha512-M+N/h6ximacaFdIDjMN2waNoWwApeVYTpFeoDppiFTvdBTXChyIuiPgYX9QSg7gDz92OaA52myGOot4wGvXVzg== "@storybook/react-webpack5@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-7.6.4.tgz#528b72172f3046bdcfa9934b5cfe22edf0b784f7" - integrity sha512-uUucaHG67Yu2WrHigJzMbbYg6vbehHDUC6HsORcfwdC9y/VhR47ORU6UkVQNZ/K4WLNe4HbyGGKGRUght5UtbQ== + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-7.6.10.tgz#f9d3cb4abc4177d43cefcc62d497b2cbee2b5181" + integrity sha512-LWwasiSLEg4wqsMjoRHcOn6BXv2ZyZfTfQV7gCvaX732xf0teblh+/GltAz8x+BtFXruXWmZ8bJ5cd9U4I6hUg== dependencies: - "@storybook/builder-webpack5" "7.6.4" - "@storybook/preset-react-webpack" "7.6.4" - "@storybook/react" "7.6.4" + "@storybook/builder-webpack5" "7.6.10" + "@storybook/preset-react-webpack" "7.6.10" + "@storybook/react" "7.6.10" "@types/node" "^18.0.0" -"@storybook/react@7.6.4", "@storybook/react@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.6.4.tgz#b17c451eb1240399d75c45ccb90a145ab1de44ac" - integrity sha512-XYRP+eylH3JqkCuziwtQGY5vOCeDreOibRYJmj5na6k4QbURjGVB44WCIW04gWVlmBXM9SqLAmserUi3HP890Q== +"@storybook/react@7.6.10", "@storybook/react@^7.2.2": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.6.10.tgz#aca5c446f43de75981f19d112a8a04d7abd0a03d" + integrity sha512-wwBn1cg2uZWW4peqqBjjU7XGmFq8HdkVUtWwh6dpfgmlY1Aopi+vPgZt7pY9KkWcTOq5+DerMdSfwxukpc3ajQ== dependencies: - "@storybook/client-logger" "7.6.4" - "@storybook/core-client" "7.6.4" - "@storybook/docs-tools" "7.6.4" + "@storybook/client-logger" "7.6.10" + "@storybook/core-client" "7.6.10" + "@storybook/docs-tools" "7.6.10" "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.6.4" - "@storybook/react-dom-shim" "7.6.4" - "@storybook/types" "7.6.4" + "@storybook/preview-api" "7.6.10" + "@storybook/react-dom-shim" "7.6.10" + "@storybook/types" "7.6.10" "@types/escodegen" "^0.0.6" "@types/estree" "^0.0.51" "@types/node" "^18.0.0" @@ -4471,56 +4498,56 @@ type-fest "~2.19" util-deprecate "^1.0.2" -"@storybook/router@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.6.4.tgz#13112bd9d6709bebe4072d923e4921b660f8f00c" - integrity sha512-5MQ7Z4D7XNPN2yhFgjey7hXOYd6s8CggUqeAwhzGTex90SMCkKHSz1hfkcXn1ZqBPaall2b53uK553OvPLp9KQ== +"@storybook/router@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.6.10.tgz#b1f2c550eeb9f7146eefa33c5460e4149a62d721" + integrity sha512-G/H4Jn2+y8PDe8Zbq4DVxF/TPn0/goSItdILts39JENucHiuGBCjKjSWGBe1rkwKi1tUbB3yhxJVrLagxFEPpQ== dependencies: - "@storybook/client-logger" "7.6.4" + "@storybook/client-logger" "7.6.10" memoizerific "^1.11.3" qs "^6.10.0" "@storybook/source-loader@^7.2.2": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-7.6.4.tgz#ef930e2dd947f45cbfaf845fa21035d82ac25c8d" - integrity sha512-1wb/3bVpJZ/3r3qUrLK8jb0kLuvwjNi5T1kci5huREdc1TrIxZXoPw9EiyjcMCZzCURkoj7euNLrLHGyzdBTLg== + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-7.6.10.tgz#fe214f6323a27c14b85b6beb573a9ddb38d8cb35" + integrity sha512-S3nOWyj+sdpsqJqKGIN3DKE1q+Q0KYxEyPlPCawMFazozUH7tOodTIqmHBqJZCSNqdC4M1S/qcL8vpP4PfXhuA== dependencies: "@storybook/csf" "^0.1.2" - "@storybook/types" "7.6.4" + "@storybook/types" "7.6.10" estraverse "^5.2.0" lodash "^4.17.21" prettier "^2.8.0" -"@storybook/telemetry@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.6.4.tgz#b28e8f7abf73b4900d83dfa68a988b6f3df9c24a" - integrity sha512-Q4QpvcgloHUEqC9PGo7tgqkUH91/PjX+74/0Hi9orLo8QmLMgdYS5fweFwgSKoTwDGNg2PaHp/jqvhhw7UmnJA== +"@storybook/telemetry@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.6.10.tgz#31c0edfb9c7005cf9b5922e51ca896218e3d81ea" + integrity sha512-p3mOSUtIyy2tF1z6pQXxNh1JzYFcAm97nUgkwLzF07GfEdVAPM+ftRSLFbD93zVvLEkmLTlsTiiKaDvOY/lQWg== dependencies: - "@storybook/client-logger" "7.6.4" - "@storybook/core-common" "7.6.4" - "@storybook/csf-tools" "7.6.4" + "@storybook/client-logger" "7.6.10" + "@storybook/core-common" "7.6.10" + "@storybook/csf-tools" "7.6.10" chalk "^4.1.0" detect-package-manager "^2.0.1" fetch-retry "^5.0.2" fs-extra "^11.1.0" read-pkg-up "^7.0.1" -"@storybook/theming@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.6.4.tgz#cc81d0aee5fc80fe383cb6790e3a0e2ad80d2185" - integrity sha512-Z/dcC5EpkIXelYCkt9ojnX6D7qGOng8YHxV/OWlVE9TrEGYVGPOEfwQryR0RhmGpDha1TYESLYrsDb4A8nJ1EA== +"@storybook/theming@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.6.10.tgz#c09d66d19f5756964cc89b1f94051545fc4aaea7" + integrity sha512-f5tuy7yV3TOP3fIboSqpgLHy0wKayAw/M8HxX0jVET4Z4fWlFK0BiHJabQ+XEdAfQM97XhPFHB2IPbwsqhCEcQ== dependencies: "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.6.4" + "@storybook/client-logger" "7.6.10" "@storybook/global" "^5.0.0" memoizerific "^1.11.3" -"@storybook/types@7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.6.4.tgz#3bb50b46286cc83484848c3c450c32cc2071eb21" - integrity sha512-qyiiXPCvol5uVgfubcIMzJBA0awAyFPU+TyUP1mkPYyiTHnsHYel/mKlSdPjc8a97N3SlJXHOCx41Hde4IyJgg== +"@storybook/types@7.6.10": + version "7.6.10" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.6.10.tgz#20cfb2dfeba2ecf54721de131276041d073fe42e" + integrity sha512-hcS2HloJblaMpCAj2axgGV+53kgSRYPT0a1PG1IHsZaYQILfHSMmBqM8XzXXYTsgf9250kz3dqFX1l0n3EqMlQ== dependencies: - "@storybook/channels" "7.6.4" + "@storybook/channels" "7.6.10" "@types/babel__core" "^7.0.0" "@types/express" "^4.7.0" file-system-cache "2.3.0" @@ -4744,68 +4771,74 @@ "@svgr/plugin-jsx" "^6.5.1" "@svgr/plugin-svgo" "^6.5.1" -"@swc/core-darwin-arm64@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.100.tgz#f582c5bbc9c49506f728fc1d14dff33c2cc226d5" - integrity sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw== +"@swc/core-darwin-arm64@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.104.tgz#ad8fcd333c09634279d6cf46c5dd2c00b47ef809" + integrity sha512-rCnVj8x3kn6s914Adddu+zROHUn6mUEMkNKUckofs3W9OthNlZXJA3C5bS2MMTRFXCWamJ0Zmh6INFpz+f4Tfg== -"@swc/core-darwin-x64@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.100.tgz#d84f5c0bb4603c252884d011a698ed7c634b1505" - integrity sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA== +"@swc/core-darwin-x64@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.104.tgz#be2f270fb1f9d0aa2f27836f9ccb28ea4da26a7e" + integrity sha512-LBCWGTYkn1UjyxrmcLS3vZgtCDVhwxsQMV7jz5duc7Gas8SRWh6ZYqvUkjlXMDX1yx0uvzHrkaRw445+zDRj7Q== -"@swc/core-linux-arm64-gnu@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.100.tgz#1ed4b92b373882d8f338c4e0a0aa64cdaa6106f1" - integrity sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw== +"@swc/core-linux-arm-gnueabihf@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.104.tgz#52c1425fbd4aa189d47a40eaebb335cbda96f917" + integrity sha512-iFbsWcx0TKHWnFBNCuUstYqRtfkyBx7FKv5To1Hx14EMuvvoCD/qUoJEiNfDQN5n/xU9g5xq4RdbjEWCFLhAbA== -"@swc/core-linux-arm64-musl@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.100.tgz#9db560f7459e42e65ec02670d6a8316e7c850cfc" - integrity sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA== +"@swc/core-linux-arm64-gnu@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.104.tgz#30da51b22f36887317fa5f49b8eb2ebe17d936de" + integrity sha512-1BIIp+nUPrRHHaJ35YJqrwXPwYSITp5robqqjyTwoKGw2kq0x+A964kpWul6v0d7A9Ial8fyH4m13eSWBodD2A== -"@swc/core-linux-x64-gnu@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.100.tgz#228826ea48879bf1e73683fbef4373e3e762e424" - integrity sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA== +"@swc/core-linux-arm64-musl@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.104.tgz#c9a281ad655ba5a4217466c7e0ca6457202b2997" + integrity sha512-IyDNkzpKwvLqmRwTW+s8f8OsOSSj1N6juZKbvNHpZRfWZkz3T70q3vJlDBWQwy8z8cm7ckd7YUT3eKcSBPPowg== -"@swc/core-linux-x64-musl@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.100.tgz#09a234dbbf625d071ecb663680e997a62d230d49" - integrity sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ== +"@swc/core-linux-x64-gnu@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.104.tgz#2bd0cd4e92fbedb83aeb6526299a792579b624f2" + integrity sha512-MfX/wiRdTjE5uXHTDnaX69xI4UBfxIhcxbVlMj//N+7AX/G2pl2UFityfVMU2HpM12BRckrCxVI8F/Zy3DZkYQ== -"@swc/core-win32-arm64-msvc@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.100.tgz#add1c82884c10a9054ed6a48f884097aa85c6d2b" - integrity sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw== +"@swc/core-linux-x64-musl@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.104.tgz#a3bb9b5eb9c524f87c586f43019fc544e2ef8bcf" + integrity sha512-5yeILaxA31gGEmquErO8yxlq1xu0XVt+fz5mbbKXKZMRRILxYxNzAGb5mzV41r0oHz6Vhv4AXX/WMCmeWl+HkQ== -"@swc/core-win32-ia32-msvc@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.100.tgz#e0b6c5ae7f3250adeeb88dae83558d3f45148c56" - integrity sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A== +"@swc/core-win32-arm64-msvc@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.104.tgz#ec3b63321bbed1283c7873b7c3ecaaf03f8a42ee" + integrity sha512-rwcImsYnWDWGmeESG0XdGGOql5s3cG5wA8C4hHHKdH76zamPfDKKQFBsjmoNi0f1IsxaI9AJPeOmD4bAhT1ZoQ== -"@swc/core-win32-x64-msvc@1.3.100": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.100.tgz#34721dff151d7dcf165675f18aeed0a12264d88c" - integrity sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ== +"@swc/core-win32-ia32-msvc@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.104.tgz#47ef6d3dfb7093ff7da4848a59645672c0f25bef" + integrity sha512-ICDA+CJLYC7NkePnrbh/MvXwDQfy3rZSFgrVdrqRosv9DKHdFjYDnA9++7ozjrIdFdBrFW2NR7pyUcidlwhNzA== + +"@swc/core-win32-x64-msvc@1.3.104": + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.104.tgz#661de1921e869b0a6762e85c5e3232c007554ad8" + integrity sha512-fZJ1Ju62U4lMZVU+nHxLkFNcu0hG5Y0Yj/5zjrlbuX5N8J5eDndWAFsVnQhxRTZqKhZB53pvWRQs5FItSDqgXg== "@swc/core@^1.3.82": - version "1.3.100" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.100.tgz#8fa36f26a35137620234b084224c9fa9b8a0fee2" - integrity sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw== + version "1.3.104" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.104.tgz#4346c4548ddff85ebc4a1acd2ce54ce6f36f5e34" + integrity sha512-9LWH/qzR/Pmyco+XwPiPfz59T1sryI7o5dmqb593MfCkaX5Fzl9KhwQTI47i21/bXYuCdfa9ySZuVkzXMirYxA== dependencies: "@swc/counter" "^0.1.1" "@swc/types" "^0.1.5" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.100" - "@swc/core-darwin-x64" "1.3.100" - "@swc/core-linux-arm64-gnu" "1.3.100" - "@swc/core-linux-arm64-musl" "1.3.100" - "@swc/core-linux-x64-gnu" "1.3.100" - "@swc/core-linux-x64-musl" "1.3.100" - "@swc/core-win32-arm64-msvc" "1.3.100" - "@swc/core-win32-ia32-msvc" "1.3.100" - "@swc/core-win32-x64-msvc" "1.3.100" + "@swc/core-darwin-arm64" "1.3.104" + "@swc/core-darwin-x64" "1.3.104" + "@swc/core-linux-arm-gnueabihf" "1.3.104" + "@swc/core-linux-arm64-gnu" "1.3.104" + "@swc/core-linux-arm64-musl" "1.3.104" + "@swc/core-linux-x64-gnu" "1.3.104" + "@swc/core-linux-x64-musl" "1.3.104" + "@swc/core-win32-arm64-msvc" "1.3.104" + "@swc/core-win32-ia32-msvc" "1.3.104" + "@swc/core-win32-x64-msvc" "1.3.104" "@swc/counter@^0.1.1": version "0.1.2" @@ -4867,9 +4900,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.7" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" - integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" @@ -4882,9 +4915,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6", "@types/babel__traverse@^7.18.0": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" - integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== dependencies: "@babel/types" "^7.20.7" @@ -4978,9 +5011,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.44.9" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.9.tgz#5799663009645637bd1c45b2e1a7c8f4caf89534" - integrity sha512-6yBxcvwnnYoYT1Uk2d+jvIfsuP4mb2EdIxFnrPABj5a/838qe5bGkNLFOiipX4ULQ7XVQvTxOh7jO+BTAiqsEw== + version "8.56.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.2.tgz#1c72a9b794aa26a8b94ad26d5b9aa51c8a6384bb" + integrity sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -5056,9 +5089,9 @@ "@types/node" "*" "@types/hast@^2.0.0": - version "2.3.8" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.8.tgz#4ac5caf38b262b7bd5ca3202dda71f0271635660" - integrity sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ== + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.9.tgz#a9a1b5bbce46e8a1312e977364bacabc8e93d2cf" + integrity sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw== dependencies: "@types/unist" "^2" @@ -5196,24 +5229,24 @@ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== "@types/node-fetch@^2.6.4": - version "2.6.9" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" - integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== dependencies: "@types/node" "*" form-data "^4.0.0" "@types/node-forge@^1.3.0": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" - integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== dependencies: "@types/node" "*" "@types/node@*": - version "20.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" - integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== + version "20.11.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e" + integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w== dependencies: undici-types "~5.26.4" @@ -5228,9 +5261,9 @@ integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/node@^18.0.0", "@types/node@^18.17.5": - version "18.19.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.3.tgz#e4723c4cb385641d61b983f6fe0b716abd5f8fc0" - integrity sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg== + version "18.19.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.8.tgz#c1e42b165e5a526caf1f010747e0522cb2c9c36a" + integrity sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg== dependencies: undici-types "~5.26.4" @@ -5265,9 +5298,9 @@ integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== "@types/qs@*", "@types/qs@^6.9.5": - version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" - integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== + version "6.9.11" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" + integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== "@types/range-parser@*": version "1.2.7" @@ -5315,18 +5348,18 @@ "@types/react" "*" "@types/react@*", "@types/react@>=16": - version "18.2.45" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.45.tgz#253f4fac288e7e751ab3dc542000fb687422c15c" - integrity sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg== + version "18.2.48" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" + integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/react@^17.0.38": - version "17.0.73" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.73.tgz#23a663c803b18d8b7f4f2bb9b467f2f3fd70787a" - integrity sha512-6AcjgPIVsXTIsFDgsGW0iQhvg0xb2vt2qAWgXyncnVNRaW9ZXTTwAh7RQoh7PzK1AhjPoGDvUBkdAREih9n5oQ== + version "17.0.75" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.75.tgz#cffbc76840a12fcadaf5a3cf14878bb06efcf73d" + integrity sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -5521,15 +5554,15 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^6.3.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz#fc1ab5f23618ba590c87e8226ff07a760be3dd7b" - integrity sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw== + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" + integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/type-utils" "6.14.0" - "@typescript-eslint/utils" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/type-utils" "6.19.0" + "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -5538,71 +5571,72 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.3.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.14.0.tgz#a2d6a732e0d2b95c73f6a26ae7362877cc1b4212" - integrity sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA== + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" + integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== dependencies: - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/typescript-estree" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" - integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg== +"@typescript-eslint/scope-manager@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== dependencies: - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" -"@typescript-eslint/type-utils@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz#ac9cb5ba0615c837f1a6b172feeb273d36e4f8af" - integrity sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw== +"@typescript-eslint/type-utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: - "@typescript-eslint/typescript-estree" "6.14.0" - "@typescript-eslint/utils" "6.14.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/utils" "6.19.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" - integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== +"@typescript-eslint/types@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== -"@typescript-eslint/typescript-estree@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" - integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw== +"@typescript-eslint/typescript-estree@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3" - integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg== +"@typescript-eslint/utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/typescript-estree" "6.14.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" - integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw== +"@typescript-eslint/visitor-keys@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: - "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/types" "6.19.0" eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": @@ -5878,9 +5912,9 @@ acorn-walk@^7.0.0, acorn-walk@^7.2.0: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.0, acorn-walk@^8.0.2: - version "8.3.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" - integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^6.0.7, acorn@^6.1.1: version "6.4.2" @@ -5893,9 +5927,9 @@ acorn@^7.0.0, acorn@^7.4.0, acorn@^7.4.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.2, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== add-stream@^1.0.0: version "1.0.0" @@ -5924,13 +5958,6 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agent-base@^7.0.2: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" - agentkeepalive@^4.2.1: version "4.5.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" @@ -6016,31 +6043,31 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.6.0, ajv@^8.9.0: uri-js "^4.2.2" algoliasearch-helper@^3.10.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.16.0.tgz#42c7c8cecf5fa91fb9dd467011fa68c9050be7dc" - integrity sha512-RxOtBafSQwyqD5BLO/q9VsVw/zuNz8kjb51OZhCIWLr33uvKB+vrRis+QK+JFlNQXbXf+w28fsTWiBupc1pHew== + version "3.16.1" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.16.1.tgz#421e3554ec86e14e60e7e0bf796aef61cf4a06ec" + integrity sha512-qxAHVjjmT7USVvrM8q6gZGaJlCK1fl4APfdAA7o8O6iXEc68G0xMNrzRkxoB/HmhhvyHnoteS/iMTiHiTcQQcg== dependencies: "@algolia/events" "^4.0.1" algoliasearch@^4.13.1, algoliasearch@^4.19.1: - version "4.21.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.21.1.tgz#61fd5f9d4480fca263d9c22c2cdf24ef6d37631d" - integrity sha512-Ym0MGwOcjQhZ+s1N/j0o94g3vQD0MzNpWsfJLyPVCt0zHflbi0DwYX+9GPmTJ4BzegoxWMyCPgcmpd3R+VlOzQ== + version "4.22.1" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.22.1.tgz#f10fbecdc7654639ec20d62f109c1b3a46bc6afc" + integrity sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg== dependencies: - "@algolia/cache-browser-local-storage" "4.21.1" - "@algolia/cache-common" "4.21.1" - "@algolia/cache-in-memory" "4.21.1" - "@algolia/client-account" "4.21.1" - "@algolia/client-analytics" "4.21.1" - "@algolia/client-common" "4.21.1" - "@algolia/client-personalization" "4.21.1" - "@algolia/client-search" "4.21.1" - "@algolia/logger-common" "4.21.1" - "@algolia/logger-console" "4.21.1" - "@algolia/requester-browser-xhr" "4.21.1" - "@algolia/requester-common" "4.21.1" - "@algolia/requester-node-http" "4.21.1" - "@algolia/transporter" "4.21.1" + "@algolia/cache-browser-local-storage" "4.22.1" + "@algolia/cache-common" "4.22.1" + "@algolia/cache-in-memory" "4.22.1" + "@algolia/client-account" "4.22.1" + "@algolia/client-analytics" "4.22.1" + "@algolia/client-common" "4.22.1" + "@algolia/client-personalization" "4.22.1" + "@algolia/client-search" "4.22.1" + "@algolia/logger-common" "4.22.1" + "@algolia/logger-console" "4.22.1" + "@algolia/requester-browser-xhr" "4.22.1" + "@algolia/requester-common" "4.22.1" + "@algolia/requester-node-http" "4.22.1" + "@algolia/transporter" "4.22.1" ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" @@ -6210,7 +6237,7 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-flatten@^2.1.0, array-flatten@^2.1.2: +array-flatten@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== @@ -6429,13 +6456,13 @@ attr-accept@^2.0.0: integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== autoprefixer@^10.4.12, autoprefixer@^10.4.13, autoprefixer@^10.4.14, autoprefixer@^10.4.4, autoprefixer@^10.4.7: - version "10.4.16" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" - integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== + version "10.4.17" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.17.tgz#35cd5695cbbe82f536a50fa025d561b01fdec8be" + integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== dependencies: - browserslist "^4.21.10" - caniuse-lite "^1.0.30001538" - fraction.js "^4.3.6" + browserslist "^4.22.2" + caniuse-lite "^1.0.30001578" + fraction.js "^4.3.7" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -6483,11 +6510,11 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.0.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -6642,16 +6669,16 @@ babel-plugin-module-resolver@^5.0.0: reselect "^4.1.7" resolve "^1.22.1" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.7" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" - integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== +babel-plugin-polyfill-corejs2@^0.4.6, babel-plugin-polyfill-corejs2@^0.4.7: + version "0.4.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.4" + "@babel/helper-define-polyfill-provider" "^0.5.0" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: +babel-plugin-polyfill-corejs3@^0.8.5, babel-plugin-polyfill-corejs3@^0.8.7: version "0.8.7" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== @@ -6659,12 +6686,12 @@ babel-plugin-polyfill-corejs3@^0.8.5: "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" - integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== +babel-plugin-polyfill-regenerator@^0.5.3, babel-plugin-polyfill-regenerator@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.4" + "@babel/helper-define-polyfill-provider" "^0.5.0" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -6799,12 +6826,10 @@ body-parser@1.20.1: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -6920,7 +6945,7 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -6997,13 +7022,6 @@ builtins@^5.0.0: dependencies: semver "^7.0.0" -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - byte-size@8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" @@ -7164,10 +7182,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001570" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" - integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001578: + version "1.0.30001579" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a" + integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -7351,15 +7369,22 @@ ci-info@^3.2.0, ci-info@^3.6.1: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -cjs-module-lexer@^1.0.0: +citty@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" + integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== + dependencies: + consola "^3.2.3" + +cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== classnames@^2.2.5, classnames@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== clean-css@^5.2.2, clean-css@^5.3.0: version "5.3.3" @@ -7587,7 +7612,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.20: +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== @@ -7757,6 +7782,11 @@ consola@^2.15.3: resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -7924,16 +7954,16 @@ copy-webpack-plugin@^9.0.1: serialize-javascript "^6.0.0" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" - integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: browserslist "^4.22.2" core-js-pure@^3.23.3, core-js-pure@^3.30.2: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.34.0.tgz#981e462500708664c91b827a75b011f04a8134a0" - integrity sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.35.0.tgz#4660033304a050215ae82e476bd2513a419fbb34" + integrity sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew== core-js@^2.4.1, core-js@^2.5.7, core-js@^2.6.12: version "2.6.12" @@ -7941,9 +7971,9 @@ core-js@^2.4.1, core-js@^2.5.7, core-js@^2.6.12: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.16.1, core-js@^3.2.1, core-js@^3.23.3, core-js@^3.8.3: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5" - integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" + integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== core-util-is@1.0.2: version "1.0.2" @@ -7992,7 +8022,7 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.2.0: +cosmiconfig@^8.2.0, cosmiconfig@^8.3.5: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -8101,18 +8131,18 @@ css-line-break@^2.1.0: utrie "^1.0.2" css-loader@^6.7.1, css-loader@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" - integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== + version "6.9.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.9.1.tgz#9ec9a434368f2bdfeffbf8f6901a1ce773586c6b" + integrity sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ== dependencies: icss-utils "^5.1.0" - postcss "^8.4.21" + postcss "^8.4.33" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.3" - postcss-modules-scope "^3.0.0" + postcss-modules-local-by-default "^4.0.4" + postcss-modules-scope "^3.1.1" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" - semver "^7.3.8" + semver "^7.5.4" css-minimizer-webpack-plugin@^4.0.0: version "4.2.2" @@ -8200,9 +8230,9 @@ csscolorparser@~1.0.2: integrity sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w== cssdb@^7.1.0: - version "7.9.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.9.1.tgz#d76e06509dc1e11050836c3d556988fdbffa749e" - integrity sha512-fqy6ZnNfpb8qAvTT0qijWyTsUmYThsDX2F2ctMG4ceI7mI4DtsMILSiMBiuuDnVIYTyWvCctdp9Nb08p/6m2SQ== + version "7.10.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.10.0.tgz#08816db7b793f088263e8f61dfe8d7f11a3459f2" + integrity sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA== cssesc@^3.0.0: version "3.0.0" @@ -8587,7 +8617,7 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@3.0.0, default-browser-id@^3.0.0: +default-browser-id@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== @@ -8595,16 +8625,6 @@ default-browser-id@3.0.0, default-browser-id@^3.0.0: bplist-parser "^0.2.0" untildify "^4.0.0" -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" @@ -8638,11 +8658,6 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -8657,10 +8672,10 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== -defu@^6.1.2: - version "6.1.3" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" - integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== +defu@^6.1.3: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== deglob@^3.1.0: version "3.1.0" @@ -9204,9 +9219,9 @@ ejs@^3.1.6, ejs@^3.1.7, ejs@^3.1.8: jake "^10.8.5" electron-to-chromium@^1.4.601: - version "1.4.611" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz#92d3a8f03110fbf5f99b054da97825f994fa480a" - integrity sha512-ZtRpDxrjHapOwxtv+nuth5ByB8clyn8crVynmRNGO3wG3LOp8RTcyZDqwaI6Ng6y8FCK2hVZmJoqwCskKbNMaw== + version "1.4.639" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.639.tgz#c6f9cc685f9efb2980d2cfc95a27f8142c9adf28" + integrity sha512-CkKf3ZUVZchr+zDpAlNLEEy2NJJ9T64ULWaDgy3THXXlPVPkLu3VOs9Bac44nebVtdwl2geSj6AxTtGDOxoXhg== elegant-spinner@^1.0.1: version "1.0.1" @@ -9600,9 +9615,9 @@ eslint-plugin-flowtype@^7.0.0: string-natural-compare "^3.0.1" eslint-plugin-import@^2.26.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" array.prototype.findlastindex "^1.2.3" @@ -9620,7 +9635,7 @@ eslint-plugin-import@^2.26.0: object.groupby "^1.0.1" object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" eslint-plugin-jsx-a11y@^6.5.1: version "6.8.0" @@ -9657,12 +9672,12 @@ eslint-plugin-node@^11.1.0: semver "^6.1.0" eslint-plugin-prettier@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" - integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" + synckit "^0.8.6" eslint-plugin-promise@^5.2.0: version "5.2.0" @@ -10048,21 +10063,6 @@ execa@^6.0.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - execa@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" @@ -10269,9 +10269,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" @@ -10575,9 +10575,9 @@ flatted@^3.2.9: integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== flow-parser@0.*: - version "0.223.3" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.223.3.tgz#9e331f635b3d4b5e0875bfc4f5dd79bf9c42c795" - integrity sha512-9KxxDKSB22ovMpSULbOL/QAQGPN6M0YMS3PubQvB0jVc4W7QP6VhasIVic7MzKcJSh0BAVs4J6SZjoH0lDDNlg== + version "0.227.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.227.0.tgz#e50b65be9dc6810438c975e816a68005fbcd5107" + integrity sha512-nOygtGKcX/siZK/lFzpfdHEfOkfGcTW7rNroR1Zsz6T/JxSahPALXVt5qVHq/fgvMJuv096BTKbgxN3PzVBaDA== flux@^4.0.1: version "4.0.4" @@ -10587,10 +10587,10 @@ flux@^4.0.1: fbemitter "^3.0.0" fbjs "^3.0.1" -follow-redirects@^1.0.0, follow-redirects@^1.14.7, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.0.0, follow-redirects@^1.14.7, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== for-each@^0.3.3: version "0.3.3" @@ -10689,7 +10689,7 @@ fraction.js@4.3.4: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.4.tgz#b2bac8249a610c3396106da97c5a71da75b94b1c" integrity sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q== -fraction.js@^4.3.6: +fraction.js@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== @@ -10820,9 +10820,9 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== geotiff@^2.0.7: - version "2.1.0" - resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.1.0.tgz#8e06fd1aa950fba8910ac63dc65cb77b766f4b58" - integrity sha512-B/iFJuFfRpmPHXf8aIRPRgUWwfaNb6dlsynkM8SWeHAPu7CpyvfqEa43KlBt7xxq5OTVysQacFHxhCn3SZhRKQ== + version "2.1.2" + resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.1.2.tgz#5d58555512a7950ae9a8496562c67c285e301318" + integrity sha512-xw7Cd6HXukUdfFSe5QCSjdhebTCGkk87x7fKURqQPFKT+TijCCwKvoksL7T3+B6mJWZSB7muTJlwVIQsLtbkMA== dependencies: "@petamoriken/float16" "^3.4.7" lerc "^3.0.0" @@ -10940,15 +10940,16 @@ getpass@^0.1.1: assert-plus "^1.0.0" giget@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/giget/-/giget-1.1.3.tgz#574ed901031eafa732347a7990d84bfa6484c51a" - integrity sha512-zHuCeqtfgqgDwvXlR84UNgnJDuUHQcNI5OqWqFxxuk2BshuKbYhJWdxBsEo4PvKqoGh23lUAIvBNpChMLv7/9Q== + version "1.2.1" + resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.1.tgz#4f42779aae57a5f664a1c4d50401b008e9810f4c" + integrity sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g== dependencies: - colorette "^2.0.20" - defu "^6.1.2" - https-proxy-agent "^7.0.2" - mri "^1.2.0" - node-fetch-native "^1.4.0" + citty "^0.1.5" + consola "^3.2.3" + defu "^6.1.3" + node-fetch-native "^1.6.1" + nypm "^0.3.3" + ohash "^1.1.3" pathe "^1.1.1" tar "^6.2.0" @@ -11327,7 +11328,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== @@ -11556,9 +11557,9 @@ html-void-elements@^1.0.0: integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== html-webpack-plugin@^5.3.2, html-webpack-plugin@^5.5.0: - version "5.5.4" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.4.tgz#517a48e6f046ff1ae1a172c983cd993eb79d2f6a" - integrity sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw== + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -11692,14 +11693,6 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" -https-proxy-agent@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" - integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== - dependencies: - agent-base "^7.0.2" - debug "4" - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -11715,11 +11708,6 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - human-signals@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" @@ -11829,9 +11817,9 @@ ignore@^5.0.0, ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.9, ignore@^5.2.0, ignor integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== image-size@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" - integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== dependencies: queue "6.0.2" @@ -12180,11 +12168,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -12248,13 +12231,6 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -13116,7 +13092,7 @@ jest@^29.5.0: import-local "^3.0.2" jest-cli "^29.7.0" -jiti@^1.18.2: +jiti@^1.20.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -13127,13 +13103,13 @@ jju@~1.4.0: integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== joi@^17.6.0, joi@^17.7.0: - version "17.11.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" - integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== + version "17.12.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5" + integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw== dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.4" "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" @@ -14056,9 +14032,9 @@ markdown-table@^3.0.0: integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== markdown-to-jsx@^7.1.8: - version "7.3.2" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz#f286b4d112dad3028acc1e77dfe1f653b347e131" - integrity sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q== + version "7.4.0" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.4.0.tgz#4606c5c549a6f6cb87604c35f5ee4f42959ffb6b" + integrity sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg== material-colors@^1.2.1: version "1.2.6" @@ -14672,9 +14648,9 @@ min-indent@^1.0.0, min-indent@^1.0.1: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.1.0, mini-css-extract-plugin@^2.6.1: - version "2.7.6" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" - integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== + version "2.7.7" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.7.tgz#4acf02f362c641c38fb913bfcb7ca2fc4a7cf339" + integrity sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw== dependencies: schema-utils "^4.0.0" @@ -14697,6 +14673,13 @@ minimatch@3.1.2, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch dependencies: brace-expansion "^1.1.7" +minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -14711,13 +14694,6 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -14842,11 +14818,16 @@ modify-values@^1.0.1: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -moment@2.29.4, moment@>=1.6.0, moment@^2.24.0: +moment@2.29.4: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== +moment@>=1.6.0, moment@^2.24.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + moo-color@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" @@ -14859,15 +14840,15 @@ mousetrap@^1.6.5: resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== -mri@^1.1.0, mri@^1.2.0: +mri@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@2.0.0: version "2.0.0" @@ -14988,9 +14969,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.3.0: - version "3.52.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.52.0.tgz#ffba0a85f54e552547e5849015f40f9514d5ba7c" - integrity sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ== + version "3.54.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.54.0.tgz#f6386f7548817acac6434c6cba02999c9aebcc69" + integrity sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA== dependencies: semver "^7.3.5" @@ -15028,10 +15009,10 @@ node-emoji@^1.10.0: dependencies: lodash "^4.17.21" -node-fetch-native@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" - integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== +node-fetch-native@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" + integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== node-fetch@2.6.7: version "2.6.7" @@ -15062,9 +15043,9 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.3.0: - version "4.7.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" - integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== node-gyp@^9.0.0: version "9.4.1" @@ -15282,9 +15263,9 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== dependencies: path-key "^4.0.0" @@ -15378,6 +15359,16 @@ nx@16.10.0, "nx@>=16.5.1 < 17": "@nx/nx-win32-arm64-msvc" "16.10.0" "@nx/nx-win32-x64-msvc" "16.10.0" +nypm@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.4.tgz#48ec8fc19fbf20fb747728716ceac3a4bd0456a3" + integrity sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg== + dependencies: + citty "^0.1.5" + execa "^8.0.1" + pathe "^1.1.1" + ufo "^1.3.2" + object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -15492,6 +15483,11 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +ohash@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" + integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== + oidc-client@1.11.5: version "1.11.5" resolved "https://registry.yarnpkg.com/oidc-client/-/oidc-client-1.11.5.tgz#020aa193d68a3e1f87a24fcbf50073b738de92bb" @@ -15572,16 +15568,6 @@ open@^8.0.4, open@^8.0.9, open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - opencollective-postinstall@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -16060,9 +16046,9 @@ path-type@^4.0.0: integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathe@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" - integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== pause-stream@0.0.11: version "0.0.11" @@ -16140,7 +16126,7 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pirates@^4.0.4, pirates@^4.0.5: +pirates@^4.0.4, pirates@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== @@ -16437,13 +16423,13 @@ postcss-loader@^6.1.1: semver "^7.3.5" postcss-loader@^7.0.0, postcss-loader@^7.2.4: - version "7.3.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" - integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== dependencies: - cosmiconfig "^8.2.0" - jiti "^1.18.2" - semver "^7.3.8" + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" postcss-logical@^5.0.4: version "5.0.4" @@ -16518,19 +16504,19 @@ postcss-modules-extract-imports@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" - integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== +postcss-modules-local-by-default@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz#7cbed92abd312b94aaea85b68226d3dec39a14e6" + integrity sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== +postcss-modules-scope@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz#32cfab55e84887c079a19bbb215e721d683ef134" + integrity sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA== dependencies: postcss-selector-parser "^6.0.4" @@ -16748,9 +16734,9 @@ postcss-selector-not@^6.0.1: postcss-selector-parser "^6.0.10" postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -16787,10 +16773,10 @@ postcss-zindex@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff" integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== -postcss@^8.2.1, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.18, postcss@^8.4.21, postcss@^8.4.23: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== +postcss@^8.2.1, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.18, postcss@^8.4.23, postcss@^8.4.33: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -16837,9 +16823,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier-plugin-tailwindcss@^0.5.4: - version "0.5.9" - resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.9.tgz#fdc2bd95a02b64702ebd2d6c7ddd300198de3cc6" - integrity sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew== + version "0.5.11" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.11.tgz#1aa9308c3285b3cb7942aaeaec8d0e0775ac54d0" + integrity sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w== prettier@^2.8.0: version "2.8.8" @@ -16847,9 +16833,9 @@ prettier@^2.8.0: integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prettier@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== + version "3.2.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" + integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1, pretty-bytes@^5.6.0: version "5.6.0" @@ -17360,9 +17346,9 @@ react-docgen-typescript@^2.2.2: integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== react-docgen@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-7.0.1.tgz#b6528fe45385908645ffbee1ec0d65709e1e047c" - integrity sha512-rCz0HBIT0LWbIM+///LfRrJoTKftIzzwsYDf0ns5KwaEjejMHQRtphcns+IXFHDNY9pnz6G8l/JbbI6pD4EAIA== + version "7.0.3" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-7.0.3.tgz#f811b785f07b1f2023cb899b6bcf9d522b21b95d" + integrity sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ== dependencies: "@babel/core" "^7.18.9" "@babel/traverse" "^7.18.9" @@ -17428,9 +17414,9 @@ react-fast-compare@^3.2.0, react-fast-compare@^3.2.2: integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== react-helmet-async@*: - version "2.0.3" - resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.3.tgz#904f79d906f91da6728dab6a062c3b8354930881" - integrity sha512-7/X3ehSCbjCaIljWa39Bb7F1Y2JWM23FN80kLozx2TdgzUmxKDSLN6qu06NG0Srzm8ljGOjgk7r7CXeEOx4MPw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.4.tgz#50a4377778f380ed1d0136303916b38eff1bf153" + integrity sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ== dependencies: invariant "^2.2.4" react-fast-compare "^3.2.2" @@ -17613,12 +17599,12 @@ react-router-dom@^5.3.3: tiny-warning "^1.0.0" react-router-dom@^6.8.1: - version "6.20.1" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.20.1.tgz#e34f8075b9304221420de3609e072bb349824984" - integrity sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw== + version "6.21.3" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.21.3.tgz#ef3a7956a3699c7b82c21fcb3dbc63c313ed8c5d" + integrity sha512-kNzubk7n4YHSrErzjLK72j0B5i969GsuCGazRl3G6j1zqZBLjuSlYBdVdkDOgzGdPIffUOc9nmgiadTEVoq91g== dependencies: - "@remix-run/router" "1.13.1" - react-router "6.20.1" + "@remix-run/router" "1.14.2" + react-router "6.21.3" react-router@5.3.4, react-router@^5.3.3: version "5.3.4" @@ -17635,12 +17621,12 @@ react-router@5.3.4, react-router@^5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@6.20.1, react-router@^6.8.1: - version "6.20.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.20.1.tgz#e8cc326031d235aaeec405bb234af77cf0fe75ef" - integrity sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA== +react-router@6.21.3, react-router@^6.8.1: + version "6.21.3" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.21.3.tgz#8086cea922c2bfebbb49c6594967418f1f167d70" + integrity sha512-a0H638ZXULv1OdkmiK6s6itNhoy33ywxmUFT/xtSoVyf9VnC7n7+VT4LjVzdIHSaF5TIh9ylUgxMXksHTgGrKg== dependencies: - "@remix-run/router" "1.13.1" + "@remix-run/router" "1.14.2" react-select@5.7.4: version "5.7.4" @@ -17957,9 +17943,9 @@ regenerate@^1.4.2: integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" @@ -18384,13 +18370,6 @@ rtlcss@^3.5.0: postcss "^8.3.11" strip-json-comments "^3.1.1" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-async@^2.2.0, run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -18435,12 +18414,12 @@ sade@^1.7.3: mri "^1.1.0" safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" has-symbols "^1.0.3" isarray "^2.0.5" @@ -18455,12 +18434,12 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" + integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: @@ -18636,9 +18615,9 @@ serialize-javascript@^4.0.0: randombytes "^2.1.0" serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -18702,14 +18681,15 @@ set-blocking@^2.0.0: integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== dependencies: define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" @@ -18857,20 +18837,13 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -simple-update-notifier@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" - integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== - dependencies: - semver "^7.5.3" - sirv@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" - integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" totalist "^3.0.0" sisteransi@^1.0.5: @@ -19009,11 +18982,10 @@ source-map-js@^1.0.2: integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-loader@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.1.tgz#72f00d05f5d1f90f80974eda781cbd7107c125f2" - integrity sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.2.tgz#1b378721b65adb21e874928a9fb22e8a340d06a5" + integrity sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg== dependencies: - abab "^2.0.6" iconv-lite "^0.6.3" source-map-js "^1.0.2" @@ -19236,9 +19208,9 @@ statuses@2.0.1: integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== std-env@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.6.0.tgz#94807562bddc68fa90f2e02c5fd5b6865bb4e98e" - integrity sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg== + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== store2@^2.14.2: version "2.14.2" @@ -19246,11 +19218,11 @@ store2@^2.14.2: integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== storybook@^7.2.2: - version "7.6.4" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.6.4.tgz#4f89d25be3990f0e057020efb0dcb3429dfa179c" - integrity sha512-nQhs9XkrroxjqMoBnnToyc6M8ndbmpkOb1qmULO4chtfMy4k0p9Un3K4TJvDaP8c3wPUFGd4ZaJ1hZNVmIl56Q== + version "7.6.10" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.6.10.tgz#2185d26cd7b43390e3e2c7581586e2f60cdbd9bd" + integrity sha512-ypFeGhQTUBBfqSUVZYh7wS5ghn3O2wILCiQc4459SeUpvUn+skcqw/TlrwGSoF5EWjDA7gtRrWDxO3mnlPt5Cw== dependencies: - "@storybook/cli" "7.6.4" + "@storybook/cli" "7.6.10" stream-browserify@3.0.0: version "3.0.0" @@ -19268,9 +19240,9 @@ stream-combiner@~0.0.4: duplexer "~0.1.1" stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== streamx@^2.15.0: version "2.15.6" @@ -19529,9 +19501,9 @@ style-loader@^1.0.0: schema-utils "^2.7.0" style-loader@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" - integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + version "3.3.4" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== style-to-object@0.3.0, style-to-object@^0.3.0: version "0.3.0" @@ -19668,12 +19640,12 @@ synchronous-promise@^2.0.15: resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== -synckit@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.6.tgz#b69b7fbce3917c2673cbdc0d87fb324db4a5b409" - integrity sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA== +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: - "@pkgr/utils" "^2.4.2" + "@pkgr/core" "^0.1.0" tslib "^2.6.2" table@^5.2.3: @@ -19845,20 +19817,20 @@ tempy@^1.0.1: unique-string "^2.0.0" terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.4, terser-webpack-plugin@^5.3.1, terser-webpack-plugin@^5.3.3, terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: - version "5.26.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" - integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== +terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: + version "5.27.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.0.tgz#70108689d9ab25fef61c4e93e808e9fd092bf20c" + integrity sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -19934,11 +19906,6 @@ tinycolor2@^1.4.1: resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -19971,9 +19938,9 @@ to-regex-range@^5.0.1: is-number "^7.0.0" tocbot@^4.20.1: - version "4.23.0" - resolved "https://registry.yarnpkg.com/tocbot/-/tocbot-4.23.0.tgz#5d3788ccf5a8b0ae2c00819b1ed0c127013e2e34" - integrity sha512-5DWuSZXsqG894mkGb8ZsQt9myyQyVxE50AiGRZ0obV0BVUTVkaZmc9jbgpknaAAPUm4FIrzGkEseD6FuQJYJDQ== + version "4.25.0" + resolved "https://registry.yarnpkg.com/tocbot/-/tocbot-4.25.0.tgz#bc38aea5ec8f076779bb39636f431b044129a237" + integrity sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA== toidentifier@1.0.1: version "1.0.1" @@ -20049,10 +20016,10 @@ ts-dedent@^2.0.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -20073,7 +20040,7 @@ tslib@^1.13.0, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.6.0, tslib@^2.6.2: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -20237,6 +20204,11 @@ ua-parser-js@^1.0.35: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== +ufo@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -20482,14 +20454,14 @@ unpipe@1.0.0, unpipe@~1.0.0: integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unplugin@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" - integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== + version "1.6.0" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.6.0.tgz#0bd7c344182c73e685c864f4f7161531f024b942" + integrity sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ== dependencies: acorn "^8.11.2" chokidar "^3.5.3" webpack-sources "^3.2.3" - webpack-virtual-modules "^0.6.0" + webpack-virtual-modules "^0.6.1" unquote@~1.1.1: version "1.1.1" @@ -20588,9 +20560,9 @@ url@^0.11.0: qs "^6.11.2" use-callback-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" - integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== + version "1.3.1" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.1.tgz#9be64c3902cbd72b07fe55e56408ae3a26036fd0" + integrity sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ== dependencies: tslib "^2.0.0" @@ -20663,9 +20635,9 @@ utila@~0.4: integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== utils-merge@1.0.1: version "1.0.1" @@ -20894,14 +20866,14 @@ web-namespaces@^1.0.0: integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + version "3.3.2" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" + integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== web-worker@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" - integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.3.0.tgz#e5f2df5c7fe356755a5fb8f8410d4312627e6776" + integrity sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA== webgl-constants@^1.1.1: version "1.1.1" @@ -21054,9 +21026,9 @@ webpack-dev-server@^4.9.3: ws "^8.13.0" webpack-hot-middleware@^2.25.0, webpack-hot-middleware@^2.25.1: - version "2.25.4" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" - integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== + version "2.26.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.26.0.tgz#0a103c9b2836c1f27d7f74bbe0e96c99c82d0265" + integrity sha512-okzjec5sAEy4t+7rzdT8eRyxsk0FDSmBPN2KwX4Qd+6+oQCfe5Ve07+u7cJvofgB+B4w5/4dO4Pz0jhhHyyPLQ== dependencies: ansi-html-community "0.0.8" html-entities "^2.1.0" @@ -21097,7 +21069,7 @@ webpack-virtual-modules@^0.5.0: resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== -webpack-virtual-modules@^0.6.0: +webpack-virtual-modules@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== @@ -21598,9 +21570,9 @@ ws@^7.3.1: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.1.0, ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: - version "8.15.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997" - integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ== + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== xdg-basedir@^4.0.0: version "4.0.0" From 1c43aa791ac65a0cc4cdfbe4e7a9aea6690a5f5f Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 22 Jan 2024 14:55:17 +0000 Subject: [PATCH 157/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 7a413b198..400c98b40 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -31b837fa90f631d4984482c6e952373fbb8bdbfc \ No newline at end of file +e4a116b074fcb85c8cbcc9db44fdec565f3386db \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 65b781ed9..c1c6e70cb 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/i18n": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/i18n": "3.8.0-beta.50", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index fb5c31e65..ab345a875 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/i18n": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/i18n": "3.8.0-beta.50", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d69dd956d..2bf5b91d9 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-measurement-tracking": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-measurement-tracking": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index b9d125fc6..01b14c802 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index f7ed0aae2..5619cf823 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/i18n": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/i18n": "3.8.0-beta.50", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 5e935ff19..1455e5222 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/i18n": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/i18n": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 05b33a218..1233e95f2 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 867116df5..5ee002894 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index be19e12ff..a6ca57b64 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 4d59862a3..5a28a4bcd 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 10d318537..c5d698f25 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index b622eb2f2..1d0734a52 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/extension-dicom-pdf": "3.8.0-beta.49", - "@ohif/extension-dicom-video": "3.8.0-beta.49" + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/extension-dicom-pdf": "3.8.0-beta.50", + "@ohif/extension-dicom-video": "3.8.0-beta.50" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 0ded751e9..5a84ab4ee 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/extension-dicom-pdf": "3.8.0-beta.49", - "@ohif/extension-dicom-video": "3.8.0-beta.49", - "@ohif/extension-measurement-tracking": "3.8.0-beta.49", - "@ohif/extension-test": "3.8.0-beta.49" + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/extension-dicom-pdf": "3.8.0-beta.50", + "@ohif/extension-dicom-video": "3.8.0-beta.50", + "@ohif/extension-measurement-tracking": "3.8.0-beta.50", + "@ohif/extension-test": "3.8.0-beta.50" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index ab70647ff..129073e25 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/extension-dicom-pdf": "3.8.0-beta.49", - "@ohif/extension-dicom-video": "3.8.0-beta.49", - "@ohif/extension-measurement-tracking": "3.8.0-beta.49" + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/extension-dicom-pdf": "3.8.0-beta.50", + "@ohif/extension-dicom-video": "3.8.0-beta.50", + "@ohif/extension-measurement-tracking": "3.8.0-beta.50" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 03e578a0a..746d1bf8c 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.49" + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.50" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 0bb57d1b4..c326ff52c 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49" + "@ohif/core": "3.8.0-beta.50" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 07d8c69d3..872f78678 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/extension-dicom-pdf": "3.8.0-beta.49", - "@ohif/extension-dicom-video": "3.8.0-beta.49", - "@ohif/extension-measurement-tracking": "3.8.0-beta.49" + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/extension-dicom-pdf": "3.8.0-beta.50", + "@ohif/extension-dicom-video": "3.8.0-beta.50", + "@ohif/extension-measurement-tracking": "3.8.0-beta.50" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 583657f13..851321a79 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.50", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 2ee78d289..ba8a501b1 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.49", - "commit": "31b837fa90f631d4984482c6e952373fbb8bdbfc" + "version": "3.8.0-beta.50", + "commit": "e4a116b074fcb85c8cbcc9db44fdec565f3386db" } \ No newline at end of file diff --git a/version.txt b/version.txt index f012e3662..9fc92e1c1 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.49 \ No newline at end of file +3.8.0-beta.50 \ No newline at end of file From 94f40192f5f05c7eecafd26b44ac50c51bc646dd Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 22 Jan 2024 14:55:27 +0000 Subject: [PATCH 158/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 254 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 838b9ba60..781a5984f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 3164c19b3..9f6c12b48 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index c1c6e70cb..9da6ac8b3 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 8ba3ad64f..554bf3407 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ab345a875..b700401b5 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index e2147e7a1..08667407a 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 2bf5b91d9..6c05282eb 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 1e4f9d0db..1f497d7ef 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 01b14c802..64c753ac4 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index a674e50e0..6eed9e5ef 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 5619cf823..64443acb2 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 70a7e7a51..aed7c8964 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 1455e5222..91156f937 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index f3787ec70..c18a2516e 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 1233e95f2..4980a7bff 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index ee438a1aa..8f3311887 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 5ee002894..08bc73872 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 866213211..6f78e1e11 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index a6ca57b64..c47f91f01 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/ui": "3.8.0-beta.50", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index a2bffb41e..8c50fc946 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 5a28a4bcd..7f8054469 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index e054c6ee7..d5f9c0914 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c5d698f25..fcd89108a 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index c4c0627ec..09eb8f5b8 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 451e62c6d..2b29f3e60 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 1d0734a52..09faac7a2 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index f5e74cafa..b76f932a4 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5a84ab4ee..9d6472f06 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 26df83d6a..10276f6fa 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 129073e25..ef4d04ffa 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index c0aabfbb3..531179962 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 746d1bf8c..3fac2acd6 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 81c161b1d..e71d5afc3 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index c326ff52c..60b3eed14 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 720c1de39..f3307a1da 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 872f78678..296ade004 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 222022c93..d9bbca104 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + + +### Bug Fixes + +* **viewport-sync:** remember synced viewports bw stack and volume and RENAME StackImageSync to ImageSliceSync ([#3849](https://github.com/OHIF/Viewers/issues/3849)) ([e4a116b](https://github.com/OHIF/Viewers/commit/e4a116b074fcb85c8cbcc9db44fdec565f3386db)) + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 49ed6b66a..266082625 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.49", - "@ohif/extension-cornerstone": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.49", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.49", - "@ohif/extension-default": "3.8.0-beta.49", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.49", - "@ohif/extension-dicom-pdf": "3.8.0-beta.49", - "@ohif/extension-dicom-video": "3.8.0-beta.49", - "@ohif/extension-test": "3.8.0-beta.49", - "@ohif/i18n": "3.8.0-beta.49", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.49", - "@ohif/mode-longitudinal": "3.8.0-beta.49", - "@ohif/mode-microscopy": "3.8.0-beta.49", - "@ohif/mode-test": "3.8.0-beta.49", - "@ohif/ui": "3.8.0-beta.49", + "@ohif/core": "3.8.0-beta.50", + "@ohif/extension-cornerstone": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.50", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", + "@ohif/extension-default": "3.8.0-beta.50", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.50", + "@ohif/extension-dicom-pdf": "3.8.0-beta.50", + "@ohif/extension-dicom-video": "3.8.0-beta.50", + "@ohif/extension-test": "3.8.0-beta.50", + "@ohif/i18n": "3.8.0-beta.50", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.50", + "@ohif/mode-longitudinal": "3.8.0-beta.50", + "@ohif/mode-microscopy": "3.8.0-beta.50", + "@ohif/mode-test": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.50", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index bd2318e4e..6295b830d 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index fcc7022ca..fd748f995 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index e4d4950be..e14652173 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) diff --git a/platform/core/package.json b/platform/core/package.json index 851321a79..adcd215f8 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index b33d78e8b..6021f2ba5 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 8dd0e25ff..25cb16075 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 8d45f3aed..06e900942 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 053b62eef..5f0f7c04e 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 97056efd4..0e56d4761 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.49](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.48...v3.8.0-beta.49) (2024-01-19) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 092146359..7b14d2737 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.49", + "version": "3.8.0-beta.50", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad Mon Sep 17 00:00:00 2001 From: Patrick Wespi Date: Mon, 22 Jan 2024 15:58:22 +0100 Subject: [PATCH 159/289] fix: catch errors in getPTImageIdInstanceMetadata (#3897) --- extensions/default/src/init.ts | 39 +++++++++++++++++----------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/extensions/default/src/init.ts b/extensions/default/src/init.ts index 1dfc7de25..f77bc7ed0 100644 --- a/extensions/default/src/init.ts +++ b/extensions/default/src/init.ts @@ -63,30 +63,29 @@ const handlePETImageMetadata = ({ SeriesInstanceUID, StudyInstanceUID }) => { const imageIds = instances.map(instance => instance.imageId); const instanceMetadataArray = []; - imageIds.forEach(imageId => { - const instanceMetadata = getPTImageIdInstanceMetadata(imageId); - if (instanceMetadata) { - instanceMetadataArray.push(instanceMetadata); - } - }); - - if (!instanceMetadataArray.length) { - return; - } // try except block to prevent errors when the metadata is not correct - let suvScalingFactors; try { - suvScalingFactors = calculateSUVScalingFactors(instanceMetadataArray); + imageIds.forEach(imageId => { + const instanceMetadata = getPTImageIdInstanceMetadata(imageId); + if (instanceMetadata) { + instanceMetadataArray.push(instanceMetadata); + } + }); + + if (!instanceMetadataArray.length) { + return; + } + + const suvScalingFactors = calculateSUVScalingFactors(instanceMetadataArray); + instanceMetadataArray.forEach((instanceMetadata, index) => { + metadataProvider.addCustomMetadata( + imageIds[index], + 'scalingModule', + suvScalingFactors[index] + ); + }); } catch (error) { console.log(error); } - - if (!suvScalingFactors) { - return; - } - - instanceMetadataArray.forEach((instanceMetadata, index) => { - metadataProvider.addCustomMetadata(imageIds[index], 'scalingModule', suvScalingFactors[index]); - }); }; From 2ff2f3f34d5f451eac02b44f19bb7b8d5c5baf97 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 22 Jan 2024 15:07:43 +0000 Subject: [PATCH 160/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 400c98b40..a811978f7 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -e4a116b074fcb85c8cbcc9db44fdec565f3386db \ No newline at end of file +a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9da6ac8b3..ead9822fc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/i18n": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/i18n": "3.8.0-beta.51", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b700401b5..301cce9e6 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/i18n": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/i18n": "3.8.0-beta.51", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 6c05282eb..bc4ca7feb 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-measurement-tracking": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-measurement-tracking": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 64c753ac4..7d6680929 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 64443acb2..c5fda3bdb 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/i18n": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/i18n": "3.8.0-beta.51", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 91156f937..e27eb8ee5 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/i18n": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/i18n": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 4980a7bff..2bde03fc5 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 08bc73872..ee2593629 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index c47f91f01..c2e0de8ce 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 7f8054469..5383ffb53 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index fcd89108a..c4e5f4c9a 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 09faac7a2..2447efa1a 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/extension-dicom-pdf": "3.8.0-beta.50", - "@ohif/extension-dicom-video": "3.8.0-beta.50" + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/extension-dicom-pdf": "3.8.0-beta.51", + "@ohif/extension-dicom-video": "3.8.0-beta.51" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 9d6472f06..699e243c1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/extension-dicom-pdf": "3.8.0-beta.50", - "@ohif/extension-dicom-video": "3.8.0-beta.50", - "@ohif/extension-measurement-tracking": "3.8.0-beta.50", - "@ohif/extension-test": "3.8.0-beta.50" + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/extension-dicom-pdf": "3.8.0-beta.51", + "@ohif/extension-dicom-video": "3.8.0-beta.51", + "@ohif/extension-measurement-tracking": "3.8.0-beta.51", + "@ohif/extension-test": "3.8.0-beta.51" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index ef4d04ffa..787f8d53a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/extension-dicom-pdf": "3.8.0-beta.50", - "@ohif/extension-dicom-video": "3.8.0-beta.50", - "@ohif/extension-measurement-tracking": "3.8.0-beta.50" + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/extension-dicom-pdf": "3.8.0-beta.51", + "@ohif/extension-dicom-video": "3.8.0-beta.51", + "@ohif/extension-measurement-tracking": "3.8.0-beta.51" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 3fac2acd6..6e25787b8 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.50" + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.51" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 60b3eed14..d2744bc03 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50" + "@ohif/core": "3.8.0-beta.51" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 296ade004..09d03e31d 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/extension-dicom-pdf": "3.8.0-beta.50", - "@ohif/extension-dicom-video": "3.8.0-beta.50", - "@ohif/extension-measurement-tracking": "3.8.0-beta.50" + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/extension-dicom-pdf": "3.8.0-beta.51", + "@ohif/extension-dicom-video": "3.8.0-beta.51", + "@ohif/extension-measurement-tracking": "3.8.0-beta.51" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index adcd215f8..9a67b2ab4 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.51", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index ba8a501b1..7441b7f26 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.50", - "commit": "e4a116b074fcb85c8cbcc9db44fdec565f3386db" + "version": "3.8.0-beta.51", + "commit": "a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad" } \ No newline at end of file diff --git a/version.txt b/version.txt index 9fc92e1c1..5fc1e1744 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.50 \ No newline at end of file +3.8.0-beta.51 \ No newline at end of file From ed2bf23cd2acef57845d09ccc9f3c9bcb037ac2a Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 22 Jan 2024 15:07:51 +0000 Subject: [PATCH 161/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 781a5984f..99883cea9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + + +### Bug Fixes + +* catch errors in getPTImageIdInstanceMetadata ([#3897](https://github.com/OHIF/Viewers/issues/3897)) ([a47aeb8](https://github.com/OHIF/Viewers/commit/a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad)) + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 9f6c12b48..b51de2d91 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index ead9822fc..b1754b921 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 554bf3407..073b431dc 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 301cce9e6..85f1e77ca 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 08667407a..2aefd33c0 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index bc4ca7feb..245a9ace7 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 1f497d7ef..b6e00338a 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 7d6680929..ed2f52eb2 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 6eed9e5ef..073092be3 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + + +### Bug Fixes + +* catch errors in getPTImageIdInstanceMetadata ([#3897](https://github.com/OHIF/Viewers/issues/3897)) ([a47aeb8](https://github.com/OHIF/Viewers/commit/a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad)) + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index c5fda3bdb..38ceae4f2 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index aed7c8964..1b3e937a7 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index e27eb8ee5..25e5741fc 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index c18a2516e..503a7ae3b 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 2bde03fc5..7e4a6ff41 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 8f3311887..ce156914e 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ee2593629..bc3d84b18 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 6f78e1e11..a50f05778 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index c2e0de8ce..94269c835 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/ui": "3.8.0-beta.51", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 8c50fc946..1c04b96db 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 5383ffb53..af3dd75de 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index d5f9c0914..219337d27 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c4e5f4c9a..decdcdacb 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 09eb8f5b8..9ab157f69 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 2b29f3e60..33be91127 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 2447efa1a..6b0c7fe91 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index b76f932a4..b72918cc4 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 699e243c1..df6f4ae1f 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 10276f6fa..870331616 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 787f8d53a..d8bd95a34 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 531179962..23bd8d309 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 6e25787b8..706fe42d4 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index e71d5afc3..eb53df5dd 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d2744bc03..70dfb7f4d 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index f3307a1da..038b1ee1d 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 09d03e31d..77e448300 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index d9bbca104..d2f61218f 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) diff --git a/platform/app/package.json b/platform/app/package.json index 266082625..c000df03f 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.50", - "@ohif/extension-cornerstone": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.50", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.50", - "@ohif/extension-default": "3.8.0-beta.50", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.50", - "@ohif/extension-dicom-pdf": "3.8.0-beta.50", - "@ohif/extension-dicom-video": "3.8.0-beta.50", - "@ohif/extension-test": "3.8.0-beta.50", - "@ohif/i18n": "3.8.0-beta.50", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.50", - "@ohif/mode-longitudinal": "3.8.0-beta.50", - "@ohif/mode-microscopy": "3.8.0-beta.50", - "@ohif/mode-test": "3.8.0-beta.50", - "@ohif/ui": "3.8.0-beta.50", + "@ohif/core": "3.8.0-beta.51", + "@ohif/extension-cornerstone": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.51", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", + "@ohif/extension-default": "3.8.0-beta.51", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.51", + "@ohif/extension-dicom-pdf": "3.8.0-beta.51", + "@ohif/extension-dicom-video": "3.8.0-beta.51", + "@ohif/extension-test": "3.8.0-beta.51", + "@ohif/i18n": "3.8.0-beta.51", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.51", + "@ohif/mode-longitudinal": "3.8.0-beta.51", + "@ohif/mode-microscopy": "3.8.0-beta.51", + "@ohif/mode-test": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.51", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 6295b830d..59001a803 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index fd748f995..fd4ec55e4 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index e14652173..9236cad91 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 9a67b2ab4..b6a80885c 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 6021f2ba5..42687c222 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 25cb16075..ab2ce80e9 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 06e900942..389d962c0 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 5f0f7c04e..28a7f1da4 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 0e56d4761..82bbf9cb1 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.50](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.49...v3.8.0-beta.50) (2024-01-22) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 7b14d2737..dc863d6ff 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.50", + "version": "3.8.0-beta.51", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From ef46b5a70409053d95a60e0fc80e5e363f38d999 Mon Sep 17 00:00:00 2001 From: m00n620 <50647994+m00n620@users.noreply.github.com> Date: Mon, 22 Jan 2024 15:42:51 -0500 Subject: [PATCH 162/289] fix toggleHpTools to support split primary button (#3900) Fixes a small bug in toggling buttons with hanging protocols. --- extensions/default/src/commandsModule.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/extensions/default/src/commandsModule.ts b/extensions/default/src/commandsModule.ts index bcc0cab59..b58c54083 100644 --- a/extensions/default/src/commandsModule.ts +++ b/extensions/default/src/commandsModule.ts @@ -121,7 +121,10 @@ const commandsModule = ({ if (!button.id) { return; } - const { commands, items } = button.props || button; + const { commands, items, primary } = button.props || button; + if (primary) { + enableListener(primary); + } if (items) { items.forEach(enableListener); } From 3deb73d642d351d4211139a54e987c14ea112471 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 22 Jan 2024 20:52:38 +0000 Subject: [PATCH 163/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index a811978f7..16ecbc052 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad \ No newline at end of file +ef46b5a70409053d95a60e0fc80e5e363f38d999 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index b1754b921..22fcd85dc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/i18n": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/i18n": "3.8.0-beta.52", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 85f1e77ca..ce8c38878 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/i18n": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/i18n": "3.8.0-beta.52", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 245a9ace7..b9eea29aa 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-measurement-tracking": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-measurement-tracking": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ed2f52eb2..1727435a0 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 38ceae4f2..cb512d8bd 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/i18n": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/i18n": "3.8.0-beta.52", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 25e5741fc..a34a0fd9e 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/i18n": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/i18n": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7e4a6ff41..b5b9b98d0 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index bc3d84b18..cb60202fe 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 94269c835..1302da559 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index af3dd75de..80825aa08 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index decdcdacb..8e6054f85 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 6b0c7fe91..13372175a 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/extension-dicom-pdf": "3.8.0-beta.51", - "@ohif/extension-dicom-video": "3.8.0-beta.51" + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/extension-dicom-pdf": "3.8.0-beta.52", + "@ohif/extension-dicom-video": "3.8.0-beta.52" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index df6f4ae1f..c508c05c1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/extension-dicom-pdf": "3.8.0-beta.51", - "@ohif/extension-dicom-video": "3.8.0-beta.51", - "@ohif/extension-measurement-tracking": "3.8.0-beta.51", - "@ohif/extension-test": "3.8.0-beta.51" + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/extension-dicom-pdf": "3.8.0-beta.52", + "@ohif/extension-dicom-video": "3.8.0-beta.52", + "@ohif/extension-measurement-tracking": "3.8.0-beta.52", + "@ohif/extension-test": "3.8.0-beta.52" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index d8bd95a34..998c96169 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/extension-dicom-pdf": "3.8.0-beta.51", - "@ohif/extension-dicom-video": "3.8.0-beta.51", - "@ohif/extension-measurement-tracking": "3.8.0-beta.51" + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/extension-dicom-pdf": "3.8.0-beta.52", + "@ohif/extension-dicom-video": "3.8.0-beta.52", + "@ohif/extension-measurement-tracking": "3.8.0-beta.52" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 706fe42d4..026d1529d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.51" + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.52" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 70dfb7f4d..b2bb5f333 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51" + "@ohif/core": "3.8.0-beta.52" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 77e448300..c70d43b83 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/extension-dicom-pdf": "3.8.0-beta.51", - "@ohif/extension-dicom-video": "3.8.0-beta.51", - "@ohif/extension-measurement-tracking": "3.8.0-beta.51" + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/extension-dicom-pdf": "3.8.0-beta.52", + "@ohif/extension-dicom-video": "3.8.0-beta.52", + "@ohif/extension-measurement-tracking": "3.8.0-beta.52" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index b6a80885c..8b8458e41 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.52", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 7441b7f26..b3c649032 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.51", - "commit": "a47aeb8bd729dcb8d2cfc13b27a31b0dd88f11ad" + "version": "3.8.0-beta.52", + "commit": "ef46b5a70409053d95a60e0fc80e5e363f38d999" } \ No newline at end of file diff --git a/version.txt b/version.txt index 5fc1e1744..290adbd04 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.51 \ No newline at end of file +3.8.0-beta.52 \ No newline at end of file From 16785936d9d45d3322a030097add549a0c285727 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 22 Jan 2024 20:52:46 +0000 Subject: [PATCH 164/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99883cea9..d215d562f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index b51de2d91..409db7ab0 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 22fcd85dc..e4b815c97 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 073b431dc..5ecd37739 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ce8c38878..d7508be95 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 2aefd33c0..f5662ac3b 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index b9eea29aa..f87612a32 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index b6e00338a..c92529735 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 1727435a0..e55664750 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 073092be3..7e534e2a4 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) diff --git a/extensions/default/package.json b/extensions/default/package.json index cb512d8bd..2b6dd2247 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 1b3e937a7..398ce99b9 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index a34a0fd9e..034df1536 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 503a7ae3b..6277f6451 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index b5b9b98d0..79570bca0 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index ce156914e..23f85b960 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index cb60202fe..9727ff385 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index a50f05778..31e7b95bc 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 1302da559..69bcff99c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/ui": "3.8.0-beta.52", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 1c04b96db..954238216 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 80825aa08..f8bd36966 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 219337d27..e67ea1995 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 8e6054f85..c5d259609 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 9ab157f69..d80f4869b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 33be91127..089c9571e 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 13372175a..8842612b9 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index b72918cc4..7ea627647 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index c508c05c1..4056aca60 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 870331616..23f3bad0d 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 998c96169..8d28b76b4 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 23bd8d309..2219784c1 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 026d1529d..6ee400770 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index eb53df5dd..a45bf6649 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index b2bb5f333..075f0b736 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 038b1ee1d..0cb35fabc 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index c70d43b83..7e9d811df 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index d2f61218f..443c0264e 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index c000df03f..48143a248 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.51", - "@ohif/extension-cornerstone": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.51", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.51", - "@ohif/extension-default": "3.8.0-beta.51", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.51", - "@ohif/extension-dicom-pdf": "3.8.0-beta.51", - "@ohif/extension-dicom-video": "3.8.0-beta.51", - "@ohif/extension-test": "3.8.0-beta.51", - "@ohif/i18n": "3.8.0-beta.51", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.51", - "@ohif/mode-longitudinal": "3.8.0-beta.51", - "@ohif/mode-microscopy": "3.8.0-beta.51", - "@ohif/mode-test": "3.8.0-beta.51", - "@ohif/ui": "3.8.0-beta.51", + "@ohif/core": "3.8.0-beta.52", + "@ohif/extension-cornerstone": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.52", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", + "@ohif/extension-default": "3.8.0-beta.52", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.52", + "@ohif/extension-dicom-pdf": "3.8.0-beta.52", + "@ohif/extension-dicom-video": "3.8.0-beta.52", + "@ohif/extension-test": "3.8.0-beta.52", + "@ohif/i18n": "3.8.0-beta.52", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.52", + "@ohif/mode-longitudinal": "3.8.0-beta.52", + "@ohif/mode-microscopy": "3.8.0-beta.52", + "@ohif/mode-test": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.52", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 59001a803..abdc0b42c 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index fd4ec55e4..70c6453db 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 9236cad91..c0c453272 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 8b8458e41..46d584620 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 42687c222..4cd1481f0 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index ab2ce80e9..28fe2e9e1 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 389d962c0..4383dc526 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 28a7f1da4..c7ebe2005 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 82bbf9cb1..e5a644954 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.51](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.50...v3.8.0-beta.51) (2024-01-22) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index dc863d6ff..baeb008b5 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.51", + "version": "3.8.0-beta.52", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 5bba98ed848bdf46b5ba4fc4708527cced3308b5 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Mon, 5 Feb 2024 15:46:47 -0300 Subject: [PATCH 165/289] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Sort=20merge=20re?= =?UTF-8?q?sults=20based=20on=20default=20data=20source=20(input)=20(#3903?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default/src/MergeDataSource/index.ts | 42 ++++++++++++++++--- .../default/src/MergeDataSource/types.ts | 2 + 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/extensions/default/src/MergeDataSource/index.ts b/extensions/default/src/MergeDataSource/index.ts index 9db282e82..91852da27 100644 --- a/extensions/default/src/MergeDataSource/index.ts +++ b/extensions/default/src/MergeDataSource/index.ts @@ -33,6 +33,7 @@ export const mergeMap: MergeMap = { * @param {unknown[]} options.args - The arguments to be passed to the function. * @param {ExtensionManager} options.extensionManager - The extension manager. * @param {string[]} options.dataSourceNames - The names of the data sources to be called. + * @param {string} options.defaultDataSourceName - The name of the default data source. * @returns {Promise} - A promise that resolves to the merged data from all data sources. */ export const callForAllDataSourcesAsync = async ({ @@ -41,12 +42,18 @@ export const callForAllDataSourcesAsync = async ({ args, extensionManager, dataSourceNames, + defaultDataSourceName, }: CallForAllDataSourcesAsyncOptions) => { const { mergeKey, tagFunc } = mergeMap[path] || { tagFunc: x => x }; - const dataSourceDefs = Object.values(extensionManager.dataSourceDefs); + /** Sort by default data source */ + const defs = Object.values(extensionManager.dataSourceDefs); + const defaultDataSourceDef = defs.find(def => def.sourceName === defaultDataSourceName); + const dataSourceDefs = defs.filter(def => def.sourceName !== defaultDataSourceName); + dataSourceDefs.unshift(defaultDataSourceDef); + const promises = []; - const mergedData = []; + const sourceNames = []; for (const dataSourceDef of dataSourceDefs) { const { configuration, sourceName } = dataSourceDef; @@ -54,11 +61,13 @@ export const callForAllDataSourcesAsync = async ({ const [dataSource] = extensionManager.getDataSources(sourceName); const func = get(dataSource, path); const promise = func.apply(dataSource, args); - promises.push(promise.then(data => mergedData.push(tagFunc(data, sourceName)))); + promises.push(promise); + sourceNames.push(sourceName); } } - await Promise.allSettled(promises); + const data = await Promise.allSettled(promises); + const mergedData = data.map((data, i) => tagFunc(data.value, sourceNames[i])); let results = []; if (mergeKey) { @@ -77,6 +86,7 @@ export const callForAllDataSourcesAsync = async ({ * @param options.args - The arguments to be passed to the function. * @param options.extensionManager - The extension manager instance. * @param options.dataSourceNames - The names of the data sources to be called. + * @param options.defaultDataSourceName - The name of the default data source. * @returns The merged data from all the matching data sources. */ export const callForAllDataSources = ({ @@ -84,8 +94,14 @@ export const callForAllDataSources = ({ args, extensionManager, dataSourceNames, + defaultDataSourceName, }: CallForAllDataSourcesOptions) => { - const dataSourceDefs = Object.values(extensionManager.dataSourceDefs); + /** Sort by default data source */ + const defs = Object.values(extensionManager.dataSourceDefs); + const defaultDataSourceDef = defs.find(def => def.sourceName === defaultDataSourceName); + const dataSourceDefs = defs.filter(def => def.sourceName !== defaultDataSourceName); + dataSourceDefs.unshift(defaultDataSourceDef); + const mergedData = []; for (const dataSourceDef of dataSourceDefs) { const { configuration, sourceName } = dataSourceDef; @@ -96,6 +112,7 @@ export const callForAllDataSources = ({ mergedData.push(data); } } + return mergedData.flat(); }; @@ -154,7 +171,13 @@ function createMergeDataSourceApi( const implementation = { initialize: (...args: unknown[]) => - callForAllDataSources({ path: 'initialize', args, extensionManager, dataSourceNames }), + callForAllDataSources({ + path: 'initialize', + args, + extensionManager, + dataSourceNames, + defaultDataSourceName, + }), query: { studies: { search: (...args: unknown[]) => @@ -164,6 +187,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), }, series: { @@ -174,6 +198,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), }, instances: { @@ -184,6 +209,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), }, }, @@ -195,6 +221,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), directURL: (...args: unknown[]) => callForDefaultDataSource({ @@ -211,6 +238,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), }, }, @@ -229,6 +257,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), getImageIdsForDisplaySet: (...args: unknown[]) => callByRetrieveAETitle({ @@ -250,6 +279,7 @@ function createMergeDataSourceApi( args, extensionManager, dataSourceNames, + defaultDataSourceName, }), }; diff --git a/extensions/default/src/MergeDataSource/types.ts b/extensions/default/src/MergeDataSource/types.ts index 3a0a3f83a..ef47b4ed2 100644 --- a/extensions/default/src/MergeDataSource/types.ts +++ b/extensions/default/src/MergeDataSource/types.ts @@ -13,6 +13,7 @@ export type CallForAllDataSourcesAsyncOptions = { args: unknown[]; dataSourceNames: string[]; extensionManager: ExtensionManager; + defaultDataSourceName: string; }; export type CallForAllDataSourcesOptions = { @@ -20,6 +21,7 @@ export type CallForAllDataSourcesOptions = { args: unknown[]; dataSourceNames: string[]; extensionManager: ExtensionManager; + defaultDataSourceName: string; }; export type CallForDefaultDataSourceOptions = { From 01df1763ce9254cd7d3ce0338b1c564bef6607a9 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 5 Feb 2024 19:01:34 +0000 Subject: [PATCH 166/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 16ecbc052..9bbc3a4c0 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -ef46b5a70409053d95a60e0fc80e5e363f38d999 \ No newline at end of file +5bba98ed848bdf46b5ba4fc4708527cced3308b5 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e4b815c97..14c514f09 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/i18n": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/i18n": "3.8.0-beta.53", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index d7508be95..6499f8a0c 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/i18n": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/i18n": "3.8.0-beta.53", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index f87612a32..58dd640cf 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-measurement-tracking": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-measurement-tracking": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e55664750..f7c7bba11 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 2b6dd2247..dfcb7d1e4 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/i18n": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/i18n": "3.8.0-beta.53", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 034df1536..951f0c187 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/i18n": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/i18n": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 79570bca0..f49a8c301 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 9727ff385..c6921c264 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 69bcff99c..2311820fc 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f8bd36966..58e87d9c1 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c5d259609..77e1ffe5f 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 8842612b9..a745aa6ec 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/extension-dicom-pdf": "3.8.0-beta.52", - "@ohif/extension-dicom-video": "3.8.0-beta.52" + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/extension-dicom-pdf": "3.8.0-beta.53", + "@ohif/extension-dicom-video": "3.8.0-beta.53" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 4056aca60..3d7fed4b7 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/extension-dicom-pdf": "3.8.0-beta.52", - "@ohif/extension-dicom-video": "3.8.0-beta.52", - "@ohif/extension-measurement-tracking": "3.8.0-beta.52", - "@ohif/extension-test": "3.8.0-beta.52" + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/extension-dicom-pdf": "3.8.0-beta.53", + "@ohif/extension-dicom-video": "3.8.0-beta.53", + "@ohif/extension-measurement-tracking": "3.8.0-beta.53", + "@ohif/extension-test": "3.8.0-beta.53" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 8d28b76b4..87afe4539 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/extension-dicom-pdf": "3.8.0-beta.52", - "@ohif/extension-dicom-video": "3.8.0-beta.52", - "@ohif/extension-measurement-tracking": "3.8.0-beta.52" + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/extension-dicom-pdf": "3.8.0-beta.53", + "@ohif/extension-dicom-video": "3.8.0-beta.53", + "@ohif/extension-measurement-tracking": "3.8.0-beta.53" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 6ee400770..1382fb7cf 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.52" + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.53" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 075f0b736..ef2be3447 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52" + "@ohif/core": "3.8.0-beta.53" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 7e9d811df..bd2697350 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/extension-dicom-pdf": "3.8.0-beta.52", - "@ohif/extension-dicom-video": "3.8.0-beta.52", - "@ohif/extension-measurement-tracking": "3.8.0-beta.52" + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/extension-dicom-pdf": "3.8.0-beta.53", + "@ohif/extension-dicom-video": "3.8.0-beta.53", + "@ohif/extension-measurement-tracking": "3.8.0-beta.53" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 46d584620..ec013fcf3 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.53", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index b3c649032..e985d8448 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.52", - "commit": "ef46b5a70409053d95a60e0fc80e5e363f38d999" + "version": "3.8.0-beta.53", + "commit": "5bba98ed848bdf46b5ba4fc4708527cced3308b5" } \ No newline at end of file diff --git a/version.txt b/version.txt index 290adbd04..4cba10161 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.52 \ No newline at end of file +3.8.0-beta.53 \ No newline at end of file From 40b590d75a7c24c443d0c521689efc30d513a01e Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 5 Feb 2024 19:01:43 +0000 Subject: [PATCH 167/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d215d562f..496900314 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + + +### Bug Fixes + +* 🐛 Sort merge results based on default data source (input) ([#3903](https://github.com/OHIF/Viewers/issues/3903)) ([5bba98e](https://github.com/OHIF/Viewers/commit/5bba98ed848bdf46b5ba4fc4708527cced3308b5)) + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 409db7ab0..eae179611 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 14c514f09..215ac67e5 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 5ecd37739..9b4cd062d 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 6499f8a0c..fbb1cd883 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index f5662ac3b..fa780ed2a 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 58dd640cf..39d61427f 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index c92529735..afec8dc18 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index f7c7bba11..6ce7ad7d7 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 7e534e2a4..054596559 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + + +### Bug Fixes + +* 🐛 Sort merge results based on default data source (input) ([#3903](https://github.com/OHIF/Viewers/issues/3903)) ([5bba98e](https://github.com/OHIF/Viewers/commit/5bba98ed848bdf46b5ba4fc4708527cced3308b5)) + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index dfcb7d1e4..2b355a032 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 398ce99b9..e24a8dbaa 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 951f0c187..fcc1efa21 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 6277f6451..cccc9f2da 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f49a8c301..4cc787d30 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 23f85b960..2a118aba2 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index c6921c264..6e22049b6 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 31e7b95bc..52edd5f15 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 2311820fc..8f24a7a94 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/ui": "3.8.0-beta.53", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 954238216..5f952e1b3 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 58e87d9c1..795569395 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index e67ea1995..7205d141d 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 77e1ffe5f..6bd0fb05b 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index d80f4869b..43f3ddb46 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 089c9571e..ae41d55d3 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index a745aa6ec..a785be461 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 7ea627647..50b0a84af 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 3d7fed4b7..a2344c32e 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 23f3bad0d..eb41a0e45 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 87afe4539..d6247976a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 2219784c1..3ec9ab02c 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 1382fb7cf..b9e32e248 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index a45bf6649..cf256f68f 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index ef2be3447..b613326d8 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 0cb35fabc..99fbb35ea 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index bd2697350..6a36ff7f9 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 443c0264e..650ec3cd6 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 48143a248..6f1e2f66a 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.52", - "@ohif/extension-cornerstone": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.52", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.52", - "@ohif/extension-default": "3.8.0-beta.52", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.52", - "@ohif/extension-dicom-pdf": "3.8.0-beta.52", - "@ohif/extension-dicom-video": "3.8.0-beta.52", - "@ohif/extension-test": "3.8.0-beta.52", - "@ohif/i18n": "3.8.0-beta.52", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.52", - "@ohif/mode-longitudinal": "3.8.0-beta.52", - "@ohif/mode-microscopy": "3.8.0-beta.52", - "@ohif/mode-test": "3.8.0-beta.52", - "@ohif/ui": "3.8.0-beta.52", + "@ohif/core": "3.8.0-beta.53", + "@ohif/extension-cornerstone": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.53", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", + "@ohif/extension-default": "3.8.0-beta.53", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.53", + "@ohif/extension-dicom-pdf": "3.8.0-beta.53", + "@ohif/extension-dicom-video": "3.8.0-beta.53", + "@ohif/extension-test": "3.8.0-beta.53", + "@ohif/i18n": "3.8.0-beta.53", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.53", + "@ohif/mode-longitudinal": "3.8.0-beta.53", + "@ohif/mode-microscopy": "3.8.0-beta.53", + "@ohif/mode-test": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.53", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index abdc0b42c..7f310b7e0 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 70c6453db..8915c517d 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index c0c453272..6335805e0 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index ec013fcf3..aa063af23 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 4cd1481f0..fd83f4f39 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 28fe2e9e1..b5c7f5237 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 4383dc526..323ab1db0 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index c7ebe2005..7cf1ec2ee 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index e5a644954..345b254ce 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.52](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.51...v3.8.0-beta.52) (2024-01-22) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index baeb008b5..1da4f5860 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.52", + "version": "3.8.0-beta.53", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 0eac386a31a5d6965536360aa65a44769c1a5740 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Wed, 14 Feb 2024 08:51:17 -0500 Subject: [PATCH 168/289] feat(errorboundary): format stack trace properly (#3931) --- .../src/components/ErrorBoundary/ErrorBoundary.tsx | 12 +++++++++--- platform/ui/src/components/Modal/Modal.tsx | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx b/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx index c8170e60d..df87cce97 100644 --- a/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx +++ b/platform/ui/src/components/ErrorBoundary/ErrorBoundary.tsx @@ -24,8 +24,12 @@ const DefaultFallback = ({ error, context, resetErrorBoundary, fallbackRoute })

{subtitle}

{!isProduction && (
-

{t('Context')}: {context}

-

{t('Error Message')}: {error.message}

+

+ {t('Context')}: {context} +

+

+ {t('Error Message')}: {error.message} +

- {showDetails &&

Stack: {error.stack}

} + {showDetails && ( +
Stack: {error.stack}
+ )}
)}
diff --git a/platform/ui/src/components/Modal/Modal.tsx b/platform/ui/src/components/Modal/Modal.tsx index 5b4692cf1..783f9c9fb 100644 --- a/platform/ui/src/components/Modal/Modal.tsx +++ b/platform/ui/src/components/Modal/Modal.tsx @@ -53,7 +53,7 @@ const Modal = ({ return ( Date: Wed, 14 Feb 2024 14:02:17 +0000 Subject: [PATCH 169/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 9bbc3a4c0..d0fe721d2 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -5bba98ed848bdf46b5ba4fc4708527cced3308b5 \ No newline at end of file +0eac386a31a5d6965536360aa65a44769c1a5740 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 215ac67e5..e82960bc0 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/i18n": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/i18n": "3.8.0-beta.54", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index fbb1cd883..5ec2d5120 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -31,10 +31,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/i18n": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/i18n": "3.8.0-beta.54", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 39d61427f..22739292e 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -32,10 +32,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-measurement-tracking": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-measurement-tracking": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 6ce7ad7d7..32fc4588c 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -37,8 +37,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 2b355a032..d8c9f8309 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -30,8 +30,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/i18n": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/i18n": "3.8.0-beta.54", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index fcc1efa21..fccf53973 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -28,10 +28,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/i18n": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/i18n": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 4cc787d30..f50511a7d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 6e22049b6..dbee14435 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 8f24a7a94..0bbfbb9d8 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,9 +32,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 795569395..38219131f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 6bd0fb05b..0732efffd 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -28,8 +28,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index a785be461..29e701361 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -29,12 +29,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/extension-dicom-pdf": "3.8.0-beta.53", - "@ohif/extension-dicom-video": "3.8.0-beta.53" + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/extension-dicom-pdf": "3.8.0-beta.54", + "@ohif/extension-dicom-video": "3.8.0-beta.54" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index a2344c32e..11cdf8d32 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -32,14 +32,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/extension-dicom-pdf": "3.8.0-beta.53", - "@ohif/extension-dicom-video": "3.8.0-beta.53", - "@ohif/extension-measurement-tracking": "3.8.0-beta.53", - "@ohif/extension-test": "3.8.0-beta.53" + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/extension-dicom-pdf": "3.8.0-beta.54", + "@ohif/extension-dicom-video": "3.8.0-beta.54", + "@ohif/extension-measurement-tracking": "3.8.0-beta.54", + "@ohif/extension-test": "3.8.0-beta.54" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index d6247976a..06db8e041 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -32,15 +32,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/extension-dicom-pdf": "3.8.0-beta.53", - "@ohif/extension-dicom-video": "3.8.0-beta.53", - "@ohif/extension-measurement-tracking": "3.8.0-beta.53" + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/extension-dicom-pdf": "3.8.0-beta.54", + "@ohif/extension-dicom-video": "3.8.0-beta.54", + "@ohif/extension-measurement-tracking": "3.8.0-beta.54" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index b9e32e248..387e8c702 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -33,8 +33,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.53" + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.54" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index b613326d8..6c0098f60 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -33,7 +33,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53" + "@ohif/core": "3.8.0-beta.54" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 6a36ff7f9..5196a447f 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -32,13 +32,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/extension-dicom-pdf": "3.8.0-beta.53", - "@ohif/extension-dicom-video": "3.8.0-beta.53", - "@ohif/extension-measurement-tracking": "3.8.0-beta.53" + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/extension-dicom-pdf": "3.8.0-beta.54", + "@ohif/extension-dicom-video": "3.8.0-beta.54", + "@ohif/extension-measurement-tracking": "3.8.0-beta.54" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index aa063af23..60ad5ed38 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -36,7 +36,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.54", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index e985d8448..a15de9e2a 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.53", - "commit": "5bba98ed848bdf46b5ba4fc4708527cced3308b5" + "version": "3.8.0-beta.54", + "commit": "0eac386a31a5d6965536360aa65a44769c1a5740" } \ No newline at end of file diff --git a/version.txt b/version.txt index 4cba10161..24609c326 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.53 \ No newline at end of file +3.8.0-beta.54 \ No newline at end of file From a2a0090eeb5f4d736bb34039bc0d2ceeca933a23 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 14 Feb 2024 14:02:25 +0000 Subject: [PATCH 170/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 496900314..54abcfcd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + + +### Features + +* **errorboundary:** format stack trace properly ([#3931](https://github.com/OHIF/Viewers/issues/3931)) ([0eac386](https://github.com/OHIF/Viewers/commit/0eac386a31a5d6965536360aa65a44769c1a5740)) + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index eae179611..e7af802c9 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e82960bc0..3a4e5d7dc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 9b4cd062d..e3dfb946f 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 5ec2d5120..38f12071f 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index fa780ed2a..6781ef1aa 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 22739292e..32ba951ff 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index afec8dc18..b8ad8ad73 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 32fc4588c..3ec59736b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 054596559..032466d6d 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) diff --git a/extensions/default/package.json b/extensions/default/package.json index d8c9f8309..930a6accb 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index e24a8dbaa..1a582e624 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index fccf53973..5a79d9ade 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index cccc9f2da..3a459d48e 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f50511a7d..d74dc942d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 2a118aba2..20a880d57 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index dbee14435..2aab4c7fe 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 52edd5f15..7999e627f 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 0bbfbb9d8..a721b6357 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -46,7 +46,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/ui": "3.8.0-beta.54", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 5f952e1b3..5b59968bb 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 38219131f..c16992bc3 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 7205d141d..ef98b42ba 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0732efffd..8046518fa 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 43f3ddb46..ace197b37 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index ae41d55d3..eeb95e4fc 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 29e701361..0c21b63e6 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 50b0a84af..e7f64bedd 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 11cdf8d32..5677fb104 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index eb41a0e45..0f6f27091 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 06db8e041..1772d00ac 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 3ec9ab02c..657755d32 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 387e8c702..c87fb65ab 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index cf256f68f..1a813a457 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 6c0098f60..b4ae8e7ff 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 99fbb35ea..0c031169a 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 5196a447f..2a6719407 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 650ec3cd6..ff6b2926a 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 6f1e2f66a..6663bec3a 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -52,22 +52,22 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.53", - "@ohif/extension-cornerstone": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.53", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.53", - "@ohif/extension-default": "3.8.0-beta.53", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.53", - "@ohif/extension-dicom-pdf": "3.8.0-beta.53", - "@ohif/extension-dicom-video": "3.8.0-beta.53", - "@ohif/extension-test": "3.8.0-beta.53", - "@ohif/i18n": "3.8.0-beta.53", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.53", - "@ohif/mode-longitudinal": "3.8.0-beta.53", - "@ohif/mode-microscopy": "3.8.0-beta.53", - "@ohif/mode-test": "3.8.0-beta.53", - "@ohif/ui": "3.8.0-beta.53", + "@ohif/core": "3.8.0-beta.54", + "@ohif/extension-cornerstone": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.54", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", + "@ohif/extension-default": "3.8.0-beta.54", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.54", + "@ohif/extension-dicom-pdf": "3.8.0-beta.54", + "@ohif/extension-dicom-video": "3.8.0-beta.54", + "@ohif/extension-test": "3.8.0-beta.54", + "@ohif/i18n": "3.8.0-beta.54", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.54", + "@ohif/mode-longitudinal": "3.8.0-beta.54", + "@ohif/mode-microscopy": "3.8.0-beta.54", + "@ohif/mode-test": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.54", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 7f310b7e0..596036304 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 8915c517d..551d88dcf 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 6335805e0..97618efa3 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 60ad5ed38..5d4d92686 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index fd83f4f39..34044342a 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index b5c7f5237..9c7d7e786 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 323ab1db0..6954f69b3 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 7cf1ec2ee..7e73c82a3 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 345b254ce..d04fcf98d 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) + + +### Features + +* **errorboundary:** format stack trace properly ([#3931](https://github.com/OHIF/Viewers/issues/3931)) ([0eac386](https://github.com/OHIF/Viewers/commit/0eac386a31a5d6965536360aa65a44769c1a5740)) + + + + + # [3.8.0-beta.53](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.52...v3.8.0-beta.53) (2024-02-05) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 1da4f5860..067b5a601 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.53", + "version": "3.8.0-beta.54", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6 Mon Sep 17 00:00:00 2001 From: Alireza Date: Wed, 21 Feb 2024 13:49:23 -0500 Subject: [PATCH 171/289] feat(resize): Optimize resizing process and maintain zoom level (#3889) --- extensions/cornerstone-dicom-rt/package.json | 2 + extensions/cornerstone-dicom-seg/package.json | 2 + .../viewports/OHIFCornerstoneSEGViewport.tsx | 1 - extensions/cornerstone-dicom-sr/package.json | 2 + extensions/cornerstone/package.json | 2 + .../src/Viewport/OHIFCornerstoneViewport.tsx | 9 +- extensions/cornerstone/src/init.tsx | 10 + .../SegmentationServiceTypes.ts | 2 +- .../CornerstoneViewportService.ts | 435 +++- .../ViewportService/IViewportService.ts | 13 +- .../src/services/ViewportService/Viewport.ts | 5 + .../cornerstone/src/types/Presentation.ts | 48 +- .../utils/CornerstoneViewportDownloadForm.tsx | 2 +- extensions/default/package.json | 2 + extensions/dicom-microscopy/package.json | 2 + extensions/dicom-pdf/package.json | 2 + extensions/dicom-video/package.json | 2 + extensions/measurement-tracking/package.json | 2 + extensions/test-extension/package.json | 2 + extensions/tmtv/package.json | 2 + modes/basic-dev-mode/package.json | 2 + modes/basic-test-mode/package.json | 2 + modes/longitudinal/package.json | 2 + modes/microscopy/package.json | 2 + modes/segmentation/package.json | 2 + modes/tmtv/package.json | 2 + package.json | 3 + platform/app/package.json | 5 +- platform/app/src/components/ViewportGrid.tsx | 29 +- platform/cli/package.json | 2 + platform/core/package.json | 2 + .../ViewportGridService.ts | 9 +- platform/docs/package.json | 2 + platform/i18n/package.json | 2 + platform/ui/package.json | 3 +- .../contextProviders/ViewportGridProvider.tsx | 1 + yarn.lock | 1746 +++++++++-------- 37 files changed, 1395 insertions(+), 968 deletions(-) diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 3a4e5d7dc..fb44f98bb 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -24,6 +24,8 @@ "yarn": ">=1.18.0" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:dicom-seg": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 38f12071f..bec30b005 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -24,6 +24,8 @@ "yarn": ">=1.18.0" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:dicom-seg": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx b/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx index 3f4696ec2..0d14c68f5 100644 --- a/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx +++ b/extensions/cornerstone-dicom-seg/src/viewports/OHIFCornerstoneSEGViewport.tsx @@ -116,7 +116,6 @@ function OHIFCornerstoneSEGViewport(props) { }} onElementEnabled={onElementEnabled} onElementDisabled={onElementDisabled} - // initialImageIndex={initialImageIndex} > ); }, [viewportId, segDisplaySet, toolGroupId]); diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 32ba951ff..642a561a7 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -23,6 +23,8 @@ "ohif-extension" ], "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 3ec59736b..ea66ee7d4 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -25,6 +25,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --progress --config .webpack/webpack.prod.js", diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index a0386e7db..ce051e999 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -21,6 +21,7 @@ import getSOPInstanceAttributes from '../utils/measurementServiceMappings/utils/ import CornerstoneServices from '../types/CornerstoneServices'; import CinePlayer from '../components/CinePlayer'; import { Types } from '@ohif/core'; +import { LutPresentation, PositionPresentation } from '../types/Presentation'; const STACK = 'stack'; @@ -101,7 +102,6 @@ const OHIFCornerstoneViewport = React.memo(props => { viewportOptions, displaySetOptions, servicesManager, - commandsManager, onElementEnabled, onElementDisabled, isJumpToMeasurementDisabled, @@ -277,7 +277,10 @@ const OHIFCornerstoneViewport = React.memo(props => { // The presentation state will have been stored previously by closing // a viewport. Otherwise, this viewport will be unchanged and the // presentation information will be directly carried over. - const { lutPresentationStore, positionPresentationStore } = stateSyncService.getState(); + const state = stateSyncService.getState(); + const lutPresentationStore = state.lutPresentationStore as LutPresentation; + const positionPresentationStore = state.positionPresentationStore as PositionPresentation; + const { presentationIds } = viewportOptions; const presentations = { positionPresentation: positionPresentationStore[presentationIds?.positionPresentationId], @@ -360,8 +363,6 @@ const OHIFCornerstoneViewport = React.memo(props => {
diff --git a/extensions/cornerstone/src/init.tsx b/extensions/cornerstone/src/init.tsx index 10d2767a5..8e1ede126 100644 --- a/extensions/cornerstone/src/init.tsx +++ b/extensions/cornerstone/src/init.tsx @@ -204,6 +204,16 @@ export default async function init({ } ); + // resize the cornerstone viewport service when the grid size changes + // IMPORTANT: this should happen outside of the OHIFCornerstoneViewport + // since it will trigger a rerender of each viewport and each resizing + // the offscreen canvas which would result in a performance hit, this should + // done only once per grid resize here. Doing it once here, allows us to reduce + // the refreshRage(in ms) to 10 from 50. I tried with even 1 or 5 ms it worked fine + viewportGridService.subscribe(viewportGridService.EVENTS.GRID_SIZE_CHANGED, () => { + cornerstoneViewportService.resize(true); + }); + initContextMenu({ cornerstoneViewportService, customizationService, diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts index d6d231fd0..7262b0e6d 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts @@ -67,4 +67,4 @@ type SegmentationRepresentationData = { LABELMAP?: LabelmapSegmentationData; }; -export { SegmentationConfig, Segment, Segmentation }; +export type { SegmentationConfig, Segment, Segmentation }; diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index 937f42bad..96050311c 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -10,6 +10,7 @@ import { VolumeViewport3D, cache, Enums as csEnums, + BaseVolumeViewport, } from '@cornerstonejs/core'; import { utilities as csToolsUtils, Enums as csToolsEnums } from '@cornerstonejs/tools'; @@ -17,7 +18,7 @@ import { IViewportService } from './IViewportService'; import { RENDERING_ENGINE_ID } from './constants'; import ViewportInfo, { DisplaySetOptions, PublicViewportOptions } from './Viewport'; import { StackViewportData, VolumeViewportData } from '../../types/CornerstoneCacheService'; -import { Presentation, Presentations } from '../../types/Presentation'; +import { LutPresentation, PositionPresentation, Presentations } from '../../types/Presentation'; import JumpPresets from '../../utils/JumpPresets'; @@ -44,6 +45,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi viewportsById: Map = new Map(); viewportGridResizeObserver: ResizeObserver | null; viewportsDisplaySets: Map = new Map(); + beforeResizePositionPresentations: Map = new Map(); // Some configs enableResizeDetector: true; @@ -51,6 +53,11 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi resizeRefreshMode: 'debounce'; servicesManager = null; + resizeQueue = []; + viewportResizeTimer = null; + gridResizeDelay = 50; + gridResizeTimeOut = null; + constructor(servicesManager: ServicesManager) { super(EVENTS); this.renderingEngine = null; @@ -94,14 +101,28 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } /** - * It triggers the resize on the rendering engine. + * It triggers the resize on the rendering engine, and renders the viewports + * + * @param isGridResize - if the resize is triggered by a grid resize + * this is used to avoid double resize of the viewports since if the + * grid is resized, all viewports will be resized so there is no need + * to resize them individually which will get triggered by their + * individual resize observers */ - public resize() { - const immediate = true; - const keepCamera = true; - - this.renderingEngine.resize(immediate, keepCamera); - this.renderingEngine.render(); + public resize(isGridResize = false) { + // if there is a grid resize happening, it means the viewport grid + // has been manipulated (e.g., panels closed, added, etc.) and we need + // to resize all viewports, so we will add a timeout here to make sure + // we don't double resize the viewports when viewports in the grid are + // resized individually + if (isGridResize) { + this.performResize(); + this.resetGridResizeTimeout(); + this.resizeQueue = []; + clearTimeout(this.viewportResizeTimer); + } else { + this.enqueueViewportResizeRequest(); + } } /** @@ -138,97 +159,239 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi this.viewportsDisplaySets.delete(viewportId); } - public setPresentations(viewport, presentations?: Presentations): void { - const properties = presentations?.lutPresentation?.properties; - if (properties) { - viewport.setProperties(properties); + /** + * Sets the presentations for a given viewport. Presentations is an object + * that can define the lut or position for a viewport. + * + * @param viewportId - The ID of the viewport. + * @param presentations - The presentations to apply to the viewport. + */ + public setPresentations(viewportId: string, presentations?: Presentations): void { + const viewport = this.getCornerstoneViewport(viewportId) as + | Types.IStackViewport + | Types.IVolumeViewport; + + if (!viewport) { + return; } - const camera = presentations?.positionPresentation?.camera; - if (camera) { - viewport.setCamera(camera); + + if (!presentations) { + return; + } + + const { lutPresentation, positionPresentation } = presentations; + if (lutPresentation) { + const { presentation } = lutPresentation; + + if (viewport instanceof BaseVolumeViewport) { + Object.entries(presentation).forEach( + ([volumeId, properties]: [string, Types.ViewportProperties]) => { + viewport.setProperties(properties, volumeId); + } + ); + } else { + viewport.setProperties(presentation); + } + } + + if (positionPresentation) { + const { viewPlaneNormal, viewUp, zoom, pan } = positionPresentation.presentation; + viewport.setCamera({ viewPlaneNormal, viewUp }); + + if (zoom !== undefined) { + viewport.setZoom(zoom); + } + + if (pan !== undefined) { + viewport.setPan(pan); + } } } - public getPresentation(viewportId: string): Presentation { + /** + * Retrieves the position presentation information for a given viewport. + * @param viewportId The ID of the viewport. + * @returns The position presentation object containing various properties + * such as ID, viewport type, initial image index, view plane normal, view up, zoom, and pan. + */ + public getPositionPresentation(viewportId: string): PositionPresentation { const viewportInfo = this.viewportsById.get(viewportId); if (!viewportInfo) { return; } - const { viewportType, presentationIds } = viewportInfo.getViewportOptions(); + + const presentationIds = viewportInfo.getPresentationIds(); + + if (!presentationIds) { + return; + } + + const { positionPresentationId } = presentationIds; const csViewport = this.getCornerstoneViewport(viewportId); if (!csViewport) { return; } - const properties = csViewport.getProperties(); - if (properties.isComputedVOI) { - delete properties.voiRange; - delete properties.VOILUTFunction; - } + const { viewPlaneNormal, viewUp } = csViewport.getCamera(); const initialImageIndex = csViewport.getCurrentImageIdIndex(); - const camera = csViewport.getCamera(); + const zoom = csViewport.getZoom(); + const pan = csViewport.getPan(); + return { - presentationIds, - viewportType: !viewportType || viewportType === 'stack' ? 'stack' : 'volume', - properties, - initialImageIndex, - camera, + id: positionPresentationId, + viewportType: viewportInfo.getViewportType(), + presentation: { + initialImageIndex, + viewUp, + viewPlaneNormal, + zoom, + pan, + }, }; } - public storePresentation({ viewportId }) { - const { stateSyncService, syncGroupService } = this.servicesManager.services; - let presentation; - try { - presentation = this.getPresentation(viewportId); - } catch (error) { - console.warn(error); - } - - if (!presentation || !presentation.presentationIds) { + /** + * Retrieves the LUT (Lookup Table) presentation for a given viewport. + * @param viewportId The ID of the viewport. + * @returns The LUT presentation object, or undefined if the viewport does not exist. + */ + public getLutPresentation(viewportId: string): LutPresentation { + const viewportInfo = this.viewportsById.get(viewportId); + if (!viewportInfo) { return; } + const presentationIds = viewportInfo.getPresentationIds(); + + if (!presentationIds) { + return; + } + + const { lutPresentationId } = presentationIds; + + const csViewport = this.getCornerstoneViewport(viewportId) as + | Types.IStackViewport + | Types.IVolumeViewport; + + if (!csViewport) { + return; + } + + const cleanProperties = properties => { + if (properties.isComputedVOI) { + delete properties.voiRange; + delete properties.VOILUTFunction; + } + return properties; + }; + + const presentation = + csViewport instanceof BaseVolumeViewport + ? new Map() + : cleanProperties(csViewport.getProperties()); + + if (presentation instanceof Map) { + csViewport.getActors().forEach(({ uid: volumeId }) => { + const properties = cleanProperties(csViewport.getProperties(volumeId)); + presentation.set(volumeId, properties); + }); + } + + return { + id: lutPresentationId, + viewportType: viewportInfo.getViewportType(), + presentation, + }; + } + + /** + * Retrieves the presentations for a given viewport. + * @param viewportId - The ID of the viewport. + * @returns The presentations for the viewport. + */ + public getPresentations(viewportId: string): Presentations { + const viewportInfo = this.viewportsById.get(viewportId); + if (!viewportInfo) { + return; + } + + const positionPresentation = this.getPositionPresentation(viewportId); + const lutPresentation = this.getLutPresentation(viewportId); + + return { + positionPresentation, + lutPresentation, + }; + } + + /** + * Stores the presentation state for a given viewport inside the + * stateSyncService. This is used to persist the presentation state + * across different scenarios e.g., when the viewport is changing the + * display set, or when the viewport is moving to a different layout. + * + * @param viewportId The ID of the viewport. + */ + public storePresentation({ viewportId }) { + let presentations = null as Presentations; + try { + presentations = this.getPresentations(viewportId); + if (!presentations?.positionPresentation && !presentations?.lutPresentation) { + return; + } + } catch (error) { + console.warn(error); + return; + } + + const { stateSyncService, syncGroupService } = this.servicesManager.services; + const synchronizers = syncGroupService.getSynchronizersForViewport( viewportId, this.renderingEngine.id ); - const { lutPresentationStore, positionPresentationStore, synchronizersStore } = + const { positionPresentationStore, synchronizersStore, lutPresentationStore } = stateSyncService.getState(); - const { presentationIds } = presentation; - const { lutPresentationId, positionPresentationId } = presentationIds || {}; - const storeState = {}; + + const { lutPresentation, positionPresentation } = presentations; + const { id: positionPresentationId } = positionPresentation; + const { id: lutPresentationId } = lutPresentation; + + const updateStore = (store, id, value) => ({ ...store, [id]: value }); + + const newState = {} as { [key: string]: any }; + if (lutPresentationId) { - storeState.lutPresentationStore = { - ...lutPresentationStore, - [lutPresentationId]: presentation, - }; + newState.lutPresentationStore = updateStore( + lutPresentationStore, + lutPresentationId, + lutPresentation + ); } + if (positionPresentationId) { - storeState.positionPresentationStore = { - ...positionPresentationStore, - [positionPresentationId]: presentation, - }; + newState.positionPresentationStore = updateStore( + positionPresentationStore, + positionPresentationId, + positionPresentation + ); } if (synchronizers?.length) { - storeState.synchronizersStore = { - ...synchronizersStore, - [viewportId]: synchronizers.map(synchronizer => { - const sourceViewports = synchronizer.getSourceViewports(); - const targetViewports = synchronizer.getTargetViewports(); - return { - id: synchronizer.id, - sourceViewports: [...sourceViewports], - targetViewports: [...targetViewports], - }; - }), - }; + newState.synchronizersStore = updateStore( + synchronizersStore, + viewportId, + synchronizers.map(synchronizer => ({ + id: synchronizer.id, + sourceViewports: [...synchronizer.getSourceViewports()], + targetViewports: [...synchronizer.getTargetViewports()], + })) + ); } - stateSyncService.store(storeState); + stateSyncService.store(newState); } /** @@ -324,9 +487,13 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi }); } - public getCornerstoneViewport( - viewportId: string - ): Types.IStackViewport | Types.IVolumeViewport | null { + /** + * Retrieves the Cornerstone viewport with the specified ID. + * + * @param viewportId - The ID of the viewport. + * @returns The Cornerstone viewport object if found, otherwise null. + */ + public getCornerstoneViewport(viewportId: string): Types.IViewport | null { const viewportInfo = this.getViewportInfo(viewportId); if (!viewportInfo || !this.renderingEngine || this.renderingEngine.hasBeenDestroyed) { @@ -338,15 +505,51 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi return viewport; } + /** + * Retrieves the viewport information for a given viewport ID. The viewport information + * is the OHIF construct that holds different options and data for a given viewport and + * is different from the cornerstone viewport. + * + * @param viewportId The ID of the viewport. + * @returns The viewport information. + */ public getViewportInfo(viewportId: string): ViewportInfo { return this.viewportsById.get(viewportId); } + /** + * Looks through the viewports to see if the specified measurement can be + * displayed in one of the viewports. + * + * @param measurement + * The measurement that is desired to view. + * @param activeViewportId - the index that was active at the time the jump + * was initiated. + * @return the viewportId that the measurement should be displayed in. + */ + public getViewportIdToJump( + activeViewportId: string, + displaySetInstanceUID: string, + cameraProps: unknown + ): string { + const viewportInfo = this.getViewportInfo(activeViewportId); + const { referencedImageId } = cameraProps; + if (viewportInfo?.contains(displaySetInstanceUID, referencedImageId)) { + return activeViewportId; + } + + return ( + [...this.viewportsById.values()].find(viewportInfo => + viewportInfo.contains(displaySetInstanceUID, referencedImageId) + )?.viewportId ?? null + ); + } + private async _setStackViewport( viewport: Types.IStackViewport, viewportData: StackViewportData, viewportInfo: ViewportInfo, - presentations: Presentations + presentations: Presentations = {} ): Promise { const displaySetOptions = viewportInfo.getDisplaySetOptions(); @@ -383,10 +586,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi return viewport.setStack(imageIds, initialImageIndexToUse).then(() => { viewport.setProperties({ ...properties }); - const camera = presentations.positionPresentation?.camera; - if (camera) { - viewport.setCamera(camera); - } + this.setPresentations(viewport.id, presentations); }); } @@ -454,7 +654,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi viewport: Types.IVolumeViewport, viewportData: VolumeViewportData, viewportInfo: ViewportInfo, - presentations: Presentations + presentations: Presentations = {} ): Promise { // TODO: We need to overhaul the way data sources work so requests can be made // async. I think we should follow the image loader pattern which is async and @@ -558,7 +758,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi viewport.setProperties(properties, volumeId); }); - this.setPresentations(viewport, presentations); + this.setPresentations(viewport.id, presentations); // load any secondary displaySets const displaySetInstanceUIDs = this.viewportsDisplaySets.get(viewport.id); @@ -712,7 +912,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } _setDisplaySets( - viewport: StackViewport | VolumeViewport, + viewport: Types.IViewport, viewportData: StackViewportData | VolumeViewportData, viewportInfo: ViewportInfo, presentations: Presentations = {} @@ -724,16 +924,18 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi viewportInfo, presentations ); - } else if (viewport instanceof VolumeViewport || viewport instanceof VolumeViewport3D) { + } + + if ([VolumeViewport, VolumeViewport3D].some(type => viewport instanceof type)) { return this._setVolumeViewport( - viewport, + viewport as Types.IVolumeViewport, viewportData as VolumeViewportData, viewportInfo, presentations ); - } else { - throw new Error('Unknown viewport type'); } + + throw new Error('Unknown viewport type'); } /** @@ -763,8 +965,8 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi const { dimensions } = imageVolume; const slabThickness = Math.sqrt( dimensions[0] * dimensions[0] + - dimensions[1] * dimensions[1] + - dimensions[2] * dimensions[2] + dimensions[1] * dimensions[1] + + dimensions[2] * dimensions[2] ); return slabThickness; @@ -799,32 +1001,57 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } } - /** - * Looks through the viewports to see if the specified measurement can be - * displayed in one of the viewports. - * - * @param measurement - * The measurement that is desired to view. - * @param activeViewportId - the index that was active at the time the jump - * was initiated. - * @return the viewportId that the measurement should be displayed in. - */ - public getViewportIdToJump( - activeViewportId: string, - displaySetInstanceUID: string, - cameraProps: unknown - ): string { - const viewportInfo = this.getViewportInfo(activeViewportId); - const { referencedImageId } = cameraProps; - if (viewportInfo?.contains(displaySetInstanceUID, referencedImageId)) { - return activeViewportId; + private enqueueViewportResizeRequest() { + this.resizeQueue.push(false); // false indicates viewport resize + + clearTimeout(this.viewportResizeTimer); + this.viewportResizeTimer = setTimeout(() => { + this.processViewportResizeQueue(); + }, this.gridResizeDelay); + } + + private processViewportResizeQueue() { + const isGridResizeInQueue = this.resizeQueue.some(isGridResize => isGridResize); + if (this.resizeQueue.length > 0 && !isGridResizeInQueue && !this.gridResizeTimeOut) { + this.performResize(); } - return ( - [...this.viewportsById.values()].find(viewportInfo => - viewportInfo.contains(displaySetInstanceUID, referencedImageId) - )?.viewportId ?? null - ); + // Clear the queue after processing viewport resizes + this.resizeQueue = []; + } + + private performResize() { + const isImmediate = false; + + const viewports = this.getRenderingEngine().getViewports(); + + // Store the current position presentations for each viewport. + viewports.forEach(({ id }) => { + const presentation = this.getPositionPresentation(id); + this.beforeResizePositionPresentations.set(id, presentation); + }); + + // Resize the rendering engine and render. + const renderingEngine = this.renderingEngine; + renderingEngine.resize(isImmediate); + renderingEngine.render(); + + // Reset the camera for viewports that should reset their camera on resize, + // which means only those viewports that have a zoom level of 1. + this.beforeResizePositionPresentations.forEach((positionPresentation, viewportId) => { + this.setPresentations(viewportId, { positionPresentation }); + }); + + // Resize and render the rendering engine again. + renderingEngine.resize(isImmediate); + renderingEngine.render(); + } + + private resetGridResizeTimeout() { + clearTimeout(this.gridResizeTimeOut); + this.gridResizeTimeOut = setTimeout(() => { + this.gridResizeTimeOut = null; + }, this.gridResizeDelay); } } diff --git a/extensions/cornerstone/src/services/ViewportService/IViewportService.ts b/extensions/cornerstone/src/services/ViewportService/IViewportService.ts index e96a7d702..b16fa989f 100644 --- a/extensions/cornerstone/src/services/ViewportService/IViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/IViewportService.ts @@ -1,6 +1,7 @@ import { Types } from '@cornerstonejs/core'; -import { StackData, VolumeData } from '../../types/CornerstoneCacheService'; -import { DisplaySetOptions, PublicViewportOptions, ViewportOptions } from './Viewport'; +import { StackViewportData, VolumeViewportData } from '../../types/CornerstoneCacheService'; +import { DisplaySetOptions, PublicViewportOptions } from './Viewport'; +import { Presentations } from '../../types/Presentation'; /** * Handles cornerstone viewport logic including enabling, disabling, and @@ -36,7 +37,7 @@ export interface IViewportService { * the element for resizing events * @param {*} elementRef */ - resize(element: HTMLDivElement): void; + resize(isGridResize: boolean): void; /** * Removes the viewport from cornerstone, and destroys the rendering engine */ @@ -55,8 +56,10 @@ export interface IViewportService { * @returns */ setViewportData( - viewportData: StackData | VolumeData, + viewportId: string, + viewportData: StackViewportData | VolumeViewportData, publicViewportOptions: PublicViewportOptions, - publicDisplaySetOptions: DisplaySetOptions[] + publicDisplaySetOptions: DisplaySetOptions[], + presentations?: Presentations ): void; } diff --git a/extensions/cornerstone/src/services/ViewportService/Viewport.ts b/extensions/cornerstone/src/services/ViewportService/Viewport.ts index f0e417090..2ec852492 100644 --- a/extensions/cornerstone/src/services/ViewportService/Viewport.ts +++ b/extensions/cornerstone/src/services/ViewportService/Viewport.ts @@ -238,6 +238,11 @@ class ViewportInfo { return this.viewportOptions; } + public getPresentationIds(): CoreTypes.PresentationIds { + const { presentationIds } = this.viewportOptions; + return presentationIds; + } + public setDisplaySetOptions(displaySetOptions: Array): void { this.displaySetOptions = displaySetOptions; } diff --git a/extensions/cornerstone/src/types/Presentation.ts b/extensions/cornerstone/src/types/Presentation.ts index f8711b686..57737cc44 100644 --- a/extensions/cornerstone/src/types/Presentation.ts +++ b/extensions/cornerstone/src/types/Presentation.ts @@ -1,23 +1,45 @@ -/** Store presentation data for either stack viewports or volume viewports */ -import { Types } from '@cornerstonejs/core'; -import { Types as CoreTypes } from '@ohif/core'; +import type { Types } from '@cornerstonejs/core'; /** - * Has information on the presentation of the viewport. + * Represents a position presentation in a viewport. This is basically + * viewport specific camera position and zoom, and not the display set */ -export interface Presentation extends Types.StackViewportProperties { - presentationIds: CoreTypes.PresentationIds; +export type PositionPresentation = { + id: string; viewportType: string; - initialImageIndex: number; - camera: Types.ICamera; - properties: Types.StackViewportProperties | Types.VolumeViewportProperties; - zoom?: number; - pan?: [number, number]; + presentation: { + initialImageIndex: number; + viewUp: Types.Point3; + viewPlaneNormal: Types.Point3; + zoom?: number; + pan?: Types.Point2; + }; +}; + +/** + * Represents a LUT presentation in a viewport, and is really related + * to displaySets and not the viewport itself. So that is why it can + * be an object with volumeId keys, or a single object with the properties + * itself + */ +export interface LutPresentation { + id: string; + viewportType: string; + presentation: Record | Types.ViewportProperties; } +/** + * Presentation can be a PositionPresentation or a LutPresentation. + */ +type Presentation = PositionPresentation | LutPresentation; + +/** + * Viewport presentations object that can contain a positionPresentation + * and or a lutPresentation. + */ export type Presentations = { - positionPresentation?: Presentation; - lutPresentation?: Presentation; + positionPresentation?: PositionPresentation; + lutPresentation?: LutPresentation; }; export default Presentation; diff --git a/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx b/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx index 4de163c79..ca0de98b7 100644 --- a/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx +++ b/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx @@ -93,6 +93,7 @@ const CornerstoneViewportDownloadForm = ({ renderingEngine.resize(); // Trigger the render on the viewport to update the on screen + downloadViewport.resetCamera(); downloadViewport.render(); downloadViewportElement.addEventListener( @@ -223,7 +224,6 @@ const CornerstoneViewportDownloadForm = ({ minimumSize={MINIMUM_SIZE} maximumSize={MAX_TEXTURE_SIZE} defaultSize={DEFAULT_SIZE} - canvasClass={'cornerstone-canvas'} activeViewportElement={activeViewportElement} enableViewport={enableViewport} disableViewport={disableViewport} diff --git a/extensions/default/package.json b/extensions/default/package.json index 930a6accb..60037092b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -23,6 +23,8 @@ "ohif-extension" ], "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:dicom-pdf": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 5a79d9ade..d6ff4fadf 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -21,6 +21,8 @@ "yarn": ">=1.18.0" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:dicom-pdf": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index d74dc942d..5578fdcd8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -20,6 +20,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", "build:package-1": "yarn run build", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 2aab4c7fe..5bd757332 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -20,6 +20,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", "build:package-1": "yarn run build", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index a721b6357..5913b22cc 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -23,6 +23,8 @@ "ohif-extension" ], "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:dicom-pdf": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c16992bc3..f665573bd 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -20,6 +20,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", "build:package-1": "yarn run build", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 8046518fa..2a2856946 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -20,6 +20,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", "build:package": "yarn run build", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 0c21b63e6..481f605bd 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -20,6 +20,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5677fb104..6017ff2c5 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -23,6 +23,8 @@ "ohif-mode" ], "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 1772d00ac..9f0da1e5d 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -23,6 +23,8 @@ "ohif-mode" ], "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index c87fb65ab..eb981fa97 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -24,6 +24,8 @@ "yarn": ">=1.16.0" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index b4ae8e7ff..92cea6db3 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -24,6 +24,8 @@ "yarn": ">=1.16.0" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 2a6719407..b6c46eadc 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -23,6 +23,8 @@ "ohif-mode" ], "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:cornerstone": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/package.json b/package.json index 4c37e921a..6b17ed590 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,8 @@ "build:dev": "lerna run build:dev --stream", "build:ci": "lerna run build:viewer:ci --stream", "build:qa": "lerna run build:viewer:qa --stream", + "clean": "npx lerna run clean --stream", + "clean:deep": "npx lerna run clean:deep --stream", "cli": "node ./platform/cli/src/index.js", "build:ui:deploy-preview": "lerna run build:ui:deploy-preview --stream", "build:demo": "lerna run build:viewer:demo --stream", @@ -127,6 +129,7 @@ "semver": "^7.5.1", "serve": "^14.2.0", "shader-loader": "^1.3.1", + "shx": "^0.3.3", "source-map-loader": "^4.0.1", "start-server-and-test": "^1.10.0", "style-loader": "^1.0.0", diff --git a/platform/app/package.json b/platform/app/package.json index 6663bec3a..cebd12b6b 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -25,6 +25,8 @@ "build:viewer:qa": "cross-env NODE_ENV=production APP_CONFIG=config/google.js yarn run build", "build:viewer:demo": "cross-env NODE_ENV=production APP_CONFIG=config/demo.js HTML_TEMPLATE=rollbar.html QUICK_BUILD=false yarn run build", "build": "node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --progress --config .webpack/webpack.pwa.js", + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack serve --config .webpack/webpack.pwa.js", "dev:no:cache": "cross-env NODE_ENV=development webpack serve --no-cache --config .webpack/webpack.pwa.js", "dev:orthanc": "cross-env NODE_ENV=development PROXY_TARGET=/dicom-web PROXY_DOMAIN=http://localhost:8042 APP_CONFIG=config/docker_nginx-orthanc.js webpack serve --config .webpack/webpack.pwa.js", @@ -52,6 +54,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.54", "@ohif/extension-cornerstone": "3.8.0-beta.54", "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.54", @@ -88,7 +91,7 @@ "react-dom": "^17.0.2", "react-dropzone": "^10.1.7", "react-i18next": "^12.2.2", - "react-resize-detector": "^6.7.6", + "react-resize-detector": "^9.1.0", "react-router": "^6.8.1", "react-router-dom": "^6.8.1" }, diff --git a/platform/app/src/components/ViewportGrid.tsx b/platform/app/src/components/ViewportGrid.tsx index c3151116d..8bb0f3f7c 100644 --- a/platform/app/src/components/ViewportGrid.tsx +++ b/platform/app/src/components/ViewportGrid.tsx @@ -1,4 +1,5 @@ -import React, { useEffect, useCallback } from 'react'; +import React, { useEffect, useCallback, useRef } from 'react'; +import ReactResizeDetector from 'react-resize-detector'; import PropTypes from 'prop-types'; import { ServicesManager, Types, MeasurementService } from '@ohif/core'; import { ViewportGrid, ViewportPane, useViewportGrid } from '@ohif/ui'; @@ -13,6 +14,7 @@ function ViewerViewportGrid(props) { const { layout, activeViewportId, viewports } = viewportGrid; const { numCols, numRows } = layout; + const elementRef = useRef(null); // TODO -> Need some way of selecting which displaySets hit the viewports. const { displaySetService, measurementService, hangingProtocolService, uiNotificationService } = ( @@ -342,13 +344,26 @@ function ViewerViewportGrid(props) { } return ( - - {/* {ViewportPanes} */} - {getViewportPanes()} - + + { + viewportGridService.setViewportGridSizeChanged(); + }} + targetRef={elementRef.current} + /> + {/* {ViewportPanes} */} + {getViewportPanes()} + +
); } diff --git a/platform/cli/package.json b/platform/cli/package.json index 551d88dcf..019e01179 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -9,6 +9,8 @@ "ohif-cli": "src/index.js" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ diff --git a/platform/core/package.json b/platform/core/package.json index 5d4d92686..007c4a6c7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -22,6 +22,8 @@ "yarn": ">=1.16.0" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "jest --watchAll", "dev:core": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/platform/core/src/services/ViewportGridService/ViewportGridService.ts b/platform/core/src/services/ViewportGridService/ViewportGridService.ts index ee430ccac..5f2a2be8a 100644 --- a/platform/core/src/services/ViewportGridService/ViewportGridService.ts +++ b/platform/core/src/services/ViewportGridService/ViewportGridService.ts @@ -6,6 +6,7 @@ class ViewportGridService extends PubSubService { ACTIVE_VIEWPORT_ID_CHANGED: 'event::activeviewportidchanged', LAYOUT_CHANGED: 'event::layoutChanged', GRID_STATE_CHANGED: 'event::gridStateChanged', + GRID_SIZE_CHANGED: 'event::gridSizeChanged', }; public static REGISTRATION = { @@ -64,7 +65,6 @@ class ViewportGridService extends PubSubService { public setActiveViewportId(id: string) { this.serviceImplementation._setActiveViewport(id); - const state = this.getState(); this._broadcastEvent(this.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED, { viewportId: id, }); @@ -79,6 +79,13 @@ class ViewportGridService extends PubSubService { return state.activeViewportId; } + public setViewportGridSizeChanged() { + const state = this.getState(); + this._broadcastEvent(this.EVENTS.GRID_SIZE_CHANGED, { + state, + }); + } + public setDisplaySetsForViewport(props) { // Just update a single viewport, but use the multi-viewport update for it. this.setDisplaySetsForViewports([props]); diff --git a/platform/docs/package.json b/platform/docs/package.json index 9c7d7e786..04e594b2d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -15,6 +15,8 @@ }, "scripts": { "docusaurus": "docusaurus", + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "start": "docusaurus start --port 8001", "dev": "docusaurus start --port 8001", "docs": "docusaurus start --port 8001", diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 7e73c82a3..8d0fb621e 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -20,6 +20,8 @@ "access": "public" }, "scripts": { + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", "dev:i18n": "yarn run dev", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", diff --git a/platform/ui/package.json b/platform/ui/package.json index 067b5a601..c934aa396 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -19,11 +19,12 @@ "README.md" ], "scripts": { + "clean": "rm -rf node_modules/.cache/storybook && shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", "start": "yarn run build --watch", "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", "build:package": "yarn run build", "storybook": "storybook dev -p 6006", - "clean": "rm -rf node_modules/.cache/storybook", "dev": "storybook dev -p 6006", "build-storybook": "storybook build" }, diff --git a/platform/ui/src/contextProviders/ViewportGridProvider.tsx b/platform/ui/src/contextProviders/ViewportGridProvider.tsx index c5eee312b..38311a56d 100644 --- a/platform/ui/src/contextProviders/ViewportGridProvider.tsx +++ b/platform/ui/src/contextProviders/ViewportGridProvider.tsx @@ -406,6 +406,7 @@ export function ViewportGridProvider({ children, service }) { set: gridLayoutState => service.setState(gridLayoutState), // run it through the service itself since we want to publish events getNumViewportPanes, getActiveViewportOptionByKey, + setViewportGridSizeChanged: props => service.setViewportGridSizeChanged(props), }; return ( diff --git a/yarn.lock b/yarn.lock index 066a8fd9d..804c21d2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2482,29 +2482,29 @@ resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== -"@floating-ui/core@^1.5.3": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.3.tgz#b6aa0827708d70971c8679a16cf680a515b8a52a" - integrity sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q== +"@floating-ui/core@^1.0.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" + integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== dependencies: - "@floating-ui/utils" "^0.2.0" + "@floating-ui/utils" "^0.2.1" -"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.5.4": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.4.tgz#28df1e1cb373884224a463235c218dcbd81a16bb" - integrity sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ== +"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.6.1": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.3.tgz#954e46c1dd3ad48e49db9ada7218b0985cee75ef" + integrity sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw== dependencies: - "@floating-ui/core" "^1.5.3" + "@floating-ui/core" "^1.0.0" "@floating-ui/utils" "^0.2.0" "@floating-ui/react-dom@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.6.tgz#5ffcf40b6550817a973b54cdd443374f51ca7a5c" - integrity sha512-IB8aCRFxr8nFkdYZgH+Otd9EVQPJoynxeFRGTB8voPoZMRWo8XjYuCRgpI1btvuKY69XMiLnW+ym7zoBHM90Rw== + version "2.0.8" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.8.tgz#afc24f9756d1b433e1fe0d047c24bd4d9cefaa5d" + integrity sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw== dependencies: - "@floating-ui/dom" "^1.5.4" + "@floating-ui/dom" "^1.6.1" -"@floating-ui/utils@^0.2.0": +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1": version "0.2.1" resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== @@ -2789,9 +2789,9 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.0.1": version "1.1.2" @@ -2812,9 +2812,9 @@ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.21" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" - integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== + version "0.3.22" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -3377,9 +3377,9 @@ "@percy/sdk-utils" "^1.3.1" "@percy/sdk-utils@^1.3.1": - version "1.27.7" - resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.27.7.tgz#b376c1ad653f3c70fea08a3db11eb63622ca6b53" - integrity sha512-E21dIEQ9wwGDno41FdMDYf6jJow5scbWGClqKE/ptB+950W4UF5C4hxhVVQoEJxDdLE/Gy/8ZJR7upvPHShWDg== + version "1.28.0" + resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.28.0.tgz#479f5374aa34efe4a18e1fd290a2c328b670e7ed" + integrity sha512-K4fziY+OXJJtNVfecO3jI3VQFuei2Lf8/5nlQvnx+U9v8fGFrkc0aE+gIlP3Ce5qzJbotgAlV1Dd0bZ2y7i7vw== "@petamoriken/float16@^3.4.7": version "3.8.4" @@ -3757,10 +3757,10 @@ resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a" integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg== -"@remix-run/router@1.14.2": - version "1.14.2" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.14.2.tgz#4d58f59908d9197ba3179310077f25c88e49ed17" - integrity sha512-ACXpdMM9hmKZww21yEqWwiLws/UPLhNKvimN8RrYSqPSvB3ov7sLvAcfvaxePeLvccTQKGdkDIhLYApZVDFuKg== +"@remix-run/router@1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.15.0.tgz#461a952c2872dd82c8b2e9b74c4dfaff569123e2" + integrity sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ== "@rollup/plugin-babel@^5.2.0": version "5.3.1" @@ -3806,10 +3806,10 @@ dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== dependencies: "@hapi/hoek" "^9.0.0" @@ -3863,9 +3863,9 @@ integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== "@sinonjs/commons@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" - integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" @@ -3885,141 +3885,141 @@ p-map "^4.0.0" webpack-sources "^3.2.2" -"@storybook/addon-actions@7.6.10", "@storybook/addon-actions@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.10.tgz#5b43534e158797114db032f4ad8505a81809ed00" - integrity sha512-pcKmf0H/caGzKDy8cz1adNSjv+KOBWLJ11RzGExrWm+Ad5ACifwlsQPykJ3TQ/21sTd9IXVrE9uuq4LldEnPbg== +"@storybook/addon-actions@7.6.16", "@storybook/addon-actions@^7.2.2": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.16.tgz#aed33b43743832f037aede8ce2bfda26b3b91fe6" + integrity sha512-wCpZljLXnu08TZzp+qL5AXousfUBzY6TgHVwn4yoZkMhPg3WLxZTceKYnc+XAxoMmdTrDjwanEF7v/uQ9eu64Q== dependencies: - "@storybook/core-events" "7.6.10" + "@storybook/core-events" "7.6.16" "@storybook/global" "^5.0.0" "@types/uuid" "^9.0.1" dequal "^2.0.2" polished "^4.2.2" uuid "^9.0.0" -"@storybook/addon-backgrounds@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.10.tgz#4ecfc017befd400e5eabad347ab1819c2ea67a8c" - integrity sha512-kGzsN1QkfyI8Cz7TErEx9OCB3PMzpCFGLd/iy7FreXwbMbeAQ3/9fYgKUsNOYgOhuTz7S09koZUWjS/WJuZGFA== +"@storybook/addon-backgrounds@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.16.tgz#3a1dd8a4592d129bbedb238c7df4890aec3f5945" + integrity sha512-q9985hjtoX3ytvReV2YC4UY0FVASXFq2fW6RNOrrivw81UbW2SWxVG01vh7ZXjMrWbQ6r3yC05X9vVAmCa7TdQ== dependencies: "@storybook/global" "^5.0.0" memoizerific "^1.11.3" ts-dedent "^2.0.0" -"@storybook/addon-controls@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.6.10.tgz#6cd309440bf2b86c21f11a8b5f20bc1340d6c045" - integrity sha512-LjwCQRMWq1apLtFwDi6U8MI6ITUr+KhxJucZ60tfc58RgB2v8ayozyDAonFEONsx9YSR1dNIJ2Z/e2rWTBJeYA== +"@storybook/addon-controls@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.6.16.tgz#1b948080cbdc8b3337c523a3dcc5ee512f8619a9" + integrity sha512-WeIuwyGxaMMClWSHhSH0ibwPSarEFtxE6SPQxCTmGIeD11bn5vQ6UUrmm9A2xbFqHOJBoB60TJhw69alnI0AHA== dependencies: - "@storybook/blocks" "7.6.10" + "@storybook/blocks" "7.6.16" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@7.6.10", "@storybook/addon-docs@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.6.10.tgz#aab69f253a9cfbb57fd84062f00fac08f9c796cd" - integrity sha512-GtyQ9bMx1AOOtl6ZS9vwK104HFRK+tqzxddRRxhXkpyeKu3olm9aMgXp35atE/3fJSqyyDm2vFtxxH8mzBA20A== +"@storybook/addon-docs@7.6.16", "@storybook/addon-docs@^7.2.2": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.6.16.tgz#4c205d1ebce7b07c0ebc58ccb3e9bd17921d5939" + integrity sha512-X4WLAwwxGq9ki49FtERT5VHstGeZYca+l+8lxVXW6NQYuQ1xCeSy5puwknDv5p5u4thIVW2Fa4Uvma7wCfddtg== dependencies: "@jest/transform" "^29.3.1" "@mdx-js/react" "^2.1.5" - "@storybook/blocks" "7.6.10" - "@storybook/client-logger" "7.6.10" - "@storybook/components" "7.6.10" - "@storybook/csf-plugin" "7.6.10" - "@storybook/csf-tools" "7.6.10" + "@storybook/blocks" "7.6.16" + "@storybook/client-logger" "7.6.16" + "@storybook/components" "7.6.16" + "@storybook/csf-plugin" "7.6.16" + "@storybook/csf-tools" "7.6.16" "@storybook/global" "^5.0.0" "@storybook/mdx2-csf" "^1.0.0" - "@storybook/node-logger" "7.6.10" - "@storybook/postinstall" "7.6.10" - "@storybook/preview-api" "7.6.10" - "@storybook/react-dom-shim" "7.6.10" - "@storybook/theming" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/node-logger" "7.6.16" + "@storybook/postinstall" "7.6.16" + "@storybook/preview-api" "7.6.16" + "@storybook/react-dom-shim" "7.6.16" + "@storybook/theming" "7.6.16" + "@storybook/types" "7.6.16" fs-extra "^11.1.0" remark-external-links "^8.0.0" remark-slug "^6.0.0" ts-dedent "^2.0.0" "@storybook/addon-essentials@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.6.10.tgz#9078abe56b15d976e3d4c15247c748b2e8e53c30" - integrity sha512-cjbuCCK/3dtUity0Uqi5LwbkgfxqCCE5x5mXZIk9lTMeDz5vB9q6M5nzncVDy8F8przF3NbDLLgxKlt8wjiICg== + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.6.16.tgz#395ab6f53d91fa0667ac2870a09843a9f0a41ce0" + integrity sha512-LTrsud7yphxA7dpbk8TvIsHXqk5Wkq3JAwby3yQDEOFakpgNeXj8b6rlr9CHJja2p13pB4LuXokLk8t+qJGnQQ== dependencies: - "@storybook/addon-actions" "7.6.10" - "@storybook/addon-backgrounds" "7.6.10" - "@storybook/addon-controls" "7.6.10" - "@storybook/addon-docs" "7.6.10" - "@storybook/addon-highlight" "7.6.10" - "@storybook/addon-measure" "7.6.10" - "@storybook/addon-outline" "7.6.10" - "@storybook/addon-toolbars" "7.6.10" - "@storybook/addon-viewport" "7.6.10" - "@storybook/core-common" "7.6.10" - "@storybook/manager-api" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/preview-api" "7.6.10" + "@storybook/addon-actions" "7.6.16" + "@storybook/addon-backgrounds" "7.6.16" + "@storybook/addon-controls" "7.6.16" + "@storybook/addon-docs" "7.6.16" + "@storybook/addon-highlight" "7.6.16" + "@storybook/addon-measure" "7.6.16" + "@storybook/addon-outline" "7.6.16" + "@storybook/addon-toolbars" "7.6.16" + "@storybook/addon-viewport" "7.6.16" + "@storybook/core-common" "7.6.16" + "@storybook/manager-api" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/preview-api" "7.6.16" ts-dedent "^2.0.0" -"@storybook/addon-highlight@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.6.10.tgz#19cad3d67655e9b9eef3d2f6760789fc29ba0790" - integrity sha512-dIuS5QmoT1R+gFOcf6CoBa6D9UR5/wHCfPqPRH8dNNcCLtIGSHWQ4v964mS5OCq1Huj7CghmR15lOUk7SaYwUA== +"@storybook/addon-highlight@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.6.16.tgz#2c91179ca59e05fd7430b7d96c2d2d1e9c7658e2" + integrity sha512-DJtUBiButx6cz55eaRe5JFVBORVtp3Htr9PnxWVGEy4Ki5aoYCYWxMcPOuXVFvtWgBmh6d3HO0pEd888qPr60g== dependencies: "@storybook/global" "^5.0.0" "@storybook/addon-links@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.6.10.tgz#e437d35b360ac9a33ee6078d901417a73f916629" - integrity sha512-s/WkSYHpr2pb9p57j6u/xDBg3TKJhBq55YMl0GB5gXgkRPIeuGbPhGJhm2yTGVFLvXgr/aHHnOxb/R/W8PiRhA== + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.6.16.tgz#783764da92e920b9cf5e43378a88053cd8f7d6eb" + integrity sha512-+582ePJxvweYZB5s133Uou6YRzZtnXGMRtKMJVovy/P5cWtq8FS5wzyMJPeK4z6ioR6BQJQVF2NV5lfrjoxpKQ== dependencies: "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" ts-dedent "^2.0.0" -"@storybook/addon-measure@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.6.10.tgz#5e41d64aa6e02b9c6df1696d918058979598250e" - integrity sha512-OVfTI56+kc4hLWfZ/YPV3WKj/aA9e4iKXYxZyPdhfX4Z8TgZdD1wv9Z6e8DKS0H5kuybYrHKHaID5ki6t7qz3w== +"@storybook/addon-measure@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.6.16.tgz#68e8b9fd4debf944021a89fd983795ae25d3258d" + integrity sha512-lQw7WXEeLuvDe3bfi7699WnHMryLIRnoT/w7oHqvS19UHp2HR0TKqYiPPppI6Yy4RoWHx+qFhKZJlajFyKDGfg== dependencies: "@storybook/global" "^5.0.0" tiny-invariant "^1.3.1" -"@storybook/addon-outline@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.6.10.tgz#02b51084cc1d555c270995cebfe512924df0ce7e" - integrity sha512-RVJrEoPArhI6zAIMNl1Gz0zrj84BTfEWYYz0yDWOTVgvN411ugsoIk1hw0671MOneXJ2RcQ9MFIeV/v6AVDQYg== +"@storybook/addon-outline@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.6.16.tgz#5019328486ccba0db3b6a714a70024a72f016a24" + integrity sha512-bG9KN10ANLUDIsm4e6RXRsCZ++b8pyfYTyu0MlSNXf6KdYcuDvdTY59gj6RIeVGKqWeX5yYCYUm2oPLtkms1NQ== dependencies: "@storybook/global" "^5.0.0" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.6.10.tgz#4d841e87acca5455a8339a29c1062612ccb07df6" - integrity sha512-PaXY/oj9yxF7/H0CNdQKcioincyCkfeHpISZriZbZqhyqsjn3vca7RFEmsB88Q+ou6rMeqyA9st+6e2cx/Ct6A== +"@storybook/addon-toolbars@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.6.16.tgz#a3c81400e0b54ad77a4b2980aaef3f977a170793" + integrity sha512-6wSNXe50auEVwHCcupYPrJkpzQFugumEBfgYuQ6ICW9k2xJtGtahy7TyM9sZbYgnDkoTm2ba7UhML6Noy3JuUg== -"@storybook/addon-viewport@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.6.10.tgz#834bad76a56e4117ffb2dc935d349dca3b49bcc3" - integrity sha512-+bA6juC/lH4vEhk+w0rXakaG8JgLG4MOYrIudk5vJKQaC6X58LIM9N4kzIS2KSExRhkExXBPrWsnMfCo7uxmKg== +"@storybook/addon-viewport@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.6.16.tgz#81ddb7004c2811092eddadcadbed8d69f9dc87a9" + integrity sha512-WkvixYHncLXpAeEnktjfYIffJ3b6poymB+wDbHKK/tg7m3N8llLlys64nvyeb7DbZ/+1yJls3K1DVbk1AIEHrQ== dependencies: memoizerific "^1.11.3" -"@storybook/blocks@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.6.10.tgz#353a5efa6a922a9a3766254f9f24cc2adad34f83" - integrity sha512-oSIukGC3yuF8pojABC/HLu5tv2axZvf60TaUs8eDg7+NiiKhzYSPoMQxs5uMrKngl+EJDB92ESgWT9vvsfvIPg== +"@storybook/blocks@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.6.16.tgz#0bcea894051645c1f7b1d4b341f0b3bf4313519d" + integrity sha512-rWG9a7BbK0qYvge1oJTIpAbcQ4eOSxetKqgeZc7jxQGeJw0Xvq7C/CmkBY4ZrdP8nj7M7R1Yw49u6OV4aXlyOg== dependencies: - "@storybook/channels" "7.6.10" - "@storybook/client-logger" "7.6.10" - "@storybook/components" "7.6.10" - "@storybook/core-events" "7.6.10" + "@storybook/channels" "7.6.16" + "@storybook/client-logger" "7.6.16" + "@storybook/components" "7.6.16" + "@storybook/core-events" "7.6.16" "@storybook/csf" "^0.1.2" - "@storybook/docs-tools" "7.6.10" + "@storybook/docs-tools" "7.6.16" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.6.10" - "@storybook/preview-api" "7.6.10" - "@storybook/theming" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/manager-api" "7.6.16" + "@storybook/preview-api" "7.6.16" + "@storybook/theming" "7.6.16" + "@storybook/types" "7.6.16" "@types/lodash" "^4.14.167" color-convert "^2.0.1" dequal "^2.0.2" @@ -4033,15 +4033,15 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-manager@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.6.10.tgz#fc30b19dd74e6f6ae896d8f4045552c3206c25f9" - integrity sha512-f+YrjZwohGzvfDtH8BHzqM3xW0p4vjjg9u7uzRorqUiNIAAKHpfNrZ/WvwPlPYmrpAHt4xX/nXRJae4rFSygPw== +"@storybook/builder-manager@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.6.16.tgz#f27eb05b2a40cae13bfc7ca899ef1d4599c750b0" + integrity sha512-QTmvjmk49tpPe5IFM3SwHvRb1P6G0PTip4mCO7ab/zKiWaXlg9QZF5su+2e3KSil4ATssr3ybUlKlkqSubaCyQ== dependencies: "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "7.6.10" - "@storybook/manager" "7.6.10" - "@storybook/node-logger" "7.6.10" + "@storybook/core-common" "7.6.16" + "@storybook/manager" "7.6.16" + "@storybook/node-logger" "7.6.16" "@types/ejs" "^3.1.1" "@types/find-cache-dir" "^3.2.1" "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" @@ -4055,20 +4055,20 @@ process "^0.11.10" util "^0.12.4" -"@storybook/builder-webpack5@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.6.10.tgz#9cd8ae541e836c089e17e5f8d527b9cad6d4d99f" - integrity sha512-ja47rdy75tAs37T+JLSqgUGJiba+74zM/8IpEZAzgJmGxLetnHuCWEDskZWh3NXemxYS2uCvsg5rNc+dL9z4RA== +"@storybook/builder-webpack5@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-7.6.16.tgz#7f732f87081f0ed05ccf4a011e0ce4e86a7dc10b" + integrity sha512-KBUwFXlG+BBp3W7eyZMdTpWqiGsI6bsKcbyEtzbX4pSPWDRVWaJB2wito+Y1VhOAo/pPukzV/3GLVUlyq4wdsw== dependencies: "@babel/core" "^7.23.2" - "@storybook/channels" "7.6.10" - "@storybook/client-logger" "7.6.10" - "@storybook/core-common" "7.6.10" - "@storybook/core-events" "7.6.10" - "@storybook/core-webpack" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/preview" "7.6.10" - "@storybook/preview-api" "7.6.10" + "@storybook/channels" "7.6.16" + "@storybook/client-logger" "7.6.16" + "@storybook/core-common" "7.6.16" + "@storybook/core-events" "7.6.16" + "@storybook/core-webpack" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/preview" "7.6.16" + "@storybook/preview-api" "7.6.16" "@swc/core" "^1.3.82" "@types/node" "^18.0.0" "@types/semver" "^7.3.4" @@ -4099,35 +4099,35 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.5.0" -"@storybook/channels@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.6.10.tgz#04fd2c2f0b530bb8d236f5763e8df8cb5fa7c921" - integrity sha512-ITCLhFuDBKgxetuKnWwYqMUWlU7zsfH3gEKZltTb+9/2OAWR7ez0iqU7H6bXP1ridm0DCKkt2UMWj2mmr9iQqg== +"@storybook/channels@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.6.16.tgz#0aa15f77356211270d2dad8a7e257ed7374ade50" + integrity sha512-LKB0t4OGISez1O4TRJ/CDPxlb2wAW7gg8YRL91VVUHeffVyr4bnpklvMbLbuEcYrysM82Q2UMB9ipQdyK6Issg== dependencies: - "@storybook/client-logger" "7.6.10" - "@storybook/core-events" "7.6.10" + "@storybook/client-logger" "7.6.16" + "@storybook/core-events" "7.6.16" "@storybook/global" "^5.0.0" qs "^6.10.0" telejson "^7.2.0" tiny-invariant "^1.3.1" -"@storybook/cli@7.6.10", "@storybook/cli@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.6.10.tgz#2436276c5404b166a9f795fef44bbd75826d9bfe" - integrity sha512-pK1MEseMm73OMO2OVoSz79QWX8ymxgIGM8IeZTCo9gImiVRChMNDFYcv8yPWkjuyesY8c15CoO48aR7pdA1OjQ== +"@storybook/cli@7.6.16", "@storybook/cli@^7.2.2": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.6.16.tgz#a54705fe652278b1144288b5faf497f69ece7f34" + integrity sha512-bFEiAXv69ZLqFnxAMCEBTxZqLnPG0GAEpGqwpPbt2lk6lLtro8g+//OR9RiztZt0YFHpp0YK5WCy6Xq0gwXcPw== dependencies: "@babel/core" "^7.23.2" "@babel/preset-env" "^7.23.2" "@babel/types" "^7.23.0" "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "7.6.10" - "@storybook/core-common" "7.6.10" - "@storybook/core-events" "7.6.10" - "@storybook/core-server" "7.6.10" - "@storybook/csf-tools" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/telemetry" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/codemod" "7.6.16" + "@storybook/core-common" "7.6.16" + "@storybook/core-events" "7.6.16" + "@storybook/core-server" "7.6.16" + "@storybook/csf-tools" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/telemetry" "7.6.16" + "@storybook/types" "7.6.16" "@types/semver" "^7.3.4" "@yarnpkg/fslib" "2.10.3" "@yarnpkg/libzip" "2.3.0" @@ -4157,25 +4157,25 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.6.10.tgz#5d66feb18a21836f84b63f71cf5b3a85d669f049" - integrity sha512-U7bbpu21ntgePMz/mKM18qvCSWCUGCUlYru8mgVlXLCKqFqfTeP887+CsPEQf29aoE3cLgDrxqbRJ1wxX9kL9A== +"@storybook/client-logger@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.6.16.tgz#73782e461bfd29f94c3006e6ebe6f90294ca339b" + integrity sha512-Vquhmgk/SO0VeAkojcA1juuicBHoTST+f4XwBvyUNiebOSOdGIkxHVxpDFXu2kS0aKflFBEutX2IgoysDup+fQ== dependencies: "@storybook/global" "^5.0.0" -"@storybook/codemod@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.6.10.tgz#21cc0e69df6f57d567fc27264310f820662d62fa" - integrity sha512-pzFR0nocBb94vN9QCJLC3C3dP734ZigqyPmd0ZCDj9Xce2ytfHK3v1lKB6TZWzKAZT8zztauECYxrbo4LVuagw== +"@storybook/codemod@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.6.16.tgz#c10a648f0d100628dc6aa2e2eb4e3ab597ec56f1" + integrity sha512-RlL2I7UV+ef3j+6NaFa1Y6j/hU9KDKssync1GfKypUKlFAP76ozfpRWdDVEkc/29JruEEkbvMiUxQdP7CE3PMQ== dependencies: "@babel/core" "^7.23.2" "@babel/preset-env" "^7.23.2" "@babel/types" "^7.23.0" "@storybook/csf" "^0.1.2" - "@storybook/csf-tools" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/csf-tools" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/types" "7.6.16" "@types/cross-spawn" "^6.0.2" cross-spawn "^7.0.3" globby "^11.0.2" @@ -4184,38 +4184,38 @@ prettier "^2.8.0" recast "^0.23.1" -"@storybook/components@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.6.10.tgz#2d1b8c66c374327663b91f65db3b1be5749a1a6b" - integrity sha512-H5hF8pxwtbt0LxV24KMMsPlbYG9Oiui3ObvAQkvGu6q62EYxRPeNSrq3GBI5XEbI33OJY9bT24cVaZx18dXqwQ== +"@storybook/components@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.6.16.tgz#08c6f53d41d81d1bef7952e30195928c8127151e" + integrity sha512-5KZQqxFiVEGM485ceF/7PmiNEkHgouEa8ZUJvDGrW9Ap5MfN0xqAuyTTveHvZzGrKp0YlOcOnpqwu/cSk0HQKA== dependencies: "@radix-ui/react-select" "^1.2.2" "@radix-ui/react-toolbar" "^1.0.4" - "@storybook/client-logger" "7.6.10" + "@storybook/client-logger" "7.6.16" "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/theming" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/theming" "7.6.16" + "@storybook/types" "7.6.16" memoizerific "^1.11.3" use-resize-observer "^9.1.0" util-deprecate "^1.0.2" -"@storybook/core-client@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.6.10.tgz#cd427d7017c1f32b2e956b4eb8ea89f3424b60c9" - integrity sha512-DjnzSzSNDmZyxyg6TxugzWQwOsW+n/iWVv6sHNEvEd5STr0mjuJjIEELmv58LIr5Lsre5+LEddqHsyuLyt8ubg== +"@storybook/core-client@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.6.16.tgz#0769b7b2abad90e71e09c2d7d7e652ca5a6b3696" + integrity sha512-ogVwvjpNPrcv8Lk9oSa38b7X4NNgYIgVnCjvvr9FCmhh4xAuA4XNUyB+vyAdK4JOT0/CoMKRpTp+VL5e2+BZbg== dependencies: - "@storybook/client-logger" "7.6.10" - "@storybook/preview-api" "7.6.10" + "@storybook/client-logger" "7.6.16" + "@storybook/preview-api" "7.6.16" -"@storybook/core-common@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.6.10.tgz#00b73761eb3c4452105a7d79b5179237a6f01b32" - integrity sha512-K3YWqjCKMnpvYsWNjOciwTH6zWbuuZzmOiipziZaVJ+sB1XYmH52Y3WGEm07TZI8AYK9DRgwA13dR/7W0nw72Q== +"@storybook/core-common@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.6.16.tgz#be5de3cd56df03653feb8576dc19dad6a62721f8" + integrity sha512-Xn3Fbo4k9RRKgYzOBx9CeJFpWgS9gkcdo3J9XMMzmUqdZ+MUGT74kl2sMmzSypcH5aI1AUl5vZIKvLwloliejw== dependencies: - "@storybook/core-events" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/core-events" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/types" "7.6.16" "@types/find-cache-dir" "^3.2.1" "@types/node" "^18.0.0" "@types/node-fetch" "^2.6.4" @@ -4237,33 +4237,33 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/core-events@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.10.tgz#d521cbdadebfa56caaa8815a1e132694a20f05e9" - integrity sha512-yccDH67KoROrdZbRKwxgTswFMAco5nlCyxszCDASCLygGSV2Q2e+YuywrhchQl3U6joiWi3Ps1qWu56NeNafag== +"@storybook/core-events@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.16.tgz#320f88f463201a1a1c857c7b596dd61bde34e4c8" + integrity sha512-mkBqzrbp6vmdjo0fBZGrFQQ4YdvMFxF6AesdKTf8EzPa69FoxnhQLrmQ4aXF+9vXkxfXVJF2HfpoTEdfqqAo+w== dependencies: ts-dedent "^2.0.0" -"@storybook/core-server@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.6.10.tgz#53bf43b8b3c999c87196774a0b92e2e10a434e4c" - integrity sha512-2icnqJkn3vwq0eJPP0rNaHd7IOvxYf5q4lSVl2AWTxo/Ae19KhokI6j/2vvS2XQJMGQszwshlIwrZUNsj5p0yw== +"@storybook/core-server@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.6.16.tgz#9d5daeea44b957b5259a1f2ec51eff2c5322d0ca" + integrity sha512-Sj8j45XMg1bI7ktMqj9gxXHsZ4d1KgR+2A2eaxR7Heho7253WkUltLYxhu3hdH01rRJXYFxn/zZBxYfEib94Vg== dependencies: "@aw-web-design/x-default-browser" "1.4.126" "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "7.6.10" - "@storybook/channels" "7.6.10" - "@storybook/core-common" "7.6.10" - "@storybook/core-events" "7.6.10" + "@storybook/builder-manager" "7.6.16" + "@storybook/channels" "7.6.16" + "@storybook/core-common" "7.6.16" + "@storybook/core-events" "7.6.16" "@storybook/csf" "^0.1.2" - "@storybook/csf-tools" "7.6.10" + "@storybook/csf-tools" "7.6.16" "@storybook/docs-mdx" "^0.1.0" "@storybook/global" "^5.0.0" - "@storybook/manager" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/preview-api" "7.6.10" - "@storybook/telemetry" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/manager" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/preview-api" "7.6.16" + "@storybook/telemetry" "7.6.16" + "@storybook/types" "7.6.16" "@types/detect-port" "^1.3.0" "@types/node" "^18.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -4291,36 +4291,36 @@ watchpack "^2.2.0" ws "^8.2.3" -"@storybook/core-webpack@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.6.10.tgz#e4ca086973d4d10f08b5bed789f1398eb983d8b1" - integrity sha512-+GiCRp+2Hw0NO3NYRKamG/U5SyOQ8tOfRUxuAqWI7nduXwB3WWdjji3/ofjqOm/ryKesuQFtfhozaczvBJBvng== +"@storybook/core-webpack@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-7.6.16.tgz#4cde5b4f74f89b238ed8a3e58c2fa5d82e2f4998" + integrity sha512-Ol/FD6jHcCspw0GK5o9uT6Pjk5HuDD9bxU+03bEyCpGPodk0BE9qaoahs1+WO4wG8A1m5QYdfy5zRq6VeI1WHg== dependencies: - "@storybook/core-common" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/core-common" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/types" "7.6.16" "@types/node" "^18.0.0" ts-dedent "^2.0.0" -"@storybook/csf-plugin@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.6.10.tgz#479cffe04c68a87f60589a6891a306805c758437" - integrity sha512-Sc+zZg/BnPH2X28tthNaQBnDiFfO0QmfjVoOx0fGYM9SvY3P5ehzWwp5hMRBim6a/twOTzePADtqYL+t6GMqqg== +"@storybook/csf-plugin@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.6.16.tgz#cb93eb3dea9449bc30f14ccaed59f4a3ca323475" + integrity sha512-hslhGtnijMpL7HAcYYgIuo6acVLP7BDptflMwIyGFWKK3MHjMxqWTZ3Sj+BV1yg/pYZdqC2NYyUypeuuSpivSA== dependencies: - "@storybook/csf-tools" "7.6.10" + "@storybook/csf-tools" "7.6.16" unplugin "^1.3.1" -"@storybook/csf-tools@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.6.10.tgz#320638f64e2e14cf539dd55188f676fd82789be5" - integrity sha512-TnDNAwIALcN6SA4l00Cb67G02XMOrYU38bIpFJk5VMDX2dvgPjUtJNBuLmEbybGcOt7nPyyFIHzKcY5FCVGoWA== +"@storybook/csf-tools@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.6.16.tgz#6226e18221823e3e91378b10b2368ca0a5b4903a" + integrity sha512-8kVBq3UKDrEQq7rTHlNMoe1TDOTdO8iL8Jtv/FMDu/Qzj6AoT8/bjrtPsGjGMfVjP7QwBDeiLn6rStT4TlVGog== dependencies: "@babel/generator" "^7.23.0" "@babel/parser" "^7.23.0" "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" "@storybook/csf" "^0.1.2" - "@storybook/types" "7.6.10" + "@storybook/types" "7.6.16" fs-extra "^11.1.0" recast "^0.23.1" ts-dedent "^2.0.0" @@ -4337,14 +4337,14 @@ resolved "https://registry.yarnpkg.com/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz#33ba0e39d1461caf048b57db354b2cc410705316" integrity sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg== -"@storybook/docs-tools@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.6.10.tgz#90ce6bcf468b8d0a479fb75e9a6ff87f482095dc" - integrity sha512-UgbikducoXzqQHf2TozO0f2rshaeBNnShVbL5Ai4oW7pDymBmrfzdjGbF/milO7yxNKcoIByeoNmu384eBamgQ== +"@storybook/docs-tools@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.6.16.tgz#61a2c3178ca6a0537855f0aa7a562b46276fe337" + integrity sha512-meuq5uLGBLOSJXKeCt9iEH0uVKgGqwfEBi2T4E2w3BcubC/6oQ3VeZl25/KO+l1XcLmOg9LkN2ZOtLV9TEiVLQ== dependencies: - "@storybook/core-common" "7.6.10" - "@storybook/preview-api" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/core-common" "7.6.16" + "@storybook/preview-api" "7.6.16" + "@storybook/types" "7.6.16" "@types/doctrine" "^0.0.3" assert "^2.1.0" doctrine "^3.0.0" @@ -4355,19 +4355,19 @@ resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== -"@storybook/manager-api@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.6.10.tgz#0c2932f42bb97de8fb25240844fcf64474fc8905" - integrity sha512-8eGVpRlpunuFScDtc7nxpPJf/4kJBAAZlNdlhmX09j8M3voX6GpcxabBamSEX5pXZqhwxQCshD4IbqBmjvadlw== +"@storybook/manager-api@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.6.16.tgz#ad74839cc51a6e3318ce651eb9bf03752eb43851" + integrity sha512-pX3xw4DsPhYTWEDspsnJiZSoakn0z3Rdt9YmHU0/NaFBLn64EClzd9XMDnGXnZzW1DtdG6T6l2CwDNDCNIVkWg== dependencies: - "@storybook/channels" "7.6.10" - "@storybook/client-logger" "7.6.10" - "@storybook/core-events" "7.6.10" + "@storybook/channels" "7.6.16" + "@storybook/client-logger" "7.6.16" + "@storybook/core-events" "7.6.16" "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/router" "7.6.10" - "@storybook/theming" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/router" "7.6.16" + "@storybook/theming" "7.6.16" + "@storybook/types" "7.6.16" dequal "^2.0.2" lodash "^4.17.21" memoizerific "^1.11.3" @@ -4375,38 +4375,38 @@ telejson "^7.2.0" ts-dedent "^2.0.0" -"@storybook/manager@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.6.10.tgz#eb1b71c802fbf04353f3bf017dfb102eb0db217e" - integrity sha512-Co3sLCbNYY6O4iH2ggmRDLCPWLj03JE5s/DOG8OVoXc6vBwTc/Qgiyrsxxp6BHQnPpM0mxL6aKAxE3UjsW/Nog== +"@storybook/manager@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.6.16.tgz#98335dbd865c74351ba6cc1ed2d617362fb0df49" + integrity sha512-CPDhgT4jjF0CDgLDxT/R+amMJXpXxSsVp+XzahPbEB9Yu4v0W0HW3f2vSuNJXwpfofrPSkbJweO/oC4ioOtavw== "@storybook/mdx2-csf@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz#97f6df04d0bf616991cc1005a073ac004a7281e5" integrity sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw== -"@storybook/node-logger@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.6.10.tgz#d4c52d04384d2728d6610fb0afff6eb1feb50fd4" - integrity sha512-ZBuqrv4bjJzKXyfRGFkVIi+z6ekn6rOPoQao4KmsfLNQAUUsEdR8Baw/zMnnU417zw5dSEaZdpuwx75SCQAeOA== +"@storybook/node-logger@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.6.16.tgz#6ae9380b52dba770d669f293c79a161c7d450237" + integrity sha512-s18wgtLynLWnunz47lkVIpjk8J6LxT/OmfzkggieU8cG2XYRbf//t7/EOUpOqK77+Xqm3epSwgDAxOXGfjOjAA== -"@storybook/postinstall@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.6.10.tgz#9e81c54b1f23f71a59a6db7ee8a4d5ac40852d17" - integrity sha512-SMdXtednPCy3+SRJ7oN1OPN1oVFhj3ih+ChOEX8/kZ5J3nfmV3wLPtsZvFGUCf0KWQEP1xL+1Urv48mzMKcV/w== +"@storybook/postinstall@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.6.16.tgz#0a7a3307edf68a305fb98d0e6970c1833d344eee" + integrity sha512-axWxj8e90+iLUZPGU9Zvn2Jc/GQrWspu8DpwRCS7N23epTVW6n6OWp31GAShdSx8Oh5lmCMXGegTd1v2Mwc61A== -"@storybook/preset-react-webpack@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-7.6.10.tgz#86b34f7156258ddf6481bffd6c638e5382d01054" - integrity sha512-fUcr4dmXJdPIQdjkhA4bE8QF8Pavr4BSLxovtTRupbWxtRjZxJrH5hf+0HZycq1cp9umO/11Lsmw9Nx5Xg3Eww== +"@storybook/preset-react-webpack@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-7.6.16.tgz#1d9f632a009273b961f9f8b5a929a742a33e5ee5" + integrity sha512-fJIbS7rlKiIokKBuZnZScLM8A8YaR0LrmMEEbHHzl6HgcjTp2/stRxOxsBXViLvyCi6QFNFCJDiPI8H1JuI3Ug== dependencies: "@babel/preset-flow" "^7.22.15" "@babel/preset-react" "^7.22.15" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.11" - "@storybook/core-webpack" "7.6.10" - "@storybook/docs-tools" "7.6.10" - "@storybook/node-logger" "7.6.10" - "@storybook/react" "7.6.10" + "@storybook/core-webpack" "7.6.16" + "@storybook/docs-tools" "7.6.16" + "@storybook/node-logger" "7.6.16" + "@storybook/react" "7.6.16" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" "@types/node" "^18.0.0" "@types/semver" "^7.3.4" @@ -4418,17 +4418,17 @@ semver "^7.3.7" webpack "5" -"@storybook/preview-api@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.6.10.tgz#b8d5a4f897745fc28f0ae75f7e0e9278b0e4a50a" - integrity sha512-5A3etoIwZCx05yuv3KSTv1wynN4SR4rrzaIs/CTBp3BC4q1RBL+Or/tClk0IJPXQMlx/4Y134GtNIBbkiDofpw== +"@storybook/preview-api@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.6.16.tgz#a696ef2bdd79b53da2902f11b36fae46345d323a" + integrity sha512-V9x9HOhi4CJuiX+0a7GU0JlfRAp6txStGMkV0DrCATbxSWpK+6d5x2Te521z16V3RIMMmYn33aEyarOp5WjTqw== dependencies: - "@storybook/channels" "7.6.10" - "@storybook/client-logger" "7.6.10" - "@storybook/core-events" "7.6.10" + "@storybook/channels" "7.6.16" + "@storybook/client-logger" "7.6.16" + "@storybook/core-events" "7.6.16" "@storybook/csf" "^0.1.2" "@storybook/global" "^5.0.0" - "@storybook/types" "7.6.10" + "@storybook/types" "7.6.16" "@types/qs" "^6.9.5" dequal "^2.0.2" lodash "^4.17.21" @@ -4438,10 +4438,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/preview@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.6.10.tgz#895053c97f7e09141c6321fa42390fa8af377bef" - integrity sha512-F07BzVXTD3byq+KTWtvsw3pUu3fQbyiBNLFr2CnfU4XSdLKja5lDt8VqDQq70TayVQOf5qfUTzRd4M6pQkjw1w== +"@storybook/preview@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.6.16.tgz#f1a8b2b421be81e88183565eb586b2478ca75f3a" + integrity sha512-q4DbLn9kEK8JM9s+2oIjXBPHQhY0tQzsZ5hFeq833vNFcmuHnXS+WYk20b+UkmzL6j+E8pLm8WpI7rdbi0ZUVA== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -4456,33 +4456,33 @@ react-docgen-typescript "^2.2.2" tslib "^2.0.0" -"@storybook/react-dom-shim@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.6.10.tgz#d16df5d65a51ed66df92430d8f51d50bd177f2c2" - integrity sha512-M+N/h6ximacaFdIDjMN2waNoWwApeVYTpFeoDppiFTvdBTXChyIuiPgYX9QSg7gDz92OaA52myGOot4wGvXVzg== +"@storybook/react-dom-shim@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.6.16.tgz#b5eb4bde02ec9c69b4c4d4b485160b2f828d4892" + integrity sha512-F6pGgL2pWy5utn6m2YAVz1PYZO3pdlNHfT85g5Om3q7CR4msWpMQ1O/oEVYgqfJ9UfOqCV/mHeDWICzUa7pv6g== "@storybook/react-webpack5@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-7.6.10.tgz#f9d3cb4abc4177d43cefcc62d497b2cbee2b5181" - integrity sha512-LWwasiSLEg4wqsMjoRHcOn6BXv2ZyZfTfQV7gCvaX732xf0teblh+/GltAz8x+BtFXruXWmZ8bJ5cd9U4I6hUg== + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-7.6.16.tgz#f4025fda1169e2d7671a0ba79d1590474f380e41" + integrity sha512-K1+C3Uw0PkRnF5LrXX34AouRzHoyZmufllgrSpkuNsilAxJHbk5uXiHlZQBUPcht7aPVRLu5jwbcynTHuRxd2A== dependencies: - "@storybook/builder-webpack5" "7.6.10" - "@storybook/preset-react-webpack" "7.6.10" - "@storybook/react" "7.6.10" + "@storybook/builder-webpack5" "7.6.16" + "@storybook/preset-react-webpack" "7.6.16" + "@storybook/react" "7.6.16" "@types/node" "^18.0.0" -"@storybook/react@7.6.10", "@storybook/react@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.6.10.tgz#aca5c446f43de75981f19d112a8a04d7abd0a03d" - integrity sha512-wwBn1cg2uZWW4peqqBjjU7XGmFq8HdkVUtWwh6dpfgmlY1Aopi+vPgZt7pY9KkWcTOq5+DerMdSfwxukpc3ajQ== +"@storybook/react@7.6.16", "@storybook/react@^7.2.2": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.6.16.tgz#bd7546b53c75677b7f6343580c43f5b5d6c8a112" + integrity sha512-3vzjtEHu9xXLz827JiwC448ZVattzAR5qkfVg3dVOD1MtLH8LTJ/gOqv/8Kq0fOtEgOdlcAF4jQV/XAL6pEAkQ== dependencies: - "@storybook/client-logger" "7.6.10" - "@storybook/core-client" "7.6.10" - "@storybook/docs-tools" "7.6.10" + "@storybook/client-logger" "7.6.16" + "@storybook/core-client" "7.6.16" + "@storybook/docs-tools" "7.6.16" "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.6.10" - "@storybook/react-dom-shim" "7.6.10" - "@storybook/types" "7.6.10" + "@storybook/preview-api" "7.6.16" + "@storybook/react-dom-shim" "7.6.16" + "@storybook/types" "7.6.16" "@types/escodegen" "^0.0.6" "@types/estree" "^0.0.51" "@types/node" "^18.0.0" @@ -4498,56 +4498,56 @@ type-fest "~2.19" util-deprecate "^1.0.2" -"@storybook/router@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.6.10.tgz#b1f2c550eeb9f7146eefa33c5460e4149a62d721" - integrity sha512-G/H4Jn2+y8PDe8Zbq4DVxF/TPn0/goSItdILts39JENucHiuGBCjKjSWGBe1rkwKi1tUbB3yhxJVrLagxFEPpQ== +"@storybook/router@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.6.16.tgz#a971f9b0350a8b7ab9969900645c3271505a449a" + integrity sha512-PgVuzs83g4dq2r1qdcc0wvS1Pe1UpKdq54uy4TkBrrei7hBzB/+POztPXs0rVXXBXdCQT/jomLmRo/yC45bsGg== dependencies: - "@storybook/client-logger" "7.6.10" + "@storybook/client-logger" "7.6.16" memoizerific "^1.11.3" qs "^6.10.0" "@storybook/source-loader@^7.2.2": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-7.6.10.tgz#fe214f6323a27c14b85b6beb573a9ddb38d8cb35" - integrity sha512-S3nOWyj+sdpsqJqKGIN3DKE1q+Q0KYxEyPlPCawMFazozUH7tOodTIqmHBqJZCSNqdC4M1S/qcL8vpP4PfXhuA== + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-7.6.16.tgz#85be7dce50f7226c5cdfe75fb3bac58324672ccf" + integrity sha512-HPZOFw0eAi5l5nXfewo7jMC2IRqhwF2TQfXvceNKk9ohr1bZXWz6+/Axs7ZGmdNjT0izgiOnq3vUTDsGLURHYQ== dependencies: "@storybook/csf" "^0.1.2" - "@storybook/types" "7.6.10" + "@storybook/types" "7.6.16" estraverse "^5.2.0" lodash "^4.17.21" prettier "^2.8.0" -"@storybook/telemetry@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.6.10.tgz#31c0edfb9c7005cf9b5922e51ca896218e3d81ea" - integrity sha512-p3mOSUtIyy2tF1z6pQXxNh1JzYFcAm97nUgkwLzF07GfEdVAPM+ftRSLFbD93zVvLEkmLTlsTiiKaDvOY/lQWg== +"@storybook/telemetry@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.6.16.tgz#7a630e044f2ba6e85bc03e5f461309aa2b4b9b6a" + integrity sha512-5Uaz6zSRBEio89ScrAN7KKz+mBTJ5Jc/8Uf0uUHIhAxiHprs16PhIBo6MtBeWPQoiNwytN884sAtiUFAP4zFQQ== dependencies: - "@storybook/client-logger" "7.6.10" - "@storybook/core-common" "7.6.10" - "@storybook/csf-tools" "7.6.10" + "@storybook/client-logger" "7.6.16" + "@storybook/core-common" "7.6.16" + "@storybook/csf-tools" "7.6.16" chalk "^4.1.0" detect-package-manager "^2.0.1" fetch-retry "^5.0.2" fs-extra "^11.1.0" read-pkg-up "^7.0.1" -"@storybook/theming@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.6.10.tgz#c09d66d19f5756964cc89b1f94051545fc4aaea7" - integrity sha512-f5tuy7yV3TOP3fIboSqpgLHy0wKayAw/M8HxX0jVET4Z4fWlFK0BiHJabQ+XEdAfQM97XhPFHB2IPbwsqhCEcQ== +"@storybook/theming@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.6.16.tgz#27347e6b59d3778aed20aa14aef4b2dc0817d3e2" + integrity sha512-ZiUyakApTzAiAR28JwqbqY426U1OlJPG/Y7ddQgYgTsdoRFR1iMewAxWW1LId1q3B1dtiIHAccqhocEMNcYkLA== dependencies: "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.6.10" + "@storybook/client-logger" "7.6.16" "@storybook/global" "^5.0.0" memoizerific "^1.11.3" -"@storybook/types@7.6.10": - version "7.6.10" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.6.10.tgz#20cfb2dfeba2ecf54721de131276041d073fe42e" - integrity sha512-hcS2HloJblaMpCAj2axgGV+53kgSRYPT0a1PG1IHsZaYQILfHSMmBqM8XzXXYTsgf9250kz3dqFX1l0n3EqMlQ== +"@storybook/types@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.6.16.tgz#58d1ab44ecde1def28a4ed35f5cdc3c01c1f717a" + integrity sha512-Ld4dKbgSbvqThdBNwNlOxQu5AiS6U9DXI5evf/j83eWs6skO3OBdQp+GWa6sUCI9eRqH8tFsw/YmMcIZ4uZrBQ== dependencies: - "@storybook/channels" "7.6.10" + "@storybook/channels" "7.6.16" "@types/babel__core" "^7.0.0" "@types/express" "^4.7.0" file-system-cache "2.3.0" @@ -4771,79 +4771,79 @@ "@svgr/plugin-jsx" "^6.5.1" "@svgr/plugin-svgo" "^6.5.1" -"@swc/core-darwin-arm64@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.104.tgz#ad8fcd333c09634279d6cf46c5dd2c00b47ef809" - integrity sha512-rCnVj8x3kn6s914Adddu+zROHUn6mUEMkNKUckofs3W9OthNlZXJA3C5bS2MMTRFXCWamJ0Zmh6INFpz+f4Tfg== +"@swc/core-darwin-arm64@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.1.tgz#aa66ec80d9c43586888a79b2f80264aa2a96fdf3" + integrity sha512-ePyfx0348UbR4DOAW24TedeJbafnzha8liXFGuQ4bdXtEVXhLfPngprrxKrAddCuv42F9aTxydlF6+adD3FBhA== -"@swc/core-darwin-x64@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.104.tgz#be2f270fb1f9d0aa2f27836f9ccb28ea4da26a7e" - integrity sha512-LBCWGTYkn1UjyxrmcLS3vZgtCDVhwxsQMV7jz5duc7Gas8SRWh6ZYqvUkjlXMDX1yx0uvzHrkaRw445+zDRj7Q== +"@swc/core-darwin-x64@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.4.1.tgz#de4037efab46f2d17609b2fea0d0e05ac9f076b5" + integrity sha512-eLf4JSe6VkCMdDowjM8XNC5rO+BrgfbluEzAVtKR8L2HacNYukieumN7EzpYCi0uF1BYwu1ku6tLyG2r0VcGxA== -"@swc/core-linux-arm-gnueabihf@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.104.tgz#52c1425fbd4aa189d47a40eaebb335cbda96f917" - integrity sha512-iFbsWcx0TKHWnFBNCuUstYqRtfkyBx7FKv5To1Hx14EMuvvoCD/qUoJEiNfDQN5n/xU9g5xq4RdbjEWCFLhAbA== +"@swc/core-linux-arm-gnueabihf@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.1.tgz#20cf68d591161e84c0b6158af9b749b5ead78800" + integrity sha512-K8VtTLWMw+rkN/jDC9o/Q9SMmzdiHwYo2CfgkwVT29NsGccwmNhCQx6XoYiPKyKGIFKt4tdQnJHKUFzxUqQVtQ== -"@swc/core-linux-arm64-gnu@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.104.tgz#30da51b22f36887317fa5f49b8eb2ebe17d936de" - integrity sha512-1BIIp+nUPrRHHaJ35YJqrwXPwYSITp5robqqjyTwoKGw2kq0x+A964kpWul6v0d7A9Ial8fyH4m13eSWBodD2A== +"@swc/core-linux-arm64-gnu@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.1.tgz#44dc497e127c0f5651ca74f2e4977743bde3f8e7" + integrity sha512-0e8p4g0Bfkt8lkiWgcdiENH3RzkcqKtpRXIVNGOmVc0OBkvc2tpm2WTx/eoCnes2HpTT4CTtR3Zljj4knQ4Fvw== -"@swc/core-linux-arm64-musl@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.104.tgz#c9a281ad655ba5a4217466c7e0ca6457202b2997" - integrity sha512-IyDNkzpKwvLqmRwTW+s8f8OsOSSj1N6juZKbvNHpZRfWZkz3T70q3vJlDBWQwy8z8cm7ckd7YUT3eKcSBPPowg== +"@swc/core-linux-arm64-musl@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.1.tgz#0e21470421531e560ce0b80bde87ba08e19207fd" + integrity sha512-b/vWGQo2n7lZVUnSQ7NBq3Qrj85GrAPPiRbpqaIGwOytiFSk8VULFihbEUwDe0rXgY4LDm8z8wkgADZcLnmdUA== -"@swc/core-linux-x64-gnu@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.104.tgz#2bd0cd4e92fbedb83aeb6526299a792579b624f2" - integrity sha512-MfX/wiRdTjE5uXHTDnaX69xI4UBfxIhcxbVlMj//N+7AX/G2pl2UFityfVMU2HpM12BRckrCxVI8F/Zy3DZkYQ== +"@swc/core-linux-x64-gnu@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.1.tgz#b008be683e24aa4a7b13123b6dd70580e87b4167" + integrity sha512-AFMQlvkKEdNi1Vk2GFTxxJzbICttBsOQaXa98kFTeWTnFFIyiIj2w7Sk8XRTEJ/AjF8ia8JPKb1zddBWr9+bEQ== -"@swc/core-linux-x64-musl@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.104.tgz#a3bb9b5eb9c524f87c586f43019fc544e2ef8bcf" - integrity sha512-5yeILaxA31gGEmquErO8yxlq1xu0XVt+fz5mbbKXKZMRRILxYxNzAGb5mzV41r0oHz6Vhv4AXX/WMCmeWl+HkQ== +"@swc/core-linux-x64-musl@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.1.tgz#288b5742578beb9a0c94b5e885634e61eb797583" + integrity sha512-QX2MxIECX1gfvUVZY+jk528/oFkS9MAl76e3ZRvG2KC/aKlCQL0KSzcTSm13mOxkDKS30EaGRDRQWNukGpMeRg== -"@swc/core-win32-arm64-msvc@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.104.tgz#ec3b63321bbed1283c7873b7c3ecaaf03f8a42ee" - integrity sha512-rwcImsYnWDWGmeESG0XdGGOql5s3cG5wA8C4hHHKdH76zamPfDKKQFBsjmoNi0f1IsxaI9AJPeOmD4bAhT1ZoQ== +"@swc/core-win32-arm64-msvc@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.1.tgz#e40a4273aab1509d85e2a561a818f6e705718305" + integrity sha512-OklkJYXXI/tntD2zaY8i3iZldpyDw5q+NAP3k9OlQ7wXXf37djRsHLV0NW4+ZNHBjE9xp2RsXJ0jlOJhfgGoFA== -"@swc/core-win32-ia32-msvc@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.104.tgz#47ef6d3dfb7093ff7da4848a59645672c0f25bef" - integrity sha512-ICDA+CJLYC7NkePnrbh/MvXwDQfy3rZSFgrVdrqRosv9DKHdFjYDnA9++7ozjrIdFdBrFW2NR7pyUcidlwhNzA== +"@swc/core-win32-ia32-msvc@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.1.tgz#726731b618d0f99c5cdc8bab004df3dae14658a9" + integrity sha512-MBuc3/QfKX9FnLOU7iGN+6yHRTQaPQ9WskiC8s8JFiKQ+7I2p25tay2RplR9dIEEGgVAu6L7auv96LbNTh+FaA== -"@swc/core-win32-x64-msvc@1.3.104": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.104.tgz#661de1921e869b0a6762e85c5e3232c007554ad8" - integrity sha512-fZJ1Ju62U4lMZVU+nHxLkFNcu0hG5Y0Yj/5zjrlbuX5N8J5eDndWAFsVnQhxRTZqKhZB53pvWRQs5FItSDqgXg== +"@swc/core-win32-x64-msvc@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.1.tgz#71382cfd60811b5fecdf1ece458bd21992a37ae5" + integrity sha512-lu4h4wFBb/bOK6N2MuZwg7TrEpwYXgpQf5R7ObNSXL65BwZ9BG8XRzD+dLJmALu8l5N08rP/TrpoKRoGT4WSxw== "@swc/core@^1.3.82": - version "1.3.104" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.104.tgz#4346c4548ddff85ebc4a1acd2ce54ce6f36f5e34" - integrity sha512-9LWH/qzR/Pmyco+XwPiPfz59T1sryI7o5dmqb593MfCkaX5Fzl9KhwQTI47i21/bXYuCdfa9ySZuVkzXMirYxA== + version "1.4.1" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.4.1.tgz#e6bee0fa5d0c93957b274eaa6186bbbad43f2063" + integrity sha512-3y+Y8js+e7BbM16iND+6Rcs3jdiL28q3iVtYsCviYSSpP2uUVKkp5sJnCY4pg8AaVvyN7CGQHO7gLEZQ5ByozQ== dependencies: - "@swc/counter" "^0.1.1" + "@swc/counter" "^0.1.2" "@swc/types" "^0.1.5" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.104" - "@swc/core-darwin-x64" "1.3.104" - "@swc/core-linux-arm-gnueabihf" "1.3.104" - "@swc/core-linux-arm64-gnu" "1.3.104" - "@swc/core-linux-arm64-musl" "1.3.104" - "@swc/core-linux-x64-gnu" "1.3.104" - "@swc/core-linux-x64-musl" "1.3.104" - "@swc/core-win32-arm64-msvc" "1.3.104" - "@swc/core-win32-ia32-msvc" "1.3.104" - "@swc/core-win32-x64-msvc" "1.3.104" + "@swc/core-darwin-arm64" "1.4.1" + "@swc/core-darwin-x64" "1.4.1" + "@swc/core-linux-arm-gnueabihf" "1.4.1" + "@swc/core-linux-arm64-gnu" "1.4.1" + "@swc/core-linux-arm64-musl" "1.4.1" + "@swc/core-linux-x64-gnu" "1.4.1" + "@swc/core-linux-x64-musl" "1.4.1" + "@swc/core-win32-arm64-msvc" "1.4.1" + "@swc/core-win32-ia32-msvc" "1.4.1" + "@swc/core-win32-x64-msvc" "1.4.1" -"@swc/counter@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e" - integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw== +"@swc/counter@^0.1.2", "@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== "@swc/types@^0.1.5": version "0.1.5" @@ -5026,7 +5026,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.0": +"@types/estree@*", "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -5049,9 +5049,9 @@ "@types/node" "*" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.41" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" - integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== + version "4.17.43" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" + integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -5089,9 +5089,9 @@ "@types/node" "*" "@types/hast@^2.0.0": - version "2.3.9" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.9.tgz#a9a1b5bbce46e8a1312e977364bacabc8e93d2cf" - integrity sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw== + version "2.3.10" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.10.tgz#5c9d9e0b304bbb8879b857225c5ebab2d81d7643" + integrity sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw== dependencies: "@types/unist" "^2" @@ -5189,9 +5189,9 @@ "@types/unist" "^2" "@types/mdx@^2.0.0": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.10.tgz#0d7b57fb1d83e27656156e4ee0dfba96532930e4" - integrity sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg== + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.11.tgz#21f4c166ed0e0a3a733869ba04cd8daea9834b8e" + integrity sha512-HM5bwOaIQJIQbAYfax35HCKxx7a3KrK3nBtIqJgSOitivTD1y3oW9P3rxY9RkXYPUk7y/AjAohfHKmFpGE79zw== "@types/mime-types@^2.1.0": version "2.1.4" @@ -5244,9 +5244,9 @@ "@types/node" "*" "@types/node@*": - version "20.11.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e" - integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w== + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== dependencies: undici-types "~5.26.4" @@ -5261,9 +5261,9 @@ integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/node@^18.0.0", "@types/node@^18.17.5": - version "18.19.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.8.tgz#c1e42b165e5a526caf1f010747e0522cb2c9c36a" - integrity sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg== + version "18.19.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.17.tgz#a581a9fb4b2cfdbc61f008804f4436b2d5c40354" + integrity sha512-SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng== dependencies: undici-types "~5.26.4" @@ -5348,9 +5348,9 @@ "@types/react" "*" "@types/react@*", "@types/react@>=16": - version "18.2.48" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" - integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== + version "18.2.55" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.55.tgz#38141821b7084404b5013742bc4ae08e44da7a67" + integrity sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -5365,11 +5365,6 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/resize-observer-browser@^0.1.6": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.11.tgz#d3c98d788489d8376b7beac23863b1eebdd3c13c" - integrity sha512-cNw5iH8JkMkb3QkCoe7DaZiawbDQEUX8t7iuQaRTyLOyQCR2h+ibBD4GJt7p5yhUHrlOeL7ZtbxNHeipqNsBzQ== - "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -5400,9 +5395,9 @@ integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== "@types/semver@^7.3.4", "@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + version "7.5.7" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" + integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== "@types/send@*": version "0.17.4" @@ -5490,9 +5485,9 @@ integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== "@types/uuid@^9.0.1": - version "9.0.7" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" - integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== "@types/webpack-sources@*": version "3.2.3" @@ -5516,9 +5511,9 @@ source-map "^0.6.0" "@types/webxr@^0.5.5": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.10.tgz#19c76208ec015ca3f139505e14d94d6b740f518a" - integrity sha512-n3u5sqXQJhf1CS68mw3Wf16FQ4cRPNBBwdYLFzq3UddiADOim1Pn3Y6PBdDilz1vOJF3ybLxJ8ZEDlLIzrOQZg== + version "0.5.14" + resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.14.tgz#9a03121a4912ea113b31e5c9c17f164d4fff8a1f" + integrity sha512-UEMMm/Xn3DtEa+gpzUrOcDj+SJS1tk5YodjwOxcqStNhCfPcwgyC5Srg2ToVKyg2Fhq16Ffpb0UWUQHqoT9AMA== "@types/ws@^8.2.2", "@types/ws@^8.5.5": version "8.5.10" @@ -5554,15 +5549,15 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^6.3.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" - integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.19.0" - "@typescript-eslint/type-utils" "6.19.0" - "@typescript-eslint/utils" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -5571,46 +5566,46 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.3.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" - integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== dependencies: - "@typescript-eslint/scope-manager" "6.19.0" - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/typescript-estree" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" - integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== dependencies: - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" -"@typescript-eslint/type-utils@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" - integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== +"@typescript-eslint/type-utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== dependencies: - "@typescript-eslint/typescript-estree" "6.19.0" - "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" - integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== -"@typescript-eslint/typescript-estree@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" - integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== dependencies: - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -5618,25 +5613,25 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" - integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== +"@typescript-eslint/utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.19.0" - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" - integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== dependencies: - "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/types" "6.21.0" eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": @@ -5926,7 +5921,7 @@ acorn@^7.0.0, acorn@^7.4.0, acorn@^7.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.2, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.3, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -6043,9 +6038,9 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.6.0, ajv@^8.9.0: uri-js "^4.2.2" algoliasearch-helper@^3.10.0: - version "3.16.1" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.16.1.tgz#421e3554ec86e14e60e7e0bf796aef61cf4a06ec" - integrity sha512-qxAHVjjmT7USVvrM8q6gZGaJlCK1fl4APfdAA7o8O6iXEc68G0xMNrzRkxoB/HmhhvyHnoteS/iMTiHiTcQQcg== + version "3.16.2" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.16.2.tgz#edb8744d6ffe52e731387092fef7324d59214e2f" + integrity sha512-Yl/Gu5Cq4Z5s/AJ0jR37OPI1H3+z7PHz657ibyaXgMOaWvPlZ3OACN13N+7HCLPUlB0BN+8BtmrG/CqTilowBA== dependencies: "@algolia/events" "^4.0.1" @@ -6219,13 +6214,13 @@ aria-query@^5.3.0: dependencies: dequal "^2.0.3" -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array-differ@^3.0.0: version "3.0.0" @@ -6280,6 +6275,17 @@ array-uniq@^1.0.1: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== +array.prototype.filter@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" + integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + array.prototype.find@^2.1.1: version "2.2.2" resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.2.tgz#e862cf891e725d8f2a10e5e42d750629faaabd32" @@ -6291,15 +6297,15 @@ array.prototype.find@^2.1.1: es-shim-unscopables "^1.0.0" array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f" + integrity sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" array.prototype.flat@^1.2.1, array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: version "1.3.2" @@ -6333,27 +6339,28 @@ array.prototype.reduce@^1.0.6: is-string "^1.0.7" array.prototype.tosorted@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" - integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8" + integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.1.0" + es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" arrify@^1.0.1: @@ -6467,10 +6474,10 @@ autoprefixer@^10.4.12, autoprefixer@^10.4.13, autoprefixer@^10.4.14, autoprefixe picocolors "^1.0.0" postcss-value-parser "^4.2.0" -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== aws-sign2@~0.7.0: version "0.7.0" @@ -6510,9 +6517,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.0.0: - version "1.6.5" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" - integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== dependencies: follow-redirects "^1.15.4" form-data "^4.0.0" @@ -6526,9 +6533,9 @@ axobject-query@^3.2.1: dequal "^2.0.3" b4a@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" - integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + version "1.6.6" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" @@ -6734,6 +6741,33 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bare-events@^2.0.0, bare-events@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.0.tgz#a7a7263c107daf8b85adf0b64f908503454ab26e" + integrity sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg== + +bare-fs@^2.1.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.1.5.tgz#55aae5f1c7701a83d7fbe62b0a57cfbee89a1726" + integrity sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA== + dependencies: + bare-events "^2.0.0" + bare-os "^2.0.0" + bare-path "^2.0.0" + streamx "^2.13.0" + +bare-os@^2.0.0, bare-os@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.2.0.tgz#24364692984d0bd507621754781b31d7872736b2" + integrity sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag== + +bare-path@^2.0.0, bare-path@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.0.tgz#830f17fd39842813ca77d211ebbabe238a88cb4c" + integrity sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw== + dependencies: + bare-os "^2.1.0" + base16@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" @@ -6945,13 +6979,13 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2, browserslist@^4.22.3: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" node-releases "^2.0.14" update-browserslist-db "^1.0.13" @@ -7102,14 +7136,16 @@ cachedir@^2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" caller-callsite@^2.0.0: version "2.0.0" @@ -7182,10 +7218,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001578: - version "1.0.30001579" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a" - integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001587: + version "1.0.30001587" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz#a0bce920155fa56a1885a69c74e1163fc34b4881" + integrity sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -7330,9 +7366,9 @@ child-process-promise@^2.2.1: promise-polyfill "^6.0.1" chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -7370,9 +7406,9 @@ ci-info@^3.2.0, ci-info@^3.6.1: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== citty@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" - integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== + version "0.1.6" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== dependencies: consola "^3.2.3" @@ -7954,16 +7990,16 @@ copy-webpack-plugin@^9.0.1: serialize-javascript "^6.0.0" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.35.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" - integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== + version "3.36.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" + integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== dependencies: - browserslist "^4.22.2" + browserslist "^4.22.3" core-js-pure@^3.23.3, core-js-pure@^3.30.2: - version "3.35.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.35.0.tgz#4660033304a050215ae82e476bd2513a419fbb34" - integrity sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew== + version "3.36.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.36.0.tgz#ffb34330b14e594d6a9835cf5843b4123f1d95db" + integrity sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ== core-js@^2.4.1, core-js@^2.5.7, core-js@^2.6.12: version "2.6.12" @@ -7971,9 +8007,9 @@ core-js@^2.4.1, core-js@^2.5.7, core-js@^2.6.12: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.16.1, core-js@^3.2.1, core-js@^3.23.3, core-js@^3.8.3: - version "3.35.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" - integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== + version "3.36.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.0.tgz#e752fa0b0b462a0787d56e9d73f80b0f7c0dde68" + integrity sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw== core-util-is@1.0.2: version "1.0.2" @@ -8131,9 +8167,9 @@ css-line-break@^2.1.0: utrie "^1.0.2" css-loader@^6.7.1, css-loader@^6.8.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.9.1.tgz#9ec9a434368f2bdfeffbf8f6901a1ce773586c6b" - integrity sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ== + version "6.10.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.10.0.tgz#7c172b270ec7b833951b52c348861206b184a4b7" + integrity sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw== dependencies: icss-utils "^5.1.0" postcss "^8.4.33" @@ -8644,14 +8680,14 @@ defer-to-connect@^2.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - get-intrinsic "^1.2.1" + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" define-lazy-prop@^2.0.0: version "2.0.0" @@ -8780,9 +8816,9 @@ detect-gpu@^4.0.16: webgl-constants "^1.1.1" detect-gpu@^5.0.22: - version "5.0.37" - resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.37.tgz#27febe44d478ef4d35cd38007355da795ba075d5" - integrity sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw== + version "5.0.38" + resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.38.tgz#1c05ce728ea1229d16db15b865631609bf0d6952" + integrity sha512-36QeGHSXYcJ/RfrnPEScR8GDprbXFG4ZhXsfVNVHztZr38+fRxgHnJl3CjYXXjbeRUhu3ZZBJh6Lg0A9v0Qd8A== dependencies: webgl-constants "^1.1.1" @@ -8901,9 +8937,9 @@ diff-sequences@^29.6.3: integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== diff@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== dir-glob@^3.0.1: version "3.0.1" @@ -9158,10 +9194,10 @@ dotenv@^14.1.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369" integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ== -dotenv@^16.0.0, dotenv@~16.3.1: - version "16.3.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +dotenv@^16.0.0: + version "16.4.4" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" + integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== dotenv@^6.2.0: version "6.2.0" @@ -9173,6 +9209,11 @@ dotenv@^8.1.0, dotenv@^8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== +dotenv@~16.3.1: + version "16.3.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.2.tgz#3cb611ce5a63002dbabf7c281bc331f69d28f03f" + integrity sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ== + duplexer@^0.1.1, duplexer@^0.1.2, duplexer@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -9218,10 +9259,10 @@ ejs@^3.1.6, ejs@^3.1.7, ejs@^3.1.8: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.601: - version "1.4.639" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.639.tgz#c6f9cc685f9efb2980d2cfc95a27f8142c9adf28" - integrity sha512-CkKf3ZUVZchr+zDpAlNLEEy2NJJ9T64ULWaDgy3THXXlPVPkLu3VOs9Bac44nebVtdwl2geSj6AxTtGDOxoXhg== +electron-to-chromium@^1.4.668: + version "1.4.672" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.672.tgz#f8ce803b43898b7e91dcfcf70d6fd656b11a645d" + integrity sha512-YYCy+goe3UqZqa3MOQCI5Mx/6HdBLzXL/mkbGCEWL3sP3Z1BP9zqAzeD3YEmLZlespYGFtyM8tRp5i2vfaUGCA== elegant-spinner@^1.0.1: version "1.0.1" @@ -9330,16 +9371,16 @@ envinfo@7.8.1: integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== envinfo@^7.7.3: - version "7.11.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" - integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== + version "7.11.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.1.tgz#2ffef77591057081b0129a8fd8cf6118da1b94e1" + integrity sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg== enzyme-shallow-equal@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz#5528a897a6ad2bdc417c7221a7db682cd01711ba" - integrity sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg== + version "1.0.7" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz#4e3aa678022387a68e6c47aff200587851885b5e" + integrity sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg== dependencies: - has "^1.0.3" + hasown "^2.0.0" object-is "^1.1.5" err-code@^2.0.2: @@ -9361,82 +9402,97 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.2, es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== +es-abstract@^1.17.2, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.22.4: + version "1.22.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.4.tgz#26eb2e7538c3271141f5754d31aabfdb215f27bf" + integrity sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg== dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.6" + call-bind "^1.0.7" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.2" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" globalthis "^1.0.3" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" has-proto "^1.0.1" has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" + hasown "^2.0.1" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.12" + is-typed-array "^1.1.13" is-weakref "^1.0.2" object-inspect "^1.13.1" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.0" + safe-regex-test "^1.0.3" string.prototype.trim "^1.2.8" string.prototype.trimend "^1.0.7" string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" + typed-array-buffer "^1.0.1" typed-array-byte-length "^1.0.0" typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" + which-typed-array "^1.1.14" es-array-method-boxes-properly@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.0.0, es-errors@^1.1.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" - integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== + version "1.0.17" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz#123d1315780df15b34eb181022da43e734388bb8" + integrity sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ== dependencies: asynciterator.prototype "^1.0.0" - call-bind "^1.0.2" + call-bind "^1.0.7" define-properties "^1.2.1" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - function-bind "^1.1.1" - get-intrinsic "^1.2.1" + es-abstract "^1.22.4" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" globalthis "^1.0.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.5" + internal-slot "^1.0.7" iterator.prototype "^1.1.2" - safe-array-concat "^1.0.1" + safe-array-concat "^1.1.0" es-module-lexer@^1.2.1, es-module-lexer@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== -es-set-tostringtag@^2.0.1: +es-set-tostringtag@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== @@ -9445,7 +9501,7 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" -es-shim-unscopables@^1.0.0: +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== @@ -9502,9 +9558,9 @@ esbuild@^0.18.0: "@esbuild/win32-x64" "0.18.20" escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-goat@^2.0.0: version "2.1.1" @@ -10269,9 +10325,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" - integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" @@ -10575,9 +10631,9 @@ flatted@^3.2.9: integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== flow-parser@0.*: - version "0.227.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.227.0.tgz#e50b65be9dc6810438c975e816a68005fbcd5107" - integrity sha512-nOygtGKcX/siZK/lFzpfdHEfOkfGcTW7rNroR1Zsz6T/JxSahPALXVt5qVHq/fgvMJuv096BTKbgxN3PzVBaDA== + version "0.229.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.229.0.tgz#054b60d6f6a9fab76cd89dc6ca662fd32d910163" + integrity sha512-mOYmMuvJwAo/CvnMFEq4SHftq7E5188hYMTTxJyQOXk2nh+sgslRdYMw3wTthH+FMcFaZLtmBPuMu6IwztdoUQ== flux@^4.0.1: version "4.0.4" @@ -10775,7 +10831,7 @@ fsevents@^2.3.2, fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1, function-bind@^1.1.2: +function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -10820,9 +10876,9 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== geotiff@^2.0.7: - version "2.1.2" - resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.1.2.tgz#5d58555512a7950ae9a8496562c67c285e301318" - integrity sha512-xw7Cd6HXukUdfFSe5QCSjdhebTCGkk87x7fKURqQPFKT+TijCCwKvoksL7T3+B6mJWZSB7muTJlwVIQsLtbkMA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.1.3.tgz#993f40f2aa6aa65fb1e0451d86dd22ca8e66910c" + integrity sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA== dependencies: "@petamoriken/float16" "^3.4.7" lerc "^3.0.0" @@ -10838,11 +10894,12 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: + es-errors "^1.3.0" function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" @@ -10917,13 +10974,14 @@ get-stream@^8.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" getos@^3.2.1: version "3.2.1" @@ -11328,12 +11386,12 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.2.2" + es-define-property "^1.0.0" has-proto@^1.0.1: version "1.0.1" @@ -11345,12 +11403,12 @@ has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" has-unicode@2.0.1, has-unicode@^2.0.1: version "2.0.1" @@ -11367,10 +11425,10 @@ has@^1.0.3: resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.0, hasown@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== dependencies: function-bind "^1.1.2" @@ -11812,9 +11870,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.0, ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.9, ignore@^5.2.0, ignore@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== image-size@^1.0.1: version "1.1.1" @@ -11975,12 +12033,12 @@ inquirer@^8.2.0, inquirer@^8.2.4: through "^2.3.6" wrap-ansi "^6.0.1" -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== +internal-slot@^1.0.5, internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.2.2" + es-errors "^1.3.0" hasown "^2.0.0" side-channel "^1.0.4" @@ -12011,6 +12069,14 @@ iota-array@^1.0.0: resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" integrity sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA== +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + ip@^1.1.0: version "1.1.8" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" @@ -12057,14 +12123,13 @@ is-arguments@^1.0.4, is-arguments@^1.1.1: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" @@ -12460,12 +12525,12 @@ is-touch-device@^1.0.1: resolved "https://registry.yarnpkg.com/is-touch-device/-/is-touch-device-1.0.1.tgz#9a2fd59f689e9a9bf6ae9a86924c4ba805a42eab" integrity sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw== -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-typed-array@^1.1.10, is-typed-array@^1.1.13, is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -13103,13 +13168,13 @@ jju@~1.4.0: integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== joi@^17.6.0, joi@^17.7.0: - version "17.12.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5" - integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw== + version "17.12.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.1.tgz#3347ecf4cd3301962d42191c021b165eef1f395b" + integrity sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" - "@sideway/address" "^4.1.4" + "@sideway/address" "^4.1.5" "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" @@ -13141,6 +13206,11 @@ js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -13906,9 +13976,9 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== "lru-cache@^9.1.1 || ^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2, magic-string@^0.25.7: version "0.25.9" @@ -13918,9 +13988,9 @@ magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2, magic-string@^ sourcemap-codec "^1.4.8" magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + version "0.30.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.7.tgz#0cecd0527d473298679da95a2d7aeb8c64048505" + integrity sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -14017,9 +14087,9 @@ map-stream@~0.1.0: integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== mapbox-to-css-font@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz#a9e31b363ad8ca881cd339ca99f2d2a6b02ea5dd" - integrity sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA== + version "2.4.4" + resolved "https://registry.yarnpkg.com/mapbox-to-css-font/-/mapbox-to-css-font-2.4.4.tgz#f4d9b8ad95a8c540fccfef23bb9e341a5e4f4883" + integrity sha512-X1dtuTuH2D1MRMuductMZCLV/fy9EoIgqW/lmu8vQSAhEatx/tdFebkYT3TVhdTwqFDHbLEgQBD3IKA4KI7aoQ== markdown-escapes@^1.0.0: version "1.0.4" @@ -14032,9 +14102,9 @@ markdown-table@^3.0.0: integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== markdown-to-jsx@^7.1.8: - version "7.4.0" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.4.0.tgz#4606c5c549a6f6cb87604c35f5ee4f42959ffb6b" - integrity sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg== + version "7.4.1" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.4.1.tgz#1ed6a60f8f9cd944bec39d9923fbbc8d3d60dcb9" + integrity sha512-GbrbkTnHp9u6+HqbPRFJbObi369AgJNXi/sGqq5HRsoZW063xR1XDCaConqq+whfEIAlzB1YPnOgsPc7B7bc/A== material-colors@^1.2.1: version "1.2.6" @@ -14648,11 +14718,12 @@ min-indent@^1.0.0, min-indent@^1.0.1: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.1.0, mini-css-extract-plugin@^2.6.1: - version "2.7.7" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.7.tgz#4acf02f362c641c38fb913bfcb7ca2fc4a7cf339" - integrity sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw== + version "2.8.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz#1aeae2a90a954b6426c9e8311eab36b450f553a0" + integrity sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg== dependencies: schema-utils "^4.0.0" + tapable "^2.2.1" minimalistic-assert@^1.0.0: version "1.0.1" @@ -15010,9 +15081,9 @@ node-emoji@^1.10.0: lodash "^4.17.21" node-fetch-native@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" - integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== + version "1.6.2" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.2.tgz#f439000d972eb0c8a741b65dcda412322955e1c6" + integrity sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w== node-fetch@2.6.7: version "2.6.7" @@ -15270,9 +15341,9 @@ npm-run-path@^5.1.0: path-key "^4.0.0" npm-to-yarn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/npm-to-yarn/-/npm-to-yarn-2.1.0.tgz#ff4e18028d18eb844691f1ccb556be5f3ccfde34" - integrity sha512-2C1IgJLdJngq1bSER7K7CGFszRr9s2rijEwvENPEgI0eK9xlD3tNwDc0UJnRj7FIT2aydWm72jB88uVswAhXHA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/npm-to-yarn/-/npm-to-yarn-2.2.0.tgz#6143e15ba2f25d8d3ef77516900110caab2d1ef6" + integrity sha512-e1/HocWkB2vSkmGiQ/M7Jmsj9k3sl1ldDeVXM9vUTbZOuLcJXhMb2ubz9gxaNW2Cse2zDFC8e6+mKGhrPZgSyg== npmlog@^6.0.0, npmlog@^6.0.2: version "6.0.2" @@ -15360,13 +15431,13 @@ nx@16.10.0, "nx@>=16.5.1 < 17": "@nx/nx-win32-x64-msvc" "16.10.0" nypm@^0.3.3: - version "0.3.4" - resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.4.tgz#48ec8fc19fbf20fb747728716ceac3a4bd0456a3" - integrity sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg== + version "0.3.6" + resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.6.tgz#940b558e6e56c2ed5dc43adf6dcf2c16577a80ff" + integrity sha512-2CATJh3pd6CyNfU5VZM7qSwFu0ieyabkEdnogE30Obn1czrmOYiZ8DOZLe1yBdLKWoyD3Mcy2maUs+0MR3yVjQ== dependencies: citty "^0.1.5" execa "^8.0.1" - pathe "^1.1.1" + pathe "^1.1.2" ufo "^1.3.2" object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: @@ -15389,7 +15460,7 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.13.1, object-inspect@^1.9.0: +object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== @@ -15407,7 +15478,7 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.4: +object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -15447,14 +15518,15 @@ object.getownpropertydescriptors@^2.1.0: safe-array-concat "^1.0.0" object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" + integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + array.prototype.filter "^1.0.3" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" object.hasown@^1.1.2: version "1.1.3" @@ -16045,7 +16117,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.1: +pathe@^1.1.1, pathe@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== @@ -16199,9 +16271,9 @@ please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0: semver-compare "^1.0.0" polished@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/polished/-/polished-4.2.2.tgz#2529bb7c3198945373c52e34618c8fe7b1aa84d1" - integrity sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ== + version "4.3.1" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.3.1.tgz#5a00ae32715609f83d89f6f31d0f0261c6170548" + integrity sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA== dependencies: "@babel/runtime" "^7.17.8" @@ -16774,9 +16846,9 @@ postcss-zindex@^5.1.0: integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== postcss@^8.2.1, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.18, postcss@^8.4.23, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + version "8.4.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -16833,9 +16905,9 @@ prettier@^2.8.0: integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prettier@^3.0.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1, pretty-bytes@^5.6.0: version "5.6.0" @@ -17569,14 +17641,12 @@ react-remove-scroll@2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" -react-resize-detector@^6.7.6: - version "6.7.8" - resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-6.7.8.tgz#318c85d1335e50f99d4fb8eb9ec34e066db597d0" - integrity sha512-0FaEcUBAbn+pq3PT5a9hHRebUfuS1SRLGLpIw8LydU7zX429I6XJgKerKAMPsJH0qWAl6o5bVKNqFJqr6tGPYw== +react-resize-detector@^9.1.0: + version "9.1.1" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-9.1.1.tgz#ce13cf55b9b09d9978fc51e0c87bb3639704921e" + integrity sha512-siLzop7i4xIvZIACE/PHTvRegA8QRCEt0TfmvJ/qCIFQJ4U+3NuYcF8tNDmDWxfIn+X1eNCyY2rauH4KRxge8w== dependencies: - "@types/resize-observer-browser" "^0.1.6" lodash "^4.17.21" - resize-observer-polyfill "^1.5.1" react-router-config@^5.1.1: version "5.1.1" @@ -17599,12 +17669,12 @@ react-router-dom@^5.3.3: tiny-warning "^1.0.0" react-router-dom@^6.8.1: - version "6.21.3" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.21.3.tgz#ef3a7956a3699c7b82c21fcb3dbc63c313ed8c5d" - integrity sha512-kNzubk7n4YHSrErzjLK72j0B5i969GsuCGazRl3G6j1zqZBLjuSlYBdVdkDOgzGdPIffUOc9nmgiadTEVoq91g== + version "6.22.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.22.0.tgz#177c8bd27146decbb991eafb5df159f7a9f70035" + integrity sha512-z2w+M4tH5wlcLmH3BMMOMdrtrJ9T3oJJNsAlBJbwk+8Syxd5WFJ7J5dxMEW0/GEXD1BBis4uXRrNIz3mORr0ag== dependencies: - "@remix-run/router" "1.14.2" - react-router "6.21.3" + "@remix-run/router" "1.15.0" + react-router "6.22.0" react-router@5.3.4, react-router@^5.3.3: version "5.3.4" @@ -17621,12 +17691,12 @@ react-router@5.3.4, react-router@^5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@6.21.3, react-router@^6.8.1: - version "6.21.3" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.21.3.tgz#8086cea922c2bfebbb49c6594967418f1f167d70" - integrity sha512-a0H638ZXULv1OdkmiK6s6itNhoy33ywxmUFT/xtSoVyf9VnC7n7+VT4LjVzdIHSaF5TIh9ylUgxMXksHTgGrKg== +react-router@6.22.0, react-router@^6.8.1: + version "6.22.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.22.0.tgz#a22b44851a79dafc6b944cb418db3e80622b9be1" + integrity sha512-q2yemJeg6gw/YixRlRnVx6IRJWZD6fonnfZhN1JIOhV2iJCPeRNSH3V1ISwHf+JWcESzLC3BOLD1T07tmO5dmg== dependencies: - "@remix-run/router" "1.14.2" + "@remix-run/router" "1.15.0" react-select@5.7.4: version "5.7.4" @@ -17907,14 +17977,15 @@ redux@^4.0.5: "@babel/runtime" "^7.9.2" reflect.getprototypeof@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" - integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz#e0bd28b597518f16edaf9c0e292c631eb13e0674" + integrity sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" + get-intrinsic "^1.2.3" globalthis "^1.0.3" which-builtin-type "^1.1.3" @@ -17954,14 +18025,15 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" regexpp@^2.0.1: version "2.0.1" @@ -18185,11 +18257,6 @@ reselect@^4.1.7: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -18306,9 +18373,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== rimraf@2.6.3, rimraf@~2.6.2: version "2.6.3" @@ -18413,7 +18480,7 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: +safe-array-concat@^1.0.0, safe-array-concat@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== @@ -18433,13 +18500,13 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.6" + es-errors "^1.3.0" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: @@ -18582,9 +18649,9 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.0.0, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.1, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -18680,14 +18747,15 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== dependencies: - define-data-property "^1.1.1" + define-data-property "^1.1.2" + es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.3" gopd "^1.0.1" has-property-descriptors "^1.0.1" @@ -18786,14 +18854,23 @@ shelljs@0.8.5, shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +shx@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" + integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + minimist "^1.2.3" + shelljs "^0.8.5" + +side-channel@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@3.0.7, signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" @@ -18927,11 +19004,11 @@ socks-proxy-agent@^7.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + version "2.7.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.3.tgz#7d8a75d7ce845c0a96f710917174dba0d543a785" + integrity sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw== dependencies: - ip "^2.0.0" + ip-address "^9.0.5" smart-buffer "^4.2.0" sort-asc@^0.1.0: @@ -19051,9 +19128,9 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== spdx-expression-parse@^3.0.0: version "3.0.1" @@ -19064,9 +19141,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" - integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + version "3.0.17" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== spdx-license-list@^6.4.0: version "6.8.0" @@ -19122,6 +19199,11 @@ split@^1.0.1: dependencies: through "2" +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -19218,11 +19300,11 @@ store2@^2.14.2: integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== storybook@^7.2.2: - version "7.6.10" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.6.10.tgz#2185d26cd7b43390e3e2c7581586e2f60cdbd9bd" - integrity sha512-ypFeGhQTUBBfqSUVZYh7wS5ghn3O2wILCiQc4459SeUpvUn+skcqw/TlrwGSoF5EWjDA7gtRrWDxO3mnlPt5Cw== + version "7.6.16" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.6.16.tgz#313faaadb9c9fb5ee78cdbb9510b57d80d785444" + integrity sha512-VSfaYoV/iurMtLE/OcVtKvYe/Skkc+JGQYN0uni2djTlrDbZ1IbG2ig+E2MGOE6KlPmC3wCZhW6CevZyjdFhTQ== dependencies: - "@storybook/cli" "7.6.10" + "@storybook/cli" "7.6.16" stream-browserify@3.0.0: version "3.0.0" @@ -19244,13 +19326,15 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== -streamx@^2.15.0: - version "2.15.6" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.6.tgz#28bf36997ebc7bf6c08f9eba958735231b833887" - integrity sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw== +streamx@^2.13.0, streamx@^2.15.0: + version "2.15.8" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.8.tgz#5471145b54ee43b5088877023d8d0a2a77f95d8d" + integrity sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ== dependencies: fast-fifo "^1.1.0" queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" strict-uri-encode@^1.0.0: version "1.1.0" @@ -19613,9 +19697,11 @@ svgo@^2.7.0, svgo@^2.8.0: stable "^0.1.8" swc-loader@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.3.tgz#6792f1c2e4c9ae9bf9b933b3e010210e270c186d" - integrity sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A== + version "0.2.6" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.6.tgz#bf0cba8eeff34bb19620ead81d1277fefaec6bc8" + integrity sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg== + dependencies: + "@swc/counter" "^0.1.3" swiper@^8.4.2: version "8.4.7" @@ -19719,13 +19805,15 @@ tar-fs@^2.0.0, tar-fs@^2.1.1: tar-stream "^2.1.4" tar-fs@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" - integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== + version "3.0.5" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.5.tgz#f954d77767e4e6edf973384e1eb95f8f81d64ed9" + integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== dependencies: - mkdirp-classic "^0.5.2" pump "^3.0.0" tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^2.1.1" + bare-path "^2.1.0" tar-stream@^2.1.4, tar-stream@~2.2.0: version "2.2.0" @@ -19739,9 +19827,9 @@ tar-stream@^2.1.4, tar-stream@~2.2.0: readable-stream "^3.1.1" tar-stream@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" - integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + version "3.1.7" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" + integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== dependencies: b4a "^1.6.4" fast-fifo "^1.2.0" @@ -19816,7 +19904,7 @@ tempy@^1.0.1: type-fest "^0.16.0" unique-string "^2.0.0" -terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.4, terser-webpack-plugin@^5.3.1, terser-webpack-plugin@^5.3.3, terser-webpack-plugin@^5.3.7: +terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.4, terser-webpack-plugin@^5.3.1, terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.3: version "5.3.10" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== @@ -19828,9 +19916,9 @@ terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.4, terser-webpack-plugi terser "^5.26.0" terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: - version "5.27.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.0.tgz#70108689d9ab25fef61c4e93e808e9fd092bf20c" - integrity sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A== + version "5.27.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.1.tgz#b0092975ea1b379d166088a1a57e32f0839d84a2" + integrity sha512-29wAr6UU/oQpnTw5HoadwjUZnFQXGdOfj0LjZ4sVxzqwHh/QVkvr7m8y9WoR4iN3FRitVduTc6KdjcW38Npsug== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -20002,14 +20090,14 @@ trough@^1.0.0: integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== trough@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" - integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" + integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== ts-dedent@^2.0.0: version "2.2.0" @@ -20133,14 +20221,14 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== +typed-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" typed-array-byte-length@^1.0.0: version "1.0.0" @@ -20205,9 +20293,9 @@ ua-parser-js@^1.0.35: integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== ufo@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" - integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.4.0.tgz#39845b31be81b4f319ab1d99fd20c56cac528d32" + integrity sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ== uglify-js@^3.1.4: version "3.17.4" @@ -20454,11 +20542,11 @@ unpipe@1.0.0, unpipe@~1.0.0: integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unplugin@^1.3.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.6.0.tgz#0bd7c344182c73e685c864f4f7161531f024b942" - integrity sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ== + version "1.7.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.7.1.tgz#009571e3128640f4e327f33680d2db27afaf1e11" + integrity sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw== dependencies: - acorn "^8.11.2" + acorn "^8.11.3" chokidar "^3.5.3" webpack-sources "^3.2.3" webpack-virtual-modules "^0.6.1" @@ -21026,9 +21114,9 @@ webpack-dev-server@^4.9.3: ws "^8.13.0" webpack-hot-middleware@^2.25.0, webpack-hot-middleware@^2.25.1: - version "2.26.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.26.0.tgz#0a103c9b2836c1f27d7f74bbe0e96c99c82d0265" - integrity sha512-okzjec5sAEy4t+7rzdT8eRyxsk0FDSmBPN2KwX4Qd+6+oQCfe5Ve07+u7cJvofgB+B4w5/4dO4Pz0jhhHyyPLQ== + version "2.26.1" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz#87214f1e3f9f3acab9271fef9e6ed7b637d719c0" + integrity sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A== dependencies: ansi-html-community "0.0.8" html-entities "^2.1.0" @@ -21075,18 +21163,18 @@ webpack-virtual-modules@^0.6.1: integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== webpack@5, webpack@^5.50.0, webpack@^5.73.0, webpack@^5.81.0: - version "5.89.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" - integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== + version "5.90.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.2.tgz#189686a8a292427076db9907d495625345805fab" + integrity sha512-ziXu8ABGr0InCMEYFnHrYweinHK2PWrMqnwdHk2oK3rRhv/1B+2FnfwYv5oD+RrknK/Pp/Hmyvu+eAsaMYhzCw== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" + "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.11.5" "@webassemblyjs/wasm-edit" "^1.11.5" "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" + browserslist "^4.21.10" chrome-trace-event "^1.0.2" enhanced-resolve "^5.15.0" es-module-lexer "^1.2.1" @@ -21100,7 +21188,7 @@ webpack@5, webpack@^5.50.0, webpack@^5.73.0, webpack@^5.81.0: neo-async "^2.6.2" schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" + terser-webpack-plugin "^5.3.10" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -21209,16 +21297,16 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" -which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2, which-typed-array@^1.1.9: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== +which-typed-array@^1.1.14, which-typed-array@^1.1.2, which-typed-array@^1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.1" which@^1.2.9, which@^1.3.1: version "1.3.1" From 8e8a66bd29001b95a25768e2e5f85af21e5d6c7d Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 21 Feb 2024 18:59:49 +0000 Subject: [PATCH 172/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index d0fe721d2..9d1786f8c 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -0eac386a31a5d6965536360aa65a44769c1a5740 \ No newline at end of file +b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index fb44f98bb..fe22e02e0 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/i18n": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/i18n": "3.8.0-beta.55", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index bec30b005..0d4540961 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/i18n": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/i18n": "3.8.0-beta.55", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 642a561a7..b11fb2956 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-measurement-tracking": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-measurement-tracking": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ea66ee7d4..e066c499c 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/core": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 60037092b..a69784c48 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/i18n": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/i18n": "3.8.0-beta.55", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index d6ff4fadf..ad683a2ef 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/i18n": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/i18n": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 5578fdcd8..b2cde85d1 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 5bd757332..1f9986934 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 5913b22cc..61fb035a6 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.44.1", "@cornerstonejs/tools": "^1.44.1", - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f665573bd..cd4d0e953 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2a2856946..5b0cf8a29 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 481f605bd..115c22e95 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/extension-dicom-pdf": "3.8.0-beta.54", - "@ohif/extension-dicom-video": "3.8.0-beta.54" + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/extension-dicom-pdf": "3.8.0-beta.55", + "@ohif/extension-dicom-video": "3.8.0-beta.55" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 6017ff2c5..11de971b5 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/extension-dicom-pdf": "3.8.0-beta.54", - "@ohif/extension-dicom-video": "3.8.0-beta.54", - "@ohif/extension-measurement-tracking": "3.8.0-beta.54", - "@ohif/extension-test": "3.8.0-beta.54" + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/extension-dicom-pdf": "3.8.0-beta.55", + "@ohif/extension-dicom-video": "3.8.0-beta.55", + "@ohif/extension-measurement-tracking": "3.8.0-beta.55", + "@ohif/extension-test": "3.8.0-beta.55" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 9f0da1e5d..5ae858266 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/extension-dicom-pdf": "3.8.0-beta.54", - "@ohif/extension-dicom-video": "3.8.0-beta.54", - "@ohif/extension-measurement-tracking": "3.8.0-beta.54" + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/extension-dicom-pdf": "3.8.0-beta.55", + "@ohif/extension-dicom-video": "3.8.0-beta.55", + "@ohif/extension-measurement-tracking": "3.8.0-beta.55" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index eb981fa97..683e799d3 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.54" + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.55" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 92cea6db3..e4eb933eb 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54" + "@ohif/core": "3.8.0-beta.55" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index b6c46eadc..81a9914b2 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/extension-dicom-pdf": "3.8.0-beta.54", - "@ohif/extension-dicom-video": "3.8.0-beta.54", - "@ohif/extension-measurement-tracking": "3.8.0-beta.54" + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/extension-dicom-pdf": "3.8.0-beta.55", + "@ohif/extension-dicom-video": "3.8.0-beta.55", + "@ohif/extension-measurement-tracking": "3.8.0-beta.55" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 007c4a6c7..81405bd6f 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.44.1", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.55", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index a15de9e2a..843eb4922 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.54", - "commit": "0eac386a31a5d6965536360aa65a44769c1a5740" + "version": "3.8.0-beta.55", + "commit": "b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6" } \ No newline at end of file diff --git a/version.txt b/version.txt index 24609c326..2830d9baf 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.54 \ No newline at end of file +3.8.0-beta.55 \ No newline at end of file From 2a442e30ebc088688ab46642a5d63c7328b9454f Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 21 Feb 2024 18:59:56 +0000 Subject: [PATCH 173/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 11 ++++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 11 ++++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 11 ++++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 11 ++++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 11 ++++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 11 ++++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 11 ++++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 11 ++++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 11 ++++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 305 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54abcfcd2..b56df59f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index e7af802c9..98ee61390 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index fe22e02e0..970044192 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index e3dfb946f..2a2829dbf 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 0d4540961..a91baf729 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 6781ef1aa..4c8d63a91 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index b11fb2956..1292e6259 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index b8ad8ad73..90a490efd 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e066c499c..0f58911f9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 032466d6d..734f7556e 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index a69784c48..93e2c756b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 1a582e624..4b7781c4a 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index ad683a2ef..f33a19c0e 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 3a459d48e..cd8274dbd 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index b2cde85d1..21222c398 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 20a880d57..e1d6bc4f3 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 1f9986934..7f09f6c20 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 7999e627f..fc0b15eaa 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 61fb035a6..5e13cce78 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/ui": "3.8.0-beta.55", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 5b59968bb..4257e3e5c 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index cd4d0e953..612ba3ae6 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index ef98b42ba..f3e9dfc3b 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 5b0cf8a29..843023fcc 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index ace197b37..b56fcee0b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index eeb95e4fc..54971534e 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 115c22e95..8dcce8462 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index e7f64bedd..571de363e 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 11de971b5..e52713e5a 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 0f6f27091..49fe02e58 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 5ae858266..fe517c0d2 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 657755d32..dfabbd957 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 683e799d3..0c30aa605 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 1a813a457..dd8b07ead 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e4eb933eb..738ab788f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 0c031169a..8a86b2307 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 81a9914b2..6c1b3ab23 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index ff6b2926a..f2b783d37 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index cebd12b6b..816bcfae9 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.44.1", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.54", - "@ohif/extension-cornerstone": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.54", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.54", - "@ohif/extension-default": "3.8.0-beta.54", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.54", - "@ohif/extension-dicom-pdf": "3.8.0-beta.54", - "@ohif/extension-dicom-video": "3.8.0-beta.54", - "@ohif/extension-test": "3.8.0-beta.54", - "@ohif/i18n": "3.8.0-beta.54", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.54", - "@ohif/mode-longitudinal": "3.8.0-beta.54", - "@ohif/mode-microscopy": "3.8.0-beta.54", - "@ohif/mode-test": "3.8.0-beta.54", - "@ohif/ui": "3.8.0-beta.54", + "@ohif/core": "3.8.0-beta.55", + "@ohif/extension-cornerstone": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.55", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", + "@ohif/extension-default": "3.8.0-beta.55", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.55", + "@ohif/extension-dicom-pdf": "3.8.0-beta.55", + "@ohif/extension-dicom-video": "3.8.0-beta.55", + "@ohif/extension-test": "3.8.0-beta.55", + "@ohif/i18n": "3.8.0-beta.55", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.55", + "@ohif/mode-longitudinal": "3.8.0-beta.55", + "@ohif/mode-microscopy": "3.8.0-beta.55", + "@ohif/mode-test": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.55", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 596036304..28c5f2fc0 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 019e01179..fda8ce7b3 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 97618efa3..e37e71d1c 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 81405bd6f..17e531bd9 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 34044342a..172f28975 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 04e594b2d..e62fdc15d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 6954f69b3..a95996eaa 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 8d0fb621e..398cca93b 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index d04fcf98d..353520384 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) + + +### Features + +* **resize:** Optimize resizing process and maintain zoom level ([#3889](https://github.com/OHIF/Viewers/issues/3889)) ([b3a0faf](https://github.com/OHIF/Viewers/commit/b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6)) + + + + + # [3.8.0-beta.54](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.53...v3.8.0-beta.54) (2024-02-14) diff --git a/platform/ui/package.json b/platform/ui/package.json index c934aa396..c761f703b 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.54", + "version": "3.8.0-beta.55", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 21e8a2bd0b7cc72f90a31e472d285d761be15d30 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Thu, 22 Feb 2024 14:42:46 -0500 Subject: [PATCH 174/289] fix(demo): Deploy issue (#3951) --- extensions/cornerstone-dicom-seg/package.json | 6 +- extensions/cornerstone-dicom-sr/package.json | 6 +- extensions/cornerstone/package.json | 12 +- .../cornerstone/src/utils/initViewTiming.ts | 23 ++-- .../default/src/MergeDataSource/index.ts | 10 +- extensions/measurement-tracking/package.json | 4 +- package.json | 4 +- .../OHIFCornerstoneToolbar.spec.js | 2 +- platform/app/package.json | 2 +- platform/app/public/config/local_static.js | 108 ++++++++++++++- platform/app/src/routes/DataSourceWrapper.tsx | 10 +- platform/app/src/routes/Mode/Mode.tsx | 13 +- platform/core/package.json | 2 +- .../core/src/{types => enums}/TimingEnum.ts | 0 platform/core/src/enums/index.ts | 3 + platform/core/src/index.test.js | 1 + platform/core/src/index.ts | 2 + platform/core/src/types/index.ts | 3 - .../src/views/StudyList/components/Header.js | 2 +- yarn.lock | 126 ++++++++++-------- 20 files changed, 235 insertions(+), 104 deletions(-) rename platform/core/src/{types => enums}/TimingEnum.ts (100%) create mode 100644 platform/core/src/enums/index.ts diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a91baf729..1d8d56f29 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", - "@kitware/vtk.js": "29.3.0", + "@cornerstonejs/adapters": "^1.63.4", + "@cornerstonejs/core": "^1.63.4", + "@kitware/vtk.js": "29.7.0", "react-color": "^2.19.3" } } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 1292e6259..0035bf765 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.44.1", - "@cornerstonejs/core": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", + "@cornerstonejs/adapters": "^1.63.4", + "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/tools": "^1.63.4", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 0f58911f9..cb4c2f9e3 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@cornerstonejs/dicom-image-loader": "^1.63.4", "@ohif/core": "3.8.0-beta.55", "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", @@ -54,11 +54,11 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.44.1", - "@cornerstonejs/core": "^1.44.1", - "@cornerstonejs/streaming-image-volume-loader": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", - "@kitware/vtk.js": "29.3.01", + "@cornerstonejs/adapters": "^1.63.4", + "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/streaming-image-volume-loader": "^1.63.4", + "@cornerstonejs/tools": "^1.63.4", + "@kitware/vtk.js": "29.7.0", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", "lodash.merge": "^4.6.2", diff --git a/extensions/cornerstone/src/utils/initViewTiming.ts b/extensions/cornerstone/src/utils/initViewTiming.ts index 8c4ad9f03..a9d1544c4 100644 --- a/extensions/cornerstone/src/utils/initViewTiming.ts +++ b/extensions/cornerstone/src/utils/initViewTiming.ts @@ -1,13 +1,7 @@ -import { log, Types } from '@ohif/core'; +import { log, Enums } from '@ohif/core'; import { EVENTS } from '@cornerstonejs/core'; -const { TimingEnum } = Types; - -const IMAGE_TIMING_KEYS = [ - TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES, - TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE, - TimingEnum.STUDY_TO_FIRST_IMAGE, -]; +const IMAGE_TIMING_KEYS = []; const imageTiming = { viewportsWaiting: 0, @@ -23,6 +17,18 @@ const imageTiming = { */ export default function initViewTiming({ element }) { + if (!IMAGE_TIMING_KEYS.length) { + // Work around a bug in WebPack that doesn't getting the enums initialized + // quite fast enough to be declared statically. + const { TimingEnum } = Enums; + + IMAGE_TIMING_KEYS.push( + TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES, + TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE, + TimingEnum.STUDY_TO_FIRST_IMAGE, + ); + } + if (!IMAGE_TIMING_KEYS.find(key => log.timingKeys[key])) { return; } @@ -34,6 +40,7 @@ function imageRenderedListener(evt) { if (evt.detail.viewportStatus === 'preRender') { return; } + const { TimingEnum } = Enums; log.timeEnd(TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); log.timeEnd(TimingEnum.STUDY_TO_FIRST_IMAGE); log.timeEnd(TimingEnum.SCRIPT_TO_VIEW); diff --git a/extensions/default/src/MergeDataSource/index.ts b/extensions/default/src/MergeDataSource/index.ts index 91852da27..42e49c694 100644 --- a/extensions/default/src/MergeDataSource/index.ts +++ b/extensions/default/src/MergeDataSource/index.ts @@ -50,7 +50,9 @@ export const callForAllDataSourcesAsync = async ({ const defs = Object.values(extensionManager.dataSourceDefs); const defaultDataSourceDef = defs.find(def => def.sourceName === defaultDataSourceName); const dataSourceDefs = defs.filter(def => def.sourceName !== defaultDataSourceName); - dataSourceDefs.unshift(defaultDataSourceDef); + if (defaultDataSourceDef) { + dataSourceDefs.unshift(defaultDataSourceDef); + } const promises = []; const sourceNames = []; @@ -100,7 +102,9 @@ export const callForAllDataSources = ({ const defs = Object.values(extensionManager.dataSourceDefs); const defaultDataSourceDef = defs.find(def => def.sourceName === defaultDataSourceName); const dataSourceDefs = defs.filter(def => def.sourceName !== defaultDataSourceName); - dataSourceDefs.unshift(defaultDataSourceDef); + if (defaultDataSourceDef) { + dataSourceDefs.unshift(defaultDataSourceDef); + } const mergedData = []; for (const dataSourceDef of dataSourceDefs) { @@ -140,7 +144,7 @@ export const callForDefaultDataSource = ({ * Calls the data source specified by the RetrieveAETitle of the given display set. * @typedef {Object} CallByRetrieveAETitleOptions * @property {string} path - The path of the method to call on the data source. - * @property {unknown[]} args - The arguments to pass to the method. + * @property {any[]} args - The arguments to pass to the method. * @property {string} defaultDataSourceName - The name of the default data source. * @property {ExtensionManager} extensionManager - The extension manager. */ diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 5e13cce78..3204c22a2 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", + "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/tools": "^1.63.4", "@ohif/core": "3.8.0-beta.55", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", "@ohif/ui": "3.8.0-beta.55", diff --git a/package.json b/package.json index 6b17ed590..81b792ec6 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@kitware/vtk.js": "29.3.0", + "@kitware/vtk.js": "29.7.0", "core-js": "^3.2.1" }, "peerDependencies": { @@ -138,7 +138,7 @@ "terser-webpack-plugin": "^5.1.4", "typescript": "4.6.4", "unused-webpack-plugin": "2.4.0", - "webpack": "^5.50.0", + "webpack": "^5.90.3", "webpack-cli": "^4.7.2", "webpack-dev-server": "4.7.3", "webpack-hot-middleware": "^2.25.0", diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index 385b67f94..00383180f 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -85,7 +85,7 @@ describe('OHIF Cornerstone Toolbar', () => { // The exact text is slightly dependent on the viewport resolution, so leave a range cy.get('@viewportInfoTopLeft').should($txt => { const text = $txt.text(); - expect(text).to.include('W:1185').include('L:479'); + expect(text).to.include('W:118').include('L:479'); }); }); diff --git a/platform/app/package.json b/platform/app/package.json index 816bcfae9..01de2dd49 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -53,7 +53,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.55", "@ohif/extension-cornerstone": "3.8.0-beta.55", diff --git a/platform/app/public/config/local_static.js b/platform/app/public/config/local_static.js index 89f205d01..7bd03c87e 100644 --- a/platform/app/public/config/local_static.js +++ b/platform/app/public/config/local_static.js @@ -15,12 +15,86 @@ window.config = { dataSources: [ { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', - sourceName: 'dicomweb', + sourceName: 'e2e', + configuration: { + friendlyName: 'StaticWado test data', + // The most important field to set for static WADO + staticWado: true, + name: 'StaticWADO', + wadoUriRoot: '/viewer-testdata', + qidoRoot: '/viewer-testdata', + wadoRoot: '/viewer-testdata', + qidoSupportsIncludeField: false, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + singlepart: 'video,thumbnail,pdf', + omitQuotationForMultipartRequest: true, + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'local', configuration: { friendlyName: 'Static WADO Local Data', name: 'DCM4CHEE', - qidoRoot: '/dicomweb', - wadoRoot: '/dicomweb', + qidoRoot: 'http://localhost:5000/dicomweb', + wadoRoot: 'http://localhost:5000/dicomweb', + qidoSupportsIncludeField: false, + supportsReject: true, + supportsStow: true, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + staticWado: true, + singlepart: 'video', + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'docker', + configuration: { + friendlyName: 'Static WADO Docker Data', + name: 'DCM4CHEE', + qidoRoot: 'http://localhost:25080/dicomweb', + wadoRoot: 'http://localhost:25080/dicomweb', + qidoSupportsIncludeField: false, + supportsReject: true, + supportsStow: true, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + staticWado: true, + singlepart: 'bulkdata,video,pdf', + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'ohif', + configuration: { + friendlyName: 'AWS S3 Static wado server', + name: 'aws', + wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', + qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', + wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', qidoSupportsIncludeField: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', @@ -29,7 +103,33 @@ window.config = { supportsWildcard: true, staticWado: true, singlepart: 'bulkdata,video,pdf', - omitQuotationForMultipartRequest: true, + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + friendlyName: 'StaticWado default data', + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'dicomweb', + configuration: { + name: 'DCM4CHEE', + wadoUriRoot: '/dicomweb', + qidoRoot: '/dicomweb', + wadoRoot: '/dicomweb', + qidoSupportsIncludeField: false, + supportsReject: false, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + staticWado: true, + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, }, }, { diff --git a/platform/app/src/routes/DataSourceWrapper.tsx b/platform/app/src/routes/DataSourceWrapper.tsx index c9d1d6936..0ae2b698e 100644 --- a/platform/app/src/routes/DataSourceWrapper.tsx +++ b/platform/app/src/routes/DataSourceWrapper.tsx @@ -1,15 +1,13 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { useCallback, useEffect, useState } from 'react'; import PropTypes from 'prop-types'; -import { ExtensionManager, MODULE_TYPES, Types, log } from '@ohif/core'; +import { Enums, ExtensionManager, MODULE_TYPES, log } from '@ohif/core'; // import { extensionManager } from '../App.tsx'; import { useParams, useLocation } from 'react-router'; import { useNavigate } from 'react-router-dom'; import useSearchParams from '../hooks/useSearchParams.ts'; -const { TimingEnum } = Types; - /** * Determines if two React Router location objects are the same. */ @@ -151,7 +149,7 @@ function DataSourceWrapper(props) { // 204: no content async function getData() { setIsLoading(true); - log.time(TimingEnum.SEARCH_TO_LIST); + log.time(Enums.TimingEnum.SEARCH_TO_LIST); const studies = await dataSource.query.studies.search(queryFilterValues); setData({ @@ -161,8 +159,8 @@ function DataSourceWrapper(props) { pageNumber: queryFilterValues.pageNumber, location, }); - log.timeEnd(TimingEnum.SCRIPT_TO_VIEW); - log.timeEnd(TimingEnum.SEARCH_TO_LIST); + log.timeEnd(Enums.TimingEnum.SCRIPT_TO_VIEW); + log.timeEnd(Enums.TimingEnum.SEARCH_TO_LIST); setIsLoading(false); } diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index 228403246..ecbe7677a 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState, useRef } from 'react'; import { useParams, useLocation, useNavigate } from 'react-router'; import PropTypes from 'prop-types'; // TODO: DicomMetadataStore should be injected? -import { DicomMetadataStore, ServicesManager, utils, Types, log } from '@ohif/core'; +import { DicomMetadataStore, ServicesManager, utils, log, Enums } from '@ohif/core'; import { DragAndDropProvider, ImageViewerProvider } from '@ohif/ui'; import { useSearchParams } from '@hooks'; import { useAppConfig } from '@state'; @@ -14,7 +14,6 @@ import loadModules from '../../pluginImports'; import isSeriesFilterUsed from '../../utils/isSeriesFilterUsed'; const { getSplitParam, sortingCriteria } = utils; -const { TimingEnum } = Types; /** * Initialize the route. @@ -84,8 +83,8 @@ function defaultRouteInit( unsubscriptions.push(instanceAddedUnsubscribe); - log.time(TimingEnum.STUDY_TO_DISPLAY_SETS); - log.time(TimingEnum.STUDY_TO_FIRST_IMAGE); + log.time(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); + log.time(Enums.TimingEnum.STUDY_TO_FIRST_IMAGE); const allRetrieves = studyInstanceUIDs.map(StudyInstanceUID => dataSource.retrieve.series.metadata({ @@ -106,9 +105,9 @@ function defaultRouteInit( }); Promise.allSettled(allRetrieves).then(promises => { - log.timeEnd(TimingEnum.STUDY_TO_DISPLAY_SETS); - log.time(TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); - log.time(TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); + log.timeEnd(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); + log.time(Enums.TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); + log.time(Enums.TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); const allPromises = []; const remainingPromises = []; diff --git a/platform/core/package.json b/platform/core/package.json index 17e531bd9..df2dff45f 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@cornerstonejs/dicom-image-loader": "^1.63.4", "@ohif/ui": "3.8.0-beta.55", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/platform/core/src/types/TimingEnum.ts b/platform/core/src/enums/TimingEnum.ts similarity index 100% rename from platform/core/src/types/TimingEnum.ts rename to platform/core/src/enums/TimingEnum.ts diff --git a/platform/core/src/enums/index.ts b/platform/core/src/enums/index.ts new file mode 100644 index 000000000..8daa802dc --- /dev/null +++ b/platform/core/src/enums/index.ts @@ -0,0 +1,3 @@ +import { TimingEnum } from './TimingEnum'; + +export { TimingEnum }; diff --git a/platform/core/src/index.test.js b/platform/core/src/index.test.js index 85ee68176..7c000ae59 100644 --- a/platform/core/src/index.test.js +++ b/platform/core/src/index.test.js @@ -25,6 +25,7 @@ describe('Top level exports', () => { // 'CineService', 'CustomizationService', + 'Enums', 'StateSyncService', 'UIDialogService', 'UIModalService', diff --git a/platform/core/src/index.ts b/platform/core/src/index.ts index 67836da4d..ddea2c457 100644 --- a/platform/core/src/index.ts +++ b/platform/core/src/index.ts @@ -11,6 +11,7 @@ import user from './user.js'; import utils from './utils'; import defaults from './defaults'; import * as Types from './types'; +import * as Enums from './enums'; import { CineService, @@ -120,6 +121,7 @@ export { DicomMetadataStore, pubSubServiceInterface, PubSubService, + Enums, Types, PanelService, }; diff --git a/platform/core/src/types/index.ts b/platform/core/src/types/index.ts index d41dd6b43..15c428e3d 100644 --- a/platform/core/src/types/index.ts +++ b/platform/core/src/types/index.ts @@ -20,9 +20,6 @@ export type * from './PanelModule'; export type * from './IPubSub'; export type * from './Color'; -// Enum exports -export * from './TimingEnum'; - /** * Export the types used within the various services and managers, but * not the services/managers themselves, which are exported at the top level. diff --git a/platform/ui/src/views/StudyList/components/Header.js b/platform/ui/src/views/StudyList/components/Header.js index a13ebf715..1b66822c6 100644 --- a/platform/ui/src/views/StudyList/components/Header.js +++ b/platform/ui/src/views/StudyList/components/Header.js @@ -4,7 +4,7 @@ import { withTranslation } from 'react-i18next'; import { IconButton, Icon, NavBar } from '../../../components'; -import OHIFLogo from './OHIFLogo.js'; +import OHIFLogo from './OHIFLogo'; function Header({ appLogo = OHIFLogo(), children, t }) { const showSettingsDropdown = () => { diff --git a/yarn.lock b/yarn.lock index 804c21d2b..7c0f8ea99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1485,10 +1485,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.47.1.tgz#16a3196a16af3b2fb2d5bf4d2eeda165962e8c78" - integrity sha512-4/jyrlV2QwXSnyBfeFPWQHao+UuiloTJuVoZ6Sam1E6/gw4LnMdfi8UtugYxNjwZysPEGkc8BAdfDMux0xMrwA== +"@cornerstonejs/adapters@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.63.4.tgz#c43fcbb5217d09a4aaa3ecdbd5feb58d1283f486" + integrity sha512-HC1OGFEbveAd+Bs7UHDVBSK1XL187EsJqXkuDe5A1tlCUKoA2MCW/lX1sraW/0Z6Gm9GVzGnkVtRMBxYd96ENg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1537,45 +1537,47 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.44.1", "@cornerstonejs/core@^1.47.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.47.1.tgz#fc6b9fafde6862c7e87ca528d2e9b83886a82a0c" - integrity sha512-VR4B9jSPCU9zbcM2zAq2re+YYgu+onvKGVK7wgIdqpQ3W7CjEmaHzWqVb19ZjezeSNO5cbP6o14tlUhoog0acQ== +"@cornerstonejs/core@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.63.4.tgz#0d324e0df130854d0f6c24137b8e60053e0af3b4" + integrity sha512-l/7u1THn2pYq97QMBm8uy/kQWUEIlbq7rzdP6u1lSs8yDqK/f6zSQjNrvB/D6vRiVKnHVIlByxbbmEY46JQHmQ== dependencies: - "@kitware/vtk.js" "29.3.0" + "@kitware/vtk.js" "29.7.0" comlink "^4.4.1" detect-gpu "^5.0.22" gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.47.1.tgz#a1a4ab2d598eba239c239b7fd1fa6c797014ff8d" - integrity sha512-6ebof2OZFHMWBgbbGahVMbSYN3iqDAivn9nY6FnxrDgXUl4HgKmWq9+gM/Fo8NCe6CwABWqExWO393G5Yb5I2Q== +"@cornerstonejs/dicom-image-loader@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.63.4.tgz#6827cb9d3d840dcd6a798e884a169adcc6bba311" + integrity sha512-agnRjhIBFiYQ6gQTjHmio+DG79OTaNXU3NbEVVxWdahqR1MnJBX39FT+1mi+8AhbN9sH2f+IpB4MoqraNFetLw== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.47.1" + "@cornerstonejs/core" "^1.63.4" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.47.1.tgz#4a5a5d81aab900dcd212c315ddc1eb61e5e94ef1" - integrity sha512-FzZ+Wtfc+X26p0fzguyAMkAfoZa8SfslC5wmPt5+vxHf+IGgRPSkPJ/vVMAxI7L6qC0mEOt4XcCmszX9wWS1mg== +"@cornerstonejs/streaming-image-volume-loader@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.63.4.tgz#37ba9de488d5472c3dd98f85698a854c97b4b29f" + integrity sha512-GoxxmQVeHVZntFFwVwOp/fttgTrzXBwH08gk6JDjhHhmh22Ci7P137hG8o54uA6dv0/W572em60SrIzvjB4Xwg== dependencies: - "@cornerstonejs/core" "^1.47.1" + "@cornerstonejs/core" "^1.63.4" comlink "^4.4.1" -"@cornerstonejs/tools@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.47.1.tgz#40085a824584de3970d4aa106b30a5a6ae6504ec" - integrity sha512-yPdkEp570S4B1ldP7mtyacT9Eu5Hh2CR/ZCbBMVMQmlnsi9SFKVYKFpOSxUQd1u+MK2AKcpzrr7BbH9OOR4lCg== +"@cornerstonejs/tools@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.63.4.tgz#4f85cf77bda97738ff05ef9184cf68e617f1631c" + integrity sha512-LDoqShwi0b6kEGqnfY3pUrK4nExS9lqhXFvWew6wH9znUyEIVhGexBXNYDb3E2Gy13d4drtjsM+PXFt7c0PecQ== dependencies: - "@cornerstonejs/core" "^1.47.1" + "@cornerstonejs/core" "^1.63.4" + "@icr/polyseg-wasm" "0.4.0" + "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -2550,6 +2552,11 @@ resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== +"@icr/polyseg-wasm@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@icr/polyseg-wasm/-/polyseg-wasm-0.4.0.tgz#755e23d07c3d8d8fca1113278c803c1ef0185da0" + integrity sha512-3sZmiwG8I0NaqPle0L7+V/ZexiR7IjIUFkUsaOoFI9rNuBGyyMMmxAxnCmqcDFtBDk9h+JEYJf6e3NnqlHi/HQ== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2824,32 +2831,10 @@ resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@kitware/vtk.js@29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.3.0.tgz#8601e07cde3da61c285aabfcb3484ae1ffb1074b" - integrity sha512-EofIxo6Qcfhh8SRx8Xp7B8HGM//2tzjQbhrMQsiaoPgs3yhtrqm+CBFmqboxt+waF8qUKxuUQb+DzM8cX2ivAg== - dependencies: - "@babel/runtime" "7.22.11" - "@types/webxr" "^0.5.5" - commander "9.2.0" - d3-scale "4.0.2" - fast-deep-equal "^3.1.3" - fflate "0.7.3" - gl-matrix "3.4.3" - globalthis "1.0.3" - seedrandom "3.0.5" - shader-loader "1.3.1" - shelljs "0.8.5" - spark-md5 "3.0.2" - stream-browserify "3.0.0" - webworker-promise "0.5.0" - worker-loader "3.0.8" - xmlbuilder2 "3.0.2" - -"@kitware/vtk.js@29.3.01": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.3.1.tgz#007df75c1f4744b4779087b9306a667c6acdc3c8" - integrity sha512-TM3uBVwJWdMIU+VD+OnSxQU45lJiJiOxxkx56Du6K4d18u5fHi7nBkSlNhTtOCX5H8amwIofaPCKRnYRNkjosA== +"@kitware/vtk.js@29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.7.0.tgz#56c352a755dd61bf34664866441ef9143e55a24d" + integrity sha512-z6XcoB+uUKayOsfLFR6GJW59bUyDe8JLkw3AMWKHbdLQmWvGosl32Zq18TYwCWAH/epIjZBoLBV+8o2GjgCb0w== dependencies: "@babel/runtime" "7.22.11" "@types/webxr" "^0.5.5" @@ -5272,6 +5257,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== +"@types/offscreencanvas@2019.7.3": + version "2019.7.3" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz#90267db13f64d6e9ccb5ae3eac92786a7c77a516" + integrity sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A== + "@types/parse-json@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" @@ -12078,9 +12068,9 @@ ip-address@^9.0.5: sprintf-js "^1.1.3" ip@^1.1.0: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== ip@^2.0.0: version "2.0.0" @@ -21192,6 +21182,36 @@ webpack@5, webpack@^5.50.0, webpack@^5.73.0, webpack@^5.81.0: watchpack "^2.4.0" webpack-sources "^3.2.3" +webpack@^5.90.3: + version "5.90.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.3.tgz#37b8f74d3ded061ba789bb22b31e82eed75bd9ac" + integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + webpackbar@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570" From ff4e17f5c2c5fc752b20b9af9a4ec6524ffa22f4 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 22 Feb 2024 19:54:11 +0000 Subject: [PATCH 175/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- platform/ui/17dd54813d5acc10bf8f.wasm | Bin 0 -> 5637936 bytes version.json | 4 ++-- version.txt | 2 +- 22 files changed, 69 insertions(+), 69 deletions(-) create mode 100644 platform/ui/17dd54813d5acc10bf8f.wasm diff --git a/commit.txt b/commit.txt index 9d1786f8c..686ec9903 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6 \ No newline at end of file +21e8a2bd0b7cc72f90a31e472d285d761be15d30 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 970044192..8db34bbfa 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/i18n": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/i18n": "3.8.0-beta.56", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 1d8d56f29..ad994355e 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/i18n": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/i18n": "3.8.0-beta.56", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 0035bf765..7ce491fad 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-measurement-tracking": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-measurement-tracking": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index cb4c2f9e3..98f92fe76 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/core": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 93e2c756b..052c91542 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/i18n": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/i18n": "3.8.0-beta.56", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index f33a19c0e..c51ffcbee 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/i18n": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/i18n": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 21222c398..7cb2e3a9b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 7f09f6c20..acb9e4cc2 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 3204c22a2..3c8c7ecbc 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.63.4", "@cornerstonejs/tools": "^1.63.4", - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 612ba3ae6..8474ba0a9 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 843023fcc..aa172af89 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 8dcce8462..ae2fbd784 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/extension-dicom-pdf": "3.8.0-beta.55", - "@ohif/extension-dicom-video": "3.8.0-beta.55" + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/extension-dicom-pdf": "3.8.0-beta.56", + "@ohif/extension-dicom-video": "3.8.0-beta.56" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index e52713e5a..e998b24e4 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/extension-dicom-pdf": "3.8.0-beta.55", - "@ohif/extension-dicom-video": "3.8.0-beta.55", - "@ohif/extension-measurement-tracking": "3.8.0-beta.55", - "@ohif/extension-test": "3.8.0-beta.55" + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/extension-dicom-pdf": "3.8.0-beta.56", + "@ohif/extension-dicom-video": "3.8.0-beta.56", + "@ohif/extension-measurement-tracking": "3.8.0-beta.56", + "@ohif/extension-test": "3.8.0-beta.56" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index fe517c0d2..de42a0e93 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/extension-dicom-pdf": "3.8.0-beta.55", - "@ohif/extension-dicom-video": "3.8.0-beta.55", - "@ohif/extension-measurement-tracking": "3.8.0-beta.55" + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/extension-dicom-pdf": "3.8.0-beta.56", + "@ohif/extension-dicom-video": "3.8.0-beta.56", + "@ohif/extension-measurement-tracking": "3.8.0-beta.56" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 0c30aa605..439cc00c2 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.55" + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.56" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 738ab788f..56cc2cda4 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55" + "@ohif/core": "3.8.0-beta.56" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 6c1b3ab23..0027c4a0a 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/extension-dicom-pdf": "3.8.0-beta.55", - "@ohif/extension-dicom-video": "3.8.0-beta.55", - "@ohif/extension-measurement-tracking": "3.8.0-beta.55" + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/extension-dicom-pdf": "3.8.0-beta.56", + "@ohif/extension-dicom-video": "3.8.0-beta.56", + "@ohif/extension-measurement-tracking": "3.8.0-beta.56" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index df2dff45f..3ca90b970 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.56", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/platform/ui/17dd54813d5acc10bf8f.wasm b/platform/ui/17dd54813d5acc10bf8f.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e0b9922dd760f03b0a1ce49700baa1bbeb1970da GIT binary patch literal 5637936 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⁣yI^yPz+ZcJ=*Wq{= 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
    k&6=OS4$v94hdb1?QPT% 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≫PkN)&4{QCs|-FlGM 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 Lci558q(GMR+cEBUh$8H*#-?e)XXxKW*&i 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 z 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 literal 0 HcmV?d00001 diff --git a/version.json b/version.json index 843eb4922..cf13532d5 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.55", - "commit": "b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6" + "version": "3.8.0-beta.56", + "commit": "21e8a2bd0b7cc72f90a31e472d285d761be15d30" } \ No newline at end of file diff --git a/version.txt b/version.txt index 2830d9baf..e457b200a 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.55 \ No newline at end of file +3.8.0-beta.56 \ No newline at end of file From 596340803a10a6349e35e43e896259464614f01c Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Thu, 22 Feb 2024 19:54:20 +0000 Subject: [PATCH 176/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 260 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b56df59f1..f76114d17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 98ee61390..b8eb5c30b 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 8db34bbfa..6fe55c4b2 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 2a2829dbf..6ac766bbe 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ad994355e..b8153d64a 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 4c8d63a91..118050e61 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 7ce491fad..2a988cc05 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 90a490efd..226531d11 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 98f92fe76..e1904ac00 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 734f7556e..67a8e1139 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/default/package.json b/extensions/default/package.json index 052c91542..eb8c7c526 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 4b7781c4a..688eb4199 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index c51ffcbee..44557be87 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index cd8274dbd..cd3ee2e01 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7cb2e3a9b..982f8fd9e 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e1d6bc4f3..e474066c7 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index acb9e4cc2..b76eadccb 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index fc0b15eaa..63213c48d 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 3c8c7ecbc..f0cb79904 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/ui": "3.8.0-beta.56", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 4257e3e5c..81df0c8bc 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 8474ba0a9..6cd319da3 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index f3e9dfc3b..522a1c23b 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index aa172af89..06b9cb648 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index b56fcee0b..9c54757e2 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 54971534e..35a451a23 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index ae2fbd784..75abdaee1 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 571de363e..4031c4d44 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index e998b24e4..6cd57f8d4 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 49fe02e58..96811ff1b 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index de42a0e93..dcbdd865a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index dfabbd957..e8208d8f8 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 439cc00c2..8646523a4 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index dd8b07ead..e61065d7b 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 56cc2cda4..f9b31e663 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 8a86b2307..e58bedcb8 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 0027c4a0a..0b67249b8 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index f2b783d37..7d3b21f3c 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/platform/app/package.json b/platform/app/package.json index 01de2dd49..d0fe5a714 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.55", - "@ohif/extension-cornerstone": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.55", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", - "@ohif/extension-default": "3.8.0-beta.55", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.55", - "@ohif/extension-dicom-pdf": "3.8.0-beta.55", - "@ohif/extension-dicom-video": "3.8.0-beta.55", - "@ohif/extension-test": "3.8.0-beta.55", - "@ohif/i18n": "3.8.0-beta.55", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.55", - "@ohif/mode-longitudinal": "3.8.0-beta.55", - "@ohif/mode-microscopy": "3.8.0-beta.55", - "@ohif/mode-test": "3.8.0-beta.55", - "@ohif/ui": "3.8.0-beta.55", + "@ohif/core": "3.8.0-beta.56", + "@ohif/extension-cornerstone": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.56", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", + "@ohif/extension-default": "3.8.0-beta.56", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.56", + "@ohif/extension-dicom-pdf": "3.8.0-beta.56", + "@ohif/extension-dicom-video": "3.8.0-beta.56", + "@ohif/extension-test": "3.8.0-beta.56", + "@ohif/i18n": "3.8.0-beta.56", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.56", + "@ohif/mode-longitudinal": "3.8.0-beta.56", + "@ohif/mode-microscopy": "3.8.0-beta.56", + "@ohif/mode-test": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.56", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 28c5f2fc0..89b389be4 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/platform/cli/package.json b/platform/cli/package.json index fda8ce7b3..8a1f22974 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index e37e71d1c..c59cf05be 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/platform/core/package.json b/platform/core/package.json index 3ca90b970..da45d185e 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 172f28975..401b02736 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/platform/docs/package.json b/platform/docs/package.json index e62fdc15d..8ef62680d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a95996eaa..c62e5f4ed 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 398cca93b..013fc8dd7 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 353520384..a9505c6f3 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) + + +### Bug Fixes + +* **demo:** Deploy issue ([#3951](https://github.com/OHIF/Viewers/issues/3951)) ([21e8a2b](https://github.com/OHIF/Viewers/commit/21e8a2bd0b7cc72f90a31e472d285d761be15d30)) + + + + + # [3.8.0-beta.55](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.54...v3.8.0-beta.55) (2024-02-21) diff --git a/platform/ui/package.json b/platform/ui/package.json index c761f703b..61f506eb4 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.55", + "version": "3.8.0-beta.56", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f Mon Sep 17 00:00:00 2001 From: EricB Date: Wed, 28 Feb 2024 18:13:46 +0100 Subject: [PATCH 177/289] fix(docs): Minor typos in hpModule.md (#3962) --- platform/docs/docs/platform/extensions/modules/hpModule.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/docs/docs/platform/extensions/modules/hpModule.md b/platform/docs/docs/platform/extensions/modules/hpModule.md index 40d627f2a..cff0ac713 100644 --- a/platform/docs/docs/platform/extensions/modules/hpModule.md +++ b/platform/docs/docs/platform/extensions/modules/hpModule.md @@ -214,7 +214,7 @@ The skeleton of a hanging protocol is as follows: unique identifier for the protocol, this id can be used inside mode configuration to specify which protocol should be used for a specific mode. A mode can request a protocol by its id (which makes OHIF to apply the protocol without -matching), or provides and array of ids which will +matching), or provides an array of ids which will make the ProtocolEngine to choose the best matching protocol (based on protocolMatching rules, which is next section). @@ -362,7 +362,7 @@ As you see each selector is composed of an `id` as the key and a set of `seriesM based on the matching rules. The displaySet with the highest score will be used for the `id`. ### stages -Each protocol can define one or more stages. Each stage defines a certain layout and viewport rules. Therefore, the `stages` property is array of objects, each object being one stage. +Each protocol can define one or more stages. Each stage defines a certain layout and viewport rules. Therefore, the `stages` property is an array of objects, each object being one stage. ### viewportStructure Defines the layout of the viewer. You can define the number of `rows` and `columns`. There should be `rows * columns` number of From c27fa9c8025097c23b4a8934a3d088c21b692734 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 28 Feb 2024 17:25:19 +0000 Subject: [PATCH 178/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 686ec9903..3768cbbee 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -21e8a2bd0b7cc72f90a31e472d285d761be15d30 \ No newline at end of file +4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 6fe55c4b2..591cc02a5 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/i18n": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/i18n": "3.8.0-beta.57", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b8153d64a..cf61510c7 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/i18n": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/i18n": "3.8.0-beta.57", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 2a988cc05..4db6ecf43 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-measurement-tracking": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-measurement-tracking": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e1904ac00..dd6357bc1 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/core": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index eb8c7c526..8f804ba52 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/i18n": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/i18n": "3.8.0-beta.57", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 44557be87..52e87d9e1 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/i18n": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/i18n": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 982f8fd9e..748783b87 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index b76eadccb..222c52682 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f0cb79904..7b4a2195b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.63.4", "@cornerstonejs/tools": "^1.63.4", - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 6cd319da3..b2ce333f4 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 06b9cb648..c8cf46801 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 75abdaee1..45fae32ee 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/extension-dicom-pdf": "3.8.0-beta.56", - "@ohif/extension-dicom-video": "3.8.0-beta.56" + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/extension-dicom-pdf": "3.8.0-beta.57", + "@ohif/extension-dicom-video": "3.8.0-beta.57" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 6cd57f8d4..d9f9ed50a 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/extension-dicom-pdf": "3.8.0-beta.56", - "@ohif/extension-dicom-video": "3.8.0-beta.56", - "@ohif/extension-measurement-tracking": "3.8.0-beta.56", - "@ohif/extension-test": "3.8.0-beta.56" + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/extension-dicom-pdf": "3.8.0-beta.57", + "@ohif/extension-dicom-video": "3.8.0-beta.57", + "@ohif/extension-measurement-tracking": "3.8.0-beta.57", + "@ohif/extension-test": "3.8.0-beta.57" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index dcbdd865a..13f15b406 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/extension-dicom-pdf": "3.8.0-beta.56", - "@ohif/extension-dicom-video": "3.8.0-beta.56", - "@ohif/extension-measurement-tracking": "3.8.0-beta.56" + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/extension-dicom-pdf": "3.8.0-beta.57", + "@ohif/extension-dicom-video": "3.8.0-beta.57", + "@ohif/extension-measurement-tracking": "3.8.0-beta.57" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 8646523a4..1ca81b84c 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.56" + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.57" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index f9b31e663..eaa572d00 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56" + "@ohif/core": "3.8.0-beta.57" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 0b67249b8..c3053fff6 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/extension-dicom-pdf": "3.8.0-beta.56", - "@ohif/extension-dicom-video": "3.8.0-beta.56", - "@ohif/extension-measurement-tracking": "3.8.0-beta.56" + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/extension-dicom-pdf": "3.8.0-beta.57", + "@ohif/extension-dicom-video": "3.8.0-beta.57", + "@ohif/extension-measurement-tracking": "3.8.0-beta.57" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index da45d185e..c2717c498 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.57", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index cf13532d5..187cdec11 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.56", - "commit": "21e8a2bd0b7cc72f90a31e472d285d761be15d30" + "version": "3.8.0-beta.57", + "commit": "4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f" } \ No newline at end of file diff --git a/version.txt b/version.txt index e457b200a..096c862e9 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.56 \ No newline at end of file +3.8.0-beta.57 \ No newline at end of file From 82a4a7d37727459ae2ddfbea9f78abecea928ff0 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 28 Feb 2024 17:25:27 +0000 Subject: [PATCH 179/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f76114d17..e67c4b9f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + + +### Bug Fixes + +* **docs:** Minor typos in hpModule.md ([#3962](https://github.com/OHIF/Viewers/issues/3962)) ([4cdfdae](https://github.com/OHIF/Viewers/commit/4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f)) + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index b8eb5c30b..efe133015 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 591cc02a5..a6913efb4 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 6ac766bbe..e67353ec3 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index cf61510c7..a74815177 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 118050e61..bf6d02f3f 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 4db6ecf43..c6adc89e9 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 226531d11..aa1cc914b 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index dd6357bc1..c4fbd28ee 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 67a8e1139..215e890bc 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/extensions/default/package.json b/extensions/default/package.json index 8f804ba52..170db909c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 688eb4199..5cc0f1700 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 52e87d9e1..dc8f23c87 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index cd3ee2e01..2b4dcc3fa 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 748783b87..5e6598c3d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e474066c7..e11a8ce01 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 222c52682..bb7b5492e 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 63213c48d..804c7f938 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 7b4a2195b..b2208f97d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/ui": "3.8.0-beta.57", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 81df0c8bc..0e441dddc 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index b2ce333f4..c753e462e 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 522a1c23b..69a49c505 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c8cf46801..2baf0fef9 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 9c54757e2..f15f43101 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 35a451a23..fb243e3ed 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 45fae32ee..ef75c0bd9 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 4031c4d44..0b0703c7c 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d9f9ed50a..11577b7de 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 96811ff1b..18f9bf537 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 13f15b406..5440ca20a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index e8208d8f8..a2847a6d0 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 1ca81b84c..2da306c63 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index e61065d7b..995c9a4ea 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index eaa572d00..a09b780ae 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index e58bedcb8..0b627611a 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index c3053fff6..c26554878 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 7d3b21f3c..6f6497b13 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/platform/app/package.json b/platform/app/package.json index d0fe5a714..a7e309945 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.56", - "@ohif/extension-cornerstone": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.56", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.56", - "@ohif/extension-default": "3.8.0-beta.56", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.56", - "@ohif/extension-dicom-pdf": "3.8.0-beta.56", - "@ohif/extension-dicom-video": "3.8.0-beta.56", - "@ohif/extension-test": "3.8.0-beta.56", - "@ohif/i18n": "3.8.0-beta.56", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.56", - "@ohif/mode-longitudinal": "3.8.0-beta.56", - "@ohif/mode-microscopy": "3.8.0-beta.56", - "@ohif/mode-test": "3.8.0-beta.56", - "@ohif/ui": "3.8.0-beta.56", + "@ohif/core": "3.8.0-beta.57", + "@ohif/extension-cornerstone": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.57", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", + "@ohif/extension-default": "3.8.0-beta.57", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.57", + "@ohif/extension-dicom-pdf": "3.8.0-beta.57", + "@ohif/extension-dicom-video": "3.8.0-beta.57", + "@ohif/extension-test": "3.8.0-beta.57", + "@ohif/i18n": "3.8.0-beta.57", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.57", + "@ohif/mode-longitudinal": "3.8.0-beta.57", + "@ohif/mode-microscopy": "3.8.0-beta.57", + "@ohif/mode-test": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.57", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 89b389be4..601497248 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 8a1f22974..8f158b6e0 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index c59cf05be..67b32b2fa 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/platform/core/package.json b/platform/core/package.json index c2717c498..8a6baf160 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 401b02736..0c14e60b1 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + + +### Bug Fixes + +* **docs:** Minor typos in hpModule.md ([#3962](https://github.com/OHIF/Viewers/issues/3962)) ([4cdfdae](https://github.com/OHIF/Viewers/commit/4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f)) + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 8ef62680d..9ba5420d4 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index c62e5f4ed..528016e4a 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 013fc8dd7..6bb65dce8 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index a9505c6f3..30ea86215 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.56](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.55...v3.8.0-beta.56) (2024-02-22) diff --git a/platform/ui/package.json b/platform/ui/package.json index 61f506eb4..e5c19e49c 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.56", + "version": "3.8.0-beta.57", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From bb603bd1f8a2ee1fd22292cf9977d96d2eeed718 Mon Sep 17 00:00:00 2001 From: EricB Date: Tue, 5 Mar 2024 17:04:28 +0100 Subject: [PATCH 180/289] docs: Typo (#3975) --- platform/docs/docs/configuration/dataSources/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/docs/docs/configuration/dataSources/introduction.md b/platform/docs/docs/configuration/dataSources/introduction.md index 5aad00949..2a0add515 100644 --- a/platform/docs/docs/configuration/dataSources/introduction.md +++ b/platform/docs/docs/configuration/dataSources/introduction.md @@ -5,7 +5,7 @@ sidebar_label: Introduction # Data Source -The internal data structure of OHIF’s metadata follows naturalized DICOM JSON, A +The internal data structure of OHIF’s metadata follows naturalized DICOM JSON, a format pioneered by `dcmjs`. In short DICOM metadata headers with DICOM Keywords instead of tags and sequences as arrays, for easy development and clear code. From df09176d63bf93b49affff8543cd6aae98abba00 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 5 Mar 2024 16:15:48 +0000 Subject: [PATCH 181/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 3768cbbee..58352a1d2 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f \ No newline at end of file +bb603bd1f8a2ee1fd22292cf9977d96d2eeed718 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a6913efb4..bc1ed8e69 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/i18n": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/i18n": "3.8.0-beta.58", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a74815177..efc0e47e6 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/i18n": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/i18n": "3.8.0-beta.58", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c6adc89e9..133fbb9d7 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-measurement-tracking": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-measurement-tracking": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index c4fbd28ee..ec9a53e69 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/core": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 170db909c..c3f40464c 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/i18n": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/i18n": "3.8.0-beta.58", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index dc8f23c87..8e38ed729 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/i18n": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/i18n": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 5e6598c3d..1542b0f2c 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index bb7b5492e..269873841 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b2208f97d..4378cf41f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.63.4", "@cornerstonejs/tools": "^1.63.4", - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c753e462e..a13a8cf3e 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2baf0fef9..fe0070c6e 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index ef75c0bd9..b702b25bf 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/extension-dicom-pdf": "3.8.0-beta.57", - "@ohif/extension-dicom-video": "3.8.0-beta.57" + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/extension-dicom-pdf": "3.8.0-beta.58", + "@ohif/extension-dicom-video": "3.8.0-beta.58" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 11577b7de..f3c33fcd3 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/extension-dicom-pdf": "3.8.0-beta.57", - "@ohif/extension-dicom-video": "3.8.0-beta.57", - "@ohif/extension-measurement-tracking": "3.8.0-beta.57", - "@ohif/extension-test": "3.8.0-beta.57" + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/extension-dicom-pdf": "3.8.0-beta.58", + "@ohif/extension-dicom-video": "3.8.0-beta.58", + "@ohif/extension-measurement-tracking": "3.8.0-beta.58", + "@ohif/extension-test": "3.8.0-beta.58" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 5440ca20a..e3d8deb30 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/extension-dicom-pdf": "3.8.0-beta.57", - "@ohif/extension-dicom-video": "3.8.0-beta.57", - "@ohif/extension-measurement-tracking": "3.8.0-beta.57" + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/extension-dicom-pdf": "3.8.0-beta.58", + "@ohif/extension-dicom-video": "3.8.0-beta.58", + "@ohif/extension-measurement-tracking": "3.8.0-beta.58" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 2da306c63..911f8afcd 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.57" + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.58" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index a09b780ae..7596a7f09 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57" + "@ohif/core": "3.8.0-beta.58" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index c26554878..3e036d08c 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/extension-dicom-pdf": "3.8.0-beta.57", - "@ohif/extension-dicom-video": "3.8.0-beta.57", - "@ohif/extension-measurement-tracking": "3.8.0-beta.57" + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/extension-dicom-pdf": "3.8.0-beta.58", + "@ohif/extension-dicom-video": "3.8.0-beta.58", + "@ohif/extension-measurement-tracking": "3.8.0-beta.58" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 8a6baf160..04be46a71 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.58", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 187cdec11..a574385bc 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.57", - "commit": "4cdfdae8149166cf9dc91a55c0d7f2a224e55d8f" + "version": "3.8.0-beta.58", + "commit": "bb603bd1f8a2ee1fd22292cf9977d96d2eeed718" } \ No newline at end of file diff --git a/version.txt b/version.txt index 096c862e9..c205450b0 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.57 \ No newline at end of file +3.8.0-beta.58 \ No newline at end of file From 5089229ff960d32f968ed2bab0d89f6fbaf4affa Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 5 Mar 2024 16:15:56 +0000 Subject: [PATCH 182/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e67c4b9f1..244b8adc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index efe133015..fdbf950d4 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index bc1ed8e69..f808e520a 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index e67353ec3..de87475a1 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index efc0e47e6..dae7deb17 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index bf6d02f3f..bac86e29e 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 133fbb9d7..e3ef67692 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index aa1cc914b..648a74b90 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index ec9a53e69..32d7e42d0 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 215e890bc..c9500e221 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index c3f40464c..5a2207f17 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 5cc0f1700..39e205138 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 8e38ed729..afbd0b249 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 2b4dcc3fa..4e8b14de0 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 1542b0f2c..8ea411e16 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e11a8ce01..eff8e5876 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 269873841..e46781e4d 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 804c7f938..bc08ba3d2 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 4378cf41f..17e0d85d2 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/ui": "3.8.0-beta.58", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 0e441dddc..65920dd69 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index a13a8cf3e..7c5da0fbf 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 69a49c505..b1d6c6565 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index fe0070c6e..907488906 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index f15f43101..e0a8603fd 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index fb243e3ed..9ee10f395 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index b702b25bf..99c558509 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 0b0703c7c..992b80245 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index f3c33fcd3..dc48f5e56 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 18f9bf537..df070442b 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e3d8deb30..028370572 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index a2847a6d0..3dbabfe77 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 911f8afcd..a21b0f7ea 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 995c9a4ea..29267c9fe 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 7596a7f09..d5b349fe9 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 0b627611a..63f38b39d 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 3e036d08c..de35595dd 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 6f6497b13..779c44cb6 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index a7e309945..6c73a694c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.57", - "@ohif/extension-cornerstone": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.57", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.57", - "@ohif/extension-default": "3.8.0-beta.57", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.57", - "@ohif/extension-dicom-pdf": "3.8.0-beta.57", - "@ohif/extension-dicom-video": "3.8.0-beta.57", - "@ohif/extension-test": "3.8.0-beta.57", - "@ohif/i18n": "3.8.0-beta.57", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.57", - "@ohif/mode-longitudinal": "3.8.0-beta.57", - "@ohif/mode-microscopy": "3.8.0-beta.57", - "@ohif/mode-test": "3.8.0-beta.57", - "@ohif/ui": "3.8.0-beta.57", + "@ohif/core": "3.8.0-beta.58", + "@ohif/extension-cornerstone": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.58", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", + "@ohif/extension-default": "3.8.0-beta.58", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.58", + "@ohif/extension-dicom-pdf": "3.8.0-beta.58", + "@ohif/extension-dicom-video": "3.8.0-beta.58", + "@ohif/extension-test": "3.8.0-beta.58", + "@ohif/i18n": "3.8.0-beta.58", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.58", + "@ohif/mode-longitudinal": "3.8.0-beta.58", + "@ohif/mode-microscopy": "3.8.0-beta.58", + "@ohif/mode-test": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.58", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 601497248..6e2567118 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 8f158b6e0..d861f8a80 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 67b32b2fa..da680108b 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 04be46a71..315b25d78 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 0c14e60b1..f9b57e2c0 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) diff --git a/platform/docs/package.json b/platform/docs/package.json index 9ba5420d4..44aa9b869 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 528016e4a..f13f359d4 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 6bb65dce8..27e6ac9ce 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 30ea86215..6f98cf0a0 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.57](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.56...v3.8.0-beta.57) (2024-02-28) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index e5c19e49c..54e5d4e50 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.57", + "version": "3.8.0-beta.58", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From e485d68fd4619ce7187113cbe59e47f9523dbcc8 Mon Sep 17 00:00:00 2001 From: EricB Date: Fri, 8 Mar 2024 14:27:37 +0100 Subject: [PATCH 183/289] fix(cli): mode creation template (#3876) (#3981) --- modes/longitudinal/src/index.js | 6 +++--- platform/cli/templates/mode/src/index.tsx | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 8cca53bc5..0d9be56af 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -1,10 +1,10 @@ import { hotkeys } from '@ohif/core'; -import toolbarButtons from './toolbarButtons'; +import i18n from 'i18next'; import { id } from './id'; import initToolGroups from './initToolGroups'; import moreTools from './moreTools'; import moreToolsMpr from './moreToolsMpr'; -import i18n from 'i18next'; +import toolbarButtons from './toolbarButtons'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. @@ -272,4 +272,4 @@ const mode = { }; export default mode; -export { initToolGroups, toolbarButtons }; +export { initToolGroups, moreTools, toolbarButtons }; diff --git a/platform/cli/templates/mode/src/index.tsx b/platform/cli/templates/mode/src/index.tsx index 2d63d1061..55be06039 100644 --- a/platform/cli/templates/mode/src/index.tsx +++ b/platform/cli/templates/mode/src/index.tsx @@ -1,6 +1,6 @@ import { hotkeys } from '@ohif/core'; +import { initToolGroups, moreTools, toolbarButtons } from '@ohif/mode-longitudinal'; import { id } from './id'; -import { initToolGroups, toolbarButtons } from '@ohif/mode-longitudinal'; const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', @@ -78,7 +78,7 @@ function modeFactory({ modeConfiguration }) { )); toolbarService.init(extensionManager); - toolbarService.addButtons(toolbarButtons); + toolbarService.addButtons([...toolbarButtons, ...moreTools]); toolbarService.createButtonSection('primary', [ 'MeasurementTools', 'Zoom', From ac474b7f8fbe396786ffd3414ef51d52547d9e30 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 8 Mar 2024 13:38:41 +0000 Subject: [PATCH 184/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 58352a1d2..475153e32 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -bb603bd1f8a2ee1fd22292cf9977d96d2eeed718 \ No newline at end of file +e485d68fd4619ce7187113cbe59e47f9523dbcc8 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index f808e520a..a72eec362 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/i18n": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/i18n": "3.8.0-beta.59", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index dae7deb17..3b4834242 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/i18n": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/i18n": "3.8.0-beta.59", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index e3ef67692..58712a193 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-measurement-tracking": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-measurement-tracking": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 32d7e42d0..b6eac95fe 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/core": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 5a2207f17..220d091c1 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/i18n": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/i18n": "3.8.0-beta.59", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index afbd0b249..4e8fd219f 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/i18n": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/i18n": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8ea411e16..d85efbb1b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index e46781e4d..7f7fafef7 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 17e0d85d2..31bdd49e6 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.63.4", "@cornerstonejs/tools": "^1.63.4", - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 7c5da0fbf..9bdc81d9c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 907488906..2df88e386 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 99c558509..002354028 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/extension-dicom-pdf": "3.8.0-beta.58", - "@ohif/extension-dicom-video": "3.8.0-beta.58" + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/extension-dicom-pdf": "3.8.0-beta.59", + "@ohif/extension-dicom-video": "3.8.0-beta.59" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index dc48f5e56..d6e4a442c 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/extension-dicom-pdf": "3.8.0-beta.58", - "@ohif/extension-dicom-video": "3.8.0-beta.58", - "@ohif/extension-measurement-tracking": "3.8.0-beta.58", - "@ohif/extension-test": "3.8.0-beta.58" + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/extension-dicom-pdf": "3.8.0-beta.59", + "@ohif/extension-dicom-video": "3.8.0-beta.59", + "@ohif/extension-measurement-tracking": "3.8.0-beta.59", + "@ohif/extension-test": "3.8.0-beta.59" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 028370572..534faaddc 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/extension-dicom-pdf": "3.8.0-beta.58", - "@ohif/extension-dicom-video": "3.8.0-beta.58", - "@ohif/extension-measurement-tracking": "3.8.0-beta.58" + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/extension-dicom-pdf": "3.8.0-beta.59", + "@ohif/extension-dicom-video": "3.8.0-beta.59", + "@ohif/extension-measurement-tracking": "3.8.0-beta.59" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index a21b0f7ea..501390f01 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.58" + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.59" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d5b349fe9..e5ec1aa6f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58" + "@ohif/core": "3.8.0-beta.59" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index de35595dd..633a720f0 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/extension-dicom-pdf": "3.8.0-beta.58", - "@ohif/extension-dicom-video": "3.8.0-beta.58", - "@ohif/extension-measurement-tracking": "3.8.0-beta.58" + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/extension-dicom-pdf": "3.8.0-beta.59", + "@ohif/extension-dicom-video": "3.8.0-beta.59", + "@ohif/extension-measurement-tracking": "3.8.0-beta.59" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 315b25d78..1bf07f958 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.59", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index a574385bc..b7a2ce82c 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.58", - "commit": "bb603bd1f8a2ee1fd22292cf9977d96d2eeed718" + "version": "3.8.0-beta.59", + "commit": "e485d68fd4619ce7187113cbe59e47f9523dbcc8" } \ No newline at end of file diff --git a/version.txt b/version.txt index c205450b0..865ba86ac 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.58 \ No newline at end of file +3.8.0-beta.59 \ No newline at end of file From 21ec6860f28cf9af859e4ad2e6b7085958a42286 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 8 Mar 2024 13:38:48 +0000 Subject: [PATCH 185/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 11 ++++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 242 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 244b8adc5..f11c61a22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + + +### Bug Fixes + +* **cli:** mode creation template ([#3876](https://github.com/OHIF/Viewers/issues/3876)) ([#3981](https://github.com/OHIF/Viewers/issues/3981)) ([e485d68](https://github.com/OHIF/Viewers/commit/e485d68fd4619ce7187113cbe59e47f9523dbcc8)) + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index fdbf950d4..71e06339b 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index a72eec362..2e28d7f57 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index de87475a1..0a6752f32 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 3b4834242..e64b11ff4 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index bac86e29e..ea50023e3 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 58712a193..be486e4ed 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 648a74b90..9f8cea1e4 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index b6eac95fe..51a422775 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index c9500e221..6a13e90c1 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 220d091c1..daa851a90 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 39e205138..96eb0f0a8 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 4e8fd219f..84e406e98 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 4e8b14de0..762afa42b 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index d85efbb1b..0b1bd2123 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index eff8e5876..c58ceb3c3 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 7f7fafef7..9f80ae3e9 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index bc08ba3d2..c5959655b 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 31bdd49e6..ad0d937bb 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/ui": "3.8.0-beta.59", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 65920dd69..420c15882 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 9bdc81d9c..07ab379f1 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index b1d6c6565..f5cc0f2a2 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2df88e386..e006469be 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index e0a8603fd..f9014f985 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 9ee10f395..425fb5158 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 002354028..e8e171a38 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 992b80245..9f8853fcc 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index d6e4a442c..dc5e6a0ea 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index df070442b..1d7492362 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + + +### Bug Fixes + +* **cli:** mode creation template ([#3876](https://github.com/OHIF/Viewers/issues/3876)) ([#3981](https://github.com/OHIF/Viewers/issues/3981)) ([e485d68](https://github.com/OHIF/Viewers/commit/e485d68fd4619ce7187113cbe59e47f9523dbcc8)) + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 534faaddc..5f6b4b1c9 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 3dbabfe77..9a04a547a 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 501390f01..16665e8d7 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 29267c9fe..0d8320fc9 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e5ec1aa6f..c9880f8fa 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 63f38b39d..7e9f27438 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 633a720f0..90ddbbecc 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 779c44cb6..a015c2c06 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 6c73a694c..4cc58db27 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.58", - "@ohif/extension-cornerstone": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.58", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.58", - "@ohif/extension-default": "3.8.0-beta.58", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.58", - "@ohif/extension-dicom-pdf": "3.8.0-beta.58", - "@ohif/extension-dicom-video": "3.8.0-beta.58", - "@ohif/extension-test": "3.8.0-beta.58", - "@ohif/i18n": "3.8.0-beta.58", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.58", - "@ohif/mode-longitudinal": "3.8.0-beta.58", - "@ohif/mode-microscopy": "3.8.0-beta.58", - "@ohif/mode-test": "3.8.0-beta.58", - "@ohif/ui": "3.8.0-beta.58", + "@ohif/core": "3.8.0-beta.59", + "@ohif/extension-cornerstone": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.59", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", + "@ohif/extension-default": "3.8.0-beta.59", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.59", + "@ohif/extension-dicom-pdf": "3.8.0-beta.59", + "@ohif/extension-dicom-video": "3.8.0-beta.59", + "@ohif/extension-test": "3.8.0-beta.59", + "@ohif/i18n": "3.8.0-beta.59", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.59", + "@ohif/mode-longitudinal": "3.8.0-beta.59", + "@ohif/mode-microscopy": "3.8.0-beta.59", + "@ohif/mode-test": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.59", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 6e2567118..cfef39ba6 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + + +### Bug Fixes + +* **cli:** mode creation template ([#3876](https://github.com/OHIF/Viewers/issues/3876)) ([#3981](https://github.com/OHIF/Viewers/issues/3981)) ([e485d68](https://github.com/OHIF/Viewers/commit/e485d68fd4619ce7187113cbe59e47f9523dbcc8)) + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index d861f8a80..1aed3c1d5 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index da680108b..18bcb9839 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 1bf07f958..ddb30776b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index f9b57e2c0..3a4716f1f 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 44aa9b869..1a283a03f 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index f13f359d4..99b13bf42 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 27e6ac9ce..df678c003 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 6f98cf0a0..a55a3b8d4 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.58](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.57...v3.8.0-beta.58) (2024-03-05) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 54e5d4e50..a663af7cf 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.58", + "version": "3.8.0-beta.59", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20H=2E=20K=C3=B6hler?= Date: Fri, 15 Mar 2024 10:35:29 -0300 Subject: [PATCH 186/289] feat(delete measurement): icon for measurement table (#3775) --- .../OHIFMeasurementPanel.spec.js | 2 +- .../MeasurementTable/MeasurementItem.tsx | 60 ++++++++++++------- .../MeasurementTable/MeasurementTable.tsx | 48 ++++++++------- platform/ui/src/components/index.js | 2 + platform/ui/src/index.js | 1 + 5 files changed, 70 insertions(+), 43 deletions(-) diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js index 623c58ec6..435915edf 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js @@ -31,7 +31,7 @@ describe('OHIF Measurement Panel', function () { cy.get('[data-cy="measurement-item"]').as('measurementItem').click(); - cy.get('[data-cy="measurement-item"]').find('svg').as('measurementItemSvg').click(); + cy.get('[data-cy="measurement-item"]').find('svg').eq(0).as('measurementItemSvg').click(); // enter Bone label cy.get('[data-cy="input-annotation"]').should('exist'); diff --git a/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx b/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx index 7e3bbeb2b..6126db1b7 100644 --- a/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx +++ b/platform/ui/src/components/MeasurementTable/MeasurementItem.tsx @@ -10,18 +10,23 @@ const MeasurementItem = ({ label, displayText, isActive, - isLocked, onClick, onEdit, - item, + onDelete, }) => { const [isHovering, setIsHovering] = useState(false); + const [isIndexHovering, setIsIndexHovering] = useState(false); const onEditHandler = event => { event.stopPropagation(); onEdit({ uid, isActive, event }); }; + const onDeleteHandler = event => { + event.stopPropagation(); + onDelete({ uid, isActive, event }); + }; + const onClickHandler = event => onClick({ uid, isActive, event }); const onMouseEnter = () => setIsHovering(true); @@ -47,10 +52,26 @@ const MeasurementItem = ({ 'bg-primary-light active text-black': isActive, 'bg-primary-dark text-primary-light group-hover:bg-secondary-main': !isActive, })} + onMouseEnter={() => setIsIndexHovering(true)} + onMouseLeave={() => setIsIndexHovering(false)} > - {index} + {isIndexHovering ? ( + + ) : ( + {index} + )}

    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 z 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%0AP@AdhgE)Y3) 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 |l68{rF!wL9XU>-=-dKQVQ0@fg;(=lJzA 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≈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

-
+
{label} {displayText.map((line, i) => ( ))} - {!isLocked && ( - - )} + onEditHandler(e)} + />
); @@ -88,6 +107,7 @@ MeasurementItem.propTypes = { isActive: PropTypes.bool, onClick: PropTypes.func, onEdit: PropTypes.func, + onDelete: PropTypes.func, }; MeasurementItem.defaultProps = { diff --git a/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx b/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx index bc6d23647..9905be0eb 100644 --- a/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx +++ b/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx @@ -8,7 +8,7 @@ import MeasurementItem from './MeasurementItem'; const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) => { servicesManager = servicesManager as ServicesManager; - const { customizationService } = servicesManager.services; + const { customizationService, measurementService } = servicesManager.services; const { t } = useTranslation('MeasurementTable'); const amount = data.length; @@ -17,8 +17,17 @@ const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) => contentProps: {}, }); const CustomMeasurementItem = itemCustomization.content; - const annotationManager = CsAnnotation.state.getAnnotationManager(); - const { locking } = CsAnnotation; + + const onMeasurementDeleteHandler = ({ uid }) => { + const measurement = measurementService.getMeasurement(uid); + measurementService.remove( + uid, + { + ...measurement, + }, + true + ); + }; return (
@@ -28,25 +37,20 @@ const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) =>
{data.length !== 0 && - data.map((measurementItem, index) => { - const isLocked = locking.isAnnotationLocked( - annotationManager.getAnnotation(measurementItem.uid) - ); - return ( - - ); - })} + data.map((measurementItem, index) => ( + + ))} {data.length === 0 && (
diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index b51bc92cf..c65728641 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -79,6 +79,7 @@ import PanelSection from './PanelSection'; import AdvancedToolbox from './AdvancedToolbox'; import InputDoubleRange from './InputDoubleRange'; import LegacyButtonGroup from './LegacyButtonGroup'; +import MeasurementItem from './MeasurementTable/MeasurementItem'; export { AboutModal, @@ -163,4 +164,5 @@ export { ViewportPane, ViewportOverlay, WindowLevelMenuItem, + MeasurementItem, }; diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index 69fc814fa..b1f57d0f2 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -117,6 +117,7 @@ export { WindowLevelMenuItem, ImageScrollbar, ViewportOverlay, + MeasurementItem, } from './components'; export { useSessionStorage } from './hooks'; From ed2234a67ca24a4eb3ea37b017d9c7fc772151df Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 15 Mar 2024 13:52:34 +0000 Subject: [PATCH 187/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 475153e32..91ed542df 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -e485d68fd4619ce7187113cbe59e47f9523dbcc8 \ No newline at end of file +f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 2e28d7f57..1dfe15cdc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/i18n": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/i18n": "3.8.0-beta.60", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index e64b11ff4..c26fe5ae2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/i18n": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/i18n": "3.8.0-beta.60", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index be486e4ed..dc2999ced 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-measurement-tracking": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-measurement-tracking": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 51a422775..06e2e51d2 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/core": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index daa851a90..8eec6e48d 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/i18n": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/i18n": "3.8.0-beta.60", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 84e406e98..6ad2e0a85 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/i18n": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/i18n": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 0b1bd2123..3d4a6dcd8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 9f80ae3e9..0e91fdd5a 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index ad0d937bb..fd4af1f0e 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.63.4", "@cornerstonejs/tools": "^1.63.4", - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 07ab379f1..451ca474d 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index e006469be..3dfde0c4d 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index e8e171a38..1acf5fe6c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/extension-dicom-pdf": "3.8.0-beta.59", - "@ohif/extension-dicom-video": "3.8.0-beta.59" + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/extension-dicom-pdf": "3.8.0-beta.60", + "@ohif/extension-dicom-video": "3.8.0-beta.60" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index dc5e6a0ea..ba4977b19 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/extension-dicom-pdf": "3.8.0-beta.59", - "@ohif/extension-dicom-video": "3.8.0-beta.59", - "@ohif/extension-measurement-tracking": "3.8.0-beta.59", - "@ohif/extension-test": "3.8.0-beta.59" + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/extension-dicom-pdf": "3.8.0-beta.60", + "@ohif/extension-dicom-video": "3.8.0-beta.60", + "@ohif/extension-measurement-tracking": "3.8.0-beta.60", + "@ohif/extension-test": "3.8.0-beta.60" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 5f6b4b1c9..7ee2c78c4 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/extension-dicom-pdf": "3.8.0-beta.59", - "@ohif/extension-dicom-video": "3.8.0-beta.59", - "@ohif/extension-measurement-tracking": "3.8.0-beta.59" + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/extension-dicom-pdf": "3.8.0-beta.60", + "@ohif/extension-dicom-video": "3.8.0-beta.60", + "@ohif/extension-measurement-tracking": "3.8.0-beta.60" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 16665e8d7..97570368c 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.59" + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.60" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index c9880f8fa..73ccdebdf 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59" + "@ohif/core": "3.8.0-beta.60" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 90ddbbecc..e2c8b88ff 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/extension-dicom-pdf": "3.8.0-beta.59", - "@ohif/extension-dicom-video": "3.8.0-beta.59", - "@ohif/extension-measurement-tracking": "3.8.0-beta.59" + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/extension-dicom-pdf": "3.8.0-beta.60", + "@ohif/extension-dicom-video": "3.8.0-beta.60", + "@ohif/extension-measurement-tracking": "3.8.0-beta.60" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index ddb30776b..3a2c0bc4c 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.63.4", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.60", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index b7a2ce82c..4e660de34 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.59", - "commit": "e485d68fd4619ce7187113cbe59e47f9523dbcc8" + "version": "3.8.0-beta.60", + "commit": "f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870" } \ No newline at end of file diff --git a/version.txt b/version.txt index 865ba86ac..d2b66d276 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.59 \ No newline at end of file +3.8.0-beta.60 \ No newline at end of file From 08815909c707044b66a86757e5955af3ba116448 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 15 Mar 2024 13:52:45 +0000 Subject: [PATCH 188/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 242 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f11c61a22..063b2ba55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + + +### Features + +* **delete measurement:** icon for measurement table ([#3775](https://github.com/OHIF/Viewers/issues/3775)) ([f7fe91c](https://github.com/OHIF/Viewers/commit/f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870)) + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 71e06339b..41cad75f1 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 1dfe15cdc..530f8ce67 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 0a6752f32..c1cb3e787 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index c26fe5ae2..506511f41 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index ea50023e3..fc809bb47 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index dc2999ced..cef94db8b 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 9f8cea1e4..12cbe56d8 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 06e2e51d2..47f2ac25b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 6a13e90c1..8976c4ad6 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 8eec6e48d..3f292fbc9 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 96eb0f0a8..c8318c4de 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 6ad2e0a85..191183457 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 762afa42b..fc99f3749 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 3d4a6dcd8..463ed8cc7 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index c58ceb3c3..460161139 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 0e91fdd5a..01a7bbca4 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index c5959655b..459a088d8 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index fd4af1f0e..8a1bb8ba2 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/ui": "3.8.0-beta.60", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 420c15882..b42bb5bee 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 451ca474d..54c9954ff 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index f5cc0f2a2..83724132b 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 3dfde0c4d..7bbe3f84f 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index f9014f985..24241281b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 425fb5158..5202212a2 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 1acf5fe6c..ccda78816 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 9f8853fcc..d65db5987 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index ba4977b19..1078e4aca 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 1d7492362..8adbaf08e 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7ee2c78c4..734554178 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 9a04a547a..bfadff3bb 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 97570368c..584ea5dfd 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 0d8320fc9..dc4b52371 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 73ccdebdf..479136446 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 7e9f27438..63299dac9 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index e2c8b88ff..b418241c8 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index a015c2c06..f4e6cc8ae 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + + +### Features + +* **delete measurement:** icon for measurement table ([#3775](https://github.com/OHIF/Viewers/issues/3775)) ([f7fe91c](https://github.com/OHIF/Viewers/commit/f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870)) + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 4cc58db27..c687a8d4c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.59", - "@ohif/extension-cornerstone": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.59", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.59", - "@ohif/extension-default": "3.8.0-beta.59", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.59", - "@ohif/extension-dicom-pdf": "3.8.0-beta.59", - "@ohif/extension-dicom-video": "3.8.0-beta.59", - "@ohif/extension-test": "3.8.0-beta.59", - "@ohif/i18n": "3.8.0-beta.59", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.59", - "@ohif/mode-longitudinal": "3.8.0-beta.59", - "@ohif/mode-microscopy": "3.8.0-beta.59", - "@ohif/mode-test": "3.8.0-beta.59", - "@ohif/ui": "3.8.0-beta.59", + "@ohif/core": "3.8.0-beta.60", + "@ohif/extension-cornerstone": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.60", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", + "@ohif/extension-default": "3.8.0-beta.60", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.60", + "@ohif/extension-dicom-pdf": "3.8.0-beta.60", + "@ohif/extension-dicom-video": "3.8.0-beta.60", + "@ohif/extension-test": "3.8.0-beta.60", + "@ohif/i18n": "3.8.0-beta.60", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.60", + "@ohif/mode-longitudinal": "3.8.0-beta.60", + "@ohif/mode-microscopy": "3.8.0-beta.60", + "@ohif/mode-test": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.60", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index cfef39ba6..2c88f7e5a 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) diff --git a/platform/cli/package.json b/platform/cli/package.json index 1aed3c1d5..d156eef33 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 18bcb9839..190e44c76 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 3a2c0bc4c..a553cd90b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 3a4716f1f..f2587511d 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 1a283a03f..d769524d9 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 99b13bf42..a2168366c 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index df678c003..6ed3f6660 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index a55a3b8d4..e4f38bc9b 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) + + +### Features + +* **delete measurement:** icon for measurement table ([#3775](https://github.com/OHIF/Viewers/issues/3775)) ([f7fe91c](https://github.com/OHIF/Viewers/commit/f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870)) + + + + + # [3.8.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.58...v3.8.0-beta.59) (2024-03-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index a663af7cf..f10b0fd8b 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.59", + "version": "3.8.0-beta.60", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From feed2304c124dc2facc7a7371ed9851548c223c5 Mon Sep 17 00:00:00 2001 From: Alireza Date: Mon, 18 Mar 2024 14:27:17 -0400 Subject: [PATCH 189/289] fix(SR display): and the token based navigation (#3995) --- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +-- extensions/cornerstone/package.json | 10 ++-- extensions/measurement-tracking/package.json | 4 +- platform/app/package.json | 2 +- platform/app/src/routes/Mode/Mode.tsx | 2 +- platform/core/package.json | 2 +- yarn.lock | 47 ++++++++++--------- 8 files changed, 39 insertions(+), 38 deletions(-) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 506511f41..bc90d3c68 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.63.4", - "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/adapters": "^1.66.7", + "@cornerstonejs/core": "^1.66.7", "@kitware/vtk.js": "29.7.0", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index cef94db8b..9d6b3e341 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.63.4", - "@cornerstonejs/core": "^1.63.4", - "@cornerstonejs/tools": "^1.63.4", + "@cornerstonejs/adapters": "^1.66.7", + "@cornerstonejs/core": "^1.66.7", + "@cornerstonejs/tools": "^1.66.7", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 47f2ac25b..314c31ec9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.63.4", + "@cornerstonejs/dicom-image-loader": "^1.66.7", "@ohif/core": "3.8.0-beta.60", "@ohif/ui": "3.8.0-beta.60", "dcmjs": "^0.29.12", @@ -54,10 +54,10 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.63.4", - "@cornerstonejs/core": "^1.63.4", - "@cornerstonejs/streaming-image-volume-loader": "^1.63.4", - "@cornerstonejs/tools": "^1.63.4", + "@cornerstonejs/adapters": "^1.66.7", + "@cornerstonejs/core": "^1.66.7", + "@cornerstonejs/streaming-image-volume-loader": "^1.66.7", + "@cornerstonejs/tools": "^1.66.7", "@kitware/vtk.js": "29.7.0", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 8a1bb8ba2..93ce73d56 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.63.4", - "@cornerstonejs/tools": "^1.63.4", + "@cornerstonejs/core": "^1.66.7", + "@cornerstonejs/tools": "^1.66.7", "@ohif/core": "3.8.0-beta.60", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", "@ohif/ui": "3.8.0-beta.60", diff --git a/platform/app/package.json b/platform/app/package.json index c687a8d4c..bbb7fb904 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -53,7 +53,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.63.4", + "@cornerstonejs/dicom-image-loader": "^1.66.7", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.60", "@ohif/extension-cornerstone": "3.8.0-beta.60", diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index ecbe7677a..0b2b65bab 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -202,7 +202,7 @@ export default function ModeRoute({ }); // Create a URL object with the current location - const urlObj = new URL(window.location.origin + location.pathname + location.search); + const urlObj = new URL(window.location.origin + window.location.pathname + location.search); // Remove the token from the URL object urlObj.searchParams.delete('token'); diff --git a/platform/core/package.json b/platform/core/package.json index a553cd90b..384853919 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.63.4", + "@cornerstonejs/dicom-image-loader": "^1.66.7", "@ohif/ui": "3.8.0-beta.60", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/yarn.lock b/yarn.lock index 7c0f8ea99..56e93ccba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1485,12 +1485,13 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.63.4": - version "1.63.4" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.63.4.tgz#c43fcbb5217d09a4aaa3ecdbd5feb58d1283f486" - integrity sha512-HC1OGFEbveAd+Bs7UHDVBSK1XL187EsJqXkuDe5A1tlCUKoA2MCW/lX1sraW/0Z6Gm9GVzGnkVtRMBxYd96ENg== +"@cornerstonejs/adapters@^1.66.7": + version "1.66.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.66.7.tgz#924b9a1f00f56c986d9d175d12a182855e6af70b" + integrity sha512-HGEd39YOAe3jkTSyZhan3VY7QkQhMwMiYhqiREJpqWIyOLhCo25NTuMm8X6VIOpUvBGdE1dKyYlZrkANqF1CJQ== dependencies: "@babel/runtime-corejs2" "^7.17.8" + "@cornerstonejs/tools" "^1.66.7" buffer "^6.0.3" dcmjs "^0.29.8" gl-matrix "^3.4.3" @@ -1537,10 +1538,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.63.4": - version "1.63.4" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.63.4.tgz#0d324e0df130854d0f6c24137b8e60053e0af3b4" - integrity sha512-l/7u1THn2pYq97QMBm8uy/kQWUEIlbq7rzdP6u1lSs8yDqK/f6zSQjNrvB/D6vRiVKnHVIlByxbbmEY46JQHmQ== +"@cornerstonejs/core@^1.66.7": + version "1.66.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.66.7.tgz#57d0adcc67d95f93fc86848c2a05b9c57545b287" + integrity sha512-GOhV4fw9c0zm+7oH6q69otPYYEHI90hyMqJ0S/AWLwV7AwDuIRuRts3VELG5mSx4ju7zJalsO0Jfpvg3gPsW5w== dependencies: "@kitware/vtk.js" "29.7.0" comlink "^4.4.1" @@ -1548,34 +1549,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.63.4": - version "1.63.4" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.63.4.tgz#6827cb9d3d840dcd6a798e884a169adcc6bba311" - integrity sha512-agnRjhIBFiYQ6gQTjHmio+DG79OTaNXU3NbEVVxWdahqR1MnJBX39FT+1mi+8AhbN9sH2f+IpB4MoqraNFetLw== +"@cornerstonejs/dicom-image-loader@^1.66.7": + version "1.66.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.66.7.tgz#a35095908554e8e7ad717aab7652be7376d5305d" + integrity sha512-z8Nq3A+h+9oSjTqxPVyUm9Y3GV2PgPZJOGP0yYTyuEUqVnV3A9w5eB0/q84HGDaXF0ZsT4Y1J4Y3oOmKodb9lA== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.63.4" + "@cornerstonejs/core" "^1.66.7" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.63.4": - version "1.63.4" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.63.4.tgz#37ba9de488d5472c3dd98f85698a854c97b4b29f" - integrity sha512-GoxxmQVeHVZntFFwVwOp/fttgTrzXBwH08gk6JDjhHhmh22Ci7P137hG8o54uA6dv0/W572em60SrIzvjB4Xwg== +"@cornerstonejs/streaming-image-volume-loader@^1.66.7": + version "1.66.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.66.7.tgz#6261df726b5400db1785c7378ee2e27018b3574c" + integrity sha512-2Ihz+6sUJ6AzKhF1o4yaDGeS1ZOZdmBlMEztMruJelLWWu/gb42i58chINB7UDmAxS/atvf22UvVNPGvW9cHDw== dependencies: - "@cornerstonejs/core" "^1.63.4" + "@cornerstonejs/core" "^1.66.7" comlink "^4.4.1" -"@cornerstonejs/tools@^1.63.4": - version "1.63.4" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.63.4.tgz#4f85cf77bda97738ff05ef9184cf68e617f1631c" - integrity sha512-LDoqShwi0b6kEGqnfY3pUrK4nExS9lqhXFvWew6wH9znUyEIVhGexBXNYDb3E2Gy13d4drtjsM+PXFt7c0PecQ== +"@cornerstonejs/tools@^1.66.7": + version "1.66.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.66.7.tgz#bc0bb71b6b33761a91ca116d542e39807de14d82" + integrity sha512-NKTkwWsVzyE62nYa1ljXkzDgVcbqZxsMeRDhtpMaWkVOK06FrClu2xvLfVM8Rz2AXF4Zsqcp0Rg0D6Z4U3g38Q== dependencies: - "@cornerstonejs/core" "^1.63.4" + "@cornerstonejs/core" "^1.66.7" "@icr/polyseg-wasm" "0.4.0" "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1" From 88859f75d53ffdf35ce45a5ff0d370cd570efda2 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 18 Mar 2024 18:38:16 +0000 Subject: [PATCH 190/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 91ed542df..2149a8fea 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870 \ No newline at end of file +feed2304c124dc2facc7a7371ed9851548c223c5 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 530f8ce67..e452a2a09 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/i18n": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/i18n": "3.8.0-beta.61", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index bc90d3c68..a477a7771 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/i18n": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/i18n": "3.8.0-beta.61", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9d6b3e341..0a978dfcd 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-measurement-tracking": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-measurement-tracking": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 314c31ec9..e0bfb6456 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", - "@ohif/core": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 3f292fbc9..f4c3c028a 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/i18n": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/i18n": "3.8.0-beta.61", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 191183457..6abc3bffa 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/i18n": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/i18n": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 463ed8cc7..12cf4bc5b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 01a7bbca4..c3b85422b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 93ce73d56..61ed726c6 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.66.7", "@cornerstonejs/tools": "^1.66.7", - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 54c9954ff..73163c560 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 7bbe3f84f..adf034aa8 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index ccda78816..62354bb39 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/extension-dicom-pdf": "3.8.0-beta.60", - "@ohif/extension-dicom-video": "3.8.0-beta.60" + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/extension-dicom-pdf": "3.8.0-beta.61", + "@ohif/extension-dicom-video": "3.8.0-beta.61" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 1078e4aca..96fd44c57 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/extension-dicom-pdf": "3.8.0-beta.60", - "@ohif/extension-dicom-video": "3.8.0-beta.60", - "@ohif/extension-measurement-tracking": "3.8.0-beta.60", - "@ohif/extension-test": "3.8.0-beta.60" + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/extension-dicom-pdf": "3.8.0-beta.61", + "@ohif/extension-dicom-video": "3.8.0-beta.61", + "@ohif/extension-measurement-tracking": "3.8.0-beta.61", + "@ohif/extension-test": "3.8.0-beta.61" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 734554178..8eca3f409 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/extension-dicom-pdf": "3.8.0-beta.60", - "@ohif/extension-dicom-video": "3.8.0-beta.60", - "@ohif/extension-measurement-tracking": "3.8.0-beta.60" + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/extension-dicom-pdf": "3.8.0-beta.61", + "@ohif/extension-dicom-video": "3.8.0-beta.61", + "@ohif/extension-measurement-tracking": "3.8.0-beta.61" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 584ea5dfd..9750cb016 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.60" + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.61" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 479136446..e0f8fc5de 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60" + "@ohif/core": "3.8.0-beta.61" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index b418241c8..ceb34bf3d 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/extension-dicom-pdf": "3.8.0-beta.60", - "@ohif/extension-dicom-video": "3.8.0-beta.60", - "@ohif/extension-measurement-tracking": "3.8.0-beta.60" + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/extension-dicom-pdf": "3.8.0-beta.61", + "@ohif/extension-dicom-video": "3.8.0-beta.61", + "@ohif/extension-measurement-tracking": "3.8.0-beta.61" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 384853919..6a9866edc 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.61", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 4e660de34..4479d5f7e 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.60", - "commit": "f7fe91c5f6c4f05f3f3f5f640d3a119bd40a5870" + "version": "3.8.0-beta.61", + "commit": "feed2304c124dc2facc7a7371ed9851548c223c5" } \ No newline at end of file diff --git a/version.txt b/version.txt index d2b66d276..3399e29ec 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.60 \ No newline at end of file +3.8.0-beta.61 \ No newline at end of file From 6b79dff5c1cc6a8f3e0c5f79f35007098ee250f8 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 18 Mar 2024 18:38:23 +0000 Subject: [PATCH 191/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 254 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 063b2ba55..3e55a25db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 41cad75f1..d70b40dbc 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e452a2a09..7ed040aff 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index c1cb3e787..7d36be019 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a477a7771..4ae8a6194 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index fc809bb47..8dba8d6dc 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 0a978dfcd..a3b8bd124 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 12cbe56d8..14589a90d 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e0bfb6456..fb75fd935 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 8976c4ad6..e92b98e0a 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index f4c3c028a..a943cbace 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index c8318c4de..0075b5589 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 6abc3bffa..7f984fefb 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index fc99f3749..0b91f2818 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 12cf4bc5b..0d64f3937 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 460161139..958825989 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index c3b85422b..e01490ac5 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 459a088d8..2cfac599a 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 61ed726c6..6a3da1ed9 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/ui": "3.8.0-beta.61", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index b42bb5bee..a97ea5d4a 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 73163c560..5c7310911 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 83724132b..d9d031f9f 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index adf034aa8..7098c85c3 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 24241281b..7201ac1d4 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 5202212a2..b046b46e2 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 62354bb39..f348d3c3a 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index d65db5987..a01394d48 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 96fd44c57..2397916c3 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 8adbaf08e..1ef55b934 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 8eca3f409..044d0c1c1 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index bfadff3bb..b2eba784b 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 9750cb016..d677f4b8e 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index dc4b52371..e2ef9df6e 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e0f8fc5de..a607178e6 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 63299dac9..7065a1c9b 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index ceb34bf3d..85e6c8ad1 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index f4e6cc8ae..ec00b5885 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) diff --git a/platform/app/package.json b/platform/app/package.json index bbb7fb904..1afe7653a 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.66.7", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.60", - "@ohif/extension-cornerstone": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.60", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.60", - "@ohif/extension-default": "3.8.0-beta.60", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.60", - "@ohif/extension-dicom-pdf": "3.8.0-beta.60", - "@ohif/extension-dicom-video": "3.8.0-beta.60", - "@ohif/extension-test": "3.8.0-beta.60", - "@ohif/i18n": "3.8.0-beta.60", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.60", - "@ohif/mode-longitudinal": "3.8.0-beta.60", - "@ohif/mode-microscopy": "3.8.0-beta.60", - "@ohif/mode-test": "3.8.0-beta.60", - "@ohif/ui": "3.8.0-beta.60", + "@ohif/core": "3.8.0-beta.61", + "@ohif/extension-cornerstone": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.61", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", + "@ohif/extension-default": "3.8.0-beta.61", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.61", + "@ohif/extension-dicom-pdf": "3.8.0-beta.61", + "@ohif/extension-dicom-video": "3.8.0-beta.61", + "@ohif/extension-test": "3.8.0-beta.61", + "@ohif/i18n": "3.8.0-beta.61", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.61", + "@ohif/mode-longitudinal": "3.8.0-beta.61", + "@ohif/mode-microscopy": "3.8.0-beta.61", + "@ohif/mode-test": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.61", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 2c88f7e5a..5e710a0da 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index d156eef33..c2a091e20 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 190e44c76..3c722cc17 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + + +### Bug Fixes + +* **SR display:** and the token based navigation ([#3995](https://github.com/OHIF/Viewers/issues/3995)) ([feed230](https://github.com/OHIF/Viewers/commit/feed2304c124dc2facc7a7371ed9851548c223c5)) + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 6a9866edc..4b64295f0 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index f2587511d..9794b6728 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index d769524d9..d4759f843 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index a2168366c..7b767296e 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 6ed3f6660..f2f6ce1be 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index e4f38bc9b..55a55a2e3 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.59...v3.8.0-beta.60) (2024-03-15) diff --git a/platform/ui/package.json b/platform/ui/package.json index f10b0fd8b..6050fa12c 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.60", + "version": "3.8.0-beta.61", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 9bcd1ae6f51d61786cc1e99624f396b56a47cd69 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Mon, 18 Mar 2024 20:27:12 -0400 Subject: [PATCH 192/289] feat(worklist): New worklist buttons and tooltips (#3989) --- modes/basic-dev-mode/src/index.js | 16 ++++-- modes/basic-test-mode/src/index.ts | 12 ++++- modes/longitudinal/src/index.js | 12 ++++- modes/microscopy/src/index.tsx | 10 ++-- modes/segmentation/src/index.tsx | 11 +++-- modes/tmtv/src/index.js | 9 +++- platform/app/public/config/default.js | 1 + platform/app/src/routes/WorkList/WorkList.tsx | 49 +++++++++++++++---- platform/cli/templates/mode/src/index.tsx | 4 ++ platform/ui/src/assets/icons/launch-arrow.svg | 6 +-- platform/ui/src/assets/icons/launch-info.svg | 9 ++-- platform/ui/src/components/Button/Button.tsx | 15 ++++-- .../StudyListTable/StudyListTableRow.tsx | 2 +- 13 files changed, 120 insertions(+), 36 deletions(-) diff --git a/modes/basic-dev-mode/src/index.js b/modes/basic-dev-mode/src/index.js index 01513492f..bcedc4aca 100644 --- a/modes/basic-dev-mode/src/index.js +++ b/modes/basic-dev-mode/src/index.js @@ -133,8 +133,15 @@ function modeFactory({ modeConfiguration }) { ]); }, onModeExit: ({ servicesManager }) => { - const { toolGroupService, measurementService, toolbarService } = servicesManager.services; - + const { + toolGroupService, + measurementService, + toolbarService, + uiDialogService, + uiModalService, + } = servicesManager.services; + uiDialogService.dismissAll(); + uiModalService.hide(); toolGroupService.destroy(); }, validationTags: { @@ -145,7 +152,10 @@ function modeFactory({ modeConfiguration }) { const modalities_list = modalities.split('\\'); // Slide Microscopy modality not supported by basic mode yet - return !modalities_list.includes('SM'); + return { + valid: !modalities_list.includes('SM'), + description: 'The mode does not support the following modalities: SM', + }; }, routes: [ { diff --git a/modes/basic-test-mode/src/index.ts b/modes/basic-test-mode/src/index.ts index 1c4342179..a6e9d0827 100644 --- a/modes/basic-test-mode/src/index.ts +++ b/modes/basic-test-mode/src/index.ts @@ -143,8 +143,12 @@ function modeFactory() { syncGroupService, segmentationService, cornerstoneViewportService, + uiDialogService, + uiModalService, } = servicesManager.services; + uiDialogService.dismissAll(); + uiModalService.hide(); toolGroupService.destroy(); syncGroupService.destroy(); segmentationService.destroy(); @@ -159,8 +163,12 @@ function modeFactory() { const modalities_list = modalities.split('\\'); // Exclude non-image modalities - return !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1) - .length; + return { + valid: !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1) + .length, + description: + 'The mode does not support studies that ONLY include the following modalities: SM, ECG, SR, SEG', + }; }, routes: [ { diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 0d9be56af..571d6a5f6 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -179,11 +179,15 @@ function modeFactory({ modeConfiguration }) { toolbarService, segmentationService, cornerstoneViewportService, + uiDialogService, + uiModalService, } = servicesManager.services; _activatePanelTriggersSubscriptions.forEach(sub => sub.unsubscribe()); _activatePanelTriggersSubscriptions = []; + uiDialogService.dismissAll(); + uiModalService.hide(); toolGroupService.destroy(); syncGroupService.destroy(); segmentationService.destroy(); @@ -198,8 +202,12 @@ function modeFactory({ modeConfiguration }) { const modalities_list = modalities.split('\\'); // Exclude non-image modalities - return !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1) - .length; + return { + valid: !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1) + .length, + description: + 'The mode does not support studies that ONLY include the following modalities: SM, ECG, SR, SEG, RTSTRUCT', + }; }, routes: [ { diff --git a/modes/microscopy/src/index.tsx b/modes/microscopy/src/index.tsx index 7165b7cc3..557ec00d0 100644 --- a/modes/microscopy/src/index.tsx +++ b/modes/microscopy/src/index.tsx @@ -56,8 +56,10 @@ function modeFactory({ modeConfiguration }) { }, onModeExit: ({ servicesManager }) => { - const { toolbarService } = servicesManager.services; + const { toolbarService, uiDialogService, uiModalService } = servicesManager.services; + uiDialogService.dismissAll(); + uiModalService.hide(); toolbarService.reset(); }, @@ -69,8 +71,10 @@ function modeFactory({ modeConfiguration }) { isValidMode: ({ modalities }) => { const modalities_list = modalities.split('\\'); - // Slide Microscopy and ECG modality not supported by basic mode yet - return modalities_list.includes('SM'); + return { + valid: modalities_list.includes('SM'), + description: 'Microscopy mode only supports the SM modality', + }; }, routes: [ diff --git a/modes/segmentation/src/index.tsx b/modes/segmentation/src/index.tsx index 8b24196f1..57b46c603 100644 --- a/modes/segmentation/src/index.tsx +++ b/modes/segmentation/src/index.tsx @@ -106,8 +106,12 @@ function modeFactory({ modeConfiguration }) { toolbarService, segmentationService, cornerstoneViewportService, + uiDialogService, + uiModalService, } = servicesManager.services; + uiDialogService.dismissAll(); + uiModalService.hide(); toolGroupService.destroy(); syncGroupService.destroy(); segmentationService.destroy(); @@ -127,11 +131,10 @@ function modeFactory({ modeConfiguration }) { // Don't show the mode if the selected studies have only one modality // that is not supported by the mode const modalitiesArray = modalities.split('\\'); - if (modalitiesArray.length === 1) { - return !['SM', 'US', 'MG', 'OT', 'DOC', 'CR'].includes(modalitiesArray[0]); + return { + valid: modalitiesArray.length === 1 ? !['SM', 'US', 'MG', 'OT', 'DOC', 'CR'].includes(modalitiesArray[0]) : true, + description: 'The mode does not support studies that ONLY include the following modalities: SM, US, MG, OT, DOC, CR', } - - return true; }, /** * Mode Routes are used to define the mode's behavior. A list of Mode Route diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index dd57be35e..b21a37582 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -165,9 +165,13 @@ function modeFactory({ modeConfiguration }) { syncGroupService, segmentationService, cornerstoneViewportService, + uiDialogService, + uiModalService, } = servicesManager.services; unsubscriptions.forEach(unsubscribe => unsubscribe()); + uiDialogService.dismissAll(); + uiModalService.hide(); toolGroupService.destroy(); syncGroupService.destroy(); segmentationService.destroy(); @@ -193,7 +197,10 @@ function modeFactory({ modeConfiguration }) { study.studyInstanceUid !== '1.3.6.1.4.1.12842.1.1.14.3.20220915.105557.468.2963630849'; // there should be both CT and PT modalities and the modality should not be SM - return isValid; + return { + valid: isValid, + description: 'The mode requires both PT and CT series in the study', + }; }, routes: [ { diff --git a/platform/app/public/config/default.js b/platform/app/public/config/default.js index 00013529e..88f7b872e 100644 --- a/platform/app/public/config/default.js +++ b/platform/app/public/config/default.js @@ -12,6 +12,7 @@ window.config = { showCPUFallbackMessage: true, showLoadingIndicator: true, strictZSpacingForVolumeViewport: true, + groupEnabledModesFirst: true, maxNumRequests: { interaction: 100, thumbnail: 75, diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index ae518a296..50cfccf29 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -27,6 +27,8 @@ import { UserPreferences, LoadingIndicatorProgress, useSessionStorage, + Button, + ButtonEnums, } from '@ohif/ui'; import i18n from '@ohif/i18n'; @@ -254,11 +256,13 @@ function WorkList({ const studyDate = date && moment(date, ['YYYYMMDD', 'YYYY.MM.DD'], true).isValid() && - moment(date, ['YYYYMMDD', 'YYYY.MM.DD']).format(t('Common:localDateFormat','MMM-DD-YYYY')); + moment(date, ['YYYYMMDD', 'YYYY.MM.DD']).format(t('Common:localDateFormat', 'MMM-DD-YYYY')); const studyTime = time && moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).isValid() && - moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format(t('Common:localTimeFormat', 'hh:mm A')); + moment(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format( + t('Common:localTimeFormat', 'hh:mm A') + ); return { dataCY: `studyRow-${studyInstanceUid}`, @@ -346,10 +350,24 @@ function WorkList({ } >
- {appConfig.loadedModes.map((mode, i) => { + {(appConfig.groupEnabledModesFirst + ? appConfig.loadedModes.sort((a, b) => { + const isValidA = a.isValidMode({ + modalities: modalities.replaceAll('/', '\\'), + study, + }).valid; + const isValidB = b.isValidMode({ + modalities: modalities.replaceAll('/', '\\'), + study, + }).valid; + + return isValidB - isValidA; + }) + : appConfig.loadedModes + ).map((mode, i) => { const modalitiesToCheck = modalities.replaceAll('/', '\\'); - const isValidMode = mode.isValidMode({ + const { valid: isValidMode, description: invalidModeDescription } = mode.isValidMode({ modalities: modalitiesToCheck, study, }); @@ -382,16 +400,29 @@ function WorkList({ // to={`${mode.routeName}/dicomweb?StudyInstanceUIDs=${studyInstanceUid}`} > {/* TODO revisit the completely rounded style of buttons used for launching a mode from the worklist later - for now use LegacyButton*/} - } // launch-arrow | launch-info + startIconTooltip={ + !isValidMode ? ( +
+ {invalidModeDescription} +
+ ) : null + } + startIcon={ + + } // launch-arrow | launch-info onClick={() => {}} data-cy={`mode-${mode.routeName}-${studyInstanceUid}`} + className={isValidMode ? 'text-[13px]' : 'bg-[#222d44] text-[13px]'} > {mode.displayName} -
+ ) ); diff --git a/platform/cli/templates/mode/src/index.tsx b/platform/cli/templates/mode/src/index.tsx index 55be06039..e129a9a05 100644 --- a/platform/cli/templates/mode/src/index.tsx +++ b/platform/cli/templates/mode/src/index.tsx @@ -98,8 +98,12 @@ function modeFactory({ modeConfiguration }) { toolbarService, segmentationService, cornerstoneViewportService, + uiDialogService, + uiModalService, } = servicesManager.services; + uiDialogService.dismissAll(); + uiModalService.hide(); toolGroupService.destroy(); syncGroupService.destroy(); segmentationService.destroy(); diff --git a/platform/ui/src/assets/icons/launch-arrow.svg b/platform/ui/src/assets/icons/launch-arrow.svg index da4b7827f..0f55172d8 100644 --- a/platform/ui/src/assets/icons/launch-arrow.svg +++ b/platform/ui/src/assets/icons/launch-arrow.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/platform/ui/src/assets/icons/launch-info.svg b/platform/ui/src/assets/icons/launch-info.svg index f4f14e4c8..6e999dc35 100644 --- a/platform/ui/src/assets/icons/launch-info.svg +++ b/platform/ui/src/assets/icons/launch-info.svg @@ -1,7 +1,8 @@ - - - - + + + + + diff --git a/platform/ui/src/components/Button/Button.tsx b/platform/ui/src/components/Button/Button.tsx index fb13927c6..b1e750c5c 100644 --- a/platform/ui/src/components/Button/Button.tsx +++ b/platform/ui/src/components/Button/Button.tsx @@ -2,6 +2,7 @@ import React, { useRef } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import * as ButtonEnums from './ButtonEnums'; +import Tooltip from '../Tooltip/Tooltip'; const sizeClasses = { [ButtonEnums.size.small]: 'h-[26px] text-[13px]', @@ -66,11 +67,13 @@ const Button = ({ name, className, onClick, + startIconTooltip = null, + endIconTooltip = null, }) => { const startIcon = startIconProp && ( <> {React.cloneElement(startIconProp, { - className: classnames('w-4 h-4 fill-current'), + className: classnames('w-4 h-4 fill-current', startIconProp?.props?.className), })} ); @@ -78,7 +81,7 @@ const Button = ({ const endIcon = endIconProp && ( <> {React.cloneElement(endIconProp, { - className: classnames('w-4 h-4 fill-current'), + className: classnames('w-4 h-4 fill-current', endIconProp?.props?.className), })} ); @@ -108,9 +111,9 @@ const Button = ({ onClick={handleOnClick} data-cy={`${name}-btn`} > - {startIcon} + {startIconTooltip ? {startIcon} : startIcon} {children} - {endIcon} + {endIconTooltip ? {endIcon} : endIcon} ); }; @@ -141,6 +144,10 @@ Button.propTypes = { endIcon: PropTypes.node, /** Additional TailwindCSS classnames */ className: PropTypes.string, + /** Tooltip for the start icon */ + startIconTooltip: PropTypes.node, + /** Tooltip for the end icon */ + endIconTooltip: PropTypes.node, }; export default Button; diff --git a/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx b/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx index 2235f277d..4a3fa6f93 100644 --- a/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx +++ b/platform/ui/src/components/StudyListTable/StudyListTableRow.tsx @@ -23,7 +23,7 @@ const StudyListTableRow = props => { className={classnames( 'w-full transition duration-300', { - 'border-primary-light hover:border-secondary-light mb-2 overflow-hidden rounded border': + 'border-primary-light hover:border-secondary-light mb-2 overflow-visible rounded border': isExpanded, }, { From 345b137bec6a67aa48cb26e88cf9c9483389aa6b Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 19 Mar 2024 00:37:48 +0000 Subject: [PATCH 193/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 2149a8fea..887e140a6 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -feed2304c124dc2facc7a7371ed9851548c223c5 \ No newline at end of file +9bcd1ae6f51d61786cc1e99624f396b56a47cd69 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 7ed040aff..eb6f11fb7 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/i18n": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/i18n": "3.8.0-beta.62", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4ae8a6194..ae40d89a3 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/i18n": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/i18n": "3.8.0-beta.62", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index a3b8bd124..403f8d543 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-measurement-tracking": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-measurement-tracking": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index fb75fd935..aaf099b6e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", - "@ohif/core": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index a943cbace..23a67ab8b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/i18n": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/i18n": "3.8.0-beta.62", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 7f984fefb..d699185e5 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/i18n": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/i18n": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 0d64f3937..20c25feb8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index e01490ac5..8f86faee7 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6a3da1ed9..a33596d83 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.66.7", "@cornerstonejs/tools": "^1.66.7", - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 5c7310911..66bbf8128 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 7098c85c3..c7ab19235 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index f348d3c3a..3fa273997 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/extension-dicom-pdf": "3.8.0-beta.61", - "@ohif/extension-dicom-video": "3.8.0-beta.61" + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/extension-dicom-pdf": "3.8.0-beta.62", + "@ohif/extension-dicom-video": "3.8.0-beta.62" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 2397916c3..0bb8259aa 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/extension-dicom-pdf": "3.8.0-beta.61", - "@ohif/extension-dicom-video": "3.8.0-beta.61", - "@ohif/extension-measurement-tracking": "3.8.0-beta.61", - "@ohif/extension-test": "3.8.0-beta.61" + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/extension-dicom-pdf": "3.8.0-beta.62", + "@ohif/extension-dicom-video": "3.8.0-beta.62", + "@ohif/extension-measurement-tracking": "3.8.0-beta.62", + "@ohif/extension-test": "3.8.0-beta.62" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 044d0c1c1..be20a5228 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/extension-dicom-pdf": "3.8.0-beta.61", - "@ohif/extension-dicom-video": "3.8.0-beta.61", - "@ohif/extension-measurement-tracking": "3.8.0-beta.61" + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/extension-dicom-pdf": "3.8.0-beta.62", + "@ohif/extension-dicom-video": "3.8.0-beta.62", + "@ohif/extension-measurement-tracking": "3.8.0-beta.62" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index d677f4b8e..4cb48d2a2 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.61" + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.62" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index a607178e6..b860fe987 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61" + "@ohif/core": "3.8.0-beta.62" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 85e6c8ad1..82705d272 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/extension-dicom-pdf": "3.8.0-beta.61", - "@ohif/extension-dicom-video": "3.8.0-beta.61", - "@ohif/extension-measurement-tracking": "3.8.0-beta.61" + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/extension-dicom-pdf": "3.8.0-beta.62", + "@ohif/extension-dicom-video": "3.8.0-beta.62", + "@ohif/extension-measurement-tracking": "3.8.0-beta.62" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 4b64295f0..d81cc5349 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.62", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 4479d5f7e..353bf207f 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.61", - "commit": "feed2304c124dc2facc7a7371ed9851548c223c5" + "version": "3.8.0-beta.62", + "commit": "9bcd1ae6f51d61786cc1e99624f396b56a47cd69" } \ No newline at end of file diff --git a/version.txt b/version.txt index 3399e29ec..51292cb66 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.61 \ No newline at end of file +3.8.0-beta.62 \ No newline at end of file From d70aae3233ffcf7d7fbc62f7ba5c925b70015299 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 19 Mar 2024 00:37:56 +0000 Subject: [PATCH 194/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 11 ++++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 11 ++++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 11 ++++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 263 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e55a25db..da28cb5f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index d70b40dbc..1ecf9f8fa 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index eb6f11fb7..0647767af 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 7d36be019..441bce778 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ae40d89a3..a0bafa4bc 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 8dba8d6dc..652cb4b51 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 403f8d543..575fe5826 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 14589a90d..cb56d8130 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index aaf099b6e..c9e135a8d 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index e92b98e0a..5d6d42f6f 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 23a67ab8b..8d9cdbdeb 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 0075b5589..18c778fe8 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index d699185e5..e1bbdc47f 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 0b91f2818..ecf86bbda 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 20c25feb8..eb1b89db8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 958825989..e9705bee7 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 8f86faee7..78c346a38 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 2cfac599a..7c104bda1 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index a33596d83..6d09e1f22 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/ui": "3.8.0-beta.62", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index a97ea5d4a..91f86effd 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 66bbf8128..0c5369f81 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index d9d031f9f..284e871db 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c7ab19235..9b455412f 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 7201ac1d4..5ffe39416 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index b046b46e2..6e32eb3ac 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 3fa273997..3a6db237c 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index a01394d48..16a35a759 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 0bb8259aa..8d62a1068 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 1ef55b934..50c771764 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index be20a5228..4790e1ee3 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index b2eba784b..05a9fd2fe 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 4cb48d2a2..001036531 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index e2ef9df6e..45b0e3dbe 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index b860fe987..da5c9ce3f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 7065a1c9b..66977ebaf 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 82705d272..7258569f4 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index ec00b5885..62c2fcfaf 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/platform/app/package.json b/platform/app/package.json index 1afe7653a..404f4c399 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.66.7", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.61", - "@ohif/extension-cornerstone": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.61", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.61", - "@ohif/extension-default": "3.8.0-beta.61", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.61", - "@ohif/extension-dicom-pdf": "3.8.0-beta.61", - "@ohif/extension-dicom-video": "3.8.0-beta.61", - "@ohif/extension-test": "3.8.0-beta.61", - "@ohif/i18n": "3.8.0-beta.61", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.61", - "@ohif/mode-longitudinal": "3.8.0-beta.61", - "@ohif/mode-microscopy": "3.8.0-beta.61", - "@ohif/mode-test": "3.8.0-beta.61", - "@ohif/ui": "3.8.0-beta.61", + "@ohif/core": "3.8.0-beta.62", + "@ohif/extension-cornerstone": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.62", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", + "@ohif/extension-default": "3.8.0-beta.62", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.62", + "@ohif/extension-dicom-pdf": "3.8.0-beta.62", + "@ohif/extension-dicom-video": "3.8.0-beta.62", + "@ohif/extension-test": "3.8.0-beta.62", + "@ohif/i18n": "3.8.0-beta.62", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.62", + "@ohif/mode-longitudinal": "3.8.0-beta.62", + "@ohif/mode-microscopy": "3.8.0-beta.62", + "@ohif/mode-test": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.62", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 5e710a0da..20e28a05e 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index c2a091e20..258f54e82 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 3c722cc17..9bb69d2cc 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) diff --git a/platform/core/package.json b/platform/core/package.json index d81cc5349..692655da2 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 9794b6728..02ad92b53 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index d4759f843..51b3223b6 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 7b767296e..51a411ad5 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index f2f6ce1be..6492e097f 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 55a55a2e3..b03b37c0c 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) + + +### Features + +* **worklist:** New worklist buttons and tooltips ([#3989](https://github.com/OHIF/Viewers/issues/3989)) ([9bcd1ae](https://github.com/OHIF/Viewers/commit/9bcd1ae6f51d61786cc1e99624f396b56a47cd69)) + + + + + # [3.8.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.60...v3.8.0-beta.61) (2024-03-18) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 6050fa12c..99ff5bec1 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.61", + "version": "3.8.0-beta.62", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:33:24 -0400 Subject: [PATCH 195/289] feat(worklist): new investigational use text (#3999) --- extensions/default/src/ViewerLayout/index.tsx | 9 +- platform/app/src/routes/WorkList/WorkList.tsx | 2 + .../docs/configuration/configurationFiles.md | 2 + .../illustration-investigational-use.svg | 20 ++++ platform/ui/src/components/Header/Header.tsx | 1 - platform/ui/src/components/Icon/getIcon.js | 7 ++ .../InvestigationalUseDialog.tsx | 108 ++++++++++++++++++ .../InvestigationalUseDialog/index.js | 3 + platform/ui/src/components/index.js | 2 + platform/ui/src/index.js | 1 + 10 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 platform/ui/src/assets/icons/illustration-investigational-use.svg create mode 100644 platform/ui/src/components/InvestigationalUseDialog/InvestigationalUseDialog.tsx create mode 100644 platform/ui/src/components/InvestigationalUseDialog/index.js diff --git a/extensions/default/src/ViewerLayout/index.tsx b/extensions/default/src/ViewerLayout/index.tsx index e045bca33..a71caeb2f 100644 --- a/extensions/default/src/ViewerLayout/index.tsx +++ b/extensions/default/src/ViewerLayout/index.tsx @@ -1,7 +1,12 @@ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; -import { SidePanel, ErrorBoundary, LoadingIndicatorProgress } from '@ohif/ui'; +import { + SidePanel, + ErrorBoundary, + LoadingIndicatorProgress, + InvestigationalUseDialog, +} from '@ohif/ui'; import { ServicesManager, HangingProtocolService, CommandsManager } from '@ohif/core'; import { useAppConfig } from '@state'; import ViewerHeader from './ViewerHeader'; @@ -152,6 +157,8 @@ function ViewerLayout({ ) : null}
+ +
); } diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index 50cfccf29..05a5e0994 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -27,6 +27,7 @@ import { UserPreferences, LoadingIndicatorProgress, useSessionStorage, + InvestigationalUseDialog, Button, ButtonEnums, } from '@ohif/ui'; @@ -527,6 +528,7 @@ function WorkList({ isReturnEnabled={false} WhiteLabeling={appConfig.whiteLabeling} /> +
100 ? 101 : numOfStudies} diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index 71ba36b06..959e8d5ae 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -122,6 +122,8 @@ Here are a list of some options available: decoding. Defaults to minimum of `navigator.hardwareConcurrency` and what is specified by `maxNumberOfWebWorkers`. Some windows machines require smaller values. - `acceptHeader` : accept header to request specific dicom transfer syntax ex : [ 'multipart/related; type=image/jls; q=1', 'multipart/related; type=application/octet-stream; q=0.1' ] +- `investigationalUseDialog`: This should contain an object with `option` value, it can be either `always` which always shows the dialog once per session, `never` which never shows the dialog, or `configure` which shows the dialog once and won't show it again until a set number of days defined by the user, if it's set to configure, you are required to add an additional property `days` which is the number of days to wait before showing the dialog again. +- `groupEnabled`: boolean, if set to true, all valid modes for the study get grouped together first, then the rest of the modes. If false, all modes are shown in the order they are defined in the configuration. - `requestTransferSyntaxUID` : Request a specific Transfer syntax from dicom web server ex: 1.2.840.10008.1.2.4.80 (applied only if acceptHeader is not set) - `omitQuotationForMultipartRequest`: Some servers (e.g., .NET) require the `multipart/related` request to be sent without quotation marks. Defaults to `false`. If your server doesn't require this, then setting this flag to `true` might improve performance (by removing the need for preflight requests). Also note that if auth headers are used, a preflight request is required. diff --git a/platform/ui/src/assets/icons/illustration-investigational-use.svg b/platform/ui/src/assets/icons/illustration-investigational-use.svg new file mode 100644 index 000000000..5ca03db68 --- /dev/null +++ b/platform/ui/src/assets/icons/illustration-investigational-use.svg @@ -0,0 +1,20 @@ + + + illustration-investigational-use + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/components/Header/Header.tsx b/platform/ui/src/components/Header/Header.tsx index 3bf7a6926..18fdbabc4 100644 --- a/platform/ui/src/components/Header/Header.tsx +++ b/platform/ui/src/components/Header/Header.tsx @@ -58,7 +58,6 @@ function Header({
{children}
- {t('INVESTIGATIONAL USE ONLY')} { + const { option, days } = dialogConfiguration; + const [isHidden, setIsHidden] = useState(true); + + useEffect(() => { + const dialogLocalState = localStorage.getItem('investigationalUseDialog'); + const dialogSessionState = sessionStorage.getItem('investigationalUseDialog'); + + switch (option) { + case showDialogOption.NeverShowDialog: + setIsHidden(true); + break; + case showDialogOption.AlwaysShowDialog: + setIsHidden(!!dialogSessionState); + break; + case showDialogOption.ShowOnceAndConfigure: + if (dialogLocalState) { + const { expiryDate } = JSON.parse(dialogLocalState); + const isExpired = new Date() > new Date(expiryDate); + setIsHidden(!isExpired); + } else { + setIsHidden(false); + } + break; + default: + setIsHidden(true); + } + }, [option, days]); + + const handleConfirmAndHide = () => { + const expiryDate = new Date(); + + switch (option) { + case showDialogOption.ShowOnceAndConfigure: + expiryDate.setDate(expiryDate.getDate() + days); + localStorage.setItem('investigationalUseDialog', JSON.stringify({ expiryDate })); + break; + case showDialogOption.AlwaysShowDialog: + sessionStorage.setItem('investigationalUseDialog', 'hidden'); + break; + } + setIsHidden(true); + }; + + if (isHidden) { + return null; + } + + return ( +
+
+
+ +
+
+ OHIF Viewer is{' '} + for investigational use only +
+
+ window.open('https://ohif.org/', '_blank')} + > + Learn more about OHIF Viewer + +
+
+
+ +
+
+ ); +}; + +InvestigationalUseDialog.propTypes = { + dialogConfiguration: PropTypes.shape({ + option: PropTypes.oneOf(Object.values(showDialogOption)).isRequired, + days: PropTypes.number, + }).isRequired, +}; + +InvestigationalUseDialog.defaultProps = { + dialogConfiguration: { + option: showDialogOption.AlwaysShowDialog, + }, +}; + +export default InvestigationalUseDialog; diff --git a/platform/ui/src/components/InvestigationalUseDialog/index.js b/platform/ui/src/components/InvestigationalUseDialog/index.js new file mode 100644 index 000000000..4d9c6d5ce --- /dev/null +++ b/platform/ui/src/components/InvestigationalUseDialog/index.js @@ -0,0 +1,3 @@ +import InvestigationalUseDialog from './InvestigationalUseDialog'; + +export default InvestigationalUseDialog; diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index c65728641..11cc227ac 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -79,6 +79,7 @@ import PanelSection from './PanelSection'; import AdvancedToolbox from './AdvancedToolbox'; import InputDoubleRange from './InputDoubleRange'; import LegacyButtonGroup from './LegacyButtonGroup'; +import InvestigationalUseDialog from './InvestigationalUseDialog'; import MeasurementItem from './MeasurementTable/MeasurementItem'; export { @@ -164,5 +165,6 @@ export { ViewportPane, ViewportOverlay, WindowLevelMenuItem, + InvestigationalUseDialog, MeasurementItem, }; diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index b1f57d0f2..0ae27d0df 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -117,6 +117,7 @@ export { WindowLevelMenuItem, ImageScrollbar, ViewportOverlay, + InvestigationalUseDialog, MeasurementItem, } from './components'; From f47a94317d4eca869db83644e4216f7d52f52215 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 25 Mar 2024 15:44:04 +0000 Subject: [PATCH 196/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 2 +- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commit.txt b/commit.txt index 887e140a6..232a3ecff 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -9bcd1ae6f51d61786cc1e99624f396b56a47cd69 \ No newline at end of file +45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 0647767af..327e54ba5 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/i18n": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/i18n": "3.8.0-beta.63", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a0bafa4bc..46bdb754e 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/i18n": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/i18n": "3.8.0-beta.63", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 575fe5826..b0915fb43 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-measurement-tracking": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-measurement-tracking": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index c9e135a8d..8a2330fd9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,8 +39,8 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", - "@ohif/core": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 8d9cdbdeb..7e25ef0c3 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/i18n": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/i18n": "3.8.0-beta.63", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index e1bbdc47f..a9713ec42 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/i18n": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/i18n": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index eb1b89db8..3a12624d0 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 78c346a38..e7dd26b9e 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 6d09e1f22..e03dbff84 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.66.7", "@cornerstonejs/tools": "^1.66.7", - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 0c5369f81..eb1e99e1c 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 9b455412f..3aa6466e3 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 3a6db237c..69a2509ba 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/extension-dicom-pdf": "3.8.0-beta.62", - "@ohif/extension-dicom-video": "3.8.0-beta.62" + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/extension-dicom-pdf": "3.8.0-beta.63", + "@ohif/extension-dicom-video": "3.8.0-beta.63" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 8d62a1068..f40ee5c73 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/extension-dicom-pdf": "3.8.0-beta.62", - "@ohif/extension-dicom-video": "3.8.0-beta.62", - "@ohif/extension-measurement-tracking": "3.8.0-beta.62", - "@ohif/extension-test": "3.8.0-beta.62" + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/extension-dicom-pdf": "3.8.0-beta.63", + "@ohif/extension-dicom-video": "3.8.0-beta.63", + "@ohif/extension-measurement-tracking": "3.8.0-beta.63", + "@ohif/extension-test": "3.8.0-beta.63" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 4790e1ee3..b379fd40a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/extension-dicom-pdf": "3.8.0-beta.62", - "@ohif/extension-dicom-video": "3.8.0-beta.62", - "@ohif/extension-measurement-tracking": "3.8.0-beta.62" + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/extension-dicom-pdf": "3.8.0-beta.63", + "@ohif/extension-dicom-video": "3.8.0-beta.63", + "@ohif/extension-measurement-tracking": "3.8.0-beta.63" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 001036531..65e83fe03 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.62" + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.63" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index da5c9ce3f..fe65c9b2b 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,7 +35,7 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62" + "@ohif/core": "3.8.0-beta.63" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 7258569f4..e8f64439d 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/extension-dicom-pdf": "3.8.0-beta.62", - "@ohif/extension-dicom-video": "3.8.0-beta.62", - "@ohif/extension-measurement-tracking": "3.8.0-beta.62" + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/extension-dicom-pdf": "3.8.0-beta.63", + "@ohif/extension-dicom-video": "3.8.0-beta.63", + "@ohif/extension-measurement-tracking": "3.8.0-beta.63" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 692655da2..c5dca59f7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.63", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 353bf207f..631b45673 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.62", - "commit": "9bcd1ae6f51d61786cc1e99624f396b56a47cd69" + "version": "3.8.0-beta.63", + "commit": "45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e" } \ No newline at end of file diff --git a/version.txt b/version.txt index 51292cb66..774ead7a6 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.62 \ No newline at end of file +3.8.0-beta.63 \ No newline at end of file From 79d5c36bdab9575ab0db6d2e848f7a7c39de0b48 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 25 Mar 2024 15:44:13 +0000 Subject: [PATCH 197/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 248 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da28cb5f2..9dfe4e7cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + + +### Features + +* **worklist:** new investigational use text ([#3999](https://github.com/OHIF/Viewers/issues/3999)) ([45b68e8](https://github.com/OHIF/Viewers/commit/45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e)) + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 1ecf9f8fa..bd338ecca 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 327e54ba5..716e896be 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 441bce778..a3f5888be 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 46bdb754e..7509d990c 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 652cb4b51..80fe5f1bf 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index b0915fb43..b90cc5d04 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index cb56d8130..6521d0c4c 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 8a2330fd9..5058a1ca5 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 5d6d42f6f..99fe32e28 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + + +### Features + +* **worklist:** new investigational use text ([#3999](https://github.com/OHIF/Viewers/issues/3999)) ([45b68e8](https://github.com/OHIF/Viewers/commit/45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e)) + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 7e25ef0c3..eea63dc94 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 18c778fe8..0ba0abff9 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index a9713ec42..10698707a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index ecf86bbda..726c31597 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 3a12624d0..5b453a3f7 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e9705bee7..20d3682e5 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index e7dd26b9e..e3b577cf9 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 7c104bda1..649087d82 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index e03dbff84..5130bd805 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/ui": "3.8.0-beta.63", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 91f86effd..637b462c1 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index eb1e99e1c..856c0603b 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 284e871db..8a6d0131e 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 3aa6466e3..3ae17b799 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 5ffe39416..0a9449d47 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 6e32eb3ac..d1e41de63 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 69a2509ba..ff9261a23 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 16a35a759..ff45c20be 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index f40ee5c73..93ee108be 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 50c771764..a90471196 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index b379fd40a..5aeb54370 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 05a9fd2fe..4ee733710 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 65e83fe03..73acf5d4d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 45b0e3dbe..b00368bc9 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index fe65c9b2b..73ebdf75c 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 66977ebaf..af3615fe0 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index e8f64439d..5de8682ac 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 62c2fcfaf..937bc4fca 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + + +### Features + +* **worklist:** new investigational use text ([#3999](https://github.com/OHIF/Viewers/issues/3999)) ([45b68e8](https://github.com/OHIF/Viewers/commit/45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e)) + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/platform/app/package.json b/platform/app/package.json index 404f4c399..a8becf57c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.66.7", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.62", - "@ohif/extension-cornerstone": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.62", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.62", - "@ohif/extension-default": "3.8.0-beta.62", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.62", - "@ohif/extension-dicom-pdf": "3.8.0-beta.62", - "@ohif/extension-dicom-video": "3.8.0-beta.62", - "@ohif/extension-test": "3.8.0-beta.62", - "@ohif/i18n": "3.8.0-beta.62", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.62", - "@ohif/mode-longitudinal": "3.8.0-beta.62", - "@ohif/mode-microscopy": "3.8.0-beta.62", - "@ohif/mode-test": "3.8.0-beta.62", - "@ohif/ui": "3.8.0-beta.62", + "@ohif/core": "3.8.0-beta.63", + "@ohif/extension-cornerstone": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.63", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.63", + "@ohif/extension-default": "3.8.0-beta.63", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.63", + "@ohif/extension-dicom-pdf": "3.8.0-beta.63", + "@ohif/extension-dicom-video": "3.8.0-beta.63", + "@ohif/extension-test": "3.8.0-beta.63", + "@ohif/i18n": "3.8.0-beta.63", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.63", + "@ohif/mode-longitudinal": "3.8.0-beta.63", + "@ohif/mode-microscopy": "3.8.0-beta.63", + "@ohif/mode-test": "3.8.0-beta.63", + "@ohif/ui": "3.8.0-beta.63", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 20e28a05e..ffce01bcf 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/platform/cli/package.json b/platform/cli/package.json index 258f54e82..c7a92e0f7 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 9bb69d2cc..c0f3d4eb5 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index c5dca59f7..5815387cf 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 02ad92b53..1c5fe7069 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + + +### Features + +* **worklist:** new investigational use text ([#3999](https://github.com/OHIF/Viewers/issues/3999)) ([45b68e8](https://github.com/OHIF/Viewers/commit/45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e)) + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 51b3223b6..f105dd704 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 51a411ad5..9e91bdff3 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 6492e097f..e9a34a080 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index b03b37c0c..2577883cb 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.62...v3.8.0-beta.63) (2024-03-25) + + +### Features + +* **worklist:** new investigational use text ([#3999](https://github.com/OHIF/Viewers/issues/3999)) ([45b68e8](https://github.com/OHIF/Viewers/commit/45b68e841dcb9e28a2ea991c37ee7ac4a8c5b71e)) + + + + + # [3.8.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.61...v3.8.0-beta.62) (2024-03-19) diff --git a/platform/ui/package.json b/platform/ui/package.json index 99ff5bec1..7c48a16c9 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.62", + "version": "3.8.0-beta.63", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 566b25a54425399096864bd263193646556011a5 Mon Sep 17 00:00:00 2001 From: Alireza Date: Wed, 27 Mar 2024 16:01:32 -0400 Subject: [PATCH 198/289] feat(toolbar): new Toolbar to enable reactive state synchronization (#3983) --- .circleci/config.yml | 2 +- .github/workflows/codespell.yml | 22 - .../src/commandsModule.ts | 67 + .../src/getPanelModule.tsx | 15 +- .../src/getToolbarModule.ts | 65 + .../cornerstone-dicom-seg/src/index.tsx | 6 +- extensions/cornerstone-dicom-seg/src/init.ts | 2 +- .../src/panels/SegmentationToolbox.tsx | 425 ---- .../src/commandsModule.js | 4 - extensions/cornerstone/package.json | 1 + .../src/Viewport/OHIFCornerstoneViewport.tsx | 2 + .../Overlays/CustomizableViewportOverlay.tsx | 394 ++- .../src/Viewport/Overlays/ViewportOverlay.tsx | 278 -- extensions/cornerstone/src/commandsModule.ts | 203 +- .../src/components/CinePlayer/CinePlayer.tsx | 73 +- .../cornerstone/src/getToolbarModule.tsx | 251 ++ extensions/cornerstone/src/hps/mpr.ts | 5 - extensions/cornerstone/src/index.tsx | 3 +- extensions/cornerstone/src/init.tsx | 104 +- .../SegmentationService.ts | 5 +- .../SyncGroupService/SyncGroupService.ts | 50 +- .../ToolGroupService/ToolGroupService.ts | 13 - .../CornerstoneViewportService.ts | 7 +- .../utils/CornerstoneViewportDownloadForm.tsx | 2 +- .../imageSliceSync/toggleImageSliceSync.ts | 29 +- .../src/utils/toggleVOISliceSync.ts | 94 + .../ContextMenuController.tsx | 1 - .../ContextMenuItemsBuilder.ts | 2 - .../src/Panels/getImageSrcFromImageId.js | 5 + extensions/default/src/Toolbar/Toolbar.tsx | 82 +- .../ToolbarButtonGroupWithServices.tsx | 35 + .../src/Toolbar/ToolbarButtonWithServices.tsx | 75 - .../src/Toolbar/ToolbarLayoutSelector.tsx | 33 +- .../ToolbarSplitButtonWithServices.tsx | 141 +- .../default/src/ViewerLayout/ViewerHeader.tsx | 2 +- extensions/default/src/ViewerLayout/index.tsx | 16 +- extensions/default/src/commandsModule.ts | 80 +- .../default/src/getCustomizationModule.tsx | 4 +- extensions/default/src/getToolbarModule.tsx | 62 +- extensions/default/src/init.ts | 54 +- .../src/DicomMicroscopyViewport.tsx | 11 - .../dicom-microscopy/src/getCommandsModule.ts | 12 +- extensions/dicom-microscopy/src/index.tsx | 46 +- .../src/services/MicroscopyService.ts | 4 + extensions/dicom-pdf/src/index.tsx | 12 - extensions/dicom-video/src/index.tsx | 13 - .../getImageSrcFromImageId.js | 6 + .../viewports/TrackedCornerstoneViewport.tsx | 8 +- extensions/tmtv/src/Panels/PanelPetSUV.tsx | 23 +- extensions/tmtv/src/commandsModule.js | 32 - extensions/tmtv/src/init.js | 3 +- modes/basic-dev-mode/src/index.js | 33 +- modes/basic-dev-mode/src/toolbarButtons.js | 441 ++-- modes/basic-test-mode/src/index.ts | 52 +- modes/basic-test-mode/src/moreTools.ts | 355 ++- modes/basic-test-mode/src/moreToolsMpr.ts | 142 -- modes/basic-test-mode/src/toolbarButtons.ts | 382 +-- modes/longitudinal/src/index.js | 64 +- modes/longitudinal/src/initToolGroups.js | 9 +- modes/longitudinal/src/moreTools.ts | 422 ++- modes/longitudinal/src/moreToolsMpr.ts | 242 -- modes/longitudinal/src/toolbarButtons.ts | 315 +-- modes/microscopy/src/index.tsx | 1 - modes/microscopy/src/toolbarButtons.js | 194 +- modes/segmentation/src/index.tsx | 37 +- modes/segmentation/src/initToolGroups.ts | 12 +- modes/segmentation/src/segmentationButtons.ts | 195 ++ modes/segmentation/src/toolbarButtons.ts | 318 +-- modes/tmtv/src/index.js | 37 +- modes/tmtv/src/initToolGroups.js | 1 + modes/tmtv/src/toolbarButtons.js | 284 +-- .../OHIFCornerstoneToolbar.spec.js | 64 +- .../OHIFGeneralViewer.spec.js | 2 +- .../cypress/integration/volume/MPR.spec.js | 10 +- platform/app/cypress/support/commands.js | 2 +- platform/app/public/config/e2e.js | 3 + platform/app/src/App.tsx | 2 + platform/app/src/appInit.js | 2 + platform/app/src/components/ViewportGrid.tsx | 19 +- platform/app/src/routes/Mode/Mode.tsx | 263 +- .../app/src/routes/Mode/defaultRouteInit.ts | 129 + .../Mode/updateAuthServiceAndCleanUrl.ts | 35 + platform/app/src/routes/WorkList/WorkList.tsx | 2 +- platform/cli/templates/mode/src/index.tsx | 32 +- .../core/src/classes/CommandsManager.test.js | 2 - platform/core/src/classes/CommandsManager.ts | 36 +- platform/core/src/classes/HotkeysManager.ts | 8 - .../src/extensions/ExtensionManager.test.js | 1 - .../core/src/extensions/ExtensionManager.ts | 145 +- platform/core/src/hooks/useToolbar.tsx | 58 + platform/core/src/index.test.js | 1 + platform/core/src/index.ts | 3 + .../src/services/CineService/CineService.ts | 148 +- .../CustomizationService.ts | 6 +- .../MeasurementService/MeasurementService.ts | 17 +- platform/core/src/services/ServicesManager.ts | 9 + .../services/ToolBarService/ToolbarService.ts | 635 ++--- .../core/src/services/ToolBarService/types.ts | 43 + .../ViewportGridService.ts | 25 + platform/core/src/services/index.ts | 4 +- platform/core/src/types/Command.ts | 4 +- .../assets/img/reference-lines-from-start.png | Bin 0 -> 452046 bytes .../docs/docs/assets/img/toolbox-modal.png | Bin 0 -> 669748 bytes platform/docs/docs/migration-guide.md | 1 - .../platform/extensions/modules/toolbar.md | 551 ++-- .../docs/platform/managers/_category_.json | 2 +- .../docs/docs/platform/modes/_category_.json | 2 +- platform/docs/docs/platform/modes/index.md | 5 + .../docs/docs/platform/modes/lifecycle.md | 1 - .../docs/platform/services/_category_.json | 2 +- .../services/data/SyncGroupService.md | 147 ++ .../services/data/ToolGroupService.md | 89 + .../platform/services/data/ToolbarService.md | 376 +-- .../services/ui/viewport-grid-service.md | 2 + platform/ui/.storybook/main.ts | 8 + .../ui/src/assets/icons/icon-tool-brush.svg | 16 +- .../ui/src/assets/icons/icon-tool-eraser.svg | 18 +- .../ui/src/assets/icons/icon-tool-shape.svg | 16 +- .../src/assets/icons/icon-tool-threshold.svg | 26 +- .../{tool-elipse.svg => tool-ellipse.svg} | 0 .../AdvancedToolbox/AdvancedToolbox.tsx | 4 + .../AdvancedToolbox/ToolSettings.tsx | 157 +- .../src/components/AdvancedToolbox/index.js | 2 + platform/ui/src/components/Button/Button.tsx | 7 +- .../components/ButtonGroup/ButtonGroup.tsx | 55 +- .../__stories__/buttonGroup.stories.mdx | 39 +- platform/ui/src/components/Header/Header.tsx | 15 +- platform/ui/src/components/Icon/getIcon.js | 4 +- .../src/components/IconButton/IconButton.tsx | 39 +- .../LegacySplitButton/LegacySplitButton.tsx | 170 ++ .../src/components/LegacySplitButton/index.js | 2 + .../ui/src/components/ListMenu/ListMenu.tsx | 15 +- platform/ui/src/components/NavBar/NavBar.tsx | 3 +- .../SegmentationGroupSegment.tsx | 2 +- .../ui/src/components/SidePanel/SidePanel.tsx | 34 +- .../components/SplitButton/SplitButton.tsx | 107 +- .../__stories__/splitButton.stories.mdx | 4 +- .../ui/src/components/Thumbnail/Thumbnail.tsx | 2 +- .../ThumbnailTracked/ThumbnailTracked.tsx | 14 +- .../ToolbarButton/ToolbarButton.tsx | 55 +- .../ui/src/components/Toolbox/Toolbox.tsx | 109 + .../ui/src/components/Toolbox/ToolboxUI.tsx | 92 + platform/ui/src/components/Toolbox/index.js | 3 + .../ui/src/components/Tooltip/Tooltip.tsx | 18 +- .../ViewportOverlay/ViewportOverlay.tsx | 18 +- platform/ui/src/components/index.js | 6 + .../ui/src/contextProviders/CineProvider.tsx | 2 +- .../contextProviders/ImageViewerProvider.tsx | 17 +- .../Toolbox/ToolboxContext.tsx | 106 + .../Toolbox/toolboxReducer.ts | 66 + .../contextProviders/ViewportGridProvider.tsx | 48 + platform/ui/src/contextProviders/index.js | 2 + platform/ui/src/index.js | 11 +- platform/ui/src/tailwind.css | 8 +- yarn.lock | 2260 +++++++++-------- 155 files changed, 6311 insertions(+), 6577 deletions(-) delete mode 100644 .github/workflows/codespell.yml create mode 100644 extensions/cornerstone-dicom-seg/src/getToolbarModule.ts delete mode 100644 extensions/cornerstone-dicom-seg/src/panels/SegmentationToolbox.tsx delete mode 100644 extensions/cornerstone/src/Viewport/Overlays/ViewportOverlay.tsx create mode 100644 extensions/cornerstone/src/getToolbarModule.tsx create mode 100644 extensions/cornerstone/src/utils/toggleVOISliceSync.ts create mode 100644 extensions/default/src/Toolbar/ToolbarButtonGroupWithServices.tsx delete mode 100644 extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx delete mode 100644 modes/basic-test-mode/src/moreToolsMpr.ts delete mode 100644 modes/longitudinal/src/moreToolsMpr.ts create mode 100644 modes/segmentation/src/segmentationButtons.ts create mode 100644 platform/app/src/routes/Mode/defaultRouteInit.ts create mode 100644 platform/app/src/routes/Mode/updateAuthServiceAndCleanUrl.ts create mode 100644 platform/core/src/hooks/useToolbar.tsx create mode 100644 platform/core/src/services/ToolBarService/types.ts create mode 100644 platform/docs/docs/assets/img/reference-lines-from-start.png create mode 100644 platform/docs/docs/assets/img/toolbox-modal.png create mode 100644 platform/docs/docs/platform/services/data/SyncGroupService.md create mode 100644 platform/docs/docs/platform/services/data/ToolGroupService.md rename platform/ui/src/assets/icons/{tool-elipse.svg => tool-ellipse.svg} (100%) create mode 100644 platform/ui/src/components/LegacySplitButton/LegacySplitButton.tsx create mode 100644 platform/ui/src/components/LegacySplitButton/index.js create mode 100644 platform/ui/src/components/Toolbox/Toolbox.tsx create mode 100644 platform/ui/src/components/Toolbox/ToolboxUI.tsx create mode 100644 platform/ui/src/components/Toolbox/index.js create mode 100644 platform/ui/src/contextProviders/Toolbox/ToolboxContext.tsx create mode 100644 platform/ui/src/contextProviders/Toolbox/toolboxReducer.ts diff --git a/.circleci/config.yml b/.circleci/config.yml index 30c35af46..88ea0bcd3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,7 +13,7 @@ version: 2.1 ## orbs: codecov: codecov/codecov@1.0.5 - cypress: cypress-io/cypress@3.2.1 + cypress: cypress-io/cypress@3.3.1 executors: cypress-custom: diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml deleted file mode 100644 index 7373affc3..000000000 --- a/.github/workflows/codespell.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -name: Codespell - -on: - push: - branches: [master] - pull_request: - branches: [master] - -permissions: - contents: read - -jobs: - codespell: - name: Check for spelling errors - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Codespell - uses: codespell-project/actions-codespell@v2 diff --git a/extensions/cornerstone-dicom-seg/src/commandsModule.ts b/extensions/cornerstone-dicom-seg/src/commandsModule.ts index 1926ee9f1..c311e82aa 100644 --- a/extensions/cornerstone-dicom-seg/src/commandsModule.ts +++ b/extensions/cornerstone-dicom-seg/src/commandsModule.ts @@ -5,6 +5,7 @@ import { cache, metaData } from '@cornerstonejs/core'; import { segmentation as cornerstoneToolsSegmentation, Enums as cornerstoneToolsEnums, + utilities, } from '@cornerstonejs/tools'; import { adaptersRT, helpers, adaptersSEG } from '@cornerstonejs/adapters'; import { classes, DicomMetadataStore } from '@ohif/core'; @@ -18,6 +19,7 @@ import { getUpdatedViewportsForSegmentation, getTargetViewport, } from './utils/hydrationUtils'; +const { segmentation: segmentationUtils } = utilities; const { datasetToBlob } = dcmjs.data; @@ -45,6 +47,7 @@ const commandsModule = ({ uiDialogService, displaySetService, viewportGridService, + toolGroupService, } = (servicesManager as ServicesManager).services; const actions = { @@ -397,6 +400,60 @@ const commandsModule = ({ console.warn(e); } }, + setBrushSize: ({ value, toolNames }) => { + const brushSize = Number(value); + + toolGroupService.getToolGroupIds()?.forEach(toolGroupId => { + if (toolNames?.length === 0) { + segmentationUtils.setBrushSizeForToolGroup(toolGroupId, brushSize); + } else { + toolNames?.forEach(toolName => { + segmentationUtils.setBrushSizeForToolGroup(toolGroupId, brushSize, toolName); + }); + } + }); + }, + setThresholdRange: ({ + value, + toolNames = ['ThresholdCircularBrush', 'ThresholdSphereBrush'], + }) => { + toolGroupService.getToolGroupIds()?.forEach(toolGroupId => { + const toolGroup = toolGroupService.getToolGroup(toolGroupId); + toolNames?.forEach(toolName => { + toolGroup.setToolConfiguration(toolName, { + strategySpecificConfiguration: { + THRESHOLD: { + threshold: value, + }, + }, + }); + }); + }); + }, + toggleThresholdRangeAndDynamic() { + const toolGroupIds = toolGroupService.getToolGroupIds(); + + if (!toolGroupIds) { + return; + } + + toolGroupIds.forEach(toolGroupId => { + const toolGroup = toolGroupService.getToolGroup(toolGroupId); + const brushInstances = segmentationUtils.getBrushToolInstances(toolGroup.id); + + brushInstances.forEach(({ configuration }) => { + const { activeStrategy, strategySpecificConfiguration } = configuration; + + if (activeStrategy.startsWith('THRESHOLD')) { + const thresholdConfig = strategySpecificConfiguration.THRESHOLD; + + if (thresholdConfig) { + thresholdConfig.isDynamic = !thresholdConfig.isDynamic; + } + } + }); + }); + }, }; const definitions = { @@ -424,11 +481,21 @@ const commandsModule = ({ downloadRTSS: { commandFn: actions.downloadRTSS, }, + setBrushSize: { + commandFn: actions.setBrushSize, + }, + setThresholdRange: { + commandFn: actions.setThresholdRange, + }, + toggleThresholdRangeAndDynamic: { + commandFn: actions.toggleThresholdRangeAndDynamic, + }, }; return { actions, definitions, + defaultContext: 'SEGMENTATION', }; }; diff --git a/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx b/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx index e626c87d7..9227502af 100644 --- a/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx +++ b/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx @@ -1,10 +1,16 @@ import React from 'react'; import { useAppConfig } from '@state'; +import { Toolbox } from '@ohif/ui'; import PanelSegmentation from './panels/PanelSegmentation'; -import SegmentationToolbox from './panels/SegmentationToolbox'; -const getPanelModule = ({ commandsManager, servicesManager, extensionManager, configuration }) => { +const getPanelModule = ({ + commandsManager, + servicesManager, + extensionManager, + configuration, + title, +}) => { const { customizationService } = servicesManager.services; const wrappedPanelSegmentation = configuration => { @@ -26,13 +32,14 @@ const getPanelModule = ({ commandsManager, servicesManager, extensionManager, co }; const wrappedPanelSegmentationWithTools = configuration => { - const [appConfig] = useAppConfig(); return ( <> - { + // Todo: we need to pass in the button section Id since we are kind of + // forcing the button to have black background since initially + // it is designed for the toolbox not the toolbar on top + // we should then branch the buttonSectionId to have different styles + const segmentations = segmentationService.getSegmentations(); + if (!segmentations?.length) { + return { + disabled: true, + className: '!text-common-bright !bg-black opacity-50', + }; + } + + const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); + + if (!toolGroup) { + return; + } + + const toolName = getToolNameForButton(button); + + if (!toolGroup || !toolGroup.hasTool(toolName)) { + return { + disabled: true, + className: '!text-common-bright ohif-disabled', + }; + } + + const isPrimaryActive = toolNames + ? toolNames.includes(toolGroup.getActivePrimaryMouseButtonTool()) + : toolGroup.getActivePrimaryMouseButtonTool() === toolName; + + return { + disabled: false, + className: isPrimaryActive + ? '!text-black !bg-primary-light hover:bg-primary-light hover-text-black hover:cursor-pointer' + : '!text-common-bright !bg-black hover:bg-primary-light hover:cursor-pointer hover:text-black', + // Todo: isActive right now is used for nested buttons where the primary + // button needs to be fully rounded (vs partial rounded) when active + // otherwise it does not have any other use + isActive: isPrimaryActive, + }; + }, + }, + ]; +} + +function getToolNameForButton(button) { + const { props } = button; + + const commands = props?.commands || button.commands; + + if (commands && commands.length) { + const command = commands[0]; + const { commandOptions } = command; + const { toolName } = commandOptions || { toolName: props?.id ?? button.id }; + return toolName; + } + return null; +} diff --git a/extensions/cornerstone-dicom-seg/src/index.tsx b/extensions/cornerstone-dicom-seg/src/index.tsx index bb6a6d4b1..5fe0efef5 100644 --- a/extensions/cornerstone-dicom-seg/src/index.tsx +++ b/extensions/cornerstone-dicom-seg/src/index.tsx @@ -5,6 +5,7 @@ import getSopClassHandlerModule from './getSopClassHandlerModule'; import getHangingProtocolModule from './getHangingProtocolModule'; import getPanelModule from './getPanelModule'; import getCommandsModule from './commandsModule'; +import { getToolbarModule } from './getToolbarModule'; import preRegistration from './init'; const Component = React.lazy(() => { @@ -29,7 +30,6 @@ const extension = { */ id, preRegistration, - /** * PanelModule should provide a list of panels that will be available in OHIF * for Modes to consume and render. Each panel is defined by a {name, @@ -38,8 +38,8 @@ const extension = { */ getPanelModule, getCommandsModule, - - getViewportModule({ servicesManager, extensionManager }) { + getToolbarModule, + getViewportModule({ servicesManager, extensionManager, commandsManager }) { const ExtendedOHIFCornerstoneSEGViewport = props => { return ( { - if (!viewports?.size || activeViewportId === undefined) { - return; - } - const viewport = viewports.get(activeViewportId); - - if (!viewport) { - return; - } - - dispatch({ - type: ACTIONS.SET_ACTIVE_TOOL, - payload: toolGroupService.getActiveToolForViewport(viewport.viewportId), - }); - }, [activeViewportId, viewports, toolGroupService, dispatch]); - - const setToolActive = useCallback( - toolName => { - initializeThresholdValue(toolName); - - toolbarService.recordInteraction({ - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName, - }, - }, - ], - }); - - dispatch({ type: ACTIONS.SET_ACTIVE_TOOL, payload: toolName }); - }, - [toolbarService, dispatch] - ); - - /** - * sets the tools enabled IF there are segmentations - */ - useEffect(() => { - const events = [ - segmentationService.EVENTS.SEGMENTATION_ADDED, - segmentationService.EVENTS.SEGMENTATION_UPDATED, - segmentationService.EVENTS.SEGMENTATION_REMOVED, - ]; - - const unsubscriptions = []; - - events.forEach(event => { - const { unsubscribe } = segmentationService.subscribe(event, () => { - const segmentations = segmentationService.getSegmentations(); - - const activeSegmentation = segmentations?.find(seg => seg.isActive); - - setToolsEnabled(activeSegmentation?.segmentCount > 0); - }); - - unsubscriptions.push(unsubscribe); - }); - - updateActiveTool(); - - return () => { - unsubscriptions.forEach(unsubscribe => unsubscribe()); - }; - }, [activeViewportId, viewports, segmentationService, updateActiveTool]); - - /** - * Update the active tool when the toolbar state changes - */ - useEffect(() => { - const { unsubscribe } = toolbarService.subscribe( - toolbarService.EVENTS.TOOL_BAR_STATE_MODIFIED, - () => { - updateActiveTool(); - } - ); - - return () => { - unsubscribe(); - }; - }, [toolbarService, updateActiveTool]); - - useEffect(() => { - // if the active tool is not a brush tool then do nothing - if (!Object.values(TOOL_TYPES).includes(state.activeTool)) { - return; - } - - // if the tool is Segmentation and it is enabled then do nothing - if (toolsEnabled) { - return; - } - - // if the tool is Segmentation and it is disabled, then switch - // back to the window level tool to not confuse the user when no - // segmentation is active or when there is no segment in the segmentation - setToolActive('WindowLevel'); - }, [toolsEnabled, state.activeTool, setToolActive]); - - const updateBrushSize = useCallback( - (toolName, brushSize) => { - toolGroupService.getToolGroupIds()?.forEach(toolGroupId => { - segmentationUtils.setBrushSizeForToolGroup(toolGroupId, brushSize, toolName); - }); - }, - [toolGroupService] - ); - - function initializeThresholdValue(toolName: any) { - if (state.ThresholdBrush.thresholdRange === null) { - // set the default threshold range from the tool configuration - const toolGroupIds = toolGroupService.getToolGroupIds(); - const toolGroupId = toolGroupIds[0]; - const toolGroup = toolGroupService.getToolGroup(toolGroupId); - const toolConfig = toolGroup.getToolConfiguration(toolName); - const defaultThresholdRange = toolConfig?.strategySpecificConfiguration?.THRESHOLD?.threshold; - dispatch({ - type: ACTIONS.SET_TOOL_CONFIG, - payload: { - tool: 'ThresholdBrush', - config: { thresholdRange: defaultThresholdRange }, - }, - }); - } - } - - const onBrushSizeChange = useCallback( - (valueAsStringOrNumber, toolCategory) => { - const value = Number(valueAsStringOrNumber); - - _getToolNamesFromCategory(toolCategory).forEach(toolName => { - updateBrushSize(toolName, value); - }); - - dispatch({ - type: ACTIONS.SET_TOOL_CONFIG, - payload: { - tool: toolCategory, - config: { brushSize: value }, - }, - }); - }, - [toolGroupService, dispatch] - ); - - const handleRangeChange = useCallback( - newRange => { - if ( - newRange[0] === state.ThresholdBrush.thresholdRange?.[0] && - newRange[1] === state.ThresholdBrush.thresholdRange?.[1] - ) { - return; - } - - const toolNames = _getToolNamesFromCategory('ThresholdBrush'); - - toolNames.forEach(toolName => { - toolGroupService.getToolGroupIds()?.forEach(toolGroupId => { - const toolGroup = toolGroupService.getToolGroup(toolGroupId); - toolGroup.setToolConfiguration(toolName, { - strategySpecificConfiguration: { - THRESHOLD: { - threshold: newRange, - }, - }, - }); - }); - }); - - dispatch({ - type: ACTIONS.SET_TOOL_CONFIG, - payload: { - tool: 'ThresholdBrush', - config: { thresholdRange: newRange }, - }, - }); - }, - [toolGroupService, dispatch, state.ThresholdBrush.thresholdRange] - ); - - return ( - setToolActive(TOOL_TYPES.CIRCULAR_BRUSH), - options: [ - { - name: 'Radius (mm)', - id: 'brush-radius', - type: 'range', - min: 0.5, - max: 99.5, - value: state.Brush.brushSize, - step: 0.5, - onChange: value => onBrushSizeChange(value, 'Brush'), - }, - { - name: 'Mode', - type: 'radio', - id: 'brush-mode', - value: state.Brush.mode, - values: [ - { value: TOOL_TYPES.CIRCULAR_BRUSH, label: 'Circle' }, - { value: TOOL_TYPES.SPHERE_BRUSH, label: 'Sphere' }, - ], - onChange: value => setToolActive(value), - }, - ], - }, - { - name: 'Eraser', - icon: 'icon-tool-eraser', - disabled: !toolsEnabled, - active: - state.activeTool === TOOL_TYPES.CIRCULAR_ERASER || - state.activeTool === TOOL_TYPES.SPHERE_ERASER, - onClick: () => setToolActive(TOOL_TYPES.CIRCULAR_ERASER), - options: [ - { - name: 'Radius (mm)', - type: 'range', - id: 'eraser-radius', - min: 0.5, - max: 99.5, - value: state.Eraser.brushSize, - step: 0.5, - onChange: value => onBrushSizeChange(value, 'Eraser'), - }, - { - name: 'Mode', - type: 'radio', - id: 'eraser-mode', - value: state.Eraser.mode, - values: [ - { value: TOOL_TYPES.CIRCULAR_ERASER, label: 'Circle' }, - { value: TOOL_TYPES.SPHERE_ERASER, label: 'Sphere' }, - ], - onChange: value => setToolActive(value), - }, - ], - }, - { - name: 'Shapes', - icon: 'icon-tool-shape', - disabled: !toolsEnabled, - active: - state.activeTool === TOOL_TYPES.CIRCLE_SHAPE || - state.activeTool === TOOL_TYPES.RECTANGLE_SHAPE || - state.activeTool === TOOL_TYPES.SPHERE_SHAPE, - onClick: () => setToolActive(TOOL_TYPES.CIRCLE_SHAPE), - options: [ - { - name: 'Mode', - type: 'radio', - value: state.Shapes.mode, - id: 'shape-mode', - values: [ - { value: TOOL_TYPES.CIRCLE_SHAPE, label: 'Circle' }, - { value: TOOL_TYPES.RECTANGLE_SHAPE, label: 'Rectangle' }, - { value: TOOL_TYPES.SPHERE_SHAPE, label: 'Sphere' }, - ], - onChange: value => setToolActive(value), - }, - ], - }, - { - name: 'Threshold Tool', - icon: 'icon-tool-threshold', - disabled: !toolsEnabled, - active: - state.activeTool === TOOL_TYPES.THRESHOLD_CIRCULAR_BRUSH || - state.activeTool === TOOL_TYPES.THRESHOLD_SPHERE_BRUSH, - onClick: () => setToolActive(TOOL_TYPES.THRESHOLD_CIRCULAR_BRUSH), - options: [ - { - name: 'Radius (mm)', - id: 'threshold-radius', - type: 'range', - min: 0.5, - max: 99.5, - value: state.ThresholdBrush.brushSize, - step: 0.5, - onChange: value => onBrushSizeChange(value, 'ThresholdBrush'), - }, - { - name: 'Mode', - type: 'radio', - id: 'threshold-mode', - value: state.activeTool, - values: [ - { value: TOOL_TYPES.THRESHOLD_CIRCULAR_BRUSH, label: 'Circle' }, - { value: TOOL_TYPES.THRESHOLD_SPHERE_BRUSH, label: 'Sphere' }, - ], - onChange: value => setToolActive(value), - }, - { - type: 'custom', - id: 'segmentation-threshold-range', - children: () => { - return ( -
-
-
Threshold
- -
- ); - }, - }, - ], - }, - ]} - /> - ); -} - -function _getToolNamesFromCategory(category) { - let toolNames = []; - switch (category) { - case 'Brush': - toolNames = ['CircularBrush', 'SphereBrush']; - break; - case 'Eraser': - toolNames = ['CircularEraser', 'SphereEraser']; - break; - case 'ThresholdBrush': - toolNames = ['ThresholdCircularBrush', 'ThresholdSphereBrush']; - break; - default: - break; - } - - return toolNames; -} - -export default SegmentationToolbox; diff --git a/extensions/cornerstone-dicom-sr/src/commandsModule.js b/extensions/cornerstone-dicom-sr/src/commandsModule.js index 33e8a869f..2f355bc09 100644 --- a/extensions/cornerstone-dicom-sr/src/commandsModule.js +++ b/extensions/cornerstone-dicom-sr/src/commandsModule.js @@ -128,13 +128,9 @@ const commandsModule = props => { const definitions = { downloadReport: { commandFn: actions.downloadReport, - storeContexts: [], - options: {}, }, storeMeasurements: { commandFn: actions.storeMeasurements, - storeContexts: [], - options: {}, }, }; diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 5058a1ca5..6f62acac8 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,6 +39,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.66.7", + "@icr/polyseg-wasm": "^0.4.0", "@ohif/core": "3.8.0-beta.63", "@ohif/ui": "3.8.0-beta.63", "dcmjs": "^0.29.12", diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index ce051e999..389672f05 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -109,6 +109,7 @@ const OHIFCornerstoneViewport = React.memo(props => { // of the imageData in the OHIFCornerstoneViewport. This prop is used // to set the initial state of the viewport's first image to render initialImageIndex, + onReady, } = props; const viewportId = viewportOptions.viewportId; @@ -184,6 +185,7 @@ const OHIFCornerstoneViewport = React.memo(props => { if (onElementEnabled) { onElementEnabled(evt); + onReady?.(evt); } }, [viewportId, onElementEnabled, toolGroupService] diff --git a/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx b/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx index 8745fdec7..0858f9089 100644 --- a/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx +++ b/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx @@ -2,21 +2,25 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { vec3 } from 'gl-matrix'; import PropTypes from 'prop-types'; import { metaData, Enums, utilities } from '@cornerstonejs/core'; -import { ViewportOverlay } from '@ohif/ui'; -import { formatPN, formatDICOMDate, formatDICOMTime, formatNumberPrecision } from './utils'; -import { InstanceMetadata } from 'platform/core/src/types'; -import { ServicesManager } from '@ohif/core'; import { ImageSliceData } from '@cornerstonejs/core/dist/esm/types'; +import { ViewportOverlay } from '@ohif/ui'; +import { ServicesManager } from '@ohif/core'; +import { InstanceMetadata } from '@ohif/core/src/types'; +import { formatPN, formatDICOMDate, formatDICOMTime, formatNumberPrecision } from './utils'; +import { StackViewportData, VolumeViewportData } from '../../types/CornerstoneCacheService'; import './CustomizableViewportOverlay.css'; const EPSILON = 1e-4; +type ViewportData = StackViewportData | VolumeViewportData; + interface OverlayItemProps { - element: any; - viewportData: any; + element: HTMLElement; + viewportData: ViewportData; imageSliceData: ImageSliceData; servicesManager: ServicesManager; + viewportId: string; instance: InstanceMetadata; customization: any; formatters: { @@ -35,67 +39,11 @@ interface OverlayItemProps { scale?: number; } -/** - * Window Level / Center Overlay item - */ -function VOIOverlayItem({ voi, customization }: OverlayItemProps) { - const { windowWidth, windowCenter } = voi; - if (typeof windowCenter !== 'number' || typeof windowWidth !== 'number') { - return null; - } - - return ( -
- W: - {windowWidth.toFixed(0)} - L: - {windowCenter.toFixed(0)} -
- ); -} - -/** - * Zoom Level Overlay item - */ -function ZoomOverlayItem({ scale, customization }: OverlayItemProps) { - return ( -
- Zoom: - {scale.toFixed(2)}x -
- ); -} - -/** - * Instance Number Overlay Item - */ -function InstanceNumberOverlayItem({ - instanceNumber, - imageSliceData, - customization, -}: OverlayItemProps) { - const { imageIndex, numberOfSlices } = imageSliceData; - - return ( -
- I: - - {instanceNumber !== undefined && instanceNumber !== null - ? `${instanceNumber} (${imageIndex + 1}/${numberOfSlices})` - : `${imageIndex + 1}/${numberOfSlices}`} - -
- ); -} +const OverlayItemComponents = { + 'ohif.overlayItem.windowLevel': VOIOverlayItem, + 'ohif.overlayItem.zoomLevel': ZoomOverlayItem, + 'ohif.overlayItem.instanceNumber': InstanceNumberOverlayItem, +}; /** * Customizable Viewport Overlay @@ -106,12 +54,17 @@ function CustomizableViewportOverlay({ imageSliceData, viewportId, servicesManager, +}: { + element: HTMLElement; + viewportData: ViewportData; + imageSliceData: ImageSliceData; + viewportId: string; + servicesManager: ServicesManager; }) { - const { toolbarService, cornerstoneViewportService, customizationService } = + const { cornerstoneViewportService, customizationService, toolGroupService } = servicesManager.services; const [voi, setVOI] = useState({ windowCenter: null, windowWidth: null }); const [scale, setScale] = useState(1); - const [activeTools, setActiveTools] = useState([]); const { imageIndex } = imageSliceData; const topLeftCustomization = customizationService.getModeCustomization( @@ -127,27 +80,18 @@ function CustomizableViewportOverlay({ 'cornerstoneOverlayBottomRight' ); - const instance = useMemo(() => { - if (viewportData != null) { - return _getViewportInstance(viewportData, imageIndex); - } else { - return null; - } - }, [viewportData, imageIndex]); + const instance = useMemo( + () => (viewportData ? getViewportInstance(viewportData, imageIndex) : null), + [viewportData, imageIndex] + ); - const instanceNumber = useMemo(() => { - if (viewportData != null) { - return _getInstanceNumber(viewportData, viewportId, imageIndex, cornerstoneViewportService); - } - return null; - }, [viewportData, viewportId, imageIndex, cornerstoneViewportService]); - - /** - * Initial toolbar state - */ - useEffect(() => { - setActiveTools(toolbarService.getActiveTools()); - }, []); + const instanceNumber = useMemo( + () => + viewportData + ? getInstanceNumber(viewportData, viewportId, imageIndex, cornerstoneViewportService) + : null, + [viewportData, viewportId, imageIndex, cornerstoneViewportService] + ); /** * Updating the VOI when the viewport changes its voi @@ -215,26 +159,9 @@ function CustomizableViewportOverlay({ }; }, [viewportId, viewportData, cornerstoneViewportService, element]); - /** - * Updating the active tools when the toolbar changes - */ - // Todo: this should act on the toolGroups instead of the toolbar state - useEffect(() => { - const { unsubscribe } = toolbarService.subscribe( - toolbarService.EVENTS.TOOL_BAR_STATE_MODIFIED, - () => { - setActiveTools(toolbarService.getActiveTools()); - } - ); - - return () => { - unsubscribe(); - }; - }, [toolbarService]); - const _renderOverlayItem = useCallback( item => { - const overlayItemProps: OverlayItemProps = { + const overlayItemProps = { element, viewportData, imageSliceData, @@ -242,24 +169,26 @@ function CustomizableViewportOverlay({ servicesManager, customization: item, formatters: { - formatPN: formatPN, + formatPN, formatDate: formatDICOMDate, formatTime: formatDICOMTime, - formatNumberPrecision: formatNumberPrecision, + formatNumberPrecision, }, instance, - // calculated voi, scale, instanceNumber, }; - if (item.customizationType === 'ohif.overlayItem.windowLevel') { - return ; - } else if (item.customizationType === 'ohif.overlayItem.zoomLevel') { - return ; - } else if (item.customizationType === 'ohif.overlayItem.instanceNumber') { - return ; + if (!item) { + return null; + } + + const { customizationType } = item; + const OverlayItemComponent = OverlayItemComponents[customizationType]; + + if (OverlayItemComponent) { + return ; } else { const renderItem = customizationService.transform(item); @@ -282,103 +211,106 @@ function CustomizableViewportOverlay({ ] ); - const getTopLeftContent = useCallback(() => { - const items = topLeftCustomization?.items || [ - { - id: 'WindowLevel', - customizationType: 'ohif.overlayItem.windowLevel', - }, - ]; - return ( - <> - {items.map((item, i) => ( -
{_renderOverlayItem(item)}
- ))} - - ); - }, [topLeftCustomization, _renderOverlayItem]); + const getContent = useCallback( + (customization, defaultItems, keyPrefix) => { + const items = customization?.items ?? defaultItems; - const getTopRightContent = useCallback(() => { - const items = topRightCustomization?.items || [ - { - id: 'InstanceNmber', - customizationType: 'ohif.overlayItem.instanceNumber', - }, - ]; - return ( - <> - {items.map((item, i) => ( -
{_renderOverlayItem(item)}
- ))} - - ); - }, [topRightCustomization, _renderOverlayItem]); - - const getBottomLeftContent = useCallback(() => { - const items = bottomLeftCustomization?.items || []; - return ( - <> - {items.map((item, i) => ( -
{_renderOverlayItem(item)}
- ))} - - ); - }, [bottomLeftCustomization, _renderOverlayItem]); - - const getBottomRightContent = useCallback(() => { - const items = bottomRightCustomization?.items || []; - return ( - <> - {items.map((item, i) => ( -
{_renderOverlayItem(item)}
- ))} - - ); - }, [bottomRightCustomization, _renderOverlayItem]); + return ( + <> + {items.map((item, index) => ( +
+ {item?.condition + ? item.condition() + ? _renderOverlayItem(item) + : null + : _renderOverlayItem(item)} +
+ ))} + + ); + }, + [_renderOverlayItem] + ); return ( { + const activeToolName = toolGroupService.getActiveToolForViewport(viewportId); + return activeToolName === 'Zoom'; + }, + }, + ], + 'topLeftOverlayItem' + ) + } + topRight={getContent( + topRightCustomization, + [ + { + id: 'InstanceNumber', + customizationType: 'ohif.overlayItem.instanceNumber', + }, + ], + 'topRightOverlayItem' + )} + bottomLeft={getContent(bottomLeftCustomization, [null], 'bottomLeftOverlayItem')} + bottomRight={getContent(bottomRightCustomization, [null], 'bottomRightOverlayItem')} /> ); } -function _getViewportInstance(viewportData, imageIndex) { +const getViewportInstance = (viewportData, imageIndex) => { + const { viewportType, data } = viewportData; let imageId = null; - if (viewportData.viewportType === Enums.ViewportType.STACK) { - imageId = viewportData.data.imageIds[imageIndex]; - } else if (viewportData.viewportType === Enums.ViewportType.ORTHOGRAPHIC) { - const volumes = viewportData.data; - if (volumes && volumes.length == 1) { - const volume = volumes[0]; - imageId = volume.imageIds[imageIndex]; - } - } - return imageId ? metaData.get('instance', imageId) || {} : {}; -} -function _getInstanceNumber(viewportData, viewportId, imageIndex, cornerstoneViewportService) { + switch (viewportType) { + case Enums.ViewportType.STACK: + imageId = data.imageIds[imageIndex]; + break; + case Enums.ViewportType.ORTHOGRAPHIC: + if (data?.length === 1) { + imageId = data[0].imageIds[imageIndex]; + } + break; + default: + break; + } + + return imageId ? metaData.get('instance', imageId) || {} : {}; +}; + +const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneViewportService) => { let instanceNumber; - if (viewportData.viewportType === Enums.ViewportType.STACK) { - instanceNumber = _getInstanceNumberFromStack(viewportData, imageIndex); - - if (!instanceNumber && instanceNumber !== 0) { - return null; - } - } else if (viewportData.viewportType === Enums.ViewportType.ORTHOGRAPHIC) { - instanceNumber = _getInstanceNumberFromVolume( - viewportData, - imageIndex, - viewportId, - cornerstoneViewportService - ); + switch (viewportData.viewportType) { + case Enums.ViewportType.STACK: + instanceNumber = _getInstanceNumberFromStack(viewportData, imageIndex); + break; + case Enums.ViewportType.ORTHOGRAPHIC: + instanceNumber = _getInstanceNumberFromVolume( + viewportData, + viewportId, + cornerstoneViewportService + ); + break; } - return instanceNumber; -} + + return instanceNumber ?? null; +}; function _getInstanceNumberFromStack(viewportData, imageIndex) { const imageIds = viewportData.data.imageIds; @@ -442,6 +374,68 @@ function _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewp } } +/** + * Window Level / Center Overlay item + */ +function VOIOverlayItem({ voi, customization }: OverlayItemProps) { + const { windowWidth, windowCenter } = voi; + if (typeof windowCenter !== 'number' || typeof windowWidth !== 'number') { + return null; + } + + return ( +
+ W: + {windowWidth.toFixed(0)} + L: + {windowCenter.toFixed(0)} +
+ ); +} + +/** + * Zoom Level Overlay item + */ +function ZoomOverlayItem({ scale, customization }: OverlayItemProps) { + return ( +
+ Zoom: + {scale.toFixed(2)}x +
+ ); +} + +/** + * Instance Number Overlay Item + */ +function InstanceNumberOverlayItem({ + instanceNumber, + imageSliceData, + customization, +}: OverlayItemProps) { + const { imageIndex, numberOfSlices } = imageSliceData; + + return ( +
+ I: + + {instanceNumber !== undefined && instanceNumber !== null + ? `${instanceNumber} (${imageIndex + 1}/${numberOfSlices})` + : `${imageIndex + 1}/${numberOfSlices}`} + +
+ ); +} + CustomizableViewportOverlay.propTypes = { viewportData: PropTypes.object, imageIndex: PropTypes.number, diff --git a/extensions/cornerstone/src/Viewport/Overlays/ViewportOverlay.tsx b/extensions/cornerstone/src/Viewport/Overlays/ViewportOverlay.tsx deleted file mode 100644 index a33696cb5..000000000 --- a/extensions/cornerstone/src/Viewport/Overlays/ViewportOverlay.tsx +++ /dev/null @@ -1,278 +0,0 @@ -import React, { useCallback, useEffect, useState } from 'react'; -import { vec3 } from 'gl-matrix'; -import PropTypes from 'prop-types'; -import { metaData, Enums, utilities } from '@cornerstonejs/core'; -import { ViewportOverlay } from '@ohif/ui'; -import { ServicesManager } from '@ohif/core'; - -const EPSILON = 1e-4; - -function CornerstoneViewportOverlay({ - element, - viewportData, - imageSliceData, - viewportId, - servicesManager, -}) { - const { cornerstoneViewportService, toolbarService } = servicesManager.services; - const [voi, setVOI] = useState({ windowCenter: null, windowWidth: null }); - const [scale, setScale] = useState(1); - const [activeTools, setActiveTools] = useState([]); - - /** - * Initial toolbar state - */ - useEffect(() => { - setActiveTools(toolbarService.getActiveTools()); - }, []); - - useEffect(() => { - let isMounted = true; - const { unsubscribe } = toolbarService.subscribe( - toolbarService.EVENTS.TOOL_BAR_STATE_MODIFIED, - () => { - if (!isMounted) { - return; - } - - setActiveTools(toolbarService.getActiveTools()); - } - ); - - return () => { - isMounted = false; - unsubscribe(); - }; - }, []); - - /** - * Updating the VOI when the viewport changes its voi - */ - useEffect(() => { - const updateVOI = eventDetail => { - const { range } = eventDetail.detail; - - if (!range) { - return; - } - - const { lower, upper } = range; - const { windowWidth, windowCenter } = utilities.windowLevel.toWindowLevel(lower, upper); - - setVOI({ windowCenter, windowWidth }); - }; - - element.addEventListener(Enums.Events.VOI_MODIFIED, updateVOI); - - return () => { - element.removeEventListener(Enums.Events.VOI_MODIFIED, updateVOI); - }; - }, [viewportId, viewportData, voi, element]); - - /** - * Updating the scale when the viewport changes its zoom - */ - useEffect(() => { - const updateScale = eventDetail => { - const { previousCamera, camera } = eventDetail.detail; - - if ( - previousCamera.parallelScale !== camera.parallelScale || - previousCamera.scale !== camera.scale - ) { - const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); - - if (!viewport) { - return; - } - - const imageData = viewport.getImageData(); - - if (!imageData) { - return; - } - - if (camera.scale) { - setScale(camera.scale); - return; - } - - const { spacing } = imageData; - // convert parallel scale to scale - const scale = (element.clientHeight * spacing[0] * 0.5) / camera.parallelScale; - setScale(scale); - } - }; - - element.addEventListener(Enums.Events.CAMERA_MODIFIED, updateScale); - - return () => { - element.removeEventListener(Enums.Events.CAMERA_MODIFIED, updateScale); - }; - }, [viewportId, viewportData]); - - const getTopLeftContent = useCallback(() => { - const { windowWidth, windowCenter } = voi; - - if (activeTools.includes('WindowLevel')) { - if (typeof windowCenter !== 'number' || typeof windowWidth !== 'number') { - return null; - } - - return ( -
- W: - {windowWidth.toFixed(0)} - L: - {windowCenter.toFixed(0)} -
- ); - } - - if (activeTools.includes('Zoom')) { - return ( -
- Zoom: - {scale.toFixed(2)}x -
- ); - } - - return null; - }, [voi, scale, activeTools]); - - const getTopRightContent = useCallback(() => { - const { imageIndex, numberOfSlices } = imageSliceData; - if (!viewportData) { - return; - } - - let instanceNumber; - - if (viewportData.viewportType === Enums.ViewportType.STACK) { - instanceNumber = _getInstanceNumberFromStack(viewportData, imageIndex); - - if (!instanceNumber) { - return null; - } - } else if (viewportData.viewportType === Enums.ViewportType.ORTHOGRAPHIC) { - instanceNumber = _getInstanceNumberFromVolume( - viewportData, - imageIndex, - viewportId, - cornerstoneViewportService - ); - } - - return ( -
- I: - - {instanceNumber !== undefined - ? `${instanceNumber} (${imageIndex + 1}/${numberOfSlices})` - : `${imageIndex + 1}/${numberOfSlices}`} - -
- ); - }, [imageSliceData, viewportData, viewportId]); - - if (!viewportData) { - return null; - } - - const ohifViewport = cornerstoneViewportService.getViewportInfo(viewportId); - - if (!ohifViewport) { - return null; - } - - const backgroundColor = ohifViewport.getViewportOptions().background; - - // Todo: probably this can be done in a better way in which we identify bright - // background - const isLight = backgroundColor ? utilities.isEqual(backgroundColor, [1, 1, 1]) : false; - - return ( - - ); -} - -function _getInstanceNumberFromStack(viewportData, imageIndex) { - const imageIds = viewportData.data.imageIds; - const imageId = imageIds[imageIndex]; - - if (!imageId) { - return; - } - - const generalImageModule = metaData.get('generalImageModule', imageId) || {}; - const { instanceNumber } = generalImageModule; - - const stackSize = imageIds.length; - - if (stackSize <= 1) { - return; - } - - return parseInt(instanceNumber); -} - -// Since volume viewports can be in any view direction, they can render -// a reconstructed image which don't have imageIds; therefore, no instance and instanceNumber -// Here we check if viewport is in the acquisition direction and if so, we get the instanceNumber -function _getInstanceNumberFromVolume( - viewportData, - imageIndex, - viewportId, - cornerstoneViewportService -) { - const volumes = viewportData.volumes; - - // Todo: support fusion of acquisition plane which has instanceNumber - if (!volumes || volumes.length > 1) { - return; - } - - const volume = volumes[0]; - const { direction, imageIds } = volume; - - const cornerstoneViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); - - if (!cornerstoneViewport) { - return; - } - - const camera = cornerstoneViewport.getCamera(); - const { viewPlaneNormal } = camera; - // checking if camera is looking at the acquisition plane (defined by the direction on the volume) - - const scanAxisNormal = direction.slice(6, 9); - - // check if viewPlaneNormal is parallel to scanAxisNormal - const cross = vec3.cross(vec3.create(), viewPlaneNormal, scanAxisNormal); - const isAcquisitionPlane = vec3.length(cross) < EPSILON; - - if (isAcquisitionPlane) { - const imageId = imageIds[imageIndex]; - - if (!imageId) { - return {}; - } - - const { instanceNumber } = metaData.get('generalImageModule', imageId) || {}; - return parseInt(instanceNumber); - } -} - -CornerstoneViewportOverlay.propTypes = { - viewportData: PropTypes.object, - imageIndex: PropTypes.number, - viewportId: PropTypes.string, - servicesManager: PropTypes.instanceOf(ServicesManager), -}; - -export default CornerstoneViewportOverlay; diff --git a/extensions/cornerstone/src/commandsModule.ts b/extensions/cornerstone/src/commandsModule.ts index e32155f99..b63aee091 100644 --- a/extensions/cornerstone/src/commandsModule.ts +++ b/extensions/cornerstone/src/commandsModule.ts @@ -21,6 +21,12 @@ import toggleImageSliceSync from './utils/imageSliceSync/toggleImageSliceSync'; import { getFirstAnnotationSelected } from './utils/measurementServiceMappings/utils/selection'; import getActiveViewportEnabledElement from './utils/getActiveViewportEnabledElement'; import { CornerstoneServices } from './types'; +import toggleVOISliceSync from './utils/toggleVOISliceSync'; + +const toggleSyncFunctions = { + imageSlice: toggleImageSliceSync, + voi: toggleVOISliceSync, +}; function commandsModule({ servicesManager, @@ -30,11 +36,11 @@ function commandsModule({ viewportGridService, toolGroupService, cineService, - toolbarService, uiDialogService, cornerstoneViewportService, uiNotificationService, measurementService, + syncGroupService, } = servicesManager.services as CornerstoneServices; const { measurementServiceSource } = this; @@ -227,30 +233,10 @@ function commandsModule({ arrowTextCallback: ({ callback, data }) => { callInputDialog(uiDialogService, data, callback); }, - cleanUpCrosshairs: () => { - // if the crosshairs tool is active, deactivate it and set window level active - // since we are going back to main non-mpr HP - const activeViewportToolGroup = toolGroupService.getToolGroup(null); - - if (activeViewportToolGroup._toolInstances?.Crosshairs?.mode === Enums.ToolModes.Active) { - actions.toolbarServiceRecordInteraction({ - interactionType: 'tool', - commands: [ - { - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); - } - }, toggleCine: () => { const { viewports } = viewportGridService.getState(); const { isCineEnabled } = cineService.getState(); cineService.setIsCineEnabled(!isCineEnabled); - toolbarService.setButton('Cine', { props: { isActive: !isCineEnabled } }); viewports.forEach((_, index) => cineService.setCine({ id: index, isPlaying: false })); }, setWindowLevel({ window, level, toolGroupId }) { @@ -279,35 +265,40 @@ function commandsModule({ }); viewport.render(); }, + setToolEnabled: ({ toolName, toggle }) => { + const { viewports } = viewportGridService.getState(); - // Just call the toolbar service record interaction - allows - // executing a toolbar command as a full toolbar command with side affects - // coming from the ToolbarService itself. - toolbarServiceRecordInteraction: props => { - toolbarService.recordInteraction(props); - }, - // Enable or disable a toggleable command, without calling the activation - // Used to setup already active tools from hanging protocols - setToolbarToggled: props => { - toolbarService.setToggled(props.toolId, props.isActive ?? true); - }, - setToolActive: ({ toolName, toolGroupId = null, toggledState }) => { - if (toolName === 'Crosshairs') { - const activeViewportToolGroup = toolGroupService.getToolGroup(null); - - if (!activeViewportToolGroup._toolInstances.Crosshairs) { - uiNotificationService.show({ - title: 'Crosshairs', - message: - 'You need to be in a MPR view to use Crosshairs. Click on MPR button in the toolbar to activate it.', - type: 'info', - duration: 3000, - }); - - throw new Error('Crosshairs tool is not available in this viewport'); - } + if (!viewports.size) { + return; } + const toolGroup = toolGroupService.getToolGroup(null); + + if (!toolGroup) { + return; + } + + const toolIsEnabled = toolGroup.getToolOptions(toolName).mode === Enums.ToolModes.Enabled; + + // Toggle the tool's state only if the toggle is true + if (toggle) { + toolIsEnabled ? toolGroup.setToolDisabled(toolName) : toolGroup.setToolEnabled(toolName); + } + + const renderingEngine = cornerstoneViewportService.getRenderingEngine(); + renderingEngine.render(); + }, + setToolActiveToolbar: ({ value, itemId, toolGroupIds = [] }) => { + // Sometimes it is passed as value (tools with options), sometimes as itemId (toolbar buttons) + const toolName = itemId || value; + + toolGroupIds = toolGroupIds.length ? toolGroupIds : toolGroupService.getToolGroupIds(); + + toolGroupIds.forEach(toolGroupId => { + actions.setToolActive({ toolName, toolGroupId }); + }); + }, + setToolActive: ({ toolName, toolGroupId = null }) => { const { viewports } = viewportGridService.getState(); if (!viewports.size) { @@ -320,34 +311,13 @@ function commandsModule({ return; } - if (!toolGroup.getToolInstance(toolName)) { - uiNotificationService.show({ - title: `${toolName} tool`, - message: `The ${toolName} tool is not available in this viewport.`, - type: 'info', - duration: 3000, - }); - - throw new Error(`ToolGroup ${toolGroup.id} does not have this tool.`); - } - const activeToolName = toolGroup.getActivePrimaryMouseButtonTool(); if (activeToolName) { - // Todo: this is a hack to prevent the crosshairs to stick around - // after another tool is selected. We should find a better way to do this - if (activeToolName === 'Crosshairs') { - toolGroup.setToolDisabled(activeToolName); - } else { - toolGroup.setToolPassive(activeToolName); - } - } - - // If there is a toggle state, then simply set the enabled/disabled state without - // setting the tool active. - if (toggledState != null) { - toggledState ? toolGroup.setToolEnabled(toolName) : toolGroup.setToolDisabled(toolName); - return; + const activeToolOptions = toolGroup.getToolConfiguration(activeToolName); + activeToolOptions?.disableOnPassive + ? toolGroup.setToolDisabled(activeToolName) + : toolGroup.setToolPassive(activeToolName); } // Set the new toolName to be active @@ -565,33 +535,59 @@ function commandsModule({ (currentIndex + direction + viewportIds.length) % viewportIds.length; viewportGridService.setActiveViewportId(viewportIds[nextViewportIndex] as string); }, + /** + * If the syncId is given and a synchronizer with that ID already exists, it will + * toggle it on/off for the provided viewports. If not, it will attempt to create + * a new synchronizer using the given syncId and type for the specified viewports. + * If no viewports are provided, you may notice some default behavior. + * - 'voi' type, we will aim to synchronize all viewports with the same modality + * -'imageSlice' type, we will aim to synchronize all viewports with the same orientation. + * + * @param options + * @param options.viewports - The viewports to synchronize + * @param options.syncId - The synchronization group ID + * @param options.type - The type of synchronization to perform + */ + toggleSynchronizer: ({ type, viewports, syncId }) => { + const synchronizer = syncGroupService.getSynchronizer(syncId); - toggleImageSliceSync: ({ toggledState }) => { - toggleImageSliceSync({ - servicesManager, - toggledState, - }); + if (synchronizer) { + synchronizer.isDisabled() ? synchronizer.setEnabled(true) : synchronizer.setEnabled(false); + return; + } + + const fn = toggleSyncFunctions[type]; + + if (fn) { + fn({ + servicesManager, + viewports, + syncId, + }); + } }, - setSourceViewportForReferenceLinesTool: ({ toggledState, viewportId }) => { + setSourceViewportForReferenceLinesTool: ({ viewportId }) => { if (!viewportId) { const { activeViewportId } = viewportGridService.getState(); - viewportId = activeViewportId; + viewportId = activeViewportId ?? 'default'; } const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); - toolGroup.setToolConfiguration( + toolGroup?.setToolConfiguration( ReferenceLinesTool.toolName, { sourceViewportId: viewportId, }, true // overwrite ); + + const renderingEngine = cornerstoneViewportService.getRenderingEngine(); + renderingEngine.render(); }, storePresentation: ({ viewportId }) => { cornerstoneViewportService.storePresentation({ viewportId }); }, - attachProtocolViewportDataListener: ({ protocol, stageIndex }) => { const EVENT = cornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED; const command = protocol.callbacks.onViewportDataInitialized; @@ -608,6 +604,26 @@ function commandsModule({ } }); }, + resetCrosshairs: ({ viewportId }) => { + const crosshairInstances = []; + + const getCrosshairInstances = toolGroupId => { + const toolGroup = toolGroupService.getToolGroup(toolGroupId); + crosshairInstances.push(toolGroup.getToolInstance('Crosshairs')); + }; + + if (!viewportId) { + const toolGroupIds = toolGroupService.getToolGroupIds(); + toolGroupIds.forEach(getCrosshairInstances); + } else { + const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); + getCrosshairInstances(toolGroup.id); + } + + crosshairInstances.forEach(ins => { + ins.resetCrosshairs(); + }); + }, }; const definitions = { @@ -615,7 +631,6 @@ function commandsModule({ // context menu showCornerstoneContextMenu: { commandFn: actions.showCornerstoneContextMenu, - storeContexts: [], options: { menuCustomizationId: 'measurementsContextMenu', commands: [ @@ -631,8 +646,6 @@ function commandsModule({ }, getNearbyAnnotation: { commandFn: actions.getNearbyAnnotation, - storeContexts: [], - options: {}, }, deleteMeasurement: { commandFn: actions.deleteMeasurement, @@ -643,16 +656,18 @@ function commandsModule({ updateMeasurement: { commandFn: actions.updateMeasurement, }, - setWindowLevel: { commandFn: actions.setWindowLevel, }, - toolbarServiceRecordInteraction: { - commandFn: actions.toolbarServiceRecordInteraction, - }, setToolActive: { commandFn: actions.setToolActive, }, + setToolActiveToolbar: { + commandFn: actions.setToolActiveToolbar, + }, + setToolEnabled: { + commandFn: actions.setToolEnabled, + }, rotateViewportCW: { commandFn: actions.rotateViewport, options: { rotation: 90 }, @@ -735,15 +750,15 @@ function commandsModule({ storePresentation: { commandFn: actions.storePresentation, }, - setToolbarToggled: { - commandFn: actions.setToolbarToggled, - }, - cleanUpCrosshairs: { - commandFn: actions.cleanUpCrosshairs, - }, attachProtocolViewportDataListener: { commandFn: actions.attachProtocolViewportDataListener, }, + resetCrosshairs: { + commandFn: actions.resetCrosshairs, + }, + toggleSynchronizer: { + commandFn: actions.toggleSynchronizer, + }, }; return { diff --git a/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx b/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx index be007920e..3880f4247 100644 --- a/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx +++ b/extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx @@ -1,38 +1,18 @@ -import React, { useCallback, useEffect, useState } from 'react'; -import { CinePlayer, useCine, useViewportGrid } from '@ohif/ui'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; +import { CinePlayer, useCine } from '@ohif/ui'; import { Enums, eventTarget } from '@cornerstonejs/core'; import { useAppConfig } from '@state'; function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { - const { - toolbarService, - customizationService, - displaySetService, - viewportGridService, - cineService, - } = servicesManager.services; - const [{ isCineEnabled, cines }] = useCine(); + const { customizationService, displaySetService, viewportGridService } = servicesManager.services; + const [{ isCineEnabled, cines }, api] = useCine(); const [newStackFrameRate, setNewStackFrameRate] = useState(24); const [appConfig] = useAppConfig(); + const isMountedRef = useRef(null); const { component: CinePlayerComponent = CinePlayer } = customizationService.get('cinePlayer') ?? {}; - const handleCineClose = () => { - toolbarService.recordInteraction({ - groupId: 'MoreTools', - interactionType: 'toggle', - commands: [ - { - commandName: 'toggleCine', - commandOptions: {}, - toolName: 'cine', - context: 'CORNERSTONE', - }, - ], - }); - }; - const cineHandler = () => { if (!cines || !cines[viewportId] || !enabledVPElement) { return; @@ -45,11 +25,11 @@ function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { const validFrameRate = Math.max(frameRate, 1); if (isPlaying) { - cineService.playClip(enabledVPElement, { + api.playClip(enabledVPElement, { framesPerSecond: validFrameRate, }); } else { - cineService.stopClip(enabledVPElement); + api.stopClip(enabledVPElement); } }; @@ -70,34 +50,36 @@ function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { }); if (isPlaying) { - cineService.setIsCineEnabled(isPlaying); + api.setIsCineEnabled(isPlaying); } - cineService.setCine({ id: viewportId, isPlaying, frameRate }); + api.setCine({ id: viewportId, isPlaying, frameRate }); setNewStackFrameRate(frameRate); - }, [cineService, displaySetService, viewportId, viewportGridService, cines]); + }, [displaySetService, viewportId, viewportGridService, cines]); useEffect(() => { + isMountedRef.current = true; + eventTarget.addEventListener(Enums.Events.STACK_VIEWPORT_NEW_STACK, newStackCineHandler); return () => { - cineService.setCine({ id: viewportId, isPlaying: false }); + isMountedRef.current = false; + api.stopClip(enabledVPElement); + api.setCine({ id: viewportId, isPlaying: false }); eventTarget.removeEventListener(Enums.Events.STACK_VIEWPORT_NEW_STACK, newStackCineHandler); }; }, [enabledVPElement, newStackCineHandler]); useEffect(() => { - if (!cines || !cines[viewportId] || !enabledVPElement) { + if (!cines || !cines[viewportId] || !enabledVPElement || !isMountedRef.current) { return; } cineHandler(); return () => { - if (enabledVPElement && cines?.[viewportId]?.isPlaying) { - cineService.stopClip(enabledVPElement); - } + api.stopClip(enabledVPElement); }; - }, [cines, viewportId, cineService, enabledVPElement, cineHandler]); + }, [cines, viewportId, enabledVPElement, cineHandler]); const cine = cines[viewportId]; const isPlaying = (cine && cine.isPlaying) || false; @@ -108,15 +90,22 @@ function WrappedCinePlayer({ enabledVPElement, viewportId, servicesManager }) { className="absolute left-1/2 bottom-3 -translate-x-1/2" frameRate={newStackFrameRate} isPlaying={isPlaying} - onClose={handleCineClose} - onPlayPauseChange={isPlaying => - cineService.setCine({ + onClose={() => { + // also stop the clip + api.setCine({ + id: viewportId, + isPlaying: false, + }); + api.setIsCineEnabled(false); + }} + onPlayPauseChange={isPlaying => { + api.setCine({ id: viewportId, isPlaying, - }) - } + }); + }} onFrameRateChange={frameRate => - cineService.setCine({ + api.setCine({ id: viewportId, frameRate, }) diff --git a/extensions/cornerstone/src/getToolbarModule.tsx b/extensions/cornerstone/src/getToolbarModule.tsx new file mode 100644 index 000000000..7c1209836 --- /dev/null +++ b/extensions/cornerstone/src/getToolbarModule.tsx @@ -0,0 +1,251 @@ +import { Enums } from '@cornerstonejs/tools'; + +const getToggledClassName = (isToggled: boolean) => { + return isToggled + ? '!text-primary-active' + : '!text-common-bright hover:!bg-primary-dark hover:text-primary-light'; +}; + +export default function getToolbarModule({ commandsManager, servicesManager }) { + const { + toolGroupService, + syncGroupService, + cornerstoneViewportService, + hangingProtocolService, + displaySetService, + viewportGridService, + } = servicesManager.services; + + return [ + // functions/helpers to be used by the toolbar buttons to decide if they should + // enabled or not + { + name: 'evaluate.cornerstoneTool', + evaluate: ({ viewportId, button }) => { + const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); + + if (!toolGroup) { + return; + } + + const toolName = getToolNameForButton(button); + + if (!toolGroup || !toolGroup.hasTool(toolName)) { + return { + disabled: true, + className: '!text-common-bright ohif-disabled', + }; + } + + const isPrimaryActive = toolGroup.getActivePrimaryMouseButtonTool() === toolName; + + return { + disabled: false, + className: isPrimaryActive + ? '!text-black bg-primary-light' + : '!text-common-bright hover:!bg-primary-dark hover:!text-primary-light', + // Todo: isActive right now is used for nested buttons where the primary + // button needs to be fully rounded (vs partial rounded) when active + // otherwise it does not have any other use + isActive: isPrimaryActive, + }; + }, + }, + { + name: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + evaluate: ({ viewportId, button, itemId }) => { + const { items } = button.props; + + const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); + + if (!toolGroup) { + return { + primary: button.props.primary, + items, + }; + } + + const activeToolName = toolGroup.getActivePrimaryMouseButtonTool(); + + // check if the active toolName is part of the items then we need + // to move it to the primary button + const activeToolIndex = items.findIndex(item => { + const toolName = getToolNameForButton(item); + return toolName === activeToolName; + }); + + // if there is an active tool in the items dropdown bound to the primary mouse/touch + // we should show that no matter what + if (activeToolIndex > -1) { + return { + primary: items[activeToolIndex], + items, + }; + } + + if (!itemId) { + return { + primary: button.props.primary, + items, + }; + } + + // other wise we can move the clicked tool to the primary button + const clickedItemProps = items.find(item => item.id === itemId || item.itemId === itemId); + + return { + primary: clickedItemProps, + items, + }; + }, + }, + { + name: 'evaluate.action', + evaluate: ({ viewportId, button }) => { + return { + className: '!text-common-bright hover:!bg-primary-dark hover:text-primary-light', + }; + }, + }, + { + name: 'evaluate.cornerstoneTool.toggle', + evaluate: ({ viewportId, button }) => { + const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); + + if (!toolGroup) { + return; + } + const toolName = getToolNameForButton(button); + + if (!toolGroup || !toolGroup.hasTool(toolName)) { + return { + disabled: true, + className: '!text-common-bright ohif-disabled', + }; + } + + const isOff = [Enums.ToolModes.Disabled, Enums.ToolModes.Passive].includes( + toolGroup.getToolOptions(toolName).mode + ); + + return { + className: getToggledClassName(!isOff), + }; + }, + }, + { + name: 'evaluate.cornerstone.synchronizer', + evaluate: ({ viewportId, button }) => { + let synchronizers = syncGroupService.getSynchronizersForViewport(viewportId); + + if (!synchronizers?.length) { + return { + className: getToggledClassName(false), + }; + } + + const synchronizerType = button?.commands?.[0]?.commandOptions?.type; + + synchronizers = syncGroupService.getSynchronizersOfType(synchronizerType); + + if (!synchronizers?.length) { + return { + className: getToggledClassName(false), + }; + } + + // Todo: we need a better way to find the synchronizers based on their + // type, but for now we just check the first one and see if it is + // enabled + const synchronizer = synchronizers[0]; + + const isEnabled = synchronizer?._enabled; + + return { + className: getToggledClassName(isEnabled), + }; + }, + }, + { + name: 'evaluate.viewportProperties.toggle', + evaluate: ({ viewportId, button }) => { + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + + if (!viewport || viewport.isDisabled) { + return; + } + + const propId = button.id; + + const properties = viewport.getProperties(); + const camera = viewport.getCamera(); + + const prop = camera?.[propId] || properties?.[propId]; + + if (!prop) { + return { + disabled: false, + className: '!text-common-bright hover:!bg-primary-dark hover:text-primary-light', + }; + } + + const isToggled = prop; + + return { + className: getToggledClassName(isToggled), + }; + }, + }, + { + name: 'evaluate.mpr', + evaluate: ({ viewportId, button }) => { + const { protocol } = hangingProtocolService.getActiveProtocol(); + + const displaySetUIDs = viewportGridService.getDisplaySetsUIDsForViewport(viewportId); + + if (!displaySetUIDs?.length) { + return; + } + + const displaySets = displaySetUIDs.map(displaySetService.getDisplaySetByUID); + + const areReconstructable = displaySets.every(displaySet => { + return displaySet.isReconstructable; + }); + + if (!areReconstructable) { + return { + disabled: true, + className: '!text-common-bright ohif-disabled', + }; + } + + const isMpr = protocol?.id === 'mpr'; + + return { + disabled: false, + className: getToggledClassName(isMpr), + }; + }, + }, + ]; +} + +function getToolNameForButton(button) { + const { props } = button; + + const commands = props?.commands || button.commands; + const commandsArray = Array.isArray(commands) ? commands : [commands]; + const firstCommand = commandsArray[0]; + if (typeof firstCommand === 'string') { + // likely not a cornerstone tool + return null; + } + + if ('commandOptions' in firstCommand) { + return firstCommand.commandOptions.toolName ?? props?.id ?? button.id; + } + + // use id as a fallback for toolName + return props?.id ?? button.id; +} diff --git a/extensions/cornerstone/src/hps/mpr.ts b/extensions/cornerstone/src/hps/mpr.ts index 4c625c731..c9a9eea82 100644 --- a/extensions/cornerstone/src/hps/mpr.ts +++ b/extensions/cornerstone/src/hps/mpr.ts @@ -22,11 +22,6 @@ export const mpr: Types.HangingProtocol.Protocol = { }, ], // Turns off crosshairs when switching out of MPR mode - onProtocolExit: [ - { - commandName: 'cleanUpCrosshairs', - }, - ], }, displaySetSelectors: { activeDisplaySet: { diff --git a/extensions/cornerstone/src/index.tsx b/extensions/cornerstone/src/index.tsx index ac53c8f0f..808f63afa 100644 --- a/extensions/cornerstone/src/index.tsx +++ b/extensions/cornerstone/src/index.tsx @@ -13,6 +13,7 @@ import init from './init'; import getCustomizationModule from './getCustomizationModule'; import getCommandsModule from './commandsModule'; import getHangingProtocolModule from './getHangingProtocolModule'; +import getToolbarModule from './getToolbarModule'; import ToolGroupService from './services/ToolGroupService'; import SyncGroupService from './services/SyncGroupService'; import SegmentationService from './services/SegmentationService'; @@ -26,7 +27,6 @@ import dicomLoaderService from './utils/dicomLoaderService'; import getActiveViewportEnabledElement from './utils/getActiveViewportEnabledElement'; import { id } from './id'; -import * as csWADOImageLoader from './initWADOImageLoader.js'; import { measurementMappingUtils } from './utils/measurementServiceMappings'; import type { PublicViewportOptions } from './services/ViewportService/Viewport'; import ImageOverlayViewerTool from './tools/ImageOverlayViewerTool'; @@ -79,6 +79,7 @@ const cornerstoneExtension: Types.Extensions.Extension = { return init.call(this, props); }, + getToolbarModule, getHangingProtocolModule, getViewportModule({ servicesManager, commandsManager }) { const ExtendedOHIFCornerstoneViewport = props => { diff --git a/extensions/cornerstone/src/init.tsx b/extensions/cornerstone/src/init.tsx index 8e1ede126..6d7f3ef7a 100644 --- a/extensions/cornerstone/src/init.tsx +++ b/extensions/cornerstone/src/init.tsx @@ -15,7 +15,6 @@ import { utilities as csUtilities, Enums as csEnums, } from '@cornerstonejs/core'; -import { Enums } from '@cornerstonejs/tools'; import { cornerstoneStreamingImageVolumeLoader } from '@cornerstonejs/streaming-image-volume-loader'; import initWADOImageLoader from './initWADOImageLoader'; @@ -41,7 +40,6 @@ export default async function init({ servicesManager, commandsManager, extensionManager, - configuration, appConfig, }: Types.Extensions.ExtensionParams): Promise { // Note: this should run first before initializing the cornerstone @@ -94,13 +92,26 @@ export default async function init({ cineService, cornerstoneViewportService, hangingProtocolService, - toolGroupService, toolbarService, viewportGridService, stateSyncService, - syncGroupService, + segmentationService, } = servicesManager.services as CornerstoneServices; + toolbarService.registerEventForToolbarUpdate(cornerstoneViewportService, [ + cornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED, + ]); + + toolbarService.registerEventForToolbarUpdate(segmentationService, [ + segmentationService.EVENTS.SEGMENTATION_ADDED, + segmentationService.EVENTS.SEGMENTATION_REMOVED, + segmentationService.EVENTS.SEGMENTATION_UPDATED, + ]); + + toolbarService.registerEventForToolbarUpdate(eventTarget, [ + cornerstoneTools.Enums.Events.TOOL_ACTIVATED, + ]); + window.services = servicesManager.services; window.extensionManager = extensionManager; window.commandsManager = commandsManager; @@ -225,47 +236,6 @@ export default async function init({ commandsManager, }); - /** - * When a viewport gets a new display set, this call will go through all the - * active tools in the toolbar, and call any commands registered in the - * toolbar service with a callback to re-enable on displaying the viewport. - */ - const toolbarEventListener = evt => { - const { element } = evt.detail; - const activeTools = toolbarService.getActiveTools(); - - activeTools.forEach(tool => { - const toolData = toolbarService.getNestedButton(tool); - const commands = toolData?.listeners?.[evt.type]; - commandsManager.run(commands, { element, evt }); - }); - }; - - /** Listens for active viewport events and fires the toolbar listeners */ - const activeViewportEventListener = evt => { - const { viewportId } = evt; - const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); - - const activeTools = toolbarService.getActiveTools(); - - activeTools.forEach(tool => { - if (!toolGroup?._toolInstances?.[tool]) { - return; - } - - // check if tool is active on the new viewport - const toolEnabled = toolGroup._toolInstances[tool].mode === Enums.ToolModes.Enabled; - - if (!toolEnabled) { - return; - } - - const button = toolbarService.getNestedButton(tool); - const commands = button?.listeners?.[evt.type]; - commandsManager.run(commands, { viewportId, evt }); - }); - }; - /** * Runs error handler for failed requests. * @param event @@ -275,30 +245,6 @@ export default async function init({ handler(detail.error); }; - const resetCrosshairs = evt => { - const { element } = evt.detail; - const { viewportId, renderingEngineId } = cornerstone.getEnabledElement(element); - - const toolGroup = cornerstoneTools.ToolGroupManager.getToolGroupForViewport( - viewportId, - renderingEngineId - ); - - if (!toolGroup || !toolGroup._toolInstances?.['Crosshairs']) { - return; - } - - const mode = toolGroup._toolInstances['Crosshairs'].mode; - - if (mode === Enums.ToolModes.Active) { - toolGroup.setToolActive('Crosshairs'); - } else if (mode === Enums.ToolModes.Passive) { - toolGroup.setToolPassive('Crosshairs'); - } else if (mode === Enums.ToolModes.Enabled) { - toolGroup.setToolEnabled('Crosshairs'); - } - }; - eventTarget.addEventListener(EVENTS.STACK_VIEWPORT_NEW_STACK, evt => { const { element } = evt.detail; cornerstoneTools.utilities.stackContextPrefetch.enable(element); @@ -309,17 +255,21 @@ export default async function init({ function elementEnabledHandler(evt) { const { element } = evt.detail; - element.addEventListener(EVENTS.CAMERA_RESET, resetCrosshairs); + element.addEventListener(EVENTS.CAMERA_RESET, evt => { + const { element } = evt.detail; + const { viewportId } = getEnabledElement(element); + commandsManager.runCommand('resetCrosshairs', { viewportId }); + }); - eventTarget.addEventListener(EVENTS.STACK_VIEWPORT_NEW_STACK, toolbarEventListener); + // eventTarget.addEventListener(EVENTS.STACK_VIEWPORT_NEW_STACK, toolbarEventListener); - initViewTiming({ element, eventTarget }); + initViewTiming({ element }); } function elementDisabledHandler(evt) { const { element } = evt.detail; - element.removeEventListener(EVENTS.CAMERA_RESET, resetCrosshairs); + // element.removeEventListener(EVENTS.CAMERA_RESET, resetCrosshairs); // TODO - consider removing the callback when all elements are gone // eventTarget.removeEventListener( @@ -332,10 +282,10 @@ export default async function init({ eventTarget.addEventListener(EVENTS.ELEMENT_DISABLED, elementDisabledHandler.bind(null)); - viewportGridService.subscribe( - viewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED, - activeViewportEventListener - ); + // viewportGridService.subscribe( + // viewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED, + // activeViewportEventListener + // ); } function CPUModal() { diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts index f71dbff5d..c073f3f13 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts @@ -962,7 +962,7 @@ class SegmentationService extends PubSubService { // Force use of a Uint8Array SharedArrayBuffer for the segmentation to save space and so // it is easily compressible in worker thread. - await volumeLoader.createAndCacheDerivedVolume(volumeId, { + await volumeLoader.createAndCacheDerivedSegmentationVolume(volumeId, { volumeId: segmentationId, targetBuffer: { type: 'Uint8Array', @@ -1368,8 +1368,6 @@ class SegmentationService extends PubSubService { public setConfiguration = (configuration: SegmentationConfig): void => { const { - brushSize, - brushThresholdGate, fillAlpha, fillAlphaInactive, outlineWidthActive, @@ -1461,7 +1459,6 @@ class SegmentationService extends PubSubService { segmentInfo.label = label; if (suppressEvents === false) { - // this._setSegmentationModified(segmentationId); this._broadcastEvent(this.EVENTS.SEGMENTATION_UPDATED, { segmentation, }); diff --git a/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts b/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts index f93075e1c..0c1536be7 100644 --- a/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts +++ b/extensions/cornerstone/src/services/SyncGroupService/SyncGroupService.ts @@ -1,4 +1,5 @@ import { synchronizers, SynchronizerManager, Synchronizer } from '@cornerstonejs/tools'; +import { getRenderingEngines } from '@cornerstonejs/core'; import { pubSubServiceInterface, Types, ServicesManager } from '@ohif/core'; @@ -25,6 +26,7 @@ const POSITION = 'cameraposition'; const VOI = 'voi'; const ZOOMPAN = 'zoompan'; const STACKIMAGE = 'stackimage'; +const IMAGE_SLICE = 'imageslice'; const asSyncGroup = (syncGroup: string | SyncGroup): SyncGroup => typeof syncGroup === 'string' ? { type: syncGroup } : syncGroup; @@ -45,9 +47,14 @@ export default class SyncGroupService { [POSITION]: synchronizers.createCameraPositionSynchronizer, [VOI]: synchronizers.createVOISynchronizer, [ZOOMPAN]: synchronizers.createZoomPanSynchronizer, + // todo: remove stack image since it is legacy now and the image_slice + // handles both stack and volume viewports [STACKIMAGE]: synchronizers.createImageSliceSynchronizer, + [IMAGE_SLICE]: synchronizers.createImageSliceSynchronizer, }; + synchronizersByType: { [key: string]: Synchronizer[] } = {}; + constructor(serviceManager: ServicesManager) { this.servicesManager = serviceManager; this.listeners = {}; @@ -57,14 +64,27 @@ export default class SyncGroupService { } private _createSynchronizer(type: string, id: string, options): Synchronizer | undefined { + // Initialize if not already done + this.synchronizersByType[type] = this.synchronizersByType[type] || []; + const syncCreator = this.synchronizerCreators[type.toLowerCase()]; + if (syncCreator) { - return syncCreator(id, options); + const synchronizer = syncCreator(id, options); + + if (synchronizer) { + this.synchronizersByType[type].push(synchronizer); + return synchronizer; + } } else { - console.warn('Unknown synchronizer type', type, id); + console.warn(`Unknown synchronizer type: ${type}, id: ${id}`); } } + public getSyncCreatorForType(type: string): SyncCreator { + return this.synchronizerCreators[type.toLowerCase()]; + } + /** * Creates a synchronizer type. * @param type is the type of the synchronizer to create @@ -78,6 +98,15 @@ export default class SyncGroupService { return SynchronizerManager.getSynchronizer(id); } + /** + * Retrieves an array of synchronizers of a specific type. + * @param type - The type of synchronizers to retrieve. + * @returns An array of synchronizers of the specified type. + */ + public getSynchronizersOfType(type: string): Synchronizer[] { + return this.synchronizersByType[type]; + } + protected _getOrCreateSynchronizer( type: string, id: string, @@ -125,14 +154,17 @@ export default class SyncGroupService { SynchronizerManager.destroy(); } - public getSynchronizersForViewport( - viewportId: string, - renderingEngineId: string - ): Synchronizer[] { - return SynchronizerManager.getAllSynchronizers().filter( + public getSynchronizersForViewport(viewportId: string): Synchronizer[] { + const renderingEngine = + getRenderingEngines().find(re => { + return re.getViewports().find(vp => vp.id === viewportId); + }) || getRenderingEngines()[0]; + + const synchronizers = SynchronizerManager.getAllSynchronizers(); + return synchronizers.filter( s => - s.hasSourceViewport(renderingEngineId, viewportId) || - s.hasTargetViewport(renderingEngineId, viewportId) + s.hasSourceViewport(renderingEngine.id, viewportId) || + s.hasTargetViewport(renderingEngine.id, viewportId) ); } diff --git a/extensions/cornerstone/src/services/ToolGroupService/ToolGroupService.ts b/extensions/cornerstone/src/services/ToolGroupService/ToolGroupService.ts index 3a85342b3..438fca1bd 100644 --- a/extensions/cornerstone/src/services/ToolGroupService/ToolGroupService.ts +++ b/extensions/cornerstone/src/services/ToolGroupService/ToolGroupService.ts @@ -189,19 +189,6 @@ export default class ToolGroupService { this.addToolsToToolGroup(toolGroupId, tools); return toolGroup; } - - /** - private changeConfigurationIfNecessary(toolGroup, volumeUID) { - // handle specific assignment for volumeUID (e.g., fusion) - const toolInstances = toolGroup._toolInstances; - // Object.values(toolInstances).forEach(toolInstance => { - // if (toolInstance.configuration) { - // toolInstance.configuration.volumeUID = volumeUID; - // } - // }); - } - */ - /** * Get the tool's configuration based on the tool name and tool group id * @param toolGroupId - The id of the tool group that the tool instance belongs to. diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index 96050311c..b6ff441e8 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -234,7 +234,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } const { viewPlaneNormal, viewUp } = csViewport.getCamera(); - const initialImageIndex = csViewport.getCurrentImageIdIndex(); + const initialImageIndex = csViewport.getCurrentImageIdIndex() || 0; const zoom = csViewport.getZoom(); const pan = csViewport.getPan(); @@ -347,10 +347,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi const { stateSyncService, syncGroupService } = this.servicesManager.services; - const synchronizers = syncGroupService.getSynchronizersForViewport( - viewportId, - this.renderingEngine.id - ); + const synchronizers = syncGroupService.getSynchronizersForViewport(viewportId); const { positionPresentationStore, synchronizersStore, lutPresentationStore } = stateSyncService.getState(); diff --git a/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx b/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx index ca0de98b7..e06488d3d 100644 --- a/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx +++ b/extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx @@ -189,7 +189,7 @@ const CornerstoneViewportDownloadForm = ({ // add the viewport to the toolGroup toolGroup.addViewport(downloadViewportId, renderingEngineId); - Object.keys(toolGroup._toolInstances).forEach(toolName => { + Object.keys(toolGroup.getToolInstances()).forEach(toolName => { // make all tools Enabled so that they can not be interacted with // in the download viewport if (toggle && toolName !== 'Crosshairs') { diff --git a/extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts b/extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts index 38e5bdfed..1a8e8cd78 100644 --- a/extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts +++ b/extensions/cornerstone/src/utils/imageSliceSync/toggleImageSliceSync.ts @@ -1,20 +1,35 @@ const IMAGE_SLICE_SYNC_NAME = 'IMAGE_SLICE_SYNC'; export default function toggleImageSliceSync({ - toggledState, servicesManager, viewports: providedViewports, + syncId, }) { - if (!toggledState) { - return disableSync(IMAGE_SLICE_SYNC_NAME, servicesManager); - } - const { syncGroupService, viewportGridService, displaySetService, cornerstoneViewportService } = servicesManager.services; + syncId ||= IMAGE_SLICE_SYNC_NAME; + const viewports = providedViewports || getReconstructableStackViewports(viewportGridService, displaySetService); + // Todo: right now we don't have a proper way to define specific + // viewports to add to synchronizers, and right now it is global or not + // after we do that, we should do fine grained control of the synchronizers + const someViewportHasSync = viewports.some(viewport => { + const syncStates = syncGroupService.getSynchronizersForViewport( + viewport.viewportOptions.viewportId + ); + + const imageSync = syncStates.find(syncState => syncState.id === syncId); + + return !!imageSync; + }); + + if (someViewportHasSync) { + return disableSync(syncId, servicesManager); + } + // create synchronization group and add the viewports to it. viewports.forEach(gridViewport => { const { viewportId } = gridViewport.viewportOptions; @@ -23,8 +38,8 @@ export default function toggleImageSliceSync({ return; } syncGroupService.addViewportToSyncGroup(viewportId, viewport.getRenderingEngine().id, { - type: 'stackimage', - id: IMAGE_SLICE_SYNC_NAME, + type: 'imageSlice', + id: syncId, source: true, target: true, }); diff --git a/extensions/cornerstone/src/utils/toggleVOISliceSync.ts b/extensions/cornerstone/src/utils/toggleVOISliceSync.ts new file mode 100644 index 000000000..0677cff37 --- /dev/null +++ b/extensions/cornerstone/src/utils/toggleVOISliceSync.ts @@ -0,0 +1,94 @@ +const VOI_SYNC_NAME = 'VOI_SYNC'; + +const getSyncId = modality => `${VOI_SYNC_NAME}_${modality}`; + +export default function toggleVOISliceSync({ + servicesManager, + viewports: providedViewports, + syncId, +}) { + const { syncGroupService, viewportGridService, displaySetService, cornerstoneViewportService } = + servicesManager.services; + + const viewports = + providedViewports || groupViewportsByModality(viewportGridService, displaySetService); + + // Todo: right now we don't have a proper way to define specific + // viewports to add to synchronizers, and right now it is global or not + // after we do that, we should do fine grained control of the synchronizers + + // we can apply voi sync within each modality group + for (const [modality, modalityViewports] of Object.entries(viewports)) { + const syncIdToUse = syncId || getSyncId(modality); + + const someViewportHasSync = modalityViewports.some(viewport => { + const syncStates = syncGroupService.getSynchronizersForViewport( + viewport.viewportOptions.viewportId + ); + + const imageSync = syncStates.find(syncState => syncState.id === syncIdToUse); + + return !!imageSync; + }); + + if (someViewportHasSync) { + return disableSync(modalityViewports, syncIdToUse, servicesManager); + } + + // create synchronization group and add the modalityViewports to it. + modalityViewports.forEach(gridViewport => { + const { viewportId } = gridViewport.viewportOptions; + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + if (!viewport) { + return; + } + syncGroupService.addViewportToSyncGroup(viewportId, viewport.getRenderingEngine().id, { + type: 'voi', + id: syncIdToUse, + source: true, + target: true, + }); + }); + } +} + +function disableSync(modalityViewports, syncId, servicesManager) { + const { syncGroupService, cornerstoneViewportService } = servicesManager.services; + + const viewports = modalityViewports; + viewports.forEach(gridViewport => { + const { viewportId } = gridViewport.viewportOptions; + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + if (!viewport) { + return; + } + syncGroupService.removeViewportFromSyncGroup( + viewport.id, + viewport.getRenderingEngine().id, + syncId + ); + }); +} + +function groupViewportsByModality(viewportGridService, displaySetService) { + let { viewports } = viewportGridService.getState(); + + viewports = [...viewports.values()]; + + // group the viewports by modality + return viewports.reduce((acc, viewport) => { + const { displaySetInstanceUIDs } = viewport; + // Todo: add proper fusion support + const displaySetInstanceUID = displaySetInstanceUIDs[0]; + const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID); + + const modality = displaySet.Modality; + if (!acc[modality]) { + acc[modality] = []; + } + + acc[modality].push(viewport); + + return acc; + }, {}); +} diff --git a/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx b/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx index 752929063..2e0a73819 100644 --- a/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx +++ b/extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx @@ -60,7 +60,6 @@ export default class ContextMenuController { return; } - console.log('Getting items from', menus); const items = ContextMenuItemsBuilder.getMenuItems( selectorProps || contextMenuProps, event, diff --git a/extensions/default/src/CustomizableContextMenu/ContextMenuItemsBuilder.ts b/extensions/default/src/CustomizableContextMenu/ContextMenuItemsBuilder.ts index 8b8b98532..88860b2a1 100644 --- a/extensions/default/src/CustomizableContextMenu/ContextMenuItemsBuilder.ts +++ b/extensions/default/src/CustomizableContextMenu/ContextMenuItemsBuilder.ts @@ -70,8 +70,6 @@ export function findMenu(menus: Menu[], props?: Types.IProps, menuIdFilter?: str current = findIt.next(); } - console.log('Menu chosen', menu?.id || 'NONE'); - return menu; } diff --git a/extensions/default/src/Panels/getImageSrcFromImageId.js b/extensions/default/src/Panels/getImageSrcFromImageId.js index 5cda3dff0..fbbbbe993 100644 --- a/extensions/default/src/Panels/getImageSrcFromImageId.js +++ b/extensions/default/src/Panels/getImageSrcFromImageId.js @@ -5,6 +5,11 @@ function getImageSrcFromImageId(cornerstone, imageId) { return new Promise((resolve, reject) => { const canvas = document.createElement('canvas'); + // Note: the default width and height of the canvas is 300x150 + // but we need to set the width and height to the same number since + // the thumbnails are usually square and we want to maintain the aspect ratio + canvas.width = 128 / window.devicePixelRatio; + canvas.height = 128 / window.devicePixelRatio; cornerstone.utilities .loadImageToCanvas({ canvas, imageId }) .then(imageId => { diff --git a/extensions/default/src/Toolbar/Toolbar.tsx b/extensions/default/src/Toolbar/Toolbar.tsx index f3812ff5b..4852026e9 100644 --- a/extensions/default/src/Toolbar/Toolbar.tsx +++ b/extensions/default/src/Toolbar/Toolbar.tsx @@ -1,57 +1,53 @@ -import React, { useCallback, useEffect, useState } from 'react'; +import React from 'react'; +import { Tooltip } from '@ohif/ui'; import classnames from 'classnames'; -import { useViewportGrid } from '@ohif/ui'; +import { useToolbar } from '@ohif/core'; -export default function Toolbar({ - servicesManager, -}: Types.Extensions.ExtensionParams): React.ReactElement { - const { toolbarService } = servicesManager.services; +export function Toolbar({ servicesManager }) { + const { toolbarButtons, onInteraction } = useToolbar({ + servicesManager, + buttonSection: 'primary', + }); - const [viewportGrid, viewportGridService] = useViewportGrid(); - - const [toolbarButtons, setToolbarButtons] = useState([]); - - useEffect(() => { - const updateToolbar = () => { - const toolGroupId = - viewportGridService.getActiveViewportOptionByKey('toolGroupId') ?? 'default'; - setToolbarButtons(toolbarService.getButtonSection(toolGroupId)); - }; - - const { unsubscribe } = toolbarService.subscribe( - toolbarService.EVENTS.TOOL_BAR_MODIFIED, - updateToolbar - ); - - updateToolbar(); - - return () => { - unsubscribe(); - }; - }, [toolbarService, viewportGrid]); - - const onInteraction = useCallback( - args => toolbarService.recordInteraction(args), - [toolbarService] - ); + if (!toolbarButtons.length) { + return null; + } return ( <> {toolbarButtons.map(toolDef => { + if (!toolDef) { + return null; + } + const { id, Component, componentProps } = toolDef; - return ( - // The margin for separating the tools on the toolbar should go here and NOT in each individual component (button) item. - // This allows for the individual items to be included in other UI components where perhaps alternative margins are desired. + const { disabled } = componentProps; + + const tool = ( + + ); + + return disabled ? ( + +
{tool}
+
+ ) : (
- + {tool}
); })} diff --git a/extensions/default/src/Toolbar/ToolbarButtonGroupWithServices.tsx b/extensions/default/src/Toolbar/ToolbarButtonGroupWithServices.tsx new file mode 100644 index 000000000..42180eaec --- /dev/null +++ b/extensions/default/src/Toolbar/ToolbarButtonGroupWithServices.tsx @@ -0,0 +1,35 @@ +import { ToolbarButton, ButtonGroup } from '@ohif/ui'; +import React, { useCallback } from 'react'; + +function ToolbarButtonGroupWithServices({ groupId, items, onInteraction, size }) { + const getSplitButtonItems = useCallback( + items => + items.map((item, index) => ( + { + onInteraction({ + groupId, + itemId: item.id, + commands: item.commands, + }); + }} + // Note: this is necessary since tooltip will add + // default styles to the tooltip container which + // we don't want for groups + toolTipClassName="" + /> + )), + [onInteraction, groupId] + ); + + return {getSplitButtonItems(items)}; +} + +export default ToolbarButtonGroupWithServices; diff --git a/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx b/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx deleted file mode 100644 index 32b7fb51e..000000000 --- a/extensions/default/src/Toolbar/ToolbarButtonWithServices.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { ToolbarButton } from '@ohif/ui'; -import React, { useEffect, useState } from 'react'; -import PropTypes from 'prop-types'; - -function ToolbarButtonWithServices({ - id, - type, - commands, - onInteraction, - servicesManager, - ...props -}) { - const { toolbarService } = servicesManager?.services || {}; - - const [buttonsState, setButtonState] = useState({ - primaryToolId: '', - toggles: {}, - groups: {}, - }); - const { primaryToolId } = buttonsState; - - const isActive = - (type === 'tool' && id === primaryToolId) || - (type === 'toggle' && buttonsState.toggles[id] === true); - - useEffect(() => { - const { unsubscribe } = toolbarService.subscribe( - toolbarService.EVENTS.TOOL_BAR_STATE_MODIFIED, - state => { - setButtonState({ ...state }); - } - ); - - return () => { - unsubscribe(); - }; - }, [toolbarService]); - - return ( - - ); -} - -ToolbarButtonWithServices.propTypes = { - id: PropTypes.string.isRequired, - type: PropTypes.oneOf(['tool', 'action', 'toggle']).isRequired, - commands: PropTypes.arrayOf( - PropTypes.shape({ - commandName: PropTypes.string.isRequired, - context: PropTypes.string, - }) - ), - onInteraction: PropTypes.func.isRequired, - servicesManager: PropTypes.shape({ - services: PropTypes.shape({ - toolbarService: PropTypes.shape({ - subscribe: PropTypes.func.isRequired, - state: PropTypes.shape({ - primaryToolId: PropTypes.string, - toggles: PropTypes.objectOf(PropTypes.bool), - groups: PropTypes.objectOf(PropTypes.any), - }).isRequired, - }).isRequired, - }).isRequired, - }).isRequired, -}; - -export default ToolbarButtonWithServices; diff --git a/extensions/default/src/Toolbar/ToolbarLayoutSelector.tsx b/extensions/default/src/Toolbar/ToolbarLayoutSelector.tsx index 430cd5aba..27202ed0a 100644 --- a/extensions/default/src/Toolbar/ToolbarLayoutSelector.tsx +++ b/extensions/default/src/Toolbar/ToolbarLayoutSelector.tsx @@ -3,21 +3,20 @@ import PropTypes from 'prop-types'; import { LayoutSelector as OHIFLayoutSelector, ToolbarButton } from '@ohif/ui'; import { ServicesManager } from '@ohif/core'; -function ToolbarLayoutSelectorWithServices({ servicesManager, ...props }) { - const { toolbarService } = servicesManager.services; +function ToolbarLayoutSelectorWithServices({ servicesManager, commands, ...props }) { + const { toolbarService, viewportGridService } = servicesManager.services; - const onSelection = useCallback( - props => { - toolbarService.recordInteraction({ - interactionType: 'action', - commands: [ - { - commandName: 'setViewportGridLayout', - commandOptions: { ...props }, - context: 'DEFAULT', - }, - ], - }); + const onInteraction = useCallback( + args => { + const viewportId = viewportGridService.getActiveViewportId(); + const refreshProps = { + viewportId, + }; + + if (props.onLayoutChange) { + props.onLayoutChange(args); + } + toolbarService.recordInteraction({ commands }, { ...args, refreshProps }); }, [toolbarService] ); @@ -25,12 +24,12 @@ function ToolbarLayoutSelectorWithServices({ servicesManager, ...props }) { return ( ); } -function LayoutSelector({ rows, columns, className, onSelection, ...rest }) { +function LayoutSelector({ rows, columns, className, onInteraction, ...rest }) { const [isOpen, setIsOpen] = useState(false); const closeOnOutsideClick = () => { @@ -62,7 +61,7 @@ function LayoutSelector({ rows, columns, className, onSelection, ...rest }) { ) } diff --git a/extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx b/extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx index a8943b16f..5dfee4ad5 100644 --- a/extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx +++ b/extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx @@ -1,11 +1,8 @@ -import { SplitButton, Icon, ToolbarButton } from '@ohif/ui'; -import React, { useEffect, useState } from 'react'; +import { SplitButton, ToolbarButton } from '@ohif/ui'; +import React, { useCallback } from 'react'; import PropTypes from 'prop-types'; -import classNames from 'classnames'; function ToolbarSplitButtonWithServices({ - isRadio, - isAction, groupId, primary, secondary, @@ -16,123 +13,35 @@ function ToolbarSplitButtonWithServices({ }) { const { toolbarService } = servicesManager?.services; - const handleItemClick = (item, index) => { - const { id, type, commands } = item; - onInteraction({ - groupId, - itemId: id, - interactionType: type, - commands, - }); - - setState(state => ({ - ...state, - primary: !isAction && isRadio ? { ...item, index } : state.primary, - isExpanded: false, - items: getSplitButtonItems(items).filter(item => - isRadio && !isAction ? item.index !== index : true - ), - })); - }; - /* Bubbles up individual item clicks */ - const getSplitButtonItems = items => - items.map((item, index) => ({ - ...item, - index, - onClick: () => handleItemClick(item, index), - })); - - const [buttonsState, setButtonState] = useState({ - primaryToolId: '', - toggles: {}, - groups: {}, - }); - - const [state, setState] = useState({ - primary, - items: getSplitButtonItems(items).filter(item => - isRadio && !isAction ? item.id !== primary.id : true - ), - }); - - const { primaryToolId, toggles } = buttonsState; - - const isPrimaryToggle = state.primary.type === 'toggle'; - - const isPrimaryActive = - (state.primary.type === 'tool' && primaryToolId === state.primary.id) || - (isPrimaryToggle && toggles[state.primary.id] === true); + const getSplitButtonItems = useCallback( + items => + items.map((item, index) => ({ + ...item, + index, + onClick: () => { + onInteraction({ + groupId, + itemId: item.id, + commands: item.commands, + }); + }, + })), + [] + ); const PrimaryButtonComponent = - toolbarService?.getButtonComponentForUIType(state.primary.uiType) ?? ToolbarButton; + toolbarService?.getButtonComponentForUIType(primary.uiType) ?? ToolbarButton; - useEffect(() => { - const { unsubscribe } = toolbarService.subscribe( - toolbarService.EVENTS.TOOL_BAR_STATE_MODIFIED, - state => { - setButtonState({ ...state }); - } - ); - - return () => { - unsubscribe(); - }; - }, [toolbarService]); - - const updatedItems = state.items.map(item => { - const isActive = item.type === 'tool' && primaryToolId === item.id; - - // We could have added the - // item.type === 'toggle' && toggles[item.id] === true - // too but that makes the button active when the toggle is active under it - // which feels weird - return { - ...item, - isActive, - }; - }); - - const DefaultListItemRenderer = ({ type, icon, label, t, id }) => { - const isActive = type === 'toggle' && toggles[id] === true; - - return ( -
- {icon && ( - - - - )} - {t(label)} -
- ); - }; - - const listItemRenderer = renderer || DefaultListItemRenderer; + const listItemRenderer = renderer; return ( item.isActive)} - isToggle={isPrimaryToggle} onInteraction={onInteraction} Component={props => ( { const entry = extensionManager.getModuleEntry(id); - if (!entry) { + if (!entry || !entry.component) { throw new Error( - `${id} is not valid for an extension module. Please verify your configuration or ensure that the extension is properly registered. It's also possible that your mode is utilizing a module from an extension that hasn't been included in its dependencies (add the extension to the "extensionDependencies" array in your mode's index.js file)` + `${id} is not valid for an extension module or no component found from extension ${id}. Please verify your configuration or ensure that the extension is properly registered. It's also possible that your mode is utilizing a module from an extension that hasn't been included in its dependencies (add the extension to the "extensionDependencies" array in your mode's index.js file). Check the reference string to the extension in your Mode configuration` ); } - let content; - if (entry && entry.component) { - content = entry.component; - } else { - throw new Error( - `No component found from extension ${id}. Check the reference string to the extension in your Mode configuration` - ); - } - - return { entry, content }; + return { entry, content: entry.component }; }; const getPanelData = id => { @@ -76,6 +67,7 @@ function ViewerLayout({ label: entry.label, name: entry.name, content, + contexts: entry.contexts, }; }; diff --git a/extensions/default/src/commandsModule.ts b/extensions/default/src/commandsModule.ts index b58c54083..4658f878a 100644 --- a/extensions/default/src/commandsModule.ts +++ b/extensions/default/src/commandsModule.ts @@ -18,6 +18,7 @@ export type HangingProtocolParams = { stageIndex?: number; activeStudyUID?: string; stageId?: string; + reset?: false; }; export type UpdateViewportDisplaySetParams = { @@ -107,41 +108,6 @@ const commandsModule = ({ measurementService.clear(); }, - /** - * Toggles off all tools which contain a commandName of setHangingProtocol - * or toggleHangingProtocol, and which match/don't match the protocol id/stage - */ - toggleHpTools: () => { - const { - protocol, - stageIndex: toggleStageIndex, - stage, - } = hangingProtocolService.getActiveProtocol(); - const enableListener = button => { - if (!button.id) { - return; - } - const { commands, items, primary } = button.props || button; - if (primary) { - enableListener(primary); - } - if (items) { - items.forEach(enableListener); - } - const hpCommand = commands?.find?.(isHangingProtocolCommand); - if (!hpCommand) { - return; - } - const { protocolId, stageIndex, stageId } = hpCommand.commandOptions; - const isActive = - (!protocolId || protocolId === protocol.id) && - (stageIndex === undefined || stageIndex === toggleStageIndex) && - (!stageId || stageId === stage.id); - toolbarService.setToggled(button.id, isActive); - }; - Object.values(toolbarService.getButtons()).forEach(enableListener); - }, - /** * Sets the specified protocol * 1. Records any existing state using the viewport grid service @@ -173,14 +139,12 @@ const commandsModule = ({ stageIndex, reset = false, }: HangingProtocolParams): boolean => { - const primaryToolBeforeHPChange = toolbarService.getActivePrimaryTool(); try { // Stores in the state the display set selector id to displaySetUID mapping // Pass in viewportId for the active viewport. This item will get set as // the activeViewportId const state = viewportGridService.getState(); const hpInfo = hangingProtocolService.getState(); - const { protocol: oldProtocol } = hangingProtocolService.getActiveProtocol(); const stateSyncReduce = reuseCachedLayouts(state, hangingProtocolService, stateSyncService); const { hangingProtocolStageIndexMap, viewportGridStore, displaySetSelectorMap } = stateSyncReduce; @@ -243,33 +207,9 @@ const commandsModule = ({ `${activeStudyUID || hpInfo.activeStudyUID}:activeDisplaySet:0` ]; stateSyncService.store(stateSyncReduce); - // This is a default action applied - actions.toggleHpTools(); - - // try to use the same tool in the new hanging protocol stage - const primaryButton = toolbarService.getButton(primaryToolBeforeHPChange); - if (primaryButton) { - // is there any type of interaction on this button, if not it might be in the - // items. This is a bit of a hack, but it works for now. - - let interactionType = primaryButton.props?.interactionType; - - if (!interactionType && primaryButton.props?.items) { - const firstItem = primaryButton.props.items[0]; - interactionType = firstItem.props?.interactionType || firstItem.props?.type; - } - - if (interactionType) { - toolbarService.recordInteraction({ - interactionType, - ...primaryButton.props, - }); - } - } return true; } catch (e) { console.error(e); - actions.toggleHpTools(); uiNotificationService.show({ title: 'Apply Hanging Protocol', message: 'The hanging protocol could not be applied.', @@ -639,56 +579,38 @@ const commandsModule = ({ }, clearMeasurements: { commandFn: actions.clearMeasurements, - storeContexts: [], - options: {}, }, displayNotification: { commandFn: actions.displayNotification, - storeContexts: [], - options: {}, }, setHangingProtocol: { commandFn: actions.setHangingProtocol, - storeContexts: [], - options: {}, }, toggleHangingProtocol: { commandFn: actions.toggleHangingProtocol, - storeContexts: [], - options: {}, }, navigateHistory: { commandFn: actions.navigateHistory, - storeContexts: [], - options: {}, }, nextStage: { commandFn: actions.deltaStage, - storeContexts: [], options: { direction: 1 }, }, previousStage: { commandFn: actions.deltaStage, - storeContexts: [], options: { direction: -1 }, }, setViewportGridLayout: { commandFn: actions.setViewportGridLayout, - storeContexts: [], - options: {}, }, toggleOneUp: { commandFn: actions.toggleOneUp, - storeContexts: [], - options: {}, }, openDICOMTagViewer: { commandFn: actions.openDICOMTagViewer, }, updateViewportDisplaySet: { commandFn: actions.updateViewportDisplaySet, - storeContexts: [], - options: {}, }, }; diff --git a/extensions/default/src/getCustomizationModule.tsx b/extensions/default/src/getCustomizationModule.tsx index 1da3f1871..206900338 100644 --- a/extensions/default/src/getCustomizationModule.tsx +++ b/extensions/default/src/getCustomizationModule.tsx @@ -93,8 +93,8 @@ export default function getCustomizationModule({ servicesManager, extensionManag instance && this.attribute ? instance[this.attribute] : this.contentF && typeof this.contentF === 'function' - ? this.contentF(props) - : null; + ? this.contentF(props) + : null; if (!value) { return null; } diff --git a/extensions/default/src/getToolbarModule.tsx b/extensions/default/src/getToolbarModule.tsx index eacdffd7b..00d010440 100644 --- a/extensions/default/src/getToolbarModule.tsx +++ b/extensions/default/src/getToolbarModule.tsx @@ -1,39 +1,67 @@ import ToolbarDivider from './Toolbar/ToolbarDivider'; import ToolbarLayoutSelectorWithServices from './Toolbar/ToolbarLayoutSelector'; import ToolbarSplitButtonWithServices from './Toolbar/ToolbarSplitButtonWithServices'; -import ToolbarButtonWithServices from './Toolbar/ToolbarButtonWithServices'; +import ToolbarButtonGroupWithServices from './Toolbar/ToolbarButtonGroupWithServices'; +import { ToolbarButton } from '@ohif/ui'; + +const getClassName = isToggled => { + return { + className: isToggled + ? '!text-primary-active' + : '!text-common-bright hover:!bg-primary-dark hover:text-primary-light', + }; +}; export default function getToolbarModule({ commandsManager, servicesManager }) { + const { cineService } = servicesManager.services; return [ + { + name: 'ohif.radioGroup', + defaultComponent: ToolbarButton, + }, { name: 'ohif.divider', defaultComponent: ToolbarDivider, - clickHandler: () => {}, - }, - { - name: 'ohif.action', - defaultComponent: ToolbarButtonWithServices, - clickHandler: () => {}, - }, - { - name: 'ohif.radioGroup', - defaultComponent: ToolbarButtonWithServices, - clickHandler: () => {}, }, { name: 'ohif.splitButton', defaultComponent: ToolbarSplitButtonWithServices, - clickHandler: () => {}, }, { name: 'ohif.layoutSelector', defaultComponent: ToolbarLayoutSelectorWithServices, - clickHandler: (evt, clickedBtn, btnSectionName) => {}, }, { - name: 'ohif.toggle', - defaultComponent: ToolbarButtonWithServices, - clickHandler: () => {}, + name: 'ohif.buttonGroup', + defaultComponent: ToolbarButtonGroupWithServices, + }, + { + name: 'evaluate.group.promoteToPrimary', + evaluate: ({ viewportId, button, itemId }) => { + const { items } = button.props; + + if (!itemId) { + return { + primary: button.props.primary, + items, + }; + } + + // other wise we can move the clicked tool to the primary button + const clickedItemProps = items.find(item => item.id === itemId || item.itemId === itemId); + + return { + primary: clickedItemProps, + items, + }; + }, + }, + { + name: 'evaluate.cine', + evaluate: () => { + const isToggled = cineService.getState().isCineEnabled; + return getClassName(isToggled); + }, }, ]; } diff --git a/extensions/default/src/init.ts b/extensions/default/src/init.ts index f77bc7ed0..d70cfa18c 100644 --- a/extensions/default/src/init.ts +++ b/extensions/default/src/init.ts @@ -10,8 +10,13 @@ const metadataProvider = classes.MetadataProvider; * @param {Object} servicesManager * @param {Object} configuration */ -export default function init({ servicesManager, configuration = {} }): void { - const { stateSyncService } = servicesManager.services; +export default function init({ servicesManager, configuration = {}, commandsManager }): void { + const { stateSyncService, toolbarService, cineService, viewportGridService } = + servicesManager.services; + + toolbarService.registerEventForToolbarUpdate(cineService, [ + cineService.EVENTS.CINE_STATE_CHANGED, + ]); // Add DicomMetadataStore.subscribe(DicomMetadataStore.EVENTS.INSTANCES_ADDED, handlePETImageMetadata); @@ -24,6 +29,10 @@ export default function init({ servicesManager, configuration = {} }): void { // Used to recover manual changes to the layout of a stage. stateSyncService.register('viewportGridStore', { clearOnModeExit: true }); + // uiStateStore is a sync state which stores the relevant + // UI state for the viewer + stateSyncService.register('uiStateStore', { clearOnModeExit: true }); + // displaySetSelectorMap stores a map from // `::` to // a displaySetInstanceUID, used to display named display sets in @@ -38,7 +47,7 @@ export default function init({ servicesManager, configuration = {} }): void { }); // Stores a map from the to be applied hanging protocols `:` - // to the previously applied hanging protolStageIndexMap key, in order to toggle + // to the previously applied hanging protocolStageIndexMap key, in order to toggle // off the applied protocol and remember the old state. stateSyncService.register('toggleHangingProtocol', { clearOnModeExit: true }); @@ -46,6 +55,45 @@ export default function init({ servicesManager, configuration = {} }): void { // changes numRows and numCols, the viewports can be remembers and then replaced // afterwards. stateSyncService.register('viewportsByPosition', { clearOnModeExit: true }); + + // Function to process and subscribe to events for a given set of commands and listeners + const subscribeToEvents = listeners => { + Object.entries(listeners).forEach(([event, commands]) => { + const supportedEvents = [ + viewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED, + viewportGridService.EVENTS.VIEWPORTS_READY, + ]; + + if (supportedEvents.includes(event)) { + viewportGridService.subscribe(event, eventData => { + const viewportId = eventData?.viewportId ?? viewportGridService.getActiveViewportId(); + + commandsManager.run(commands, { viewportId }); + }); + } + }); + }; + + toolbarService.subscribe(toolbarService.EVENTS.TOOL_BAR_MODIFIED, state => { + const { buttons } = state; + for (const [id, button] of Object.entries(buttons)) { + const { groupId, items, listeners } = button.props; + + // Handle group items' listeners + if (groupId && items) { + items.forEach(item => { + if (item.listeners) { + subscribeToEvents(item.listeners); + } + }); + } + + // Handle button listeners + if (listeners) { + subscribeToEvents(listeners); + } + } + }); } const handlePETImageMetadata = ({ SeriesInstanceUID, StudyInstanceUID }) => { diff --git a/extensions/dicom-microscopy/src/DicomMicroscopyViewport.tsx b/extensions/dicom-microscopy/src/DicomMicroscopyViewport.tsx index 39b487358..fd44e21f7 100644 --- a/extensions/dicom-microscopy/src/DicomMicroscopyViewport.tsx +++ b/extensions/dicom-microscopy/src/DicomMicroscopyViewport.tsx @@ -11,16 +11,6 @@ import dcmjs from 'dcmjs'; import cleanDenaturalizedDataset from './utils/cleanDenaturalizedDataset'; import MicroscopyService from './services/MicroscopyService'; -function transformImageTypeUnnaturalized(entry) { - if (entry.vr === 'CS') { - return { - vr: 'US', - Value: entry.Value[0].split('\\'), - }; - } - return entry; -} - class DicomMicroscopyViewport extends Component { state = { error: null as any, @@ -250,7 +240,6 @@ class DicomMicroscopyViewport extends Component { componentDidMount() { const { displaySets, viewportOptions } = this.props; - const { viewportId } = viewportOptions; // Todo-rename: this is always getting the 0 const displaySet = displaySets[0]; this.installOpenLayersRenderer(this.container.current, displaySet).then(() => { diff --git a/extensions/dicom-microscopy/src/getCommandsModule.ts b/extensions/dicom-microscopy/src/getCommandsModule.ts index 756c4fd5c..02d7ee8b8 100644 --- a/extensions/dicom-microscopy/src/getCommandsModule.ts +++ b/extensions/dicom-microscopy/src/getCommandsModule.ts @@ -124,7 +124,7 @@ export default function getCommandsModule({ } // overview - const { activeViewportId, viewports } = viewportGridService.getState(); + const { activeViewportId } = viewportGridService.getState(); microscopyService.toggleOverviewMap(activeViewportId); }, toggleAnnotations: () => { @@ -135,28 +135,18 @@ export default function getCommandsModule({ const definitions = { deleteMeasurement: { commandFn: actions.deleteMeasurement, - storeContexts: [] as any[], - options: {}, }, setLabel: { commandFn: actions.setLabel, - storeContexts: [] as any[], - options: {}, }, setToolActive: { commandFn: actions.setToolActive, - storeContexts: [] as any[], - options: {}, }, toggleOverlays: { commandFn: actions.toggleOverlays, - storeContexts: [] as any[], - options: {}, }, toggleAnnotations: { commandFn: actions.toggleAnnotations, - storeContexts: [] as any[], - options: {}, }, }; diff --git a/extensions/dicom-microscopy/src/index.tsx b/extensions/dicom-microscopy/src/index.tsx index 486736407..bd26b5c3e 100644 --- a/extensions/dicom-microscopy/src/index.tsx +++ b/extensions/dicom-microscopy/src/index.tsx @@ -2,6 +2,7 @@ import { id } from './id'; import React, { Suspense, useMemo } from 'react'; import getPanelModule from './getPanelModule'; import getCommandsModule from './getCommandsModule'; +import { Types } from '@ohif/core'; import { useViewportGrid } from '@ohif/ui'; import getDicomMicroscopySopClassHandler from './DicomMicroscopySopClassHandler'; @@ -23,14 +24,14 @@ const MicroscopyViewport = props => { /** * You can remove any of the following modules if you don't need them. */ -export default { +const extension: Types.Extensions.Extension = { /** * Only required property. Should be a unique value across all extensions. * You ID can be anything you want, but it should be unique. */ id, - async preRegistration({ servicesManager, commandsManager, configuration = {}, appConfig }) { + async preRegistration({ servicesManager }) { servicesManager.registerService(MicroscopyService.REGISTRATION(servicesManager)); }, @@ -90,6 +91,45 @@ export default { ]; }, + getToolbarModule({ servicesManager }) { + return [ + { + name: 'evaluate.microscopyTool', + evaluate: ({ button }) => { + const { microscopyService } = servicesManager.services; + + const activeInteractions = microscopyService.getActiveInteractions(); + + const isPrimaryActive = activeInteractions.find(interactions => { + const sameMouseButton = interactions[1].bindings.mouseButtons.includes('left'); + + if (!sameMouseButton) { + return false; + } + + const notDraw = interactions[0] !== 'draw'; + + // there seems to be a custom logic for draw tool for some reason + return notDraw + ? interactions[0] === button.id + : interactions[1].geometryType === button.id; + }); + + return { + disabled: false, + className: isPrimaryActive + ? '!text-black bg-primary-light' + : '!text-common-bright hover:!bg-primary-dark hover:!text-primary-light', + // Todo: isActive right now is used for nested buttons where the primary + // button needs to be fully rounded (vs partial rounded) when active + // otherwise it does not have any other use + isActive: isPrimaryActive, + }; + }, + }, + ]; + }, + /** * SopClassHandlerModule should provide a list of sop class handlers that will be * available in OHIF for Modes to consume and use to create displaySets from Series. @@ -113,3 +153,5 @@ export default { getCommandsModule, }; + +export default extension; diff --git a/extensions/dicom-microscopy/src/services/MicroscopyService.ts b/extensions/dicom-microscopy/src/services/MicroscopyService.ts index 78ba545c2..0f6005f5d 100644 --- a/extensions/dicom-microscopy/src/services/MicroscopyService.ts +++ b/extensions/dicom-microscopy/src/services/MicroscopyService.ts @@ -573,6 +573,10 @@ export default class MicroscopyService extends PubSubService { this.activeInteractions = interactions; } + getActiveInteractions() { + return this.activeInteractions; + } + /** * Triggers the relabelling process for the given RoiAnnotation instance, by * publishing the RELABEL event to notify the subscribers diff --git a/extensions/dicom-pdf/src/index.tsx b/extensions/dicom-pdf/src/index.tsx index ab3d33cf4..a655cbc50 100644 --- a/extensions/dicom-pdf/src/index.tsx +++ b/extensions/dicom-pdf/src/index.tsx @@ -41,18 +41,6 @@ const dicomPDFExtension = { return [{ name: 'dicom-pdf', component: ExtendedOHIFCornerstonePdfViewport }]; }, - // getCommandsModule({ servicesManager }) { - // return { - // definitions: { - // setToolActive: { - // commandFn: () => null, - // storeContexts: [], - // options: {}, - // }, - // }, - // defaultContext: 'ACTIVE_VIEWPORT::PDF', - // }; - // }, getSopClassHandlerModule, }; diff --git a/extensions/dicom-video/src/index.tsx b/extensions/dicom-video/src/index.tsx index a5fcd40d1..0fde8ca82 100644 --- a/extensions/dicom-video/src/index.tsx +++ b/extensions/dicom-video/src/index.tsx @@ -42,19 +42,6 @@ const dicomVideoExtension = { return [{ name: 'dicom-video', component: ExtendedOHIFCornerstoneVideoViewport }]; }, - // getCommandsModule({ servicesManager }) { - // return { - // definitions: { - // setToolActive: { - // commandFn: ({ toolName, element }) => { - // }, - // storeContexts: [], - // options: {}, - // }, - // }, - // defaultContext: 'ACTIVE_VIEWPORT::VIDEO', - // }; - // }, getSopClassHandlerModule, }; diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/getImageSrcFromImageId.js b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/getImageSrcFromImageId.js index 60a31499b..1fdf18497 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/getImageSrcFromImageId.js +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/getImageSrcFromImageId.js @@ -5,6 +5,12 @@ function getImageSrcFromImageId(cornerstone, imageId) { return new Promise((resolve, reject) => { const canvas = document.createElement('canvas'); + // Note: the default width and height of the canvas is 300x150 + // but we need to set the width and height to the same number since + // the thumbnails are usually square and we want to maintain the aspect ratio + canvas.width = 128 / window.devicePixelRatio; + canvas.height = 128 / window.devicePixelRatio; + cornerstone.utilities .loadImageToCanvas({ canvas, imageId }) .then(imageId => { diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx index 759460144..a2026edab 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx @@ -330,12 +330,12 @@ function _getStatusComponent(isTracked) {
{isTracked ? ( - <> - {t('Series is tracked and can be viewed in the measurement panel')} - + <>{t('Series is tracked and can be viewed in the measurement panel')} ) : ( <> - {t('Measurements for untracked series will not be shown in the measurements panel')} + {t( + 'Measurements for untracked series will not be shown in the measurements panel' + )} )} diff --git a/extensions/tmtv/src/Panels/PanelPetSUV.tsx b/extensions/tmtv/src/Panels/PanelPetSUV.tsx index f0a467eef..618ff051c 100644 --- a/extensions/tmtv/src/Panels/PanelPetSUV.tsx +++ b/extensions/tmtv/src/Panels/PanelPetSUV.tsx @@ -109,23 +109,6 @@ export default function PanelPetSUV({ servicesManager, commandsManager }) { throw new Error('No ptDisplaySet found'); } - const toolGroupIds = toolGroupService.getToolGroupIds(); - - // Todo: we don't have a proper way to perform a toggle command and update the - // state for the toolbar, so here, we manually toggle the toolbar - - // Todo: Crosshairs have bugs for the camera reset currently, so we need to - // force turn it off before we update the metadata - toolGroupIds.forEach(toolGroupId => { - commandsManager.runCommand('toggleCrosshairs', { - toolGroupId, - toggledState: false, - }); - }); - - toolbarService.state.toggles['Crosshairs'] = false; - toolbarService._broadcastEvent(toolbarService.EVENTS.TOOL_BAR_STATE_MODIFIED); - // metadata should be dcmjs naturalized DicomMetadataStore.updateMetadataForSeries( ptDisplaySet.StudyInstanceUID, @@ -135,6 +118,12 @@ export default function PanelPetSUV({ servicesManager, commandsManager }) { // update the displaySets displaySetService.setDisplaySetMetadataInvalidated(ptDisplaySet.displaySetInstanceUID); + + // Crosshair position depends on the metadata values such as the positioning interaction + // between series, so when the metadata is updated, the crosshairs need to be reset. + setTimeout(() => { + commandsManager.runCommand('resetCrosshairs'); + }, 0); } return (
diff --git a/extensions/tmtv/src/commandsModule.js b/extensions/tmtv/src/commandsModule.js index 73409ee41..32b368b8e 100644 --- a/extensions/tmtv/src/commandsModule.js +++ b/extensions/tmtv/src/commandsModule.js @@ -530,83 +530,51 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) const definitions = { setEndSliceForROIThresholdTool: { commandFn: actions.setEndSliceForROIThresholdTool, - storeContexts: [], - options: {}, }, setStartSliceForROIThresholdTool: { commandFn: actions.setStartSliceForROIThresholdTool, - storeContexts: [], - options: {}, }, getMatchingPTDisplaySet: { commandFn: actions.getMatchingPTDisplaySet, - storeContexts: [], - options: {}, }, getPTMetadata: { commandFn: actions.getPTMetadata, - storeContexts: [], - options: {}, }, createNewLabelmapFromPT: { commandFn: actions.createNewLabelmapFromPT, - storeContexts: [], - options: {}, }, setSegmentationActiveForToolGroups: { commandFn: actions.setSegmentationActiveForToolGroups, - storeContexts: [], - options: {}, }, thresholdSegmentationByRectangleROITool: { commandFn: actions.thresholdSegmentationByRectangleROITool, - storeContexts: [], - options: {}, }, getTotalLesionGlycolysis: { commandFn: actions.getTotalLesionGlycolysis, - storeContexts: [], - options: {}, }, calculateSuvPeak: { commandFn: actions.calculateSuvPeak, - storeContexts: [], - options: {}, }, getLesionStats: { commandFn: actions.getLesionStats, - storeContexts: [], - options: {}, }, calculateTMTV: { commandFn: actions.calculateTMTV, - storeContexts: [], - options: {}, }, exportTMTVReportCSV: { commandFn: actions.exportTMTVReportCSV, - storeContexts: [], - options: {}, }, createTMTVRTReport: { commandFn: actions.createTMTVRTReport, - storeContexts: [], - options: {}, }, getSegmentationCSVReport: { commandFn: actions.getSegmentationCSVReport, - storeContexts: [], - options: {}, }, exportRTReportForAnnotations: { commandFn: actions.exportRTReportForAnnotations, - storeContexts: [], - options: {}, }, setFusionPTColormap: { commandFn: actions.setFusionPTColormap, - storeContexts: [], - options: {}, }, }; diff --git a/extensions/tmtv/src/init.js b/extensions/tmtv/src/init.js index 6eaa1c25e..99d4135b6 100644 --- a/extensions/tmtv/src/init.js +++ b/extensions/tmtv/src/init.js @@ -14,7 +14,7 @@ const CORNERSTONE_3D_TOOLS_SOURCE_VERSION = '0.1'; * @param {Object} configuration * @param {Object|Array} configuration.csToolsConfig */ -export default function init({ servicesManager, extensionManager }) { +export default function init({ servicesManager }) { const { measurementService, displaySetService, cornerstoneViewportService } = servicesManager.services; @@ -38,6 +38,5 @@ export default function init({ servicesManager, extensionManager }) { RectangleROIStartEndThreshold.toAnnotation, RectangleROIStartEndThreshold.toMeasurement ); - colormaps.forEach(registerColormap); } diff --git a/modes/basic-dev-mode/src/index.js b/modes/basic-dev-mode/src/index.js index bcedc4aca..4bc20e843 100644 --- a/modes/basic-dev-mode/src/index.js +++ b/modes/basic-dev-mode/src/index.js @@ -89,39 +89,8 @@ function modeFactory({ modeConfiguration }) { // disabled }; - const toolGroupId = 'default'; - toolGroupService.createToolGroupAndAddTools(toolGroupId, tools); + toolGroupService.createToolGroupAndAddTools('default', tools); - let unsubscribe; - - const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); - - // We don't need to reset the active tool whenever a viewport is getting - // added to the toolGroup. - unsubscribe(); - }; - - // Since we only have one viewport for the basic cs3d mode and it has - // only one hanging protocol, we can just use the first viewport - ({ unsubscribe } = toolGroupService.subscribe( - toolGroupService.EVENTS.VIEWPORT_ADDED, - activateTool - )); - - toolbarService.init(extensionManager); toolbarService.addButtons(toolbarButtons); toolbarService.createButtonSection('primary', [ 'MeasurementTools', diff --git a/modes/basic-dev-mode/src/toolbarButtons.js b/modes/basic-dev-mode/src/toolbarButtons.js index 995e4dea6..638e73b72 100644 --- a/modes/basic-dev-mode/src/toolbarButtons.js +++ b/modes/basic-dev-mode/src/toolbarButtons.js @@ -1,47 +1,16 @@ -// TODO: torn, can either bake this here; or have to create a whole new button type -// Only ways that you can pass in a custom React component for render :l import { - // ExpandableToolbarButton, - // ListMenu, WindowLevelMenuItem, } from '@ohif/ui'; -import { defaults } from '@ohif/core'; +import { defaults, ToolbarService } from '@ohif/core'; +import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; -/** - * - * @param {*} type - 'tool' | 'action' | 'toggle' - * @param {*} id - * @param {*} icon - * @param {*} label - */ -function _createButton(type, id, icon, label, commands, tooltip) { - return { - id, - icon, - label, - type, - commands, - tooltip, - }; -} -const _createActionButton = _createButton.bind(null, 'action'); -const _createToggleButton = _createButton.bind(null, 'toggle'); -const _createToolButton = _createButton.bind(null, 'tool'); - -/** - * - * @param {*} preset - preset number (from above import) - * @param {*} title - * @param {*} subtitle - */ function _createWwwcPreset(preset, title, subtitle) { return { id: preset.toString(), title, subtitle, - type: 'action', commands: [ { commandName: 'setWindowLevel', @@ -54,147 +23,91 @@ function _createWwwcPreset(preset, title, subtitle) { }; } -const toolbarButtons = [ - // Measurement +function _createSetToolActiveCommands(toolName, toolGroupIds = ['default', 'mpr', ]) { + return toolGroupIds.map(toolGroupId => ({ + commandName: 'setToolActive', + commandOptions: { + toolGroupId, + toolName, + }, + context: 'CORNERSTONE', + })); +} + +const toolbarButtons: Button[] = [ { id: 'MeasurementTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'MeasurementTools', - isRadio: true, // ? - // Switch? - primary: _createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Length', - }, - context: 'CORNERSTONE', - }, - ], - 'Length' - ), + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: ToolbarService.createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: _createSetToolActiveCommands('Length'), + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: '', - isActive: true, tooltip: 'More Measure Tools', }, items: [ - _createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Length', - }, - context: 'CORNERSTONE', - }, - ], - 'Length Tool' - ), - _createToolButton( - 'Bidirectional', - 'tool-bidirectional', - 'Bidirectional', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Bidirectional', - }, - context: 'CORNERSTONE', - }, - ], - 'Bidirectional Tool' - ), - _createToolButton( - 'EllipticalROI', - 'tool-elipse', - 'Ellipse', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'EllipticalROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Ellipse Tool' - ), - _createToolButton( - 'CircleROI', - 'tool-circle', - 'Circle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CircleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Circle Tool' - ), + ToolbarService.createButton({ + id: 'Bidirectional', + icon: 'tool-bidirectional', + label: 'Bidirectional', + tooltip: 'Bidirectional Tool', + commands: _createSetToolActiveCommands('Bidirectional'), + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'EllipticalROI', + icon: 'tool-ellipse', + label: 'Ellipse', + tooltip: 'Ellipse ROI', + commands: _createSetToolActiveCommands('EllipticalROI'), + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'CircleROI', + icon: 'tool-circle', + label: 'Circle', + tooltip: 'Circle Tool', + commands: _createSetToolActiveCommands('CircleROI'), + evaluate: 'evaluate.cornerstoneTool', + }), ], }, }, - // Zoom.. { id: 'Zoom', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-zoom', label: 'Zoom', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Zoom', - }, - context: 'CORNERSTONE', - }, - ], + commands: _createSetToolActiveCommands('Zoom'), + evaluate: 'evaluate.cornerstoneTool', }, }, - // Window Level + Presets... { id: 'WindowLevel', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( - 'WindowLevel', - 'tool-window-level', - 'Window Level', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - 'Window Level' - ), + primary: ToolbarService.createButton({ + id: 'WindowLevel', + icon: 'tool-window-level', + label: 'Window Level', + tooltip: 'Window Level', + commands: _createSetToolActiveCommands('WindowLevel'), + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: 'W/L Manual', - isActive: true, tooltip: 'W/L Presets', }, - isAction: true, // ? renderer: WindowLevelMenuItem, items: [ _createWwwcPreset(1, 'Soft tissue', '400 / 40'), @@ -205,157 +118,141 @@ const toolbarButtons = [ ], }, }, - // Pan... { id: 'Pan', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-move', label: 'Pan', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Pan', - }, - context: 'CORNERSTONE', - }, - ], + commands: _createSetToolActiveCommands('Pan'), + evaluate: 'evaluate.cornerstoneTool', }, }, { id: 'Capture', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { icon: 'tool-capture', label: 'Capture', - type: 'action', commands: [ { commandName: 'showDownloadViewportModal', - commandOptions: {}, context: 'CORNERSTONE', }, ], + evaluate: 'evaluate.action', + }, + }, + { + id: 'Layout', + uiType: 'ohif.layoutSelector', + props: { + rows: 3, + columns: 3, + evaluate: 'evaluate.action', + commands: [ + { + commandName: 'setViewportGridLayout', + }, + ], }, }, { - id: 'Layout', - type: 'ohif.layoutSelector', - }, - // More... - { - id: 'MoreTools', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ + id: 'MoreTools', + uiType: 'ohif.splitButton', + props: { + groupId: 'MoreTools', + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: ToolbarService.createButton({ + id: 'Reset', + icon: 'tool-reset', + label: 'Reset View', + tooltip: 'Reset View', + commands: [ + { + commandName: 'resetViewport', + context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.action', + }), + secondary: { + icon: 'chevron-down', + tooltip: 'More Tools', + }, + items: [ + ToolbarService.createButton({ + id: 'Reset', + icon: 'tool-reset', + label: 'Reset View', + tooltip: 'Reset View', + commands: [ + { + commandName: 'resetViewport', + context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'RotateRight', + icon: 'tool-rotate-right', + label: 'Rotate Right', + tooltip: 'Rotate Right +90', + commands: [ { - commandName: 'resetViewport', - commandOptions: {}, + commandName: 'rotateViewportCW', context: 'CORNERSTONE', }, ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - _createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - _createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontal' - ), - _createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - _createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - _createToolButton( - 'CalibrationLine', - 'tool-calibration', - 'Calibration', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CalibrationLine', - }, - context: 'CORNERSTONE', - }, - ], - 'Calibration Line' - ), - ], - }, + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'FlipHorizontal', + icon: 'tool-flip-horizontal', + label: 'Flip Horizontally', + tooltip: 'Flip Horizontally', + commands: [ + { + commandName: 'flipViewportHorizontal', + context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'StackScroll', + icon: 'tool-stack-scroll', + label: 'Stack Scroll', + tooltip: 'Stack Scroll', + commands: _createSetToolActiveCommands('StackScroll'), + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'Invert', + icon: 'tool-invert', + label: 'Invert Colors', + tooltip: 'Invert Colors', + commands: [ + { + commandName: 'invertViewport', + context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'CalibrationLine', + icon: 'tool-calibration', + label: 'Calibration Line', + tooltip: 'Calibration Line', + commands: _createSetToolActiveCommands('CalibrationLine'), + evaluate: 'evaluate.cornerstoneTool', + }), + + ], }, +}, ]; export default toolbarButtons; diff --git a/modes/basic-test-mode/src/index.ts b/modes/basic-test-mode/src/index.ts index a6e9d0827..155fc7013 100644 --- a/modes/basic-test-mode/src/index.ts +++ b/modes/basic-test-mode/src/index.ts @@ -3,16 +3,12 @@ import toolbarButtons from './toolbarButtons'; import { id } from './id'; import initToolGroups from './initToolGroups'; import moreTools from './moreTools'; -import moreToolsMpr from './moreToolsMpr'; import i18n from 'i18next'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG']; -const DEFAULT_TOOL_GROUP_ID = 'default'; -const MPR_TOOL_GROUP_ID = 'mpr'; - const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', @@ -82,50 +78,8 @@ function modeFactory() { '@ohif/extension-test.customizationModule.custom-context-menu', ]); - let unsubscribe; - toolbarService.setDefaultTool({ - groupId: 'WindowLevel', - itemId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); - - const activateTool = () => { - toolbarService.recordInteraction(toolbarService.getDefaultTool()); - - // We don't need to reset the active tool whenever a viewport is getting - // added to the toolGroup. - unsubscribe(); - }; - - // Since we only have one viewport for the basic cs3d mode and it has - // only one hanging protocol, we can just use the first viewport - ({ unsubscribe } = toolGroupService.subscribe( - toolGroupService.EVENTS.VIEWPORT_ADDED, - activateTool - )); - - toolbarService.init(extensionManager); - toolbarService.addButtons([...toolbarButtons, ...moreTools, ...moreToolsMpr]); - toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, [ - 'MeasurementTools', - 'Zoom', - 'WindowLevel', - 'Pan', - 'Capture', - 'Layout', - 'MPR', - 'MoreTools', - ]); - toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, [ + toolbarService.addButtons([...toolbarButtons, ...moreTools]); + toolbarService.createButtonSection('primary', [ 'MeasurementTools', 'Zoom', 'WindowLevel', @@ -134,7 +88,7 @@ function modeFactory() { 'Layout', 'MPR', 'Crosshairs', - 'MoreToolsMpr', + 'MoreTools', ]); }, onModeExit: ({ servicesManager }) => { diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts index 9b7726b80..e7da76369 100644 --- a/modes/basic-test-mode/src/moreTools.ts +++ b/modes/basic-test-mode/src/moreTools.ts @@ -1,228 +1,183 @@ import type { RunCommand } from '@ohif/core/types'; import { EVENTS } from '@cornerstonejs/core'; -import { ToolbarService } from '@ohif/core'; +import { ToolbarService, ViewportGridService } from '@ohif/core'; +import { setToolActiveToolbar } from './toolbarButtons'; +const { createButton } = ToolbarService; -const ReferenceLinesCommands: RunCommand = [ +const ReferenceLinesListeners: RunCommand = [ { commandName: 'setSourceViewportForReferenceLinesTool', context: 'CORNERSTONE', }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, ]; const moreTools = [ { id: 'MoreTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { - isRadio: true, // ? groupId: 'MoreTools', - primary: ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - }, - ], - 'Reset' - ), + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: createButton({ + id: 'Reset', + icon: 'tool-reset', + tooltip: 'Reset View', + label: 'Reset', + commands: 'resetViewport', + evaluate: 'evaluate.action', + }), secondary: { icon: 'chevron-down', label: '', - isActive: true, tooltip: 'More Tools', }, items: [ - ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', + createButton({ + id: 'Reset', + icon: 'tool-reset', + label: 'Reset View', + tooltip: 'Reset View', + commands: 'resetViewport', + evaluate: 'evaluate.action', + }), + createButton({ + id: 'rotate-right', + icon: 'tool-rotate-right', + label: 'Rotate Right', + tooltip: 'Rotate +90', + commands: 'rotateViewportCW', + evaluate: 'evaluate.action', + }), + createButton({ + id: 'flipHorizontal', + icon: 'tool-flip-horizontal', + label: 'Flip Horizontal', + tooltip: 'Flip Horizontally', + commands: 'flipViewportHorizontal', + evaluate: 'evaluate.viewportProperties.toggle', + }), + createButton({ + id: 'ImageSliceSync', + icon: 'link', + label: 'Image Slice Sync', + tooltip: 'Enable position synchronization on stack viewports', + commands: { + commandName: 'toggleSynchronizer', + commandOptions: { + type: 'imageSlice', }, - ], - 'Reset' - ), - ToolbarService._createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - ToolbarService._createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontally' - ), - ToolbarService._createToggleButton( - 'ImageSliceSync', - 'link', - 'Image Slice Sync', - [ - { + }, + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { commandName: 'toggleImageSliceSync', + commandOptions: { toggledState: true }, }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleImageSliceSync', - commandOptions: { toggledState: true }, - }, + }, + evaluate: 'evaluate.cornerstone.synchronizer', + }), + createButton({ + id: 'ReferenceLines', + icon: 'tool-referenceLines', + label: 'Reference Lines', + tooltip: 'Show Reference Lines', + commands: { + commandName: 'setToolEnabled', + commandOptions: { + toolName: 'ReferenceLines', + toggle: true, }, - } - ), - ToolbarService._createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + listeners: { + [ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners, + [ViewportGridService.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners, + }, + evaluate: 'evaluate.cornerstoneTool.toggle', + }), + createButton({ + id: 'ImageOverlay', + icon: 'toggle-dicom-overlay', + label: 'Image Overlay', + tooltip: 'Toggle Image Overlay', + commands: { + commandName: 'setToolEnabled', + commandOptions: { + toolName: 'ImageOverlayViewer', + toggle: true, }, - } - ), - ToolbarService._createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - ToolbarService._createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - ToolbarService._createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - ToolbarService._createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - ToolbarService._createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - ToolbarService._createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - ToolbarService._createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - ToolbarService._createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), + }, + evaluate: 'evaluate.cornerstoneTool.toggle', + }), + createButton({ + id: 'StackScroll', + icon: 'tool-stack-scroll', + label: 'Stack Scroll', + tooltip: 'Stack Scroll', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'invert', + icon: 'tool-invert', + label: 'Invert', + tooltip: 'Invert Colors', + commands: 'invertViewport', + evaluate: 'evaluate.viewportProperties.toggle', + }), + createButton({ + id: 'Probe', + icon: 'tool-probe', + label: 'Probe', + tooltip: 'Probe', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'Cine', + icon: 'tool-cine', + label: 'Cine', + tooltip: 'Cine', + commands: 'toggleCine', + evaluate: 'evaluate.cine', + }), + createButton({ + id: 'Angle', + icon: 'tool-angle', + label: 'Angle', + tooltip: 'Angle', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'Magnify', + icon: 'tool-magnify', + label: 'Magnify', + tooltip: 'Magnify', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'RectangleROI', + icon: 'tool-rectangle', + label: 'Rectangle', + tooltip: 'Rectangle', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'CalibrationLine', + icon: 'tool-calibration', + label: 'Calibration', + tooltip: 'Calibration Line', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'TagBrowser', + icon: 'list-bullets', + label: 'Dicom Tag Browser', + tooltip: 'Dicom Tag Browser', + commands: 'openDICOMTagViewer', + }), ], }, }, diff --git a/modes/basic-test-mode/src/moreToolsMpr.ts b/modes/basic-test-mode/src/moreToolsMpr.ts deleted file mode 100644 index 0672170a3..000000000 --- a/modes/basic-test-mode/src/moreToolsMpr.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { ToolbarService } from '@ohif/core'; - -const moreToolsMpr = [ - { - id: 'MoreToolsMpr', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - }, - ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - }, - ], - 'Reset' - ), - ToolbarService._createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - ToolbarService._createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - ToolbarService._createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - ToolbarService._createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - ToolbarService._createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - ToolbarService._createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - ToolbarService._createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), - ], - }, - }, -]; - -export default moreToolsMpr; diff --git a/modes/basic-test-mode/src/toolbarButtons.ts b/modes/basic-test-mode/src/toolbarButtons.ts index 391aef110..34b300e22 100644 --- a/modes/basic-test-mode/src/toolbarButtons.ts +++ b/modes/basic-test-mode/src/toolbarButtons.ts @@ -1,14 +1,14 @@ // TODO: torn, can either bake this here; or have to create a whole new button type // Only ways that you can pass in a custom React component for render :l import { - // ExpandableToolbarButton, // ListMenu, WindowLevelMenuItem, } from '@ohif/ui'; -import { ToolbarService, defaults } from '@ohif/core'; +import { defaults, ToolbarService } from '@ohif/core'; import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; +const { createButton } = ToolbarService; /** * @@ -21,7 +21,6 @@ function _createWwwcPreset(preset, title, subtitle) { id: preset.toString(), title, subtitle, - type: 'action', commands: [ { commandName: 'setWindowLevel', @@ -34,212 +33,106 @@ function _createWwwcPreset(preset, title, subtitle) { }; } +export const setToolActiveToolbar = { + commandName: 'setToolActiveToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup'], + }, +}; + const toolbarButtons: Button[] = [ - // Measurement { id: 'MeasurementTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'MeasurementTools', - isRadio: true, // ? - // Switch? - primary: ToolbarService._createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Length', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRLength', - toolGroupId: 'SRToolGroup', - }, - // we can use the setToolActive command for this from Cornerstone commandsModule - context: 'CORNERSTONE', - }, - ], - 'Length' - ), + // group evaluate to determine which item should move to the top + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: '', - isActive: true, tooltip: 'More Measure Tools', }, items: [ - ToolbarService._createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Length', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRLength', - toolGroupId: 'SRToolGroup', - }, - // we can use the setToolActive command for this from Cornerstone commandsModule - context: 'CORNERSTONE', - }, - ], - 'Length Tool' - ), - ToolbarService._createToolButton( - 'Bidirectional', - 'tool-bidirectional', - 'Bidirectional', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Bidirectional', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRBidirectional', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Bidirectional Tool' - ), - ToolbarService._createToolButton( - 'ArrowAnnotate', - 'tool-annotate', - 'Annotation', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ArrowAnnotate', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRArrowAnnotate', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Arrow Annotate' - ), - ToolbarService._createToolButton( - 'EllipticalROI', - 'tool-elipse', - 'Ellipse', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'EllipticalROI', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SREllipticalROI', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Ellipse Tool' - ), - ToolbarService._createToolButton( - 'CircleROI', - 'tool-circle', - 'Circle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CircleROI', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRCircleROI', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Circle Tool' - ), + createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'Bidirectional', + icon: 'tool-bidirectional', + label: 'Bidirectional', + tooltip: 'Bidirectional Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'ArrowAnnotate', + icon: 'tool-annotate', + label: 'Annotation', + tooltip: 'Arrow Annotate', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'EllipticalROI', + icon: 'tool-ellipse', + label: 'Ellipse', + tooltip: 'Ellipse ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'CircleROI', + icon: 'tool-circle', + label: 'Circle', + tooltip: 'Circle Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), ], }, }, - // Zoom.. { id: 'Zoom', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-zoom', label: 'Zoom', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Zoom', - }, - context: 'CORNERSTONE', - }, - ], + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, // Window Level + Presets... { id: 'WindowLevel', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: ToolbarService._createToolButton( - 'WindowLevel', - 'tool-window-level', - 'Window Level', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - 'Window Level' - ), + primary: createButton({ + id: 'WindowLevel', + icon: 'tool-window-level', + label: 'Window Level', + tooltip: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', label: 'W/L Manual', - isActive: true, tooltip: 'W/L Presets', }, - isAction: true, // ? renderer: WindowLevelMenuItem, items: [ _createWwwcPreset(1, 'Soft tissue', '400 / 40'), @@ -253,137 +146,47 @@ const toolbarButtons: Button[] = [ // Pan... { id: 'Pan', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { type: 'tool', icon: 'tool-move', label: 'Pan', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Pan', - }, - context: 'CORNERSTONE', - }, - ], + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, { id: 'Capture', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { icon: 'tool-capture', label: 'Capture', - type: 'action', commands: [ { commandName: 'showDownloadViewportModal', - commandOptions: {}, - context: 'CORNERSTONE', }, ], + evaluate: 'evaluate.action', }, }, { id: 'Layout', - type: 'ohif.splitButton', + uiType: 'ohif.layoutSelector', props: { - groupId: 'LayoutTools', - isRadio: false, - primary: { - id: 'Layout', - type: 'action', - uiType: 'ohif.layoutSelector', - icon: 'tool-layout', - label: 'Grid Layout', - props: { - rows: 4, - columns: 4, - commands: [ - { - commandName: 'setLayout', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - }, - }, - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'Hanging Protocols', - }, - items: [ + rows: 3, + columns: 3, + evaluate: 'evaluate.action', + commands: [ { - id: '2x2', - type: 'action', - label: '2x2', - commands: [ - { - commandName: 'setHangingProtocol', - commandOptions: { - protocolId: '@ohif/mnGrid', - stageId: '2x2', - }, - context: 'DEFAULT', - }, - ], - }, - { - id: '3x1', - type: 'action', - label: '3x1', - commands: [ - { - commandName: 'setHangingProtocol', - commandOptions: { - protocolId: '@ohif/mnGrid', - stageId: '3x1', - }, - context: 'DEFAULT', - }, - ], - }, - { - id: '2x1', - type: 'action', - label: '2x1', - commands: [ - { - commandName: 'setHangingProtocol', - commandOptions: { - protocolId: '@ohif/mnGrid', - stageId: '2x1', - }, - context: 'DEFAULT', - }, - ], - }, - { - id: '1x1', - type: 'action', - label: '1x1', - commands: [ - { - commandName: 'setHangingProtocol', - commandOptions: { - protocolId: '@ohif/mnGrid', - stageId: '1x1', - }, - context: 'DEFAULT', - }, - ], + commandName: 'setViewportGridLayout', }, ], }, }, { id: 'MPR', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { - type: 'toggle', icon: 'icon-mpr', label: 'MPR', commands: [ @@ -394,24 +197,23 @@ const toolbarButtons: Button[] = [ }, }, ], + evaluate: 'evaluate.mpr', }, }, { id: 'Crosshairs', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { type: 'tool', icon: 'tool-crosshair', label: 'Crosshairs', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolGroupId: 'mpr', - toolName: 'Crosshairs', - }, + commands: { + commandName: 'setToolActiveToolbar', + commandOptions: { + toolGroupIds: ['mpr'], }, - ], + }, + evaluate: 'evaluate.cornerstoneTool', }, }, ]; diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 571d6a5f6..87fe93251 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -2,17 +2,13 @@ import { hotkeys } from '@ohif/core'; import i18n from 'i18next'; import { id } from './id'; import initToolGroups from './initToolGroups'; -import moreTools from './moreTools'; -import moreToolsMpr from './moreToolsMpr'; import toolbarButtons from './toolbarButtons'; +import moreTools from './moreTools'; // Allow this mode by excluding non-imaging modalities such as SR, SEG // Also, SM is not a simple imaging modalities, so exclude it. const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG', 'RTSTRUCT']; -const DEFAULT_TOOL_GROUP_ID = 'default'; -const MPR_TOOL_GROUP_ID = 'mpr'; - const ohif = { layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', @@ -75,63 +71,16 @@ function modeFactory({ modeConfiguration }) { * Lifecycle hooks */ onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => { - const { - measurementService, - toolbarService, - toolGroupService, - panelService, - customizationService, - } = servicesManager.services; + const { measurementService, toolbarService, toolGroupService, customizationService } = + servicesManager.services; measurementService.clearMeasurements(); // Init Default and SR ToolGroups initToolGroups(extensionManager, toolGroupService, commandsManager); - let unsubscribe; - toolbarService.setDefaultTool({ - groupId: 'WindowLevel', - itemId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); - - const activateTool = () => { - toolbarService.recordInteraction(toolbarService.getDefaultTool()); - - // We don't need to reset the active tool whenever a viewport is getting - // added to the toolGroup. - unsubscribe(); - }; - - // Since we only have one viewport for the basic cs3d mode and it has - // only one hanging protocol, we can just use the first viewport - ({ unsubscribe } = toolGroupService.subscribe( - toolGroupService.EVENTS.VIEWPORT_ADDED, - activateTool - )); - - toolbarService.init(extensionManager); - toolbarService.addButtons([...toolbarButtons, ...moreTools, ...moreToolsMpr]); - toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, [ - 'MeasurementTools', - 'Zoom', - 'WindowLevel', - 'Pan', - 'Capture', - 'Layout', - 'MPR', - 'MoreTools', - ]); - toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, [ + toolbarService.addButtons([...toolbarButtons, ...moreTools]); + toolbarService.createButtonSection('primary', [ 'MeasurementTools', 'Zoom', 'WindowLevel', @@ -140,7 +89,7 @@ function modeFactory({ modeConfiguration }) { 'Layout', 'MPR', 'Crosshairs', - 'MoreToolsMpr', + 'MoreTools', ]); customizationService.addModeCustomizations([ @@ -176,7 +125,6 @@ function modeFactory({ modeConfiguration }) { const { toolGroupService, syncGroupService, - toolbarService, segmentationService, cornerstoneViewportService, uiDialogService, diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js index e7ea816db..bb9f0fcd3 100644 --- a/modes/longitudinal/src/initToolGroups.js +++ b/modes/longitudinal/src/initToolGroups.js @@ -54,15 +54,13 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage { toolName: toolNames.CalibrationLine }, ], // enabled - enabled: [{ toolName: toolNames.ImageOverlayViewer }], - // disabled - disabled: [{ toolName: toolNames.ReferenceLines }], + enabled: [{ toolName: toolNames.ImageOverlayViewer }, { toolName: toolNames.ReferenceLines }], }; toolGroupService.createToolGroupAndAddTools(toolGroupId, tools); } -function initSRToolGroup(extensionManager, toolGroupService, commandsManager) { +function initSRToolGroup(extensionManager, toolGroupService) { const SRUtilityModule = extensionManager.getModuleEntry( '@ohif/extension-cornerstone-dicom-sr.utilityModule.tools' ); @@ -186,6 +184,7 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) { toolName: toolNames.Crosshairs, configuration: { viewportIndicators: false, + disableOnPassive: true, autoPan: { enabled: false, panSize: 10, @@ -230,7 +229,7 @@ function initVolume3DToolGroup(extensionManager, toolGroupService) { function initToolGroups(extensionManager, toolGroupService, commandsManager) { initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default'); - initSRToolGroup(extensionManager, toolGroupService, commandsManager); + initSRToolGroup(extensionManager, toolGroupService); initMPRToolGroup(extensionManager, toolGroupService, commandsManager); initVolume3DToolGroup(extensionManager, toolGroupService); } diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts index 5ed2fddc7..2f3d5c247 100644 --- a/modes/longitudinal/src/moreTools.ts +++ b/modes/longitudinal/src/moreTools.ts @@ -1,295 +1,183 @@ import type { RunCommand } from '@ohif/core/types'; import { EVENTS } from '@cornerstonejs/core'; -import { ToolbarService } from '@ohif/core'; +import { ToolbarService, ViewportGridService } from '@ohif/core'; +import { setToolActiveToolbar } from './toolbarButtons'; +const { createButton } = ToolbarService; -const ReferenceLinesCommands: RunCommand = [ +const ReferenceLinesListeners: RunCommand = [ { commandName: 'setSourceViewportForReferenceLinesTool', context: 'CORNERSTONE', }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, ]; const moreTools = [ { id: 'MoreTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { - isRadio: true, // ? groupId: 'MoreTools', - primary: ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: createButton({ + id: 'Reset', + icon: 'tool-reset', + tooltip: 'Reset View', + label: 'Reset', + commands: 'resetViewport', + evaluate: 'evaluate.action', + }), secondary: { icon: 'chevron-down', label: '', - isActive: true, tooltip: 'More Tools', }, items: [ - ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', + createButton({ + id: 'Reset', + icon: 'tool-reset', + label: 'Reset View', + tooltip: 'Reset View', + commands: 'resetViewport', + evaluate: 'evaluate.action', + }), + createButton({ + id: 'rotate-right', + icon: 'tool-rotate-right', + label: 'Rotate Right', + tooltip: 'Rotate +90', + commands: 'rotateViewportCW', + evaluate: 'evaluate.action', + }), + createButton({ + id: 'flipHorizontal', + icon: 'tool-flip-horizontal', + label: 'Flip Horizontal', + tooltip: 'Flip Horizontally', + commands: 'flipViewportHorizontal', + evaluate: 'evaluate.viewportProperties.toggle', + }), + createButton({ + id: 'ImageSliceSync', + icon: 'link', + label: 'Image Slice Sync', + tooltip: 'Enable position synchronization on stack viewports', + commands: { + commandName: 'toggleSynchronizer', + commandOptions: { + type: 'imageSlice', }, - ], - 'Reset' - ), - ToolbarService._createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ - { - commandName: 'rotateViewportCW', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Rotate +90' - ), - ToolbarService._createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ - { - commandName: 'flipViewportHorizontal', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Flip Horizontal' - ), - ToolbarService._createToggleButton( - 'ImageSliceSync', - 'link', - 'Image Slice Sync', - [ - { + }, + listeners: { + [EVENTS.STACK_VIEWPORT_NEW_STACK]: { commandName: 'toggleImageSliceSync', + commandOptions: { toggledState: true }, }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleImageSliceSync', - commandOptions: { toggledState: true }, - }, + }, + evaluate: 'evaluate.cornerstone.synchronizer', + }), + createButton({ + id: 'ReferenceLines', + icon: 'tool-referenceLines', + label: 'Reference Lines', + tooltip: 'Show Reference Lines', + commands: { + commandName: 'setToolEnabled', + commandOptions: { + toolName: 'ReferenceLines', + toggle: true, // Toggle the tool on/off upon click }, - } - ), - ToolbarService._createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, + }, + listeners: { + [ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners, + [ViewportGridService.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners, + }, + evaluate: 'evaluate.cornerstoneTool.toggle', + }), + createButton({ + id: 'ImageOverlay', + icon: 'toggle-dicom-overlay', + label: 'Image Overlay', + tooltip: 'Toggle Image Overlay', + commands: { + commandName: 'setToolEnabled', + commandOptions: { + toolName: 'ImageOverlayViewer', + toggle: true, // Toggle the tool on/off upon click }, - } - ), - ToolbarService._createToggleButton( - 'ImageOverlayViewer', - 'toggle-dicom-overlay', - 'Image Overlay', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ImageOverlayViewer', - }, - context: 'CORNERSTONE', - }, - ], - 'Image Overlay', - { isActive: true } - ), - ToolbarService._createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - ToolbarService._createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - ToolbarService._createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - ToolbarService._createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - ToolbarService._createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - - // Next two tools can be added once icons are added - // ToolbarService._createToolButton( - // 'Cobb Angle', - // 'tool-cobb-angle', - // 'Cobb Angle', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'CobbAngle', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Cobb Angle' - // ), - // ToolbarService._createToolButton( - // 'Planar Freehand ROI', - // 'tool-freehand', - // 'PlanarFreehandROI', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'PlanarFreehandROI', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Planar Freehand ROI' - // ), - ToolbarService._createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - ToolbarService._createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - ToolbarService._createToolButton( - 'CalibrationLine', - 'tool-calibration', - 'Calibration', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CalibrationLine', - }, - context: 'CORNERSTONE', - }, - ], - 'Calibration Line' - ), - ToolbarService._createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), + }, + evaluate: 'evaluate.cornerstoneTool.toggle', + }), + createButton({ + id: 'StackScroll', + icon: 'tool-stack-scroll', + label: 'Stack Scroll', + tooltip: 'Stack Scroll', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'invert', + icon: 'tool-invert', + label: 'Invert', + tooltip: 'Invert Colors', + commands: 'invertViewport', + evaluate: 'evaluate.viewportProperties.toggle', + }), + createButton({ + id: 'Probe', + icon: 'tool-probe', + label: 'Probe', + tooltip: 'Probe', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'Cine', + icon: 'tool-cine', + label: 'Cine', + tooltip: 'Cine', + commands: 'toggleCine', + evaluate: 'evaluate.cine', + }), + createButton({ + id: 'Angle', + icon: 'tool-angle', + label: 'Angle', + tooltip: 'Angle', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'Magnify', + icon: 'tool-magnify', + label: 'Magnify', + tooltip: 'Magnify', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'RectangleROI', + icon: 'tool-rectangle', + label: 'Rectangle', + tooltip: 'Rectangle', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'CalibrationLine', + icon: 'tool-calibration', + label: 'Calibration', + tooltip: 'Calibration Line', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'TagBrowser', + icon: 'list-bullets', + label: 'Dicom Tag Browser', + tooltip: 'Dicom Tag Browser', + commands: 'openDICOMTagViewer', + }), ], }, }, diff --git a/modes/longitudinal/src/moreToolsMpr.ts b/modes/longitudinal/src/moreToolsMpr.ts deleted file mode 100644 index d34a42e47..000000000 --- a/modes/longitudinal/src/moreToolsMpr.ts +++ /dev/null @@ -1,242 +0,0 @@ -import type { RunCommand } from '@ohif/core/types'; -import { EVENTS } from '@cornerstonejs/core'; -import { ToolbarService } from '@ohif/core'; - -const ReferenceLinesCommands: RunCommand = [ - { - commandName: 'setSourceViewportForReferenceLinesTool', - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ReferenceLines', - }, - context: 'CORNERSTONE', - }, -]; - -const moreToolsMpr = [ - { - id: 'MoreToolsMpr', - type: 'ohif.splitButton', - props: { - isRadio: true, // ? - groupId: 'MoreTools', - primary: ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - secondary: { - icon: 'chevron-down', - label: '', - isActive: true, - tooltip: 'More Tools', - }, - items: [ - ToolbarService._createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - ToolbarService._createToggleButton( - 'ImageSliceSync', - 'link', - 'Image Slice Sync', - [ - { - commandName: 'toggleImageSliceSync', - }, - ], - 'Enable position synchronization on stack viewports', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: { - commandName: 'toggleImageSliceSync', - commandOptions: { toggledState: true }, - }, - }, - } - ), - ToolbarService._createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - ReferenceLinesCommands, - 'Show Reference Lines', - { - listeners: { - [EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands, - [EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands, - }, - } - ), - ToolbarService._createToggleButton( - 'ImageOverlayViewer', - 'toggle-dicom-overlay', - 'Image Overlay', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ImageOverlayViewer', - }, - context: 'CORNERSTONE', - }, - ], - 'Image Overlay', - { isActive: true } - ), - ToolbarService._createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - ToolbarService._createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ - { - commandName: 'invertViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Invert Colors' - ), - ToolbarService._createToolButton( - 'Probe', - 'tool-probe', - 'Probe', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'DragProbe', - }, - context: 'CORNERSTONE', - }, - ], - 'Probe' - ), - ToolbarService._createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ - { - commandName: 'toggleCine', - context: 'CORNERSTONE', - }, - ], - 'Cine' - ), - ToolbarService._createToolButton( - 'Angle', - 'tool-angle', - 'Angle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Angle', - }, - context: 'CORNERSTONE', - }, - ], - 'Angle' - ), - - // Next two tools can be added once icons are added - // ToolbarService._createToolButton( - // 'Cobb Angle', - // 'tool-cobb-angle', - // 'Cobb Angle', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'CobbAngle', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Cobb Angle' - // ), - // ToolbarService._createToolButton( - // 'Planar Freehand ROI', - // 'tool-freehand', - // 'PlanarFreehandROI', - // [ - // { - // commandName: 'setToolActive', - // commandOptions: { - // toolName: 'PlanarFreehandROI', - // }, - // context: 'CORNERSTONE', - // }, - // ], - // 'Planar Freehand ROI' - // ), - ToolbarService._createToolButton( - 'Rectangle', - 'tool-rectangle', - 'Rectangle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'RectangleROI', - }, - context: 'CORNERSTONE', - }, - ], - 'Rectangle' - ), - ToolbarService._createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ - { - commandName: 'openDICOMTagViewer', - commandOptions: {}, - context: 'DEFAULT', - }, - ], - 'Dicom Tag Browser' - ), - ], - }, - }, -]; - -export default moreToolsMpr; diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index 2237edd2b..34b300e22 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -1,7 +1,6 @@ // TODO: torn, can either bake this here; or have to create a whole new button type // Only ways that you can pass in a custom React component for render :l import { - // ExpandableToolbarButton, // ListMenu, WindowLevelMenuItem, } from '@ohif/ui'; @@ -9,6 +8,7 @@ import { defaults, ToolbarService } from '@ohif/core'; import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; +const { createButton } = ToolbarService; /** * @@ -21,7 +21,6 @@ function _createWwwcPreset(preset, title, subtitle) { id: preset.toString(), title, subtitle, - type: 'action', commands: [ { commandName: 'setWindowLevel', @@ -34,224 +33,106 @@ function _createWwwcPreset(preset, title, subtitle) { }; } -const toolGroupIds = ['default', 'mpr', 'SRToolGroup']; - -/** - * Creates an array of 'setToolActive' commands for the given toolName - one for - * each toolGroupId specified in toolGroupIds. - * @param {string} toolName - * @returns {Array} an array of 'setToolActive' commands - */ -function _createSetToolActiveCommands(toolName) { - const temp = toolGroupIds.map(toolGroupId => ({ - commandName: 'setToolActive', - commandOptions: { - toolGroupId, - toolName, - }, - context: 'CORNERSTONE', - })); - return temp; -} +export const setToolActiveToolbar = { + commandName: 'setToolActiveToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup'], + }, +}; const toolbarButtons: Button[] = [ - // Measurement { id: 'MeasurementTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'MeasurementTools', - isRadio: true, // ? - // Switch? - primary: ToolbarService._createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Length', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRLength', - toolGroupId: 'SRToolGroup', - }, - // we can use the setToolActive command for this from Cornerstone commandsModule - context: 'CORNERSTONE', - }, - ], - 'Length' - ), + // group evaluate to determine which item should move to the top + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: '', - isActive: true, tooltip: 'More Measure Tools', }, items: [ - ToolbarService._createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Length', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRLength', - toolGroupId: 'SRToolGroup', - }, - // we can use the setToolActive command for this from Cornerstone commandsModule - context: 'CORNERSTONE', - }, - ], - 'Length Tool' - ), - ToolbarService._createToolButton( - 'Bidirectional', - 'tool-bidirectional', - 'Bidirectional', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Bidirectional', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRBidirectional', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Bidirectional Tool' - ), - ToolbarService._createToolButton( - 'ArrowAnnotate', - 'tool-annotate', - 'Annotation', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'ArrowAnnotate', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRArrowAnnotate', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Arrow Annotate' - ), - ToolbarService._createToolButton( - 'EllipticalROI', - 'tool-elipse', - 'Ellipse', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'EllipticalROI', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SREllipticalROI', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Ellipse Tool' - ), - ToolbarService._createToolButton( - 'CircleROI', - 'tool-circle', - 'Circle', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'CircleROI', - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'SRCircleROI', - toolGroupId: 'SRToolGroup', - }, - context: 'CORNERSTONE', - }, - ], - 'Circle Tool' - ), + createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'Bidirectional', + icon: 'tool-bidirectional', + label: 'Bidirectional', + tooltip: 'Bidirectional Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'ArrowAnnotate', + icon: 'tool-annotate', + label: 'Annotation', + tooltip: 'Arrow Annotate', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'EllipticalROI', + icon: 'tool-ellipse', + label: 'Ellipse', + tooltip: 'Ellipse ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'CircleROI', + icon: 'tool-circle', + label: 'Circle', + tooltip: 'Circle Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), ], }, }, - // Zoom.. { id: 'Zoom', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-zoom', label: 'Zoom', - commands: _createSetToolActiveCommands('Zoom'), + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, // Window Level + Presets... { id: 'WindowLevel', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: ToolbarService._createToolButton( - 'WindowLevel', - 'tool-window-level', - 'Window Level', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - 'Window Level' - ), + primary: createButton({ + id: 'WindowLevel', + icon: 'tool-window-level', + label: 'Window Level', + tooltip: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', label: 'W/L Manual', - isActive: true, tooltip: 'W/L Presets', }, - isAction: true, // ? renderer: WindowLevelMenuItem, items: [ _createWwwcPreset(1, 'Soft tissue', '400 / 40'), @@ -265,43 +146,47 @@ const toolbarButtons: Button[] = [ // Pan... { id: 'Pan', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { type: 'tool', icon: 'tool-move', label: 'Pan', - commands: _createSetToolActiveCommands('Pan'), + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, { id: 'Capture', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { icon: 'tool-capture', label: 'Capture', - type: 'action', commands: [ { commandName: 'showDownloadViewportModal', - commandOptions: {}, - context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.action', + }, + }, + { + id: 'Layout', + uiType: 'ohif.layoutSelector', + props: { + rows: 3, + columns: 3, + evaluate: 'evaluate.action', + commands: [ + { + commandName: 'setViewportGridLayout', }, ], }, }, - { - id: 'Layout', - type: 'ohif.layoutSelector', - props: { - rows: 3, - columns: 3, - }, - }, { id: 'MPR', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { - type: 'toggle', icon: 'icon-mpr', label: 'MPR', commands: [ @@ -310,31 +195,27 @@ const toolbarButtons: Button[] = [ commandOptions: { protocolId: 'mpr', }, - context: 'DEFAULT', }, ], + evaluate: 'evaluate.mpr', }, }, { id: 'Crosshairs', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { type: 'tool', icon: 'tool-crosshair', label: 'Crosshairs', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Crosshairs', - toolGroupId: 'mpr', - }, - context: 'CORNERSTONE', + commands: { + commandName: 'setToolActiveToolbar', + commandOptions: { + toolGroupIds: ['mpr'], }, - ], + }, + evaluate: 'evaluate.cornerstoneTool', }, }, - // More... ]; export default toolbarButtons; diff --git a/modes/microscopy/src/index.tsx b/modes/microscopy/src/index.tsx index 557ec00d0..e7d30d396 100644 --- a/modes/microscopy/src/index.tsx +++ b/modes/microscopy/src/index.tsx @@ -50,7 +50,6 @@ function modeFactory({ modeConfiguration }) { onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => { const { toolbarService } = servicesManager.services; - toolbarService.init(extensionManager); toolbarService.addButtons(toolbarButtons); toolbarService.createButtonSection('primary', ['MeasurementTools', 'dragPan']); }, diff --git a/modes/microscopy/src/toolbarButtons.js b/modes/microscopy/src/toolbarButtons.js index 40078c5de..9954089d7 100644 --- a/modes/microscopy/src/toolbarButtons.js +++ b/modes/microscopy/src/toolbarButtons.js @@ -1,182 +1,148 @@ -// TODO: torn, can either bake this here; or have to create a whole new button type -/** - * - * @param {*} type - 'tool' | 'action' | 'toggle' - * @param {*} id - * @param {*} icon - * @param {*} label - */ -function _createButton(type, id, icon, label, commands, tooltip) { - return { - id, - icon, - label, - type, - commands, - tooltip, - }; -} - -const _createActionButton = _createButton.bind(null, 'action'); -const _createToggleButton = _createButton.bind(null, 'toggle'); -const _createToolButton = _createButton.bind(null, 'tool'); +import { ToolbarService } from '@ohif/core'; const toolbarButtons = [ - // Measurement { id: 'MeasurementTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'MeasurementTools', - isRadio: true, // ? - // Switch? - primary: _createToolButton( - 'line', - 'tool-length', - 'Line', - [ + // group evaluate to determine which item should move to the top + evaluate: 'evaluate.group.promoteToPrimary', + primary: ToolbarService.createButton({ + id: 'line', + icon: 'tool-length', + label: 'Line', + tooltip: 'Line', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'line', - }, + commandOptions: { toolName: 'line' }, context: 'MICROSCOPY', }, ], - 'Line' - ), + evaluate: 'evaluate.microscopyTool', + }), secondary: { icon: 'chevron-down', - label: '', - isActive: true, tooltip: 'More Measure Tools', }, items: [ - _createToolButton( - 'line', - 'tool-length', - 'Line', - [ + ToolbarService.createButton({ + id: 'line', + icon: 'tool-length', + label: 'Line', + tooltip: 'Line', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'line', - }, + commandOptions: { toolName: 'line' }, context: 'MICROSCOPY', }, ], - 'Line Tool' - ), - _createToolButton( - 'point', - 'tool-point', - 'Point', - [ + evaluate: 'evaluate.microscopyTool', + }), + ToolbarService.createButton({ + id: 'point', + icon: 'tool-point', + label: 'Point', + tooltip: 'Point Tool', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'point', - }, + commandOptions: { toolName: 'point' }, context: 'MICROSCOPY', }, ], - 'Point Tool' - ), - _createToolButton( - 'polygon', - 'tool-polygon', - 'Polygon', - [ + evaluate: 'evaluate.microscopyTool', + }), + // Point Tool was previously defined + ToolbarService.createButton({ + id: 'polygon', + icon: 'tool-polygon', + label: 'Polygon', + tooltip: 'Polygon Tool', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'polygon', - }, + commandOptions: { toolName: 'polygon' }, context: 'MICROSCOPY', }, ], - 'Polygon Tool' - ), - _createToolButton( - 'circle', - 'tool-circle', - 'Circle', - [ + evaluate: 'evaluate.microscopyTool', + }), + ToolbarService.createButton({ + id: 'circle', + icon: 'tool-circle', + label: 'Circle', + tooltip: 'Circle Tool', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'circle', - }, + commandOptions: { toolName: 'circle' }, context: 'MICROSCOPY', }, ], - 'Circle Tool' - ), - _createToolButton( - 'box', - 'tool-rectangle', - 'Box', - [ + evaluate: 'evaluate.microscopyTool', + }), + ToolbarService.createButton({ + id: 'box', + icon: 'tool-rectangle', + label: 'Box', + tooltip: 'Box Tool', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'box', - }, + commandOptions: { toolName: 'box' }, context: 'MICROSCOPY', }, ], - 'Box Tool' - ), - _createToolButton( - 'freehandpolygon', - 'tool-freehand-polygon', - 'Freehand Polygon', - [ + evaluate: 'evaluate.microscopyTool', + }), + ToolbarService.createButton({ + id: 'freehandpolygon', + icon: 'tool-freehand-polygon', + label: 'Freehand Polygon', + tooltip: 'Freehand Polygon Tool', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'freehandpolygon', - }, + commandOptions: { toolName: 'freehandpolygon' }, context: 'MICROSCOPY', }, ], - 'Freehand Polygon Tool' - ), - _createToolButton( - 'freehandline', - 'tool-freehand-line', - 'Freehand Line', - [ + evaluate: 'evaluate.microscopyTool', + }), + ToolbarService.createButton({ + id: 'freehandline', + icon: 'tool-freehand-line', + label: 'Freehand Line', + tooltip: 'Freehand Line Tool', + commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'freehandline', - }, + commandOptions: { toolName: 'freehandline' }, context: 'MICROSCOPY', }, ], - 'Freehand Line Tool' - ), + evaluate: 'evaluate.microscopyTool', + }), ], }, }, - // Pan... { id: 'dragPan', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-move', label: 'Pan', commands: [ { commandName: 'setToolActive', - commandOptions: { - toolName: 'dragPan', - }, + commandOptions: { toolName: 'dragPan' }, context: 'MICROSCOPY', }, ], + evaluate: 'evaluate.microscopyTool', }, }, ]; diff --git a/modes/segmentation/src/index.tsx b/modes/segmentation/src/index.tsx index 57b46c603..e4db1b9e9 100644 --- a/modes/segmentation/src/index.tsx +++ b/modes/segmentation/src/index.tsx @@ -1,6 +1,7 @@ import { hotkeys } from '@ohif/core'; import { id } from './id'; import toolbarButtons from './toolbarButtons'; +import segmentationButtons from './segmentationButtons'; import initToolGroups from './initToolGroups'; const ohif = { @@ -57,47 +58,19 @@ function modeFactory({ modeConfiguration }) { // Init Default and SR ToolGroups initToolGroups(extensionManager, toolGroupService, commandsManager); - let unsubscribe; - - const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); - - // We don't need to reset the active tool whenever a viewport is getting - // added to the toolGroup. - unsubscribe(); - }; - - // Since we only have one viewport for the basic cs3d mode and it has - // only one hanging protocol, we can just use the first viewport - ({ unsubscribe } = toolGroupService.subscribe( - toolGroupService.EVENTS.VIEWPORT_ADDED, - activateTool - )); - - toolbarService.init(extensionManager); toolbarService.addButtons(toolbarButtons); + toolbarService.addButtons(segmentationButtons); + toolbarService.createButtonSection('primary', [ - 'Zoom', - 'WindowLevel', 'Pan', 'Capture', 'Layout', 'MPR', 'Crosshairs', + 'Zoom', 'MoreTools', ]); + toolbarService.createButtonSection('segmentationToolbox', ['BrushTools', 'Shapes']); }, onModeExit: ({ servicesManager }) => { const { diff --git a/modes/segmentation/src/initToolGroups.ts b/modes/segmentation/src/initToolGroups.ts index e549f7a89..31895daf0 100644 --- a/modes/segmentation/src/initToolGroups.ts +++ b/modes/segmentation/src/initToolGroups.ts @@ -41,11 +41,7 @@ function createTools(utilityModule) { parentTool: 'Brush', configuration: { activeStrategy: 'THRESHOLD_INSIDE_CIRCLE', - strategySpecificConfiguration: { - THRESHOLD: { - threshold: [-500, 500], - }, - }, + dynamicRadius: 3, }, }, { @@ -53,11 +49,7 @@ function createTools(utilityModule) { parentTool: 'Brush', configuration: { activeStrategy: 'THRESHOLD_INSIDE_SPHERE', - strategySpecificConfiguration: { - THRESHOLD: { - threshold: [-500, 500], - }, - }, + dynamicRadius: 3, }, }, { toolName: toolNames.CircleScissors }, diff --git a/modes/segmentation/src/segmentationButtons.ts b/modes/segmentation/src/segmentationButtons.ts new file mode 100644 index 000000000..012988ea2 --- /dev/null +++ b/modes/segmentation/src/segmentationButtons.ts @@ -0,0 +1,195 @@ +import type { Button } from '@ohif/core/types'; + +function _createSetToolActiveCommands(toolName) { + return [ + { + commandName: 'setToolActive', + commandOptions: { + toolName, + }, + }, + ]; +} + +const toolbarButtons: Button[] = [ + { + id: 'BrushTools', + uiType: 'ohif.buttonGroup', + props: { + groupId: 'BrushTools', + items: [ + { + id: 'Brush', + icon: 'icon-tool-brush', + label: 'Brush', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['CircularBrush', 'SphereBrush'] }, + }, + commands: _createSetToolActiveCommands('CircularBrush'), + options: [ + { + name: 'Radius (mm)', + id: 'brush-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 25, + commands: { + commandName: 'setBrushSize', + commandOptions: { toolNames: ['CircularBrush', 'SphereBrush'] }, + }, + }, + { + name: 'Shape', + type: 'radio', + id: 'brush-mode', + value: 'CircularBrush', + values: [ + { value: 'CircularBrush', label: 'Circle' }, + { value: 'SphereBrush', label: 'Sphere' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, + { + id: 'Eraser', + icon: 'icon-tool-eraser', + label: 'Eraser', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { + toolNames: ['CircularEraser', 'SphereEraser'], + }, + }, + commands: _createSetToolActiveCommands('CircularEraser'), + options: [ + { + name: 'Radius (mm)', + id: 'eraser-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 25, + commands: { + commandName: 'setBrushSize', + commandOptions: { toolNames: ['CircularEraser', 'SphereEraser'] }, + }, + }, + { + name: 'Shape', + type: 'radio', + id: 'eraser-mode', + value: 'CircularEraser', + values: [ + { value: 'CircularEraser', label: 'Circle' }, + { value: 'SphereEraser', label: 'Sphere' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, + { + id: 'Threshold', + icon: 'icon-tool-threshold', + label: 'Eraser', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'] }, + }, + commands: _createSetToolActiveCommands('ThresholdCircularBrush'), + options: [ + { + name: 'Radius (mm)', + id: 'threshold-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 25, + commands: { + commandName: 'setBrushSize', + commandOptions: { + toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'], + }, + }, + }, + { + name: 'Shape', + type: 'radio', + id: 'eraser-mode', + value: 'ThresholdCircularBrush', + values: [ + { value: 'ThresholdCircularBrush', label: 'Circle' }, + { value: 'ThresholdSphereBrush', label: 'Sphere' }, + ], + commands: 'setToolActiveToolbar', + }, + { + name: 'Threshold', + type: 'radio', + id: 'dynamic-mode', + value: 'ThresholdRange', + values: [ + { value: 'ThresholdDynamic', label: 'Dynamic' }, + { value: 'ThresholdRange', label: 'Range' }, + ], + commands: { + commandName: 'toggleThresholdRangeAndDynamic', + }, + }, + { + name: 'ThresholdRange', + type: 'double-range', + id: 'threshold-range', + min: -1000, + max: 1000, + step: 1, + values: [100, 600], + condition: ({ options }) => + options.find(option => option.id === 'dynamic-mode').value === 'ThresholdRange', + commands: { + commandName: 'setThresholdRange', + commandOptions: { + toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'], + }, + }, + }, + ], + }, + ], + }, + }, + { + id: 'Shapes', + uiType: 'ohif.radioGroup', + props: { + label: 'Shapes', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['CircleScissor', 'SphereScissor', 'RectangleScissor'] }, + }, + icon: 'icon-tool-shape', + commands: _createSetToolActiveCommands('CircleScissor'), + options: [ + { + name: 'Shape', + type: 'radio', + value: 'CircleScissor', + id: 'shape-mode', + values: [ + { value: 'CircleScissor', label: 'Circle' }, + { value: 'SphereScissor', label: 'Sphere' }, + { value: 'RectangleScissor', label: 'Rectangle' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, + }, +]; + +export default toolbarButtons; diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index 9795beca7..bbff5e2d6 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -1,46 +1,14 @@ -import { - // ExpandableToolbarButton, - // ListMenu, - WindowLevelMenuItem, -} from '@ohif/ui'; -import { defaults } from '@ohif/core'; +import { defaults, ToolbarService } from '@ohif/core'; +import type { Button } from '@ohif/core/types'; +import { WindowLevelMenuItem } from '@ohif/ui'; const { windowLevelPresets } = defaults; -/** - * - * @param {*} type - 'tool' | 'action' | 'toggle' - * @param {*} id - * @param {*} icon - * @param {*} label - */ -function _createButton(type, id, icon, label, commands, tooltip, uiType) { - return { - id, - icon, - label, - type, - commands, - tooltip, - uiType, - }; -} -const _createActionButton = _createButton.bind(null, 'action'); -const _createToggleButton = _createButton.bind(null, 'toggle'); -const _createToolButton = _createButton.bind(null, 'tool'); - -/** - * - * @param {*} preset - preset number (from above import) - * @param {*} title - * @param {*} subtitle - */ function _createWwwcPreset(preset, title, subtitle) { return { id: preset.toString(), title, subtitle, - type: 'action', commands: [ { commandName: 'setWindowLevel', @@ -53,16 +21,8 @@ function _createWwwcPreset(preset, title, subtitle) { }; } -const toolGroupIds = ['default', 'mpr', 'SRToolGroup']; - -/** - * Creates an array of 'setToolActive' commands for the given toolName - one for - * each toolGroupId specified in toolGroupIds. - * @param {string} toolName - * @returns {Array} an array of 'setToolActive' commands - */ -function _createSetToolActiveCommands(toolName) { - const temp = toolGroupIds.map(toolGroupId => ({ +function _createSetToolActiveCommands(toolName, toolGroupIds = ['default', 'mpr', 'SRToolGroup']) { + return toolGroupIds.map(toolGroupId => ({ commandName: 'setToolActive', commandOptions: { toolGroupId, @@ -70,49 +30,36 @@ function _createSetToolActiveCommands(toolName) { }, context: 'CORNERSTONE', })); - return temp; } -const toolbarButtons = [ - // Zoom.. +const toolbarButtons: Button[] = [ { id: 'Zoom', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-zoom', label: 'Zoom', commands: _createSetToolActiveCommands('Zoom'), + evaluate: 'evaluate.cornerstoneTool', }, }, - // Window Level + Presets... { id: 'WindowLevel', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( - 'WindowLevel', - 'tool-window-level', - 'Window Level', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - 'Window Level' - ), + primary: ToolbarService.createButton({ + id: 'WindowLevel', + icon: 'tool-window-level', + label: 'Window Level', + tooltip: 'Window Level', + commands: _createSetToolActiveCommands('WindowLevel'), + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: 'W/L Manual', - isActive: true, tooltip: 'W/L Presets', }, - isAction: true, // ? renderer: WindowLevelMenuItem, items: [ _createWwwcPreset(1, 'Soft tissue', '400 / 40'), @@ -123,46 +70,49 @@ const toolbarButtons = [ ], }, }, - // Pan... { id: 'Pan', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-move', label: 'Pan', commands: _createSetToolActiveCommands('Pan'), + evaluate: 'evaluate.cornerstoneTool', }, }, { id: 'Capture', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { icon: 'tool-capture', label: 'Capture', - type: 'action', commands: [ { commandName: 'showDownloadViewportModal', - commandOptions: {}, context: 'CORNERSTONE', }, ], + evaluate: 'evaluate.action', + }, + }, + { + id: 'Layout', + uiType: 'ohif.layoutSelector', + props: { + rows: 3, + columns: 3, + evaluate: 'evaluate.action', + commands: [ + { + commandName: 'setViewportGridLayout', + }, + ], }, }, - { - id: 'Layout', - type: 'ohif.layoutSelector', - props: { - rows: 3, - columns: 3, - }, - }, { id: 'MPR', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { - type: 'toggle', icon: 'icon-mpr', label: 'MPR', commands: [ @@ -174,180 +124,124 @@ const toolbarButtons = [ context: 'DEFAULT', }, ], + evaluate: 'evaluate.mpr', }, }, { id: 'Crosshairs', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-crosshair', label: 'Crosshairs', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Crosshairs', - toolGroupId: 'mpr', - }, - context: 'CORNERSTONE', - }, - ], + commands: _createSetToolActiveCommands('Crosshairs', ['mpr']), + evaluate: 'evaluate.cornerstoneTool', }, }, - // More... { id: 'MoreTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { - isRadio: true, // ? groupId: 'MoreTools', - primary: _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: ToolbarService.createButton({ + id: 'Reset', + icon: 'tool-reset', + label: 'Reset View', + tooltip: 'Reset', + commands: [ { commandName: 'resetViewport', - commandOptions: {}, context: 'CORNERSTONE', }, ], - 'Reset' - ), + evaluate: 'evaluate.action', + }), secondary: { icon: 'chevron-down', - label: '', - isActive: true, tooltip: 'More Tools', }, items: [ - _createActionButton( - 'Reset', - 'tool-reset', - 'Reset View', - [ - { - commandName: 'resetViewport', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ], - 'Reset' - ), - _createActionButton( - 'rotate-right', - 'tool-rotate-right', - 'Rotate Right', - [ + ToolbarService.createButton({ + id: 'RotateRight', + icon: 'tool-rotate-right', + label: 'Rotate Right', + tooltip: 'Rotate +90', + commands: [ { commandName: 'rotateViewportCW', - commandOptions: {}, context: 'CORNERSTONE', }, ], - 'Rotate +90' - ), - _createActionButton( - 'flip-horizontal', - 'tool-flip-horizontal', - 'Flip Horizontally', - [ + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'FlipHorizontal', + icon: 'tool-flip-horizontal', + label: 'Flip Horizontally', + tooltip: 'Flip Horizontal', + commands: [ { commandName: 'flipViewportHorizontal', - commandOptions: {}, context: 'CORNERSTONE', }, ], - 'Flip Horizontal' - ), - _createToggleButton('ImageSliceSync', 'link', 'Stack Image Sync', [ - { - commandName: 'toggleImageSliceSync', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ]), - _createToggleButton( - 'ReferenceLines', - 'tool-referenceLines', // change this with the new icon - 'Reference Lines', - [ - { - commandName: 'toggleReferenceLines', - commandOptions: {}, - context: 'CORNERSTONE', - }, - ] - ), - _createToolButton( - 'StackScroll', - 'tool-stack-scroll', - 'Stack Scroll', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'StackScroll', - }, - context: 'CORNERSTONE', - }, - ], - 'Stack Scroll' - ), - _createActionButton( - 'invert', - 'tool-invert', - 'Invert', - [ + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'StackScroll', + icon: 'tool-stack-scroll', + label: 'Stack Scroll', + tooltip: 'Stack Scroll', + commands: _createSetToolActiveCommands('StackScroll'), + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'Magnify', + icon: 'tool-magnify', + label: 'Magnify', + tooltip: 'Magnify', + commands: _createSetToolActiveCommands('Magnify'), + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'Invert', + icon: 'tool-invert', + label: 'Invert', + tooltip: 'Invert Colors', + commands: [ { commandName: 'invertViewport', - commandOptions: {}, context: 'CORNERSTONE', }, ], - 'Invert Colors' - ), - _createToggleButton( - 'cine', - 'tool-cine', - 'Cine', - [ + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'Cine', + icon: 'tool-cine', + label: 'Cine', + tooltip: 'Cine', + commands: [ { commandName: 'toggleCine', context: 'CORNERSTONE', }, ], - 'Cine' - ), - _createToolButton( - 'Magnify', - 'tool-magnify', - 'Magnify', - [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'Magnify', - }, - context: 'CORNERSTONE', - }, - ], - 'Magnify' - ), - _createActionButton( - 'TagBrowser', - 'list-bullets', - 'Dicom Tag Browser', - [ + evaluate: 'evaluate.action', + }), + ToolbarService.createButton({ + id: 'DicomTagBrowser', + icon: 'list-bullets', + label: 'Dicom Tag Browser', + tooltip: 'Dicom Tag Browser', + commands: [ { commandName: 'openDICOMTagViewer', - commandOptions: {}, context: 'DEFAULT', }, ], - 'Dicom Tag Browser' - ), + evaluate: 'evaluate.action', + }), ], }, }, diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index b21a37582..92ccb893e 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -56,39 +56,6 @@ function modeFactory({ modeConfiguration }) { // Init Default and SR ToolGroups initToolGroups(toolNames, Enums, toolGroupService, commandsManager); - const setWindowLevelActive = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: toolNames.WindowLevel, - toolGroupId: toolGroupIds.CT, - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: toolNames.WindowLevel, - toolGroupId: toolGroupIds.PT, - }, - context: 'CORNERSTONE', - }, - { - commandName: 'setToolActive', - commandOptions: { - toolName: toolNames.WindowLevel, - toolGroupId: toolGroupIds.Fusion, - }, - context: 'CORNERSTONE', - }, - ], - }); - }; - const { unsubscribe } = toolGroupService.subscribe( toolGroupService.EVENTS.VIEWPORT_ADDED, () => { @@ -110,13 +77,10 @@ function modeFactory({ modeConfiguration }) { toolGroupService, displaySetService ); - - setWindowLevelActive(); } ); unsubscriptions.push(unsubscribe); - toolbarService.init(extensionManager); toolbarService.addButtons(toolbarButtons); toolbarService.createButtonSection('primary', [ 'MeasurementTools', @@ -124,6 +88,7 @@ function modeFactory({ modeConfiguration }) { 'WindowLevel', 'Crosshairs', 'Pan', + 'SyncToggle', 'RectangleROIStartEndThreshold', 'fusionPTColormap', ]); diff --git a/modes/tmtv/src/initToolGroups.js b/modes/tmtv/src/initToolGroups.js index f66dbd0c4..6585de299 100644 --- a/modes/tmtv/src/initToolGroups.js +++ b/modes/tmtv/src/initToolGroups.js @@ -60,6 +60,7 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { toolName: toolNames.Crosshairs, configuration: { viewportIndicators: false, + disableOnPassive: true, autoPan: { enabled: false, panSize: 10, diff --git a/modes/tmtv/src/toolbarButtons.js b/modes/tmtv/src/toolbarButtons.js index 556e21728..35d3f3383 100644 --- a/modes/tmtv/src/toolbarButtons.js +++ b/modes/tmtv/src/toolbarButtons.js @@ -1,26 +1,8 @@ -// TODO: torn, can either bake this here; or have to create a whole new button type -// Only ways that you can pass in a custom React component for render :l +import { defaults, ToolbarService } from '@ohif/core'; import { WindowLevelMenuItem } from '@ohif/ui'; -import { defaults } from '@ohif/core'; import { toolGroupIds } from './initToolGroups'; + const { windowLevelPresets } = defaults; -/** - * - * @param {*} type - 'tool' | 'action' | 'toggle' - * @param {*} id - * @param {*} icon - * @param {*} label - */ -function _createButton(type, id, icon, label, commands, tooltip) { - return { - id, - icon, - label, - type, - commands, - tooltip, - }; -} function _createColormap(label, colormap) { return { @@ -38,23 +20,11 @@ function _createColormap(label, colormap) { ], }; } - -const _createActionButton = _createButton.bind(null, 'action'); -const _createToggleButton = _createButton.bind(null, 'toggle'); -const _createToolButton = _createButton.bind(null, 'tool'); - -/** - * - * @param {*} preset - preset number (from above import) - * @param {*} title - * @param {*} subtitle - */ function _createWwwcPreset(preset, title, subtitle) { return { id: preset.toString(), title, subtitle, - type: 'action', commands: [ { commandName: 'setWindowLevel', @@ -67,170 +37,103 @@ function _createWwwcPreset(preset, title, subtitle) { }; } -function _createCommands(commandName, toolName, toolGroupIds) { - return toolGroupIds.map(toolGroupId => ({ - /* It's a command that is being run when the button is clicked. */ - commandName, - commandOptions: { - toolName, - toolGroupId, - }, - context: 'CORNERSTONE', - })); -} +const setToolActiveToolbar = { + commandName: 'setToolActiveToolbar', + commandOptions: { + toolGroupIds: [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion], + }, +}; const toolbarButtons = [ - // Measurement { id: 'MeasurementTools', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'MeasurementTools', - isRadio: true, // ? - // Switch? - primary: _createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - ..._createCommands('setToolActive', 'Length', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], - 'Length' - ), + primary: ToolbarService.createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: '', - isActive: true, tooltip: 'More Measure Tools', }, items: [ - _createToolButton( - 'Length', - 'tool-length', - 'Length', - [ - ..._createCommands('setToolActive', 'Length', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], - 'Length Tool' - ), - _createToolButton( - 'Bidirectional', - 'tool-bidirectional', - 'Bidirectional', - [ - ..._createCommands('setToolActive', 'Bidirectional', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], - 'Bidirectional Tool' - ), - _createToolButton( - 'ArrowAnnotate', - 'tool-annotate', - 'Annotation', - [ - ..._createCommands('setToolActive', 'ArrowAnnotate', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], - 'Arrow Annotate' - ), - _createToolButton( - 'EllipticalROI', - 'tool-elipse', - 'Ellipse', - [ - ..._createCommands('setToolActive', 'EllipticalROI', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], - 'Ellipse Tool' - ), + ToolbarService.createButton({ + id: 'Bidirectional', + icon: 'tool-bidirectional', + label: 'Bidirectional', + tooltip: 'Bidirectional Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'ArrowAnnotate', + icon: 'tool-annotate', + label: 'Arrow Annotate', + tooltip: 'Arrow Annotate Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'EllipticalROI', + icon: 'tool-ellipse', + label: 'Ellipse', + tooltip: 'Ellipse Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), ], }, }, - // Zoom.. { id: 'Zoom', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-zoom', label: 'Zoom', - commands: [ - ..._createCommands('setToolActive', 'Zoom', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, { id: 'MPR', - type: 'ohif.action', + uiType: 'ohif.radioGroup', props: { - type: 'toggle', icon: 'icon-mpr', label: 'MPR', commands: [ { commandName: 'toggleHangingProtocol', - commandOptions: { - protocolId: 'mpr', - }, + commandOptions: { protocolId: 'mpr' }, context: 'DEFAULT', }, ], + evaluate: 'evaluate.mpr', }, }, - // Window Level + Presets... + // Window Level + Presets { id: 'WindowLevel', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'WindowLevel', - primary: _createToolButton( - 'WindowLevel', - 'tool-window-level', - 'Window Level', - [ - ..._createCommands('setToolActive', 'WindowLevel', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], - 'Window Level' - ), + primary: ToolbarService.createButton({ + id: 'WindowLevel', + icon: 'tool-window-level', + label: 'Window Level', + tooltip: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), secondary: { icon: 'chevron-down', - label: 'W/L Manual', - isActive: true, tooltip: 'W/L Presets', }, - isAction: true, // ? renderer: WindowLevelMenuItem, items: [ _createWwwcPreset(1, 'Soft tissue', '400 / 40'), @@ -241,86 +144,57 @@ const toolbarButtons = [ ], }, }, + // Crosshairs Button { id: 'Crosshairs', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-crosshair', label: 'Crosshairs', - commands: [ - ..._createCommands('setToolActive', 'Crosshairs', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, - // Pan... + // Pan Button { id: 'Pan', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-move', label: 'Pan', - commands: [ - ..._createCommands('setToolActive', 'Pan', [ - toolGroupIds.CT, - toolGroupIds.PT, - toolGroupIds.Fusion, - // toolGroupIds.MPR, - ]), - ], + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, + // Rectangle ROI Start End Threshold Button { id: 'RectangleROIStartEndThreshold', - type: 'ohif.radioGroup', + uiType: 'ohif.radioGroup', props: { - type: 'tool', icon: 'tool-create-threshold', label: 'Rectangle ROI Threshold', - commands: [ - ..._createCommands('setToolActive', 'RectangleROIStartEndThreshold', [toolGroupIds.PT]), - { - commandName: 'displayNotification', - commandOptions: { - title: 'RectangleROI Threshold Tip', - text: 'RectangleROI Threshold tool should be used on PT Axial Viewport', - type: 'info', - }, - }, - { - commandName: 'setViewportActive', - commandOptions: { - viewportId: 'ptAXIAL', - }, - }, - ], + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, + // Fusion PT Colormap Button { id: 'fusionPTColormap', - type: 'ohif.splitButton', + uiType: 'ohif.splitButton', props: { groupId: 'fusionPTColormap', - primary: _createToolButton( - 'fusionPTColormap', - 'tool-fusion-color', - 'Fusion PT Colormap', - [], - 'Fusion PT Colormap' - ), + primary: ToolbarService.createButton({ + id: 'fusionPTColormap', + icon: 'tool-fusion-color', + label: 'Fusion PT Colormap', + tooltip: 'Fusion PT Colormap', + commands: [], + evaluate: 'evaluate.action', + }), secondary: { icon: 'chevron-down', - label: 'PT Colormap', - isActive: true, tooltip: 'PET Image Colormap', }, - isAction: true, // ? items: [ _createColormap('HSV', 'hsv'), _createColormap('Hot Iron', 'hot_iron'), diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index 00383180f..45a60fa52 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -72,7 +72,7 @@ describe('OHIF Cornerstone Toolbar', () => { // Assign an alias to the button element cy.get('@wwwcBtnPrimary').as('wwwcButton'); cy.get('@wwwcButton').click(); - cy.get('@wwwcButton').should('have.class', 'active'); + cy.get('@wwwcButton').should('have.class', 'bg-primary-light'); //drags the mouse inside the viewport to be able to interact with series cy.get('@viewport') @@ -97,7 +97,7 @@ describe('OHIF Cornerstone Toolbar', () => { cy.get('@panButton').click(); // Assert that the button has the 'active' class - cy.get('@panButton').should('have.class', 'active'); + cy.get('@panButton').should('have.class', 'bg-primary-light'); // Trigger the pan actions on the viewport cy.get('@viewport') @@ -418,44 +418,44 @@ describe('OHIF Cornerstone Toolbar', () => { cy.get('@moreBtnSecondary').click(); //Click on Flip button - cy.get('[data-cy="flip-horizontal"]').click(); + cy.get('[data-cy="flipHorizontal"]').click(); cy.waitDicomImage(); cy.get('@viewportInfoMidLeft').should('contains.text', 'L'); cy.get('@viewportInfoMidTop').should('contains.text', 'A'); }); - it('checks if stack sync is preserved on new display set and uses FOR', () => { - // Active stack image sync and reference lines - cy.get('[data-cy="MoreTools-split-button-secondary"]').click(); - cy.get('[data-cy="ImageSliceSync"]').click(); - // Add reference lines as that sometimes throws an exception - cy.get('[data-cy="MoreTools-split-button-secondary"]').click(); - cy.get('[data-cy="ReferenceLines"]').click(); + // it('checks if stack sync is preserved on new display set and uses FOR', () => { + // // Active stack image sync and reference lines + // cy.get('[data-cy="MoreTools-split-button-secondary"]').click(); + // cy.get('[data-cy="ImageSliceSync"]').click(); + // // Add reference lines as that sometimes throws an exception + // cy.get('[data-cy="MoreTools-split-button-secondary"]').click(); + // cy.get('[data-cy="ReferenceLines"]').click(); - cy.get('[data-cy="study-browser-thumbnail"]:nth-child(2)').dblclick(); - cy.get('body').type('{downarrow}{downarrow}'); + // cy.get('[data-cy="study-browser-thumbnail"]:nth-child(2)').dblclick(); + // cy.get('body').type('{downarrow}{downarrow}'); - // Change the layout and double load the first - cy.setLayout(2, 1); - cy.get('body').type('{rightarrow}'); - cy.get('[data-cy="study-browser-thumbnail"]:nth-child(2)').dblclick(); - cy.waitDicomImage(); + // // Change the layout and double load the first + // cy.setLayout(2, 1); + // cy.get('body').type('{rightarrow}'); + // cy.get('[data-cy="study-browser-thumbnail"]:nth-child(2)').dblclick(); + // cy.waitDicomImage(); - // Now navigate down once and check that the left hand pane navigated - cy.get('body').focus().type('{downarrow}'); + // // Now navigate down once and check that the left hand pane navigated + // cy.get('body').focus().type('{downarrow}'); - // The following lines assist in troubleshooting when/if this test were to fail. - cy.get('[data-cy="viewport-pane"]') - .eq(0) - .find('[data-cy="viewport-overlay-top-right"]') - .should('contains.text', 'I:2 (2/20)'); - cy.get('[data-cy="viewport-pane"]') - .eq(1) - .find('[data-cy="viewport-overlay-top-right"]') - .should('contains.text', 'I:2 (2/20)'); + // // The following lines assist in troubleshooting when/if this test were to fail. + // cy.get('[data-cy="viewport-pane"]') + // .eq(0) + // .find('[data-cy="viewport-overlay-top-right"]') + // .should('contains.text', 'I:2 (2/20)'); + // cy.get('[data-cy="viewport-pane"]') + // .eq(1) + // .find('[data-cy="viewport-overlay-top-right"]') + // .should('contains.text', 'I:2 (2/20)'); - cy.get('body').type('{leftarrow}'); - cy.setLayout(1, 1); - cy.get('@viewportInfoTopRight').should('contains.text', 'I:2 (2/20)'); - }); + // cy.get('body').type('{leftarrow}'); + // cy.setLayout(1, 1); + // cy.get('@viewportInfoTopRight').should('contains.text', 'I:2 (2/20)'); + // }); }); diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js index 420cdd822..f23b2186e 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js @@ -18,7 +18,7 @@ describe('OHIF General Viewer', function () { cy.get('@zoomBtn') .click() .then($zoomBtn => { - cy.wrap($zoomBtn).should('have.class', 'active'); + cy.wrap($zoomBtn).should('have.class', 'bg-primary-light'); }); const zoomLevelInitial = cy.get('@viewportInfoTopLeft').then($viewportInfo => { diff --git a/platform/app/cypress/integration/volume/MPR.spec.js b/platform/app/cypress/integration/volume/MPR.spec.js index 56a2aa869..0d15e75e4 100644 --- a/platform/app/cypress/integration/volume/MPR.spec.js +++ b/platform/app/cypress/integration/volume/MPR.spec.js @@ -7,8 +7,7 @@ describe('OHIF MPR', () => { }); it('should not go MPR for non reconstructible displaySets', () => { - cy.get('[data-cy="MPR"]').click(); - cy.get('.cornerstone-canvas').should('have.length', 1); + cy.get('[data-cy="MPR"]').should('have.class', 'ohif-disabled'); }); it('should go MPR for reconstructible displaySets and come back', () => { @@ -88,7 +87,6 @@ describe('OHIF MPR', () => { }); it('should correctly render Crosshairs for MPR', () => { - cy.get('[data-cy="Crosshairs"]').should('not.exist'); cy.get(':nth-child(3) > [data-cy="study-browser-thumbnail"]').dblclick(); cy.get('[data-cy="MPR"]').click(); cy.get('[data-cy="Crosshairs"]').click(); @@ -125,13 +123,7 @@ describe('OHIF MPR', () => { cy.get('[data-cy="MPR"]').click(); cy.get('[data-cy="Crosshairs"]').click(); - // wait for the crosshairs tool to be active - cy.get('[data-cy="Crosshairs"].active'); - // Click the crosshairs button to deactivate it. cy.get('[data-cy="Crosshairs"]').click(); - - // wait for the window level button to be active - cy.get('[data-cy="WindowLevel-split-button-primary"].active'); }); }); diff --git a/platform/app/cypress/support/commands.js b/platform/app/cypress/support/commands.js index a84997598..51f17643b 100644 --- a/platform/app/cypress/support/commands.js +++ b/platform/app/cypress/support/commands.js @@ -273,7 +273,7 @@ Cypress.Commands.add( } }); - cy.get('@lengthButton').should('have.class', 'active'); + cy.get('@lengthButton').should('have.class', 'bg-primary-light'); cy.get('@viewport').then($viewport => { const [x1, y1] = firstClick; diff --git a/platform/app/public/config/e2e.js b/platform/app/public/config/e2e.js index 46a50c939..3a2fdb2ea 100644 --- a/platform/app/public/config/e2e.js +++ b/platform/app/public/config/e2e.js @@ -10,6 +10,9 @@ window.config = { strictZSpacingForVolumeViewport: true, // filterQueryParam: false, defaultDataSourceName: 'e2e', + investigationalUseDialog: { + option: 'never', + }, dataSources: [ { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', diff --git a/platform/app/src/App.tsx b/platform/app/src/App.tsx index cadc05e2e..23b18b2ed 100644 --- a/platform/app/src/App.tsx +++ b/platform/app/src/App.tsx @@ -16,6 +16,7 @@ import { ViewportGridProvider, CineProvider, UserAuthenticationProvider, + ToolboxProvider, } from '@ohif/ui'; // Viewer Project // TODO: Should this influence study list? @@ -69,6 +70,7 @@ function App({ config, defaultExtensions, defaultModes }) { [UserAuthenticationProvider, { service: userAuthenticationService }], [I18nextProvider, { i18n }], [ThemeWrapper], + [ToolboxProvider], [ViewportGridProvider, { service: viewportGridService }], [ViewportDialogProvider, { service: uiViewportDialogService }], [CineProvider, { service: cineService }], diff --git a/platform/app/src/appInit.js b/platform/app/src/appInit.js index 168d05a04..0d93ae639 100644 --- a/platform/app/src/appInit.js +++ b/platform/app/src/appInit.js @@ -49,6 +49,8 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) { appConfig, }); + servicesManager.setExtensionManager(extensionManager); + servicesManager.registerServices([ UINotificationService.REGISTRATION, UIModalService.REGISTRATION, diff --git a/platform/app/src/components/ViewportGrid.tsx b/platform/app/src/components/ViewportGrid.tsx index 8bb0f3f7c..850344642 100644 --- a/platform/app/src/components/ViewportGrid.tsx +++ b/platform/app/src/components/ViewportGrid.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useCallback, useRef } from 'react'; +import React, { useEffect, useCallback, useRef, useState } from 'react'; import ReactResizeDetector from 'react-resize-detector'; import PropTypes from 'prop-types'; import { ServicesManager, Types, MeasurementService } from '@ohif/core'; @@ -15,12 +15,15 @@ function ViewerViewportGrid(props) { const { layout, activeViewportId, viewports } = viewportGrid; const { numCols, numRows } = layout; const elementRef = useRef(null); + const layoutHash = useRef(null); // TODO -> Need some way of selecting which displaySets hit the viewports. const { displaySetService, measurementService, hangingProtocolService, uiNotificationService } = ( servicesManager as ServicesManager ).services; + const generateLayoutHash = () => `${numCols}-${numRows}`; + /** * This callback runs after the viewports structure has changed in any way. * On initial display, that means if it has changed by applying a HangingProtocol, @@ -135,6 +138,16 @@ function ViewerViewportGrid(props) { }; }, []); + // Check viewport readiness in useEffect + useEffect(() => { + const allReady = viewportGridService.getGridViewportsReady(); + const sameLayoutHash = layoutHash.current === generateLayoutHash(); + if (allReady && !sameLayoutHash) { + layoutHash.current = generateLayoutHash(); + viewportGridService.publishViewportsReady(); + } + }, [viewportGridService, generateLayoutHash]); + useEffect(() => { const { unsubscribe } = measurementService.subscribe( MeasurementService.EVENTS.JUMP_TO_MEASUREMENT_LAYOUT, @@ -327,6 +340,9 @@ function ViewerViewportGrid(props) { viewportOptions={viewportOptions} displaySetOptions={displaySetOptions} needsRerendering={displaySetsNeedsRerendering} + onReady={() => { + viewportGridService.setViewportIsReady(viewportId, true); + }} />
@@ -360,7 +376,6 @@ function ViewerViewportGrid(props) { }} targetRef={elementRef.current} /> - {/* {ViewportPanes} */} {getViewportPanes()}
diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index 0b2b65bab..6c7fccf50 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -1,141 +1,18 @@ -import React, { useEffect, useState, useRef } from 'react'; +import React, { useEffect, useState, useRef, useContext, createContext } from 'react'; import { useParams, useLocation, useNavigate } from 'react-router'; import PropTypes from 'prop-types'; -// TODO: DicomMetadataStore should be injected? -import { DicomMetadataStore, ServicesManager, utils, log, Enums } from '@ohif/core'; +import { ServicesManager, utils } from '@ohif/core'; import { DragAndDropProvider, ImageViewerProvider } from '@ohif/ui'; import { useSearchParams } from '@hooks'; import { useAppConfig } from '@state'; import ViewportGrid from '@components/ViewportGrid'; import Compose from './Compose'; -import getStudies from './studiesList'; import { history } from '../../utils/history'; import loadModules from '../../pluginImports'; -import isSeriesFilterUsed from '../../utils/isSeriesFilterUsed'; +import { defaultRouteInit } from './defaultRouteInit'; +import { updateAuthServiceAndCleanUrl } from './updateAuthServiceAndCleanUrl'; -const { getSplitParam, sortingCriteria } = utils; - -/** - * Initialize the route. - * - * @param props.servicesManager to read services from - * @param props.studyInstanceUIDs for a list of studies to read - * @param props.dataSource to read the data from - * @param props.filters filters from query params to read the data from - * @returns array of subscriptions to cancel - */ -function defaultRouteInit( - { servicesManager, studyInstanceUIDs, dataSource, filters, appConfig }, - hangingProtocolId -) { - const { displaySetService, hangingProtocolService, uiNotificationService, customizationService } = - servicesManager.services; - /** - * Function to apply the hanging protocol when the minimum number of display sets were - * received or all display sets retrieval were completed - * @returns - */ - function applyHangingProtocol() { - const displaySets = displaySetService.getActiveDisplaySets(); - - if (!displaySets || !displaySets.length) { - return; - } - - // Gets the studies list to use - const studies = getStudies(studyInstanceUIDs, displaySets); - - // study being displayed, and is thus the "active" study. - const activeStudy = studies[0]; - - // run the hanging protocol matching on the displaySets with the predefined - // hanging protocol in the mode configuration - hangingProtocolService.run({ studies, activeStudy, displaySets }, hangingProtocolId); - } - - const unsubscriptions = []; - const issuedWarningSeries = []; - const { unsubscribe: instanceAddedUnsubscribe } = DicomMetadataStore.subscribe( - DicomMetadataStore.EVENTS.INSTANCES_ADDED, - function ({ StudyInstanceUID, SeriesInstanceUID, madeInClient = false }) { - const seriesMetadata = DicomMetadataStore.getSeries(StudyInstanceUID, SeriesInstanceUID); - - // checks if the series filter was used, if it exists - const seriesInstanceUIDs = filters?.seriesInstanceUID; - if ( - seriesInstanceUIDs?.length && - !isSeriesFilterUsed(seriesMetadata.instances, filters) && - !issuedWarningSeries.includes(seriesInstanceUIDs[0]) - ) { - // stores the series instance filter so it shows only once the warning - issuedWarningSeries.push(seriesInstanceUIDs[0]); - uiNotificationService.show({ - title: 'Series filter', - message: `Each of the series in filter: ${seriesInstanceUIDs} are not part of the current study. The entire study is being displayed`, - type: 'error', - duration: 7000, - }); - } - - displaySetService.makeDisplaySets(seriesMetadata.instances, madeInClient); - } - ); - - unsubscriptions.push(instanceAddedUnsubscribe); - - log.time(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); - log.time(Enums.TimingEnum.STUDY_TO_FIRST_IMAGE); - - const allRetrieves = studyInstanceUIDs.map(StudyInstanceUID => - dataSource.retrieve.series.metadata({ - StudyInstanceUID, - filters, - returnPromises: true, - sortCriteria: - customizationService.get('sortingCriteria') || - sortingCriteria.seriesSortCriteria.seriesInfoSortingCriteria, - }) - ); - - // log the error if this fails, otherwise it's so difficult to tell what went wrong... - allRetrieves.forEach(retrieve => { - retrieve.catch(error => { - console.error(error); - }); - }); - - Promise.allSettled(allRetrieves).then(promises => { - log.timeEnd(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); - log.time(Enums.TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); - log.time(Enums.TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); - - const allPromises = []; - const remainingPromises = []; - - function startRemainingPromises(remainingPromises) { - remainingPromises.forEach(p => p.forEach(p => p.start())); - } - - promises.forEach(promise => { - const retrieveSeriesMetadataPromise = promise.value; - if (Array.isArray(retrieveSeriesMetadataPromise)) { - const { requiredSeries, remaining } = hangingProtocolService.filterSeriesRequiredForRun( - hangingProtocolId, - retrieveSeriesMetadataPromise - ); - const requiredSeriesPromises = requiredSeries.map(promise => promise.start()); - allPromises.push(Promise.allSettled(requiredSeriesPromises)); - remainingPromises.push(remaining); - } - }); - - Promise.allSettled(allPromises).then(applyHangingProtocol); - startRemainingPromises(remainingPromises); - applyHangingProtocol(); - }); - - return unsubscriptions; -} +const { getSplitParam } = utils; export default function ModeRoute({ mode, @@ -166,7 +43,7 @@ export default function ModeRoute({ // The URL's query search parameters where the keys are all lower case. const lowerCaseSearchParams = useSearchParams({ lowerCaseKeys: true }); - const [studyInstanceUIDs, setStudyInstanceUIDs] = useState(); + const [studyInstanceUIDs, setStudyInstanceUIDs] = useState(null); const [refresh, setRefresh] = useState(false); const [ExtensionDependenciesLoaded, setExtensionDependenciesLoaded] = useState(false); @@ -193,25 +70,7 @@ export default function ModeRoute({ const token = lowerCaseSearchParams.get('token'); if (token) { - // if a token is passed in, set the userAuthenticationService to use it - // for the Authorization header for all requests - userAuthenticationService.setServiceImplementation({ - getAuthorizationHeader: () => ({ - Authorization: 'Bearer ' + token, - }), - }); - - // Create a URL object with the current location - const urlObj = new URL(window.location.origin + window.location.pathname + location.search); - - // Remove the token from the URL object - urlObj.searchParams.delete('token'); - const cleanUrl = urlObj.toString(); - - // Update the browser's history without the token - if (window.history && window.history.replaceState) { - window.history.replaceState(null, '', cleanUrl); - } + updateAuthServiceAndCleanUrl(token, location, userAuthenticationService); } // Preserve the old array interface for hotkeys @@ -228,32 +87,6 @@ export default function ModeRoute({ // Only handling one route per mode for now const route = mode.routes[0]; - // For each extension, look up their context modules - // TODO: move to extension manager. - let contextModules = []; - - Object.keys(extensions).forEach(extensionId => { - const allRegisteredModuleIds = Object.keys(extensionManager.modulesMap); - const moduleIds = allRegisteredModuleIds.filter(id => - id.includes(`${extensionId}.contextModule.`) - ); - - if (!moduleIds || !moduleIds.length) { - return; - } - - const modules = moduleIds.map(extensionManager.getModuleEntry); - contextModules = contextModules.concat(modules); - }); - - const contextModuleProviders = contextModules.map(a => a.provider); - const CombinedContextProvider = ({ children }) => - Compose({ components: contextModuleProviders, children }); - - function ViewportGridWithDataSource(props) { - return ViewportGrid({ ...props, dataSource }); - } - useEffect(() => { const loadExtensions = async () => { const loadedExtensions = await loadModules(Object.keys(extensions)); @@ -298,7 +131,7 @@ export default function ModeRoute({ }, [location, ExtensionDependenciesLoaded]); useEffect(() => { - if (!ExtensionDependenciesLoaded) { + if (!ExtensionDependenciesLoaded || !studyInstanceUIDs?.length) { return; } @@ -313,7 +146,7 @@ export default function ModeRoute({ setRefresh(!refresh); } }; - if (studyInstanceUIDs?.length && studyInstanceUIDs[0] !== undefined) { + if (Array.isArray(studyInstanceUIDs) && studyInstanceUIDs[0]) { retrieveLayoutData(); } return () => { @@ -322,7 +155,7 @@ export default function ModeRoute({ }, [studyInstanceUIDs, ExtensionDependenciesLoaded]); useEffect(() => { - if (!hotkeys || !ExtensionDependenciesLoaded) { + if (!hotkeys || !ExtensionDependenciesLoaded || !studyInstanceUIDs?.length) { return; } @@ -339,10 +172,10 @@ export default function ModeRoute({ return () => { hotkeysManager.destroy(); }; - }, [ExtensionDependenciesLoaded]); + }, [ExtensionDependenciesLoaded, hotkeys, studyInstanceUIDs]); useEffect(() => { - if (!layoutTemplateData.current || !ExtensionDependenciesLoaded) { + if (!layoutTemplateData.current || !ExtensionDependenciesLoaded || !studyInstanceUIDs?.length) { return; } @@ -477,7 +310,21 @@ export default function ModeRoute({ refresh, ]); - const renderLayoutData = props => { + if (!studyInstanceUIDs || !layoutTemplateData.current || !ExtensionDependenciesLoaded) { + return null; + } + + const ViewportGridWithDataSource = props => { + return ViewportGrid({ ...props, dataSource }); + }; + + const CombinedExtensionsContextProvider = createCombinedContextProvider( + extensionManager, + servicesManager, + commandsManager + ); + + const getLayoutComponent = props => { const layoutTemplateModuleEntry = extensionManager.getModuleEntry( layoutTemplateData.current.id ); @@ -486,27 +333,51 @@ export default function ModeRoute({ return ; }; + const LayoutComponent = getLayoutComponent({ + ...layoutTemplateData.current.props, + ViewportGridComp: ViewportGridWithDataSource, + }); + return ( - - - - {layoutTemplateData.current && - studyInstanceUIDs?.[0] !== undefined && - ExtensionDependenciesLoaded && - renderLayoutData({ - ...layoutTemplateData.current.props, - ViewportGridComp: ViewportGridWithDataSource, - })} - - + + {CombinedExtensionsContextProvider ? ( + + {LayoutComponent} + + ) : ( + {LayoutComponent} + )} ); } +/** + * Creates a combined context provider using the context modules from the extension manager. + * @param {object} extensionManager - The extension manager instance. + * @param {object} servicesManager - The services manager instance. + * @param {object} commandsManager - The commands manager instance. + * @returns {React.Component} - A React component that provides combined contexts to its children. + */ +function createCombinedContextProvider(extensionManager, servicesManager, commandsManager) { + const extensionsContextModules = extensionManager.getModulesByType( + extensionManager.constructor.MODULE_TYPES.CONTEXT + ); + + if (!extensionsContextModules?.length) { + return; + } + + const contextModuleProviders = extensionsContextModules.flatMap(({ module }) => { + return module.map(aContextModule => { + return aContextModule.provider; + }); + }); + + return ({ children }) => { + return Compose({ components: contextModuleProviders, children }); + }; +} + ModeRoute.propTypes = { mode: PropTypes.object.isRequired, dataSourceName: PropTypes.string, diff --git a/platform/app/src/routes/Mode/defaultRouteInit.ts b/platform/app/src/routes/Mode/defaultRouteInit.ts new file mode 100644 index 000000000..3f8aafaa7 --- /dev/null +++ b/platform/app/src/routes/Mode/defaultRouteInit.ts @@ -0,0 +1,129 @@ +import getStudies from './studiesList'; +import { DicomMetadataStore, log } from '@ohif/core'; +import isSeriesFilterUsed from '../../utils/isSeriesFilterUsed'; + +import { utils, Enums } from '@ohif/core'; + +const { sortingCriteria } = utils; + +/** + * Initialize the route. + * + * @param props.servicesManager to read services from + * @param props.studyInstanceUIDs for a list of studies to read + * @param props.dataSource to read the data from + * @param props.filters filters from query params to read the data from + * @returns array of subscriptions to cancel + */ +export function defaultRouteInit( + { servicesManager, studyInstanceUIDs, dataSource, filters, appConfig }, + hangingProtocolId +) { + const { displaySetService, hangingProtocolService, uiNotificationService, customizationService } = + servicesManager.services; + /** + * Function to apply the hanging protocol when the minimum number of display sets were + * received or all display sets retrieval were completed + * @returns + */ + function applyHangingProtocol() { + const displaySets = displaySetService.getActiveDisplaySets(); + + if (!displaySets || !displaySets.length) { + return; + } + + // Gets the studies list to use + const studies = getStudies(studyInstanceUIDs, displaySets); + + // study being displayed, and is thus the "active" study. + const activeStudy = studies[0]; + + // run the hanging protocol matching on the displaySets with the predefined + // hanging protocol in the mode configuration + hangingProtocolService.run({ studies, activeStudy, displaySets }, hangingProtocolId); + } + + const unsubscriptions = []; + const issuedWarningSeries = []; + const { unsubscribe: instanceAddedUnsubscribe } = DicomMetadataStore.subscribe( + DicomMetadataStore.EVENTS.INSTANCES_ADDED, + function ({ StudyInstanceUID, SeriesInstanceUID, madeInClient = false }) { + const seriesMetadata = DicomMetadataStore.getSeries(StudyInstanceUID, SeriesInstanceUID); + + // checks if the series filter was used, if it exists + const seriesInstanceUIDs = filters?.seriesInstanceUID; + if ( + seriesInstanceUIDs?.length && + !isSeriesFilterUsed(seriesMetadata.instances, filters) && + !issuedWarningSeries.includes(seriesInstanceUIDs[0]) + ) { + // stores the series instance filter so it shows only once the warning + issuedWarningSeries.push(seriesInstanceUIDs[0]); + uiNotificationService.show({ + title: 'Series filter', + message: `Each of the series in filter: ${seriesInstanceUIDs} are not part of the current study. The entire study is being displayed`, + type: 'error', + duration: 7000, + }); + } + + displaySetService.makeDisplaySets(seriesMetadata.instances, madeInClient); + } + ); + + unsubscriptions.push(instanceAddedUnsubscribe); + + log.time(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); + log.time(Enums.TimingEnum.STUDY_TO_FIRST_IMAGE); + + const allRetrieves = studyInstanceUIDs.map(StudyInstanceUID => + dataSource.retrieve.series.metadata({ + StudyInstanceUID, + filters, + returnPromises: true, + sortCriteria: + customizationService.get('sortingCriteria') || + sortingCriteria.seriesSortCriteria.seriesInfoSortingCriteria, + }) + ); + + // log the error if this fails, otherwise it's so difficult to tell what went wrong... + allRetrieves.forEach(retrieve => { + retrieve.catch(error => { + console.error(error); + }); + }); + + Promise.allSettled(allRetrieves).then(promises => { + log.timeEnd(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); + log.time(Enums.TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); + log.time(Enums.TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); + + const allPromises = []; + const remainingPromises = []; + + function startRemainingPromises(remainingPromises) { + remainingPromises.forEach(p => p.forEach(p => p.start())); + } + + promises.forEach(promise => { + const retrieveSeriesMetadataPromise = promise.value; + if (Array.isArray(retrieveSeriesMetadataPromise)) { + const { requiredSeries, remaining } = hangingProtocolService.filterSeriesRequiredForRun( + hangingProtocolId, + retrieveSeriesMetadataPromise + ); + const requiredSeriesPromises = requiredSeries.map(promise => promise.start()); + allPromises.push(Promise.allSettled(requiredSeriesPromises)); + remainingPromises.push(remaining); + } + }); + + Promise.allSettled(allPromises).then(applyHangingProtocol); + startRemainingPromises(remainingPromises); + applyHangingProtocol(); + }); + + return unsubscriptions; +} diff --git a/platform/app/src/routes/Mode/updateAuthServiceAndCleanUrl.ts b/platform/app/src/routes/Mode/updateAuthServiceAndCleanUrl.ts new file mode 100644 index 000000000..c387d69cc --- /dev/null +++ b/platform/app/src/routes/Mode/updateAuthServiceAndCleanUrl.ts @@ -0,0 +1,35 @@ +/** + * Updates the user authentication service with the provided token and cleans the token from the URL. + * @param token - The token to set in the user authentication service. + * @param location - The location object from the router. + * @param userAuthenticationService - The user authentication service instance. + */ +export function updateAuthServiceAndCleanUrl( + token: string, + location: any, + userAuthenticationService: any +): void { + if (!token) { + return; + } + + // if a token is passed in, set the userAuthenticationService to use it + // for the Authorization header for all requests + userAuthenticationService.setServiceImplementation({ + getAuthorizationHeader: () => ({ + Authorization: 'Bearer ' + token, + }), + }); + + // Create a URL object with the current location + const urlObj = new URL(window.location.origin + window.location.pathname + location.search); + + // Remove the token from the URL object + urlObj.searchParams.delete('token'); + const cleanUrl = urlObj.toString(); + + // Update the browser's history without the token + if (window.history && window.history.replaceState) { + window.history.replaceState(null, '', cleanUrl); + } +} diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index 05a5e0994..c4c9c6b83 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -419,7 +419,7 @@ function WorkList({ /> } // launch-arrow | launch-info onClick={() => {}} - data-cy={`mode-${mode.routeName}-${studyInstanceUid}`} + dataCY={`mode-${mode.routeName}-${studyInstanceUid}`} className={isValidMode ? 'text-[13px]' : 'bg-[#222d44] text-[13px]'} > {mode.displayName} diff --git a/platform/cli/templates/mode/src/index.tsx b/platform/cli/templates/mode/src/index.tsx index e129a9a05..7ff747bbe 100644 --- a/platform/cli/templates/mode/src/index.tsx +++ b/platform/cli/templates/mode/src/index.tsx @@ -48,37 +48,7 @@ function modeFactory({ modeConfiguration }) { // Init Default and SR ToolGroups initToolGroups(extensionManager, toolGroupService, commandsManager); - let unsubscribe; - - const activateTool = () => { - toolbarService.recordInteraction({ - groupId: 'WindowLevel', - interactionType: 'tool', - commands: [ - { - commandName: 'setToolActive', - commandOptions: { - toolName: 'WindowLevel', - }, - context: 'CORNERSTONE', - }, - ], - }); - - // We don't need to reset the active tool whenever a viewport is getting - // added to the toolGroup. - unsubscribe(); - }; - - // Since we only have one viewport for the basic cs3d mode and it has - // only one hanging protocol, we can just use the first viewport - ({ unsubscribe } = toolGroupService.subscribe( - toolGroupService.EVENTS.VIEWPORT_ADDED, - activateTool - )); - - toolbarService.init(extensionManager); - toolbarService.addButtons([...toolbarButtons, ...moreTools]); + toolbarService.addButtons(toolbarButtons); toolbarService.createButtonSection('primary', [ 'MeasurementTools', 'Zoom', diff --git a/platform/core/src/classes/CommandsManager.test.js b/platform/core/src/classes/CommandsManager.test.js index 399003834..390f9d4df 100644 --- a/platform/core/src/classes/CommandsManager.test.js +++ b/platform/core/src/classes/CommandsManager.test.js @@ -8,7 +8,6 @@ describe('CommandsManager', () => { contextName = 'VTK', command = { commandFn: jest.fn().mockReturnValue(true), - storeContexts: ['viewers'], options: { passMeToCommandFn: ':wave:' }, }, commandsManagerConfig = { @@ -139,7 +138,6 @@ describe('CommandsManager', () => { it('Logs a warning if command definition does not have a commandFn', () => { const commandWithNoCommmandFn = { commandFn: undefined, - storeContexts: [], options: {}, }; diff --git a/platform/core/src/classes/CommandsManager.ts b/platform/core/src/classes/CommandsManager.ts index 4d4563a00..820554ca2 100644 --- a/platform/core/src/classes/CommandsManager.ts +++ b/platform/core/src/classes/CommandsManager.ts @@ -1,5 +1,5 @@ import log from '../log.js'; -import { Command, Commands } from '../types/Command'; +import { Command, Commands, ComplexCommand } from '../types/Command'; /** * The definition of a command @@ -167,28 +167,44 @@ export class CommandsManager { * Run one or more commands with specified extra options. * Returns the result of the last command run. * - * @param toRun - A specification of one or more commands + * @param toRun - A specification of one or more commands, + * typically an object of { commandName, commandOptions, context } + * or an array of such objects. It can also be a single commandName as string + * if no options are needed. * @param options - to include in the commands run beyond * the commandOptions specified in the base. */ public run( - toRun: Command | Commands | Command[] | undefined, + toRun: Command | Commands | Command[] | string | undefined, options?: Record ): unknown { if (!toRun) { return; } - const commands = - (Array.isArray(toRun) && toRun) || - ((toRun as Command).commandName && [toRun]) || - (Array.isArray((toRun as Commands).commands) && (toRun as Commands).commands); - if (!commands) { + + // Normalize `toRun` to an array of `ComplexCommand` + let commands: ComplexCommand[] = []; + if (typeof toRun === 'string') { + commands = [{ commandName: toRun }]; + } else if ('commandName' in toRun) { + commands = [toRun as ComplexCommand]; + } else if ('commands' in toRun) { + const commandsInput = (toRun as Commands).commands; + commands = Array.isArray(commandsInput) + ? commandsInput.map(cmd => (typeof cmd === 'string' ? { commandName: cmd } : cmd)) + : [{ commandName: commandsInput }]; + } else if (Array.isArray(toRun)) { + commands = toRun.map(cmd => (typeof cmd === 'string' ? { commandName: cmd } : cmd)); + } + + if (commands.length === 0) { console.log("Command isn't runnable", toRun); return; } - let result; - (commands as Command[]).forEach(({ commandName, commandOptions, context }) => { + // Execute each command in the array + let result: unknown; + commands.forEach(({ commandName, commandOptions, context }) => { if (commandName) { result = this.runCommand( commandName, diff --git a/platform/core/src/classes/HotkeysManager.ts b/platform/core/src/classes/HotkeysManager.ts index 886cafc2d..8a01446b6 100644 --- a/platform/core/src/classes/HotkeysManager.ts +++ b/platform/core/src/classes/HotkeysManager.ts @@ -1,5 +1,4 @@ import objectHash from 'object-hash'; -import log from '../log.js'; import { hotkeys } from '../utils'; import isequal from 'lodash.isequal'; import Hotkey from './Hotkey'; @@ -276,10 +275,3 @@ export class HotkeysManager { } export default HotkeysManager; - -// Commands Contexts: - -// --> Name and Priority -// GLOBAL: 0 -// VIEWER::CORNERSTONE: 1 -// VIEWER::VTK: 1 diff --git a/platform/core/src/extensions/ExtensionManager.test.js b/platform/core/src/extensions/ExtensionManager.test.js index 5d5fed85b..042a49884 100644 --- a/platform/core/src/extensions/ExtensionManager.test.js +++ b/platform/core/src/extensions/ExtensionManager.test.js @@ -247,7 +247,6 @@ describe('ExtensionManager.ts', () => { definitions: { exampleDefinition: { commandFn: () => {}, - storeContexts: [], options: {}, }, }, diff --git a/platform/core/src/extensions/ExtensionManager.ts b/platform/core/src/extensions/ExtensionManager.ts index 083fde7f2..7f6138344 100644 --- a/platform/core/src/extensions/ExtensionManager.ts +++ b/platform/core/src/extensions/ExtensionManager.ts @@ -45,6 +45,7 @@ export interface Extension { getUtilityModule?: (p: ExtensionParams) => unknown; getCustomizationModule?: (p: ExtensionParams) => unknown; getSopClassHandlerModule?: (p: ExtensionParams) => unknown; + getToolbarModule?: (p: ExtensionParams) => unknown; onModeEnter?: () => void; onModeExit?: () => void; } @@ -65,9 +66,24 @@ export default class ExtensionManager extends PubSubService { ACTIVE_DATA_SOURCE_CHANGED: 'event::activedatasourcechanged', }; + public static readonly MODULE_TYPES = MODULE_TYPES; + private _commandsManager: CommandsManager; private _servicesManager: ServicesManager; private _hotkeysManager: HotkeysManager; + private modulesMap: Record; + private modules: Record; + private registeredExtensionIds: string[]; + private moduleTypeNames: string[]; + private _appConfig: any; + private _extensionLifeCycleHooks: { + onModeEnter: Record; + onModeExit: Record; + }; + private dataSourceMap: Record; + private dataSourceDefs: Record; + private defaultDataSourceName: string; + private activeDataSource: string; constructor({ commandsManager, @@ -265,57 +281,74 @@ export default class ExtensionManager extends PubSubService { configuration ); - if (extensionModule) { - switch (moduleType) { - case MODULE_TYPES.COMMANDS: - this._initCommandsModule(extensionModule); - break; - case MODULE_TYPES.DATA_SOURCE: - this._initDataSourcesModule(extensionModule, extensionId, dataSources); - break; - case MODULE_TYPES.HANGING_PROTOCOL: - this._initHangingProtocolsModule(extensionModule, extensionId); - case MODULE_TYPES.TOOLBAR: - case MODULE_TYPES.VIEWPORT: - case MODULE_TYPES.PANEL: - case MODULE_TYPES.SOP_CLASS_HANDLER: - case MODULE_TYPES.CONTEXT: - case MODULE_TYPES.LAYOUT_TEMPLATE: - case MODULE_TYPES.CUSTOMIZATION: - case MODULE_TYPES.STATE_SYNC: - case MODULE_TYPES.UTILITY: - // Default for most extension points, - // Just adds each entry ready for consumption by mode. - extensionModule.forEach(element => { - if (!element.name) { - throw new Error( - `Extension ID ${extensionId} module ${moduleType} element has no name` - ); - } - const id = `${extensionId}.${moduleType}.${element.name}`; - element.id = id; - this.modulesMap[id] = element; - }); - break; - default: - throw new Error(`Module type invalid: ${moduleType}`); - } - - this.modules[moduleType].push({ - extensionId, - module: extensionModule, - }); + if (!extensionModule) { + return; } + + switch (moduleType) { + case MODULE_TYPES.COMMANDS: + this._initCommandsModule(extensionModule); + break; + + case MODULE_TYPES.DATA_SOURCE: + this._initDataSourcesModule(extensionModule, extensionId, dataSources); + break; + + case MODULE_TYPES.HANGING_PROTOCOL: + this._initHangingProtocolsModule(extensionModule, extensionId); + break; + + case MODULE_TYPES.PANEL: + this._initPanelModule(extensionModule, extensionId); + break; + + case MODULE_TYPES.TOOLBAR: + this._initToolbarModule(extensionModule, extensionId); + break; + + case MODULE_TYPES.VIEWPORT: + case MODULE_TYPES.SOP_CLASS_HANDLER: + case MODULE_TYPES.CONTEXT: + case MODULE_TYPES.LAYOUT_TEMPLATE: + case MODULE_TYPES.CUSTOMIZATION: + case MODULE_TYPES.STATE_SYNC: + case MODULE_TYPES.UTILITY: + this.processExtensionModule(extensionModule, extensionId, moduleType); + break; + default: + throw new Error(`Module type invalid: ${moduleType}`); + } + + this.modules[moduleType].push({ + extensionId, + module: extensionModule, + }); }); // Track extension registration this.registeredExtensionIds.push(extensionId); }; + /** + * Retrieves the module entry associated with the given string entry + * @param stringEntry - The string entry to retrieve the module entry for which is + * in the format of `${extensionId}.${moduleType}.${moduleName}` + * @returns The module entry associated with the given string entry. + */ getModuleEntry = stringEntry => { return this.modulesMap[stringEntry]; }; + /** + * Retrieves all modules of a given type for all registered extensions. + * + * @param moduleType - The type of modules to retrieve. + * @returns An array of modules of the specified type. + */ + getModulesByType = (moduleType: string) => { + return this.modules[moduleType]; + }; + getDataSources = dataSourceName => { if (dataSourceName === undefined) { // Default to the activeDataSource @@ -402,6 +435,38 @@ export default class ExtensionManager extends PubSubService { }); }; + _initPanelModule = (extensionModule, extensionId) => { + this.processExtensionModule(extensionModule, extensionId, MODULE_TYPES.PANEL); + }; + + _initToolbarModule = (extensionModule, extensionId) => { + // check if the toolbar module has a handler function for evaluation of + // the toolbar button state + const { toolbarService } = this._servicesManager.services; + extensionModule.forEach(toolbarButton => { + if (toolbarButton.evaluate) { + toolbarService.registerEvaluateFunction(toolbarButton.name, toolbarButton.evaluate); + } + }); + }; + + /** + * Processes an extension module. + * @param extensionModule - The extension module to process. + * @param extensionId - The ID of the extension. + * @param moduleType - The type of the module. + */ + private processExtensionModule(extensionModule, extensionId: string, moduleType: string) { + extensionModule.forEach(element => { + if (!element.name) { + throw new Error(`Extension ID ${extensionId} module ${moduleType} element has no name`); + } + const id = `${extensionId}.${moduleType}.${element.name}`; + element.id = id; + this.modulesMap[id] = element; + }); + } + /** * Adds the given data source and optionally sets it as the active data source. * The method does this by first creating the data source. diff --git a/platform/core/src/hooks/useToolbar.tsx b/platform/core/src/hooks/useToolbar.tsx new file mode 100644 index 000000000..31eeb1d62 --- /dev/null +++ b/platform/core/src/hooks/useToolbar.tsx @@ -0,0 +1,58 @@ +import { useCallback, useEffect, useState } from 'react'; + +export function useToolbar({ servicesManager, buttonSection = 'primary' }) { + const { toolbarService, viewportGridService } = servicesManager.services; + const { EVENTS } = toolbarService; + + const [toolbarButtons, setToolbarButtons] = useState( + toolbarService.getButtonSection(buttonSection) + ); + + // Callback function for handling toolbar interactions + const onInteraction = useCallback( + args => { + const viewportId = viewportGridService.getActiveViewportId(); + const refreshProps = { + viewportId, + }; + toolbarService.recordInteraction(args, { + refreshProps, + }); + }, + [toolbarService, viewportGridService] + ); + + // Effect to handle toolbar modification events + useEffect(() => { + const handleToolbarModified = () => { + setToolbarButtons(toolbarService.getButtonSection(buttonSection)); + }; + + const subs = [EVENTS.TOOL_BAR_MODIFIED, EVENTS.TOOL_BAR_STATE_MODIFIED].map(event => { + return toolbarService.subscribe(event, handleToolbarModified); + }); + + return () => { + subs.forEach(sub => sub.unsubscribe()); + }; + }, [toolbarService]); + + // Effect to handle active viewportId change event + useEffect(() => { + const events = [ + viewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED, + viewportGridService.EVENTS.VIEWPORTS_READY, + ]; + + const subscriptions = events.map(event => { + return viewportGridService.subscribe(event, ({ viewportId }) => { + viewportId = viewportId || viewportGridService.getActiveViewportId(); + toolbarService.refreshToolbarState({ viewportId }); + }); + }); + + return () => subscriptions.forEach(sub => sub.unsubscribe()); + }, [viewportGridService, toolbarService]); + + return { toolbarButtons, onInteraction }; +} diff --git a/platform/core/src/index.test.js b/platform/core/src/index.test.js index 7c000ae59..3c0922200 100644 --- a/platform/core/src/index.test.js +++ b/platform/core/src/index.test.js @@ -45,6 +45,7 @@ describe('Top level exports', () => { 'pubSubServiceInterface', 'PubSubService', 'PanelService', + 'useToolbar', ].sort(); const exports = Object.keys(OHIF).sort(); diff --git a/platform/core/src/index.ts b/platform/core/src/index.ts index ddea2c457..13612d775 100644 --- a/platform/core/src/index.ts +++ b/platform/core/src/index.ts @@ -12,6 +12,7 @@ import utils from './utils'; import defaults from './defaults'; import * as Types from './types'; import * as Enums from './enums'; +import { useToolbar } from './hooks/useToolbar'; import { CineService, @@ -81,6 +82,7 @@ const OHIF = { pubSubServiceInterface, PubSubService, PanelService, + useToolbar, }; export { @@ -124,6 +126,7 @@ export { Enums, Types, PanelService, + useToolbar, }; export { OHIF }; diff --git a/platform/core/src/services/CineService/CineService.ts b/platform/core/src/services/CineService/CineService.ts index 153a186d5..9c027afb2 100644 --- a/platform/core/src/services/CineService/CineService.ts +++ b/platform/core/src/services/CineService/CineService.ts @@ -1,82 +1,80 @@ -const name = 'CineService'; +import { PubSubService } from '../_shared/pubSubServiceInterface'; -const publicAPI = { - name, - getState: _getState, - setCine: _setCine, - setIsCineEnabled: _setIsCineEnabled, - playClip: _playClip, - stopClip: _stopClip, - onModeExit: _onModeExit, - setServiceImplementation, -}; +class CineService extends PubSubService { + public static readonly EVENTS = { + CINE_STATE_CHANGED: 'event::cineStateChanged', + }; -const serviceImplementation = { - _getState: () => console.warn('getState() NOT IMPLEMENTED'), - _setCine: () => console.warn('setCine() NOT IMPLEMENTED'), - _playClip: () => console.warn('playClip() NOT IMPLEMENTED'), - _stopClip: () => console.warn('stopClip() NOT IMPLEMENTED'), - _setIsCineEnabled: () => console.warn('setIsCineEnabled() NOT IMPLEMENTED'), -}; - -function _getState() { - return serviceImplementation._getState(); -} - -function _setCine({ id, frameRate, isPlaying }) { - return serviceImplementation._setCine({ id, frameRate, isPlaying }); -} - -function _setIsCineEnabled(isCineEnabled) { - return serviceImplementation._setIsCineEnabled(isCineEnabled); -} - -function _playClip(element, playClipOptions) { - return serviceImplementation._playClip(element, playClipOptions); -} - -function _stopClip(element) { - return serviceImplementation._stopClip(element); -} - -function _onModeExit() { - _setIsCineEnabled(false); -} - -function setServiceImplementation({ - getState: getStateImplementation, - setCine: setCineImplementation, - setIsCineEnabled: setIsCineEnabledImplementation, - playClip: playClipImplementation, - stopClip: stopClipImplementation, -}) { - if (getStateImplementation) { - serviceImplementation._getState = getStateImplementation; - } - if (setCineImplementation) { - serviceImplementation._setCine = setCineImplementation; - } - if (setIsCineEnabledImplementation) { - serviceImplementation._setIsCineEnabled = setIsCineEnabledImplementation; - } - - if (playClipImplementation) { - serviceImplementation._playClip = playClipImplementation; - } - - if (stopClipImplementation) { - serviceImplementation._stopClip = stopClipImplementation; - } -} - -const CineService = { - REGISTRATION: { - altName: name, + public static REGISTRATION = { name: 'cineService', + altName: 'CineService', create: ({ configuration = {} }) => { - return publicAPI; + return new CineService(); }, - }, -}; + }; + + serviceImplementation = {}; + + constructor() { + super(CineService.EVENTS); + this.serviceImplementation = {}; + } + + public getState() { + return this.serviceImplementation._getState(); + } + + public setCine({ id, frameRate, isPlaying }) { + return this.serviceImplementation._setCine({ id, frameRate, isPlaying }); + } + + public setIsCineEnabled(isCineEnabled) { + this.serviceImplementation._setIsCineEnabled(isCineEnabled); + // Todo: for some reason i need to do this setTimeout since the + // reducer state does not get updated right away and if we publish the + // event and we use the cineService.getState() it will return the old state + setTimeout(() => { + this._broadcastEvent(this.EVENTS.CINE_STATE_CHANGED, isCineEnabled); + }, 0); + } + + public playClip(element, playClipOptions) { + return this.serviceImplementation._playClip(element, playClipOptions); + } + + public stopClip(element) { + return this.serviceImplementation._stopClip(element); + } + + public _onModeExit() { + this.setIsCineEnabled(false); + } + + public setServiceImplementation({ + getState: getStateImplementation, + setCine: setCineImplementation, + setIsCineEnabled: setIsCineEnabledImplementation, + playClip: playClipImplementation, + stopClip: stopClipImplementation, + }) { + if (getStateImplementation) { + this.serviceImplementation._getState = getStateImplementation; + } + if (setCineImplementation) { + this.serviceImplementation._setCine = setCineImplementation; + } + if (setIsCineEnabledImplementation) { + this.serviceImplementation._setIsCineEnabled = setIsCineEnabledImplementation; + } + + if (playClipImplementation) { + this.serviceImplementation._playClip = playClipImplementation; + } + + if (stopClipImplementation) { + this.serviceImplementation._stopClip = stopClipImplementation; + } + } +} export default CineService; diff --git a/platform/core/src/services/CustomizationService/CustomizationService.ts b/platform/core/src/services/CustomizationService/CustomizationService.ts index be8639d5e..0d97a3307 100644 --- a/platform/core/src/services/CustomizationService/CustomizationService.ts +++ b/platform/core/src/services/CustomizationService/CustomizationService.ts @@ -135,15 +135,15 @@ export default class CustomizationService extends PubSubService { return this.getModeCustomization(customizationId, defaultValue); } - /** Mode customizations are changes to the behaviour of the extensions + /** Mode customizations are changes to the behavior of the extensions * when running in a given mode. Reset clears mode customizations. * Note that global customizations over-ride mode customizations. - * @param defautlValue to return if no customization specified. + * @param defaultValue to return if no customization specified. */ public getModeCustomization( customizationId: string, defaultValue?: Customization - ): Customization | void { + ): Customization { const customization = this.globalCustomizations[customizationId] ?? this.modeCustomizations[customizationId] ?? diff --git a/platform/core/src/services/MeasurementService/MeasurementService.ts b/platform/core/src/services/MeasurementService/MeasurementService.ts index 7d253ecff..49ce726f0 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.ts +++ b/platform/core/src/services/MeasurementService/MeasurementService.ts @@ -113,7 +113,7 @@ class MeasurementService extends PubSubService { public readonly VALUE_TYPES = VALUE_TYPES; private measurements = new Map(); - private unmappedMeasurements = new Set(); + private unmappedMeasurements = new Map(); constructor() { super(EVENTS); @@ -485,7 +485,15 @@ class MeasurementService extends PubSubService { measurement = toMeasurementSchema(sourceAnnotationDetail); measurement.source = source; } catch (error) { - this.unmappedMeasurements.add(sourceAnnotationDetail.uid); + // Todo: handle other + this.unmappedMeasurements.set(sourceAnnotationDetail.uid, { + ...sourceAnnotationDetail, + source: { + name: source.name, + version: source.version, + uid: source.uid, + }, + }); console.log('Failed to map', error); throw new Error( @@ -567,10 +575,9 @@ class MeasurementService extends PubSubService { } clearMeasurements() { - this.unmappedMeasurements.clear(); - // Make a copy of the measurements - const measurements = [...this.measurements.values()]; + const measurements = [...this.measurements.values(), ...this.unmappedMeasurements.values()]; + this.unmappedMeasurements.clear(); this.measurements.clear(); this._broadcastEvent(this.EVENTS.MEASUREMENTS_CLEARED, { measurements }); } diff --git a/platform/core/src/services/ServicesManager.ts b/platform/core/src/services/ServicesManager.ts index 445e5aec3..b7419639a 100644 --- a/platform/core/src/services/ServicesManager.ts +++ b/platform/core/src/services/ServicesManager.ts @@ -1,9 +1,13 @@ import log from './../log.js'; import Services from '../types/Services'; import CommandsManager from '../classes/CommandsManager'; +import ExtensionManager from '../extensions/ExtensionManager'; export default class ServicesManager { public services: Services = {}; + public registeredServiceNames: string[] = []; + private _commandsManager: CommandsManager; + private _extensionManager: ExtensionManager; constructor(commandsManager: CommandsManager) { this._commandsManager = commandsManager; @@ -11,6 +15,10 @@ export default class ServicesManager { this.registeredServiceNames = []; } + setExtensionManager(extensionManager) { + this._extensionManager = extensionManager; + } + /** * Registers a new service. * @@ -40,6 +48,7 @@ export default class ServicesManager { configuration, commandsManager: this._commandsManager, servicesManager: this, + extensionManager: this._extensionManager, }); if (service.altName) { console.log('Registering old name', service.altName); diff --git a/platform/core/src/services/ToolBarService/ToolbarService.ts b/platform/core/src/services/ToolBarService/ToolbarService.ts index 269f93da4..eff3912ab 100644 --- a/platform/core/src/services/ToolBarService/ToolbarService.ts +++ b/platform/core/src/services/ToolBarService/ToolbarService.ts @@ -1,109 +1,79 @@ -import merge from 'lodash.merge'; import { CommandsManager } from '../../classes'; import { ExtensionManager } from '../../extensions'; import { PubSubService } from '../_shared/pubSubServiceInterface'; -import type { RunCommand, Commands } from '../../types/Command'; +import type { RunCommand } from '../../types/Command'; +import ServicesManager from '../ServicesManager'; +import { Button, ButtonProps, EvaluateFunction, EvaluatePublic, NestedButtonProps } from './types'; const EVENTS = { TOOL_BAR_MODIFIED: 'event::toolBarService:toolBarModified', TOOL_BAR_STATE_MODIFIED: 'event::toolBarService:toolBarStateModified', }; -export type ButtonListeners = Record; - -export interface ButtonProps { - primary?: Button; - secondary?: Button; - items?: Button[]; -} - -export interface Button extends Commands { - id: string; - icon?: string; - label?: string; - type?: string; - tooltip?: string; - isActive?: boolean; - listeners?: ButtonListeners; - props?: ButtonProps; -} - -export interface ExtraButtonOptions { - listeners?: ButtonListeners; - isActive?: boolean; -} - export default class ToolbarService extends PubSubService { public static REGISTRATION = { name: 'toolbarService', - // Note the old name is ToolBarService, with an upper B altName: 'ToolBarService', - create: ({ commandsManager }) => { - return new ToolbarService(commandsManager); + create: ({ commandsManager, extensionManager, servicesManager }) => { + return new ToolbarService(commandsManager, extensionManager, servicesManager); }, }; - public static _createButton( - type: string, - id: string, - icon: string, - label: string, - commands: Command | Commands, - tooltip?: string, - extraOptions?: ExtraButtonOptions - ): Button { + public static createButton(options: { + id: string; + label: string; + commands: RunCommand; + icon?: string; + tooltip?: string; + evaluate?: EvaluatePublic; + listeners?: Record; + }): ButtonProps { + const { id, icon, label, commands, tooltip, evaluate, listeners } = options; return { id, icon, label, - type, commands, - tooltip, - ...extraOptions, + tooltip: tooltip || label, + evaluate, + listeners, }; } - public static _createActionButton = ToolbarService._createButton.bind(null, 'action'); - public static _createToggleButton = ToolbarService._createButton.bind(null, 'toggle'); - public static _createToolButton = ToolbarService._createButton.bind(null, 'tool'); - - buttons: Record = {}; state: { - primaryToolId: string; - toggles: Record; - groups: Record; - } = { primaryToolId: '', toggles: {}, groups: {} }; - - buttonSections: Record = { - /** - * primary: ['Zoom', 'Wwwc'], - * secondary: ['Length', 'RectangleRoi'] - */ + // all buttons in the toolbar with their props + buttons: Record; + // the buttons in the toolbar, grouped by section, with their ids + buttonSections: Record; + } = { + buttons: {}, + buttonSections: {}, }; + _commandsManager: CommandsManager; - extensionManager: ExtensionManager; + _extensionManager: ExtensionManager; + _servicesManager: ServicesManager; + _evaluateFunction: Record = {}; + _serviceSubscriptions = []; - defaultTool: Record; - - constructor(commandsManager: CommandsManager) { + constructor( + commandsManager: CommandsManager, + extensionManager: ExtensionManager, + servicesManager: ServicesManager + ) { super(EVENTS); this._commandsManager = commandsManager; - } - - public init(extensionManager: ExtensionManager): void { - this.extensionManager = extensionManager; + this._extensionManager = extensionManager; + this._servicesManager = servicesManager; } public reset(): void { this.unsubscriptions.forEach(unsub => unsub()); this.state = { - primaryToolId: 'WindowLevel', - toggles: {}, - groups: {}, + buttons: {}, + buttonSections: {}, }; this.unsubscriptions = []; - this.buttonSections = {}; - this.buttons = {}; } public onModeEnter(): void { @@ -111,16 +81,52 @@ export default class ToolbarService extends PubSubService { } /** - * Sets the default tool that will be activated whenever the primary tool is - * deactivated without activating another/different tool. - * @param interaction the interaction command that will set the default tool active + * Registers an evaluate function with the specified name. + * + * @param name - The name of the evaluate function. + * @param handler - The evaluate function handler. */ - public setDefaultTool(interaction) { - this.defaultTool = interaction; + public registerEvaluateFunction(name: string, handler: EvaluateFunction) { + this._evaluateFunction[name] = handler; } - public getDefaultTool() { - return this.defaultTool; + /** + * Registers a service and its event to listen for updates and refreshes the toolbar state when the event is triggered. + * @param service - The service to register. + * @param event - The event to listen for. + */ + public registerEventForToolbarUpdate(service, events) { + const { viewportGridService } = this._servicesManager.services; + const callback = () => { + const viewportId = viewportGridService.getActiveViewportId(); + this.refreshToolbarState({ viewportId }); + }; + + const unsubscriptions = events.map(event => { + if (service.subscribe) { + return service.subscribe(event, callback); + } else if (service.addEventListener) { + return service.addEventListener(event, callback); + } + }); + + unsubscriptions.forEach(unsub => this._serviceSubscriptions.push(unsub)); + } + + /** + * Adds buttons to the toolbar. + * @param buttons - The buttons to be added. + */ + public addButtons(buttons: Button[]): void { + buttons.forEach(button => { + if (!this.state.buttons[button.id]) { + this.state.buttons[button.id] = button; + } + }); + + this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, { + ...this.state, + }); } /** @@ -130,160 +136,180 @@ export default class ToolbarService extends PubSubService { * used for calling the specified interaction. That is, the command is * called with {...commandOptions,...options} */ - public recordInteraction(interaction, options?: Record) { - if (!interaction) { - return; + public recordInteraction( + interaction, + options?: { + refreshProps: Record; + [key: string]: unknown; } - const commandsManager = this._commandsManager; - const { groupId, itemId, commands, type } = interaction; - let { interactionType } = interaction; - - // if not interaction type, assume the type can be used - if (!interactionType) { - interactionType = type; + ) { + // if interaction is a string, we can assume it is the itemId + // and get the props to get the other properties + if (typeof interaction === 'string') { + interaction = this.getButtonProps(interaction); } - switch (interactionType) { - case 'action': { - commandsManager.run(commands, options); - break; - } - case 'tool': { - try { - const alternateInteraction = - this.state.primaryToolId === itemId && - this.defaultTool?.itemId !== itemId && - this.getDefaultTool(); - if (alternateInteraction) { - // Allow toggling the mode off - return this.recordInteraction(alternateInteraction, options); - } - commandsManager.run(commands, options); + const itemId = interaction.itemId ?? interaction.id; + interaction.itemId = itemId; - // only set the primary tool if no error was thrown. - // if the itemId is not undefined use it; otherwise, set the first tool in - // the commands as the primary tool - this.state.primaryToolId = itemId || commands[0].commandOptions?.toolName; - } catch (error) { - console.warn(error); - } + const commands = Array.isArray(interaction.commands) + ? interaction.commands + : [interaction.commands]; - break; - } - case 'toggle': { - const { commands } = interaction; - let commandExecuted; - - // only toggle if a command was executed - this.state.toggles[itemId] = - this.state.toggles[itemId] === undefined ? true : !this.state.toggles[itemId]; - - if (!commands) { - break; - } - - commands.forEach(({ commandName, commandOptions, context }) => { - if (!commandOptions) { - commandOptions = {}; - } - - if (commandName) { - commandOptions.toggledState = this.state.toggles[itemId]; - - try { - commandsManager.runCommand(commandName, commandOptions, context); - commandExecuted = true; - } catch (error) { - console.warn(error); - } - } - }); - - if (!commandExecuted) { - // If no command was executed, we need to toggle the state back - this.state.toggles[itemId] = !this.state.toggles[itemId]; - } - - break; - } - default: - throw new Error(`Invalid interaction type: ${interactionType}`); - } - - // Todo: comment out for now - // Run command if there's one associated - // - // NOTE: Should probably just do this for tools as well? - // But would be nice if we could enforce at least the command name? - // let unsubscribe; - // if (commandName) { - // unsubscribe = commandsManager.runCommand(commandName, commandOptions); - // } - - // // Storing the unsubscribe for later resetting - // if (unsubscribe && typeof unsubscribe === 'function') { - // if (this.unsubscriptions.indexOf(unsubscribe) === -1) { - // this.unsubscriptions.push(unsubscribe); - // } - // } - - // Track last touched id for each group - if (groupId) { - this.state.groups[groupId] = itemId; - } - - this._broadcastEvent(this.EVENTS.TOOL_BAR_STATE_MODIFIED, { ...this.state }); - } - - getButtons() { - return this.buttons; - } - - getActiveTools() { - const activeTools = [this.state.primaryToolId]; - Object.keys(this.state.toggles).forEach(key => { - if (this.state.toggles[key]) { - activeTools.push(key); - } - }); - return activeTools; - } - - getActivePrimaryTool() { - return this.state.primaryToolId; - } - - /** Sets the toggle state of a button to the isToggled state */ - public setToggled(id: string, isToggled: boolean): void { - if (isToggled) { - this.state.toggles[id] = true; - } else { - delete this.state.toggles[id]; - } - } - - setButton(id, button) { - if (this.buttons[id]) { - this.buttons[id] = merge(this.buttons[id], button); - this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, { - buttons: this.buttons, - button: this.buttons[id], - buttonSections: this.buttonSections, + if (!commands?.length) { + this.refreshToolbarState({ + ...options?.refreshProps, + itemId, + interaction, }); } + + const commandOptions = { ...options, ...interaction }; + + // Loop through commands and run them with the combined options + this._commandsManager.run(commands, commandOptions); + + this.refreshToolbarState({ + ...options?.refreshProps, + itemId, + interaction, + }); } + /** + * Consolidates the state of the toolbar after an interaction, it accepts + * props that get passed to the buttons + * + * @param refreshProps - The props that buttons need to get evaluated, they can be + * { viewportId, toolGroup} for cornerstoneTools. + * + * Todo: right now refreshToolbarState should be used in the context where + * we have access to the toolGroup and viewportId, but we should be able to + * pass the props to the toolbar service and it should be able to decide + * which buttons to evaluate based on the props + */ + public refreshToolbarState(refreshProps) { + const buttons = this.state.buttons; + + // Tracks evaluated buttons to avoid re-evaluating them (this will + // cause issue for toggles where if the button is in primary + // and secondary it will be evaluated twice) + const evaluationResults = new Map(); + + const evaluateButtonProps = (button, props, refreshProps) => { + if (evaluationResults.has(button.id)) { + const { disabled, className, isActive } = evaluationResults.get(button.id); + return { ...props, disabled, className, isActive }; + } else { + const evaluated = props.evaluate?.({ ...refreshProps, button }); + const updatedProps = { + ...props, + disabled: evaluated?.disabled || false, + className: evaluated?.className || '', + isActive: evaluated?.isActive, // isActive will be undefined for buttons without this prop + }; + evaluationResults.set(button.id, updatedProps); + return updatedProps; + } + }; + + const refreshedButtons = Object.values(buttons).reduce((acc, button: Button) => { + const isNested = (button.props as NestedButtonProps)?.groupId; + + if (!isNested) { + this.handleEvaluate(button.props); + const buttonProps = button.props as ButtonProps; + + const updatedProps = evaluateButtonProps(button, buttonProps, refreshProps); + acc[button.id] = { + ...button, + props: updatedProps, + }; + } else { + let buttonProps = button.props as NestedButtonProps; + // if it is nested we should perform evaluate on each item in the group + this.handleEvaluateNested(buttonProps); + + const { evaluate: groupEvaluate } = buttonProps; + + const groupEvaluated = groupEvaluate?.({ ...refreshProps, button }); + // handle group evaluate function which might switch the primary + // item in the group + buttonProps = { + ...buttonProps, + primary: groupEvaluated?.primary || buttonProps.primary, + }; + + const { primary, items } = buttonProps; + + // primary and items evaluate functions + let updatedPrimary; + if (primary) { + updatedPrimary = evaluateButtonProps(primary, primary, refreshProps); + } + const updatedItems = items.map(item => evaluateButtonProps(item, item, refreshProps)); + buttonProps = { + ...buttonProps, + primary: updatedPrimary, + items: updatedItems, + }; + + acc[button.id] = { + ...button, + props: buttonProps, + }; + } + + return acc; + }, {}); + + this.setButtons(refreshedButtons); + return this.state; + } + + /** + * Sets the buttons for the toolbar, don't use this method to record an + * interaction, since it doesn't update the state of the buttons, use + * this if you know the buttons you want to set and you want to set them + * all at once. + * @param buttons - The buttons to set. + */ + public setButtons(buttons) { + this.state.buttons = buttons; + this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, { + buttons: this.state.buttons, + buttonSections: this.state.buttonSections, + }); + } + + /** + * Retrieves a button by its ID. + * @param id - The ID of the button to retrieve. + * @returns The button with the specified ID. + */ public getButton(id: string): Button { - return this.buttons[id]; + return this.state.buttons[id]; } - /** Gets a nested button, found in the items/props for the children */ - public getNestedButton(id: string): Button { - if (this.buttons[id]) { - return this.buttons[id]; - } - for (const buttonId of Object.keys(this.buttons)) { - const { primary, items } = this.buttons[buttonId].props || {}; + /** + * Retrieves the buttons from the toolbar service. + * @returns An array of buttons. + */ + public getButtons() { + return this.state.buttons; + } + + /** + * Retrieves the button properties for the specified button ID. + * It prioritizes nested buttons over regular buttons if the ID is found + * in both. + * + * @param id - The ID of the button. + * @returns The button properties. + */ + public getButtonProps(id: string): ButtonProps { + for (const buttonId of Object.keys(this.state.buttons)) { + const { primary, items } = (this.state.buttons[buttonId].props as NestedButtonProps) || {}; if (primary?.id === id) { return primary; } @@ -292,97 +318,57 @@ export default class ToolbarService extends PubSubService { return found; } } + + // This should be checked after we checked the nested buttons, since + // we are checking based on the ids, the nested objects are higher priority + // and more specific + if (this.state.buttons[id]) { + return this.state.buttons[id].props as ButtonProps; + } } - setButtons(buttons) { - this.buttons = buttons; - this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, { - buttons: this.buttons, - buttonSections: this.buttonSections, - }); - } + _getButtonUITypes() { + const registeredToolbarModules = this._extensionManager.modules['toolbarModule']; - _buttonTypes() { - const buttonTypes = {}; - const registeredToolbarModules = this.extensionManager.modules['toolbarModule']; - - if (Array.isArray(registeredToolbarModules) && registeredToolbarModules.length) { - registeredToolbarModules.forEach(toolbarModule => - toolbarModule.module.forEach(def => { - buttonTypes[def.name] = def; - }) - ); + if (!Array.isArray(registeredToolbarModules)) { + return {}; } - return buttonTypes; - } - - createButtonSection(key, buttons) { - // Maybe do this mapping at time of return, instead of time of create - // Props check important for validation here... - - this.buttonSections[key] = buttons; - this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, {}); - } - - /** - * - * Finds a button section by it's name/tool group id, then maps the list of string name - * identifiers to schema/values that can be used to render the buttons. - * - * @param toolGroupId - the tool group id - * @param props - optional properties to apply to every button of the section - * @param defaultToolGroupId - the fallback section to return if the given toolGroupId section is not available - */ - getButtonSection( - toolGroupId: string, - props?: Record, - defaultToolGroupId = 'primary' - ) { - const buttonSectionIds = - this.buttonSections[toolGroupId] || this.buttonSections[defaultToolGroupId]; - const buttonsInSection = []; - - if (buttonSectionIds && buttonSectionIds.length !== 0) { - buttonSectionIds.forEach(btnId => { - const btn = this.buttons[btnId]; - const metadata = {}; - const mappedBtn = this._mapButtonToDisplay(btn, toolGroupId, metadata, props); - - buttonsInSection.push(mappedBtn); + return registeredToolbarModules.reduce((buttonTypes, toolbarModule) => { + toolbarModule.module.forEach(def => { + buttonTypes[def.name] = def; }); - } - return buttonsInSection; + return buttonTypes; + }, {}); } /** - * - * @param {object[]} buttons - * @param {string} buttons[].id + * Creates a button section with the specified key and buttons. + * @param {string} key - The key of the button section. + * @param {Array} buttons - The buttons to be added to the section. */ - addButtons(buttons) { - buttons.forEach(button => { - if (!this.buttons[button.id]) { - this.buttons[button.id] = button; - } - }); - this._setTogglesForButtonItems(buttons); - - this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, {}); + createButtonSection(key, buttons) { + this.state.buttonSections[key] = buttons; + this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, { ...this.state }); } - _setTogglesForButtonItems(buttons) { - if (!buttons) { - return; - } + /** + * Retrieves the button section with the specified sectionId. + * + * @param sectionId - The ID of the button section to retrieve. + * @param props - Optional additional properties for mapping the button to display. + * @returns An array of buttons in the specified section, mapped to their display representation. + */ + getButtonSection(sectionId: string, props?: Record) { + const buttonSectionIds = this.state.buttonSections[sectionId]; - buttons.forEach(buttonItem => { - if (buttonItem.type === 'toggle') { - this.setToggled(buttonItem.id, buttonItem.isActive); - } - this._setTogglesForButtonItems(buttonItem.props?.items); - }); + return ( + buttonSectionIds?.map(btnId => { + const btn = this.state.buttons[btnId]; + return this._mapButtonToDisplay(btn, props); + }) || [] + ); } /** @@ -392,18 +378,22 @@ export default class ToolbarService extends PubSubService { * @param {*} metadata * @param {*} props - Props set by the Viewer layer */ - _mapButtonToDisplay(btn, btnSection, metadata, props) { + _mapButtonToDisplay(btn, props) { if (!btn) { return; } - const { id, type, component } = btn; - const buttonType = this._buttonTypes()[type]; + const { id, uiType, component } = btn; + const { groupId } = btn.props; + + const buttonType = this._getButtonUITypes()[uiType]; if (!buttonType) { return; } + !groupId ? this.handleEvaluate(btn.props) : this.handleEvaluateNested(btn.props); + return { id, Component: component || buttonType.defaultComponent, @@ -411,7 +401,54 @@ export default class ToolbarService extends PubSubService { }; } + handleEvaluateNested = props => { + const { primary, items } = props; + // handle group evaluate function + this.handleEvaluate(props); + + // primary and items evaluate functions + if (primary) { + this.handleEvaluate(primary); + } + items.forEach(item => this.handleEvaluate(item)); + }; + + handleEvaluate = props => { + const { evaluate } = props; + + if (typeof evaluate === 'function') { + return; + } + + if (typeof evaluate === 'string') { + const evaluateFunction = this._evaluateFunction[evaluate]; + + if (evaluateFunction) { + props.evaluate = evaluateFunction; + return; + } + + throw new Error( + `Evaluate function not found for name: ${evaluate}, you can register an evaluate function with the getToolbarModule in your extensions` + ); + } + + if (typeof evaluate === 'object') { + const { name, options } = evaluate; + const evaluateFunction = this._evaluateFunction[name]; + + if (evaluateFunction) { + props.evaluate = args => evaluateFunction({ ...args, ...options }); + return; + } + + throw new Error( + `Evaluate function not found for name: ${name}, you can register an evaluate function with the getToolbarModule in your extensions` + ); + } + }; + getButtonComponentForUIType(uiType: string) { - return uiType ? this._buttonTypes()[uiType]?.defaultComponent ?? null : null; + return uiType ? this._getButtonUITypes()[uiType]?.defaultComponent ?? null : null; } } diff --git a/platform/core/src/services/ToolBarService/types.ts b/platform/core/src/services/ToolBarService/types.ts new file mode 100644 index 000000000..9b53e5e3a --- /dev/null +++ b/platform/core/src/services/ToolBarService/types.ts @@ -0,0 +1,43 @@ +import type { RunCommand } from '../../types/Command'; + +export type EvaluatePublic = string | EvaluateFunction; + +export type EvaluateFunction = (props: Record) => { + disabled: boolean; + className: string; +}; + +export type ButtonProps = { + id: string; + icon: string; + label: string; + tooltip?: string; + commands?: RunCommand; + disabled?: boolean; + className?: string; + evaluate?: EvaluatePublic; + listeners?: Record; +}; + +export type NestedButtonProps = { + groupId: string; + // group evaluate which is different + // from the evaluate function for the primary and items + evaluate?: EvaluatePublic; + items: ButtonProps[]; + primary: ButtonProps & { + // Todo: this is really ugly but really we don't have any other option + // the ui design requires this since the button should be rounded if + // active otherwise it should not be rounded + isActive?: boolean; + }; + secondary: ButtonProps; +}; + +export type Button = { + id: string; + props: ButtonProps | NestedButtonProps; + // button ui type (e.g. 'ohif.splitButton', 'ohif.radioGroup') + // extensions can provide custom components for these types + uiType: string; +}; diff --git a/platform/core/src/services/ViewportGridService/ViewportGridService.ts b/platform/core/src/services/ViewportGridService/ViewportGridService.ts index 5f2a2be8a..1d2837347 100644 --- a/platform/core/src/services/ViewportGridService/ViewportGridService.ts +++ b/platform/core/src/services/ViewportGridService/ViewportGridService.ts @@ -7,6 +7,7 @@ class ViewportGridService extends PubSubService { LAYOUT_CHANGED: 'event::layoutChanged', GRID_STATE_CHANGED: 'event::gridStateChanged', GRID_SIZE_CHANGED: 'event::gridSizeChanged', + VIEWPORTS_READY: 'event::viewportsReady', }; public static REGISTRATION = { @@ -35,6 +36,7 @@ class ViewportGridService extends PubSubService { onModeExit: onModeExitImplementation, set: setImplementation, getNumViewportPanes: getNumViewportPanesImplementation, + setViewportIsReady: setViewportIsReadyImplementation, }): void { if (getStateImplementation) { this.serviceImplementation._getState = getStateImplementation; @@ -61,6 +63,14 @@ class ViewportGridService extends PubSubService { if (getNumViewportPanesImplementation) { this.serviceImplementation._getNumViewportPanes = getNumViewportPanesImplementation; } + + if (setViewportIsReadyImplementation) { + this.serviceImplementation._setViewportIsReady = setViewportIsReadyImplementation; + } + } + + public publishViewportsReady() { + this._broadcastEvent(this.EVENTS.VIEWPORTS_READY, {}); } public setActiveViewportId(id: string) { @@ -74,6 +84,10 @@ class ViewportGridService extends PubSubService { return this.serviceImplementation._getState(); } + public setViewportIsReady(viewportId, callback) { + this.serviceImplementation._setViewportIsReady(viewportId, callback); + } + public getActiveViewportId() { const state = this.getState(); return state.activeViewportId; @@ -110,6 +124,17 @@ class ViewportGridService extends PubSubService { }); } + /** + * Retrieves the display set instance UIDs for a given viewport. + * @param viewportId The ID of the viewport. + * @returns An array of display set instance UIDs. + */ + public getDisplaySetsUIDsForViewport(viewportId: string) { + const state = this.getState(); + const viewport = state.viewports.get(viewportId); + return viewport?.displaySetInstanceUIDs; + } + /** * * @param numCols, numRows - the number of columns and rows to apply diff --git a/platform/core/src/services/index.ts b/platform/core/src/services/index.ts index ab127fb97..3921c7873 100644 --- a/platform/core/src/services/index.ts +++ b/platform/core/src/services/index.ts @@ -13,11 +13,11 @@ import HangingProtocolService from './HangingProtocolService'; import pubSubServiceInterface, { PubSubService } from './_shared/pubSubServiceInterface'; import UserAuthenticationService from './UserAuthenticationService'; import CustomizationService from './CustomizationService'; - -import Services from '../types/Services'; import StateSyncService from './StateSyncService'; import PanelService from './PanelService'; +import type Services from '../types/Services'; + export { Services, MeasurementService, diff --git a/platform/core/src/types/Command.ts b/platform/core/src/types/Command.ts index 8a8b8e921..965b4596e 100644 --- a/platform/core/src/types/Command.ts +++ b/platform/core/src/types/Command.ts @@ -1,9 +1,11 @@ -export interface Command { +export type SimpleCommand = string; +export interface ComplexCommand { commandName: string; commandOptions?: Record; context?: string; } +export type Command = SimpleCommand | ComplexCommand; export type RunCommand = Command | Command[]; /** A set of commands, typically contained in a tool item or other configuration */ diff --git a/platform/docs/docs/assets/img/reference-lines-from-start.png b/platform/docs/docs/assets/img/reference-lines-from-start.png new file mode 100644 index 0000000000000000000000000000000000000000..6e63ee43d6f148946f4724bf3b3e8229b7154908 GIT binary patch literal 452046 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
OogdXhT9qWeChc)VA=(Jg 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 z zR&v+JDTYf*OxMV`o5GFn-^#WO$~5{)=(L{5=Gr}DcLmgiOT9EQ3O6#s3}=Xa(YSLF zLG~|78r0TdPonl9mFsRL>&s})6zC?3(w<2ZZoSq!w|`EK@NvfSLp3pu$u44tuHgjdv@Pdp>qYRjOgj`p_|qH38%MqlNi?zfVR|z(LkK@6$@bK;VMu*B;gs z08@%xOiZ2Sx5S=e=5jv{Mug*JYG-8a{DIXlWO3hea8mQ^)NX8;X$nrS4TRi0aE<8L z6l()K=wqK3`H?85uJ)dalXEjXT}JasRu_6rF#2lqb(<=qr3ZMvZASLcGVIsmg*jo! zYf?XnN^(zIaSVmL&cy{RtEx(0ELPn6cEHer9JsmpJNO_DLa*}&12zgy+gke3-GU=ngniSW5Q+iiX~EkJ%gV+I)el(w|Cz z6-_QJXRY_k3o3E7L!WI3$akH6eg*JdEhEM2dsM{9IYY?@qhc~nk;7BSxv71pVci|k z$AIUzIv_Itp2?|rjJv%M)M3UePeC#PlrHt>k%;P0PuPa!ww5vEhv?lXKJ5<$ z*vPsuzlpd+$_mY@Y(4gNH=$NCyz7yT2|V4REx=FK4soEZae`5XHV;0#`X8tEJOc?3 zdkeL)l?8$|P1#TazoIeWeZs5(&*uOjcV=#?kMFUS&3;W$TDnaKVWtW@c2B@F!;vgZ z1#+Cluklz{tr3j^FbiEn(8g7a$c5aD>}QF*3q(yjK~79ucuP=-T9Ue|5&i^ zSCvNoy$E3OGjL!p0ddnTapuasce$(nQW&wx8JjgKHgC;+U&ZA)HIDsWkbf2zt7vE) zbo_qk{qnW-m*`9D4Dng+jb%qdRQ=+c`p+pJ;KSMJl z%XQ@p*(su_c=fVTBEJn95JJTMs8SQpNh?2NyC)8)UApy1uS$g~>YK>@yoSpS9VZm# z`u8vWrF7Tn-99U+tOu`NMM{>)@A~oTT-xNHTVk&s)_#5@;eghA{i~Yt`~E2V^kj>* z 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

fcR>LZ()u;$jVGCgkObb`WE$sR_@I$VLG9jzM zJ>R22g2h3_(LfH{uZjz;3;GWaoVb*bIQX*kW&X%Ot8Q@fxMr$k+WYYyc1A`{te#Kq zV(v=kQ&6TVmy-i68)Y2PeRg)0`YeyAd{{5?ygNc8^==BaU(dX}s-k?Zcztxu9%I2s>6Z*n{+2C7 zt<`@z0N#KwJwA}A`+X;$q2ZNrckxz3-eYY0+Bu)b8VsdKT`8v|@?HPqpl)H>VRj_ft_vsjFKa7h5sOe&Lrzma_r1 z(1Sg7Q!&2ejOJGP(O<88^7z$h0zdM(FBj>Q8UMbwRAf&1FUgMhvIOg9?Klja-F6$} z_UpI-b5{)c1S9gq#rK=H*CBxTy;EO4Ksvq}UCtXSo8K;p=FKbq`a~s8P}JCRU&*bw zPibkbnF+_3N*$bURnQj?g~`}L1^&vj(%v%^C)0eoMo|{KvVceoBv?47DahYfO^uWz zqm5sMCzv6ot=uf1GYj_d13~0IESqNbdn_f}FDQz`3hOHz(a&dG$jrxuuLWc;ESacQ zbnlO35+Y}9Uy6^JNNB*+D{>oU2fDOX^{3$=!rifc8SZRWw~ooRj1|3j)!?~-Sl}Er zP#D@D5jehhVj>Y4mqKn&2}uoE^*W$q2cFk7#BrF&TRG}}Gqfc1%-D6&)|x{(o5~=n z9X`Xvdh?|?HDcN4SD|%z!D4@rr4OUwx7I1fOAByd`;`Kr9ibITn^2n zUMP-ULb{Y}+Wol>n@<$wK1(=`>rOdeU)Wu!#yCLDql8B&THY@6? zQbq2qjXQomYdlbuaMIHIwQVGp5V>}WN3%7q=u%%&qMUJ_$?m1!pfBI(D01B>vNCnRIiu=}t%(9vXBrNJ1OrQV zVCqzeAFa$C$LTF#YW7^{eoS|a?VTR>FQy_H?WY>_zGZw5!*jFNO&n@j;D=d&-)O78 zMT;kIa67?ueHZLm1VFh_VEqa{Bbn~${?iwO;>Z%89j&W@iCJBGm&CuM2RHv@$9MV* zX&SX$H$8Z9x`rYq62T$WE}j7Zz8@px-zKvK027FUB!Pcau3`MHoZJG{F_suBt6qDU zn!^FQ*BDWB<4aYi&u*4E5BJ;Mcl&H!M6n4xaY1T58Bjn(iN<97w2`pWrcJ8D@Y(&s z_o&vwz}ZzOHLwrPD*7ymo8~_>ZQ8qH=9>&%JZdegSY&V;diw7MCjVt*N-r`s>_Nh5 zt1!n{(^R;UrIoK|_gL?T1V~!ST!-Bd#hSp3g?f>$ly0TcJ8k7Tr36+m9%S8eL&lZ) zZfa%ewVAp-4b=|H(D!>)fnd(5^hg_VU-#P5ybF)CAEtNpfKug@eC?O<>k56Xr z_Bo2nN=r(t!Fmd1mxUd%9%Us!#dV{?ygTwu`!^#VR1l0Klh1V1_0W;F*j2~7Dd@SYC(xABY{dHEMd(gu`V7pIS&vCk8 z_7p1==Q2p+sw#ex_W&^vrmLIlfKHxAlRE9<(@!O;Pvq{dnW6q2`}zHOWmv`JaLPJLDx= z`4FBu$&z1>;C=uG59z&64oR;%)iKI97LGiu2t}EeDj#~jqO4&^eX#N3;!8#P*NvA4 z>!I?7`dxTF^mGEuQnXcKt{f54jc99u&6cp|CLUz!ueETqk#qi5h!r3}%&gTB``uJM z@~+Laagy~=c3FwvoW?r>!^eFsTYjp2#?XALGO23eO-aJ}5lg#Ba!WvEE_QFPAtNI_ z#hUw`+gSJ7iN9NsjLMt73^#tkx?N3GF{jtWg|TIq zQQCCT=3Nj-l`no><$}ipD2%YQnHlHxA+nii@|ft;2EY&ifWOvJ`jld8$9KrU?@#o7k4he3M{p&K&p5jt++ z^ubwHDkeYfR@VF=O1fLtDh^AIolr)4Y7I$bmNq)h9O0Stpa)}QB$jhB#KSoM)A+mx zC}E<*f8q(slLU@YLd(veqTLEZ_Dilwt|w0YmumJ~(k?}7Qdw7IEUn6- zK#*@q&9z&pA)1GEfgRpeL!&_rm2~u-1H5)Sn`93UO*FnvI+GMIV-hS^>rs?V?v{ZX z&2@NjQ|iEWy2Y0DX-*exhnfwkzZ1%(Hg5u9d6YHT^%Dobg7X*IIb`c#vK314kq_^V2IJ^@vM`*Ve z-e_n2Z()uUH$|4*{|`aFBG6J=Fs)_EggYr+CoO zFeeVv%7dsZrp_cgeyS47vuNEbvd;|^b9!TBDaru;JwAG&Y$tkWX(w^)1KBpxxKg0M zRP2Gk${F9&`lo3O|1~Lj9H*%>TXkoeW>AF<`|1MwZhsW7w!SB2~eOlGh&)8^V z?>4Y0vYNynv2%kzwN;4Pa_n}9wDxhI>%Nx$&9dmAP6Y`WM_TbP4TthjPR{UnDH+=P z(!qThiPfm=H7A}&QALztz*=uKk59|<+lUg zwE^#nyEzFmLo=zF7@_D4tI<3I?(q`E0NW<>Emc%lWsA?LYqdPrDf2 zC+(O^|K=ho`-I;9wqvMrN9z^$j=CU>s%%Pl5&K@foP`e$p`|*#^$fr@d1yfQK|OJ7 zC-3Xu60{ylbQ`rwvm1afOETEgev`5IL zf8j4+GrE6zU4(LU$`;Y|;lq{dnzDPOqQKU)Ae)Gz$AfGjfmL0X?pw&7Ydkyb{;>}C zwOOv)a4nUE`$g)P=9leCvpYYs0N4Y)`d(6gnPvQEEsl39a^c%^Bw}IC+P&}v8d>JSa;I&8?i{fpS~xp3_l zgopKZSqY|F?!*HPVwk#W;Q(s9Nb=^EYv(^8T`ePETGi(M(z*FBIdKE}bj;JK$f^mG z_PL)af}g=>0ZpoAXHYvMK#Ag-efRp|b*JoyZKLv{?|DH5dskPLhgB%e#N-L>}aA+Wtrii2Yng^_AZRhcw| zrZID~*Pt{d;PZ;*psds$`pl}=lYz(yx7q=+Er&3yeOnHet_*`3jN zJWAE6B9ogiU#EfU%eWe?y66zyOft(L4#w&%Fv9xYMfRJEM_L5!^yWg4sK-~}M3?fIq=CLlPXiJV0KQA?rSQKOW`r;T6y>}+298lhOvS!iSeJ5YV2}<=> zbXT9aR&y;*4Eg7L_Q2`i2?2Td6*Bv_?}kBX?c%pHxD89tlkhE1a0IM@%9nVwZU5hh zzSfD|<6mxF>iw4$dVF}-e) zuC4&RJz%1$j#83WoaY}0tO4-o9=FeWqQc0V>6Rvr7s$GH#>j0kRB0!T49#sa!`dZ31ZdEv;eN6R|uJ{jVhkj$9*Gm zdi4aSR43goCW z?ci0BcljRnzR3wsqmG!v`@2!(BO$hm%L;@5J+uk+;!ZO6(=)7fJ)@lnMk08gKueje zy(*Km?Xe#3UJU5?Cdd#>#ClVz?SXE522XLd#tmRT_@`q?D!Xw-BS2IetOXM_j~`25 zl(QDR8D3W=7B4TzEmZ})lNUzk1n~pk*=I1DQrOK8*DnA=r`LR?nDoYUJf`l3K)_Nl zW-;d<)atnME-9`|;8W`V)t6JmfNue$A=C2^xEt&Nx)1t{Z}+J8+!vpL+b6Y8^Usex zV2$h4&y%5IMUDPDYJ+BjkA4%Cctw8smskM~s+n+hz^uKtXX%TKJBV~k;(9b-99Z!Z z*t+?*xv1DHq__O?l80%2WYiJDKyrn_{sa}#ld3_vnsOQ8=_ntB-XXJO+gI`t#7rIM#%Zg~ zN7;zqGMBv^0%w7~fG~LV>9*2L;)cyMzHq19ea+UGBV$&;wn*Jpz-_cVvx-QL>4q@Q zN0YCEJ(pHKBt_9jH)oeDqn;#It=tRhkWmBrhy2X&fL1^wXwruz-ZUQ?xD&zrQ!cQA zY%K^+O7OgX$K4gC(}53Z3@%c>UV*$WJp6zEVTf*QoasPNcN ziP;h?tIMl;Fp}YR%@G2bZm^V*vkod@TuuT^JoRQV8Kbv>#j!ln4v%yu%4{-vwN;(| zfsSr2UeD#149Koq;4612AAkD2Tl)0pNTj(B=yh##Bd3;QIa;Vy&RDvR-`SwXN9^Jx zii=7soAUoO(Yx$&J?@j`V>Lgn`7;6`UPxt1+uKWBCW>E_7L}Nrzro27;oxrkBTH$h zs^FcheV5DPU+M)ACMRt!cTWni6z_Dk1;`s1^{t1#cDq9UzA7 z+BLr%7Ay{h$F@z>5t^t99G4}WSXu`_wLdub99QFrFDNyy_fie!oVS9@)^ala!V`%3 z`=r5(IY7qM&Pj&j_kI#HIyO1}x>%OH-o)Z9KNtt{Pk5 zg3QNUd25+HfsYc$UdbeNjPYf^EH0GGwudA|BDe>cbozH5hk@n$n*W(470n3nwU2HO zDD5ca#>GY<)p;iz2w%1o8dw7*V~UZPSdv26r99w4Ts$Q-i~yo=w2@>}Qn0ol1;s#* zuAT)&KL|%mgmdKLD@F$lz}0RnJXxnd+WT&i`eCuAd!F^(vR7=46XwU7CE0a%VwNIw zVn{MKfT7?A-269XAoB|VnaHr)Lr4Gh@g2P6z_l`J&)Z9_E{=Clf?&JsF)YJi(kU(U z9_|r9&Ups7<369iB6BHdWsTz}QV{$h61SK0^tTjE0dZ+dIqJSEZs0#0AWaQRQR}rU z9-rj>>q>b&gzet3N`z`Z^?V4OH+5uZeyoo=Q7%cHFwq&OgiBA?Q&bPz*=-xt1}B9a zv2KX-0XwTj9W6Xb?9D}Z(L<^V!FH}tF78O$H+p5!qp#qP+j)Q;|4q%)we;mqu;*hh z?l{Y4*tqapUsWRwITUmoOQ`zh&WD(9=}o5w{-(8a!vSrwlm|~ZV~2f^7yUZOw;o zb6fQ>YXEdh-lvvhZ>L6O-4QQWz*^FlkI-ca6<@Y83;R{!VVCTzhK=#ugzuoI6atc5 ze$f)a0Fq}cGOILF7xM0o-kJ~bE4)qnU}H@5;zZaLLf%BSd}V)hB(yGk+?fi?O+x8K z8!tz2cAL36>nuIx^x8yCKRxH3RH)X5*^_5Z z&(hxKAMha%Y^x;f>>72&^0jbfGp#R=MgdtmlH(HYg5!GI5o(Zb{0OJw6yTtGB+w79 zH5V1o2dulTNQxN!K5qqE-)Os^*AeP&QTpOP@P*1%XYWsvHYW0U^v-VkjBvJ5%U5D`Uh#ZV%`cHLl2Ju77%|pIjzjoVo(fe*+JnQ~CBmg2@%Uke2dC{=vJgf9!>${eY#; zHq-GY$?WMdlbWq*{$YLx=EUuf>mthrYMy)`wbOJJ&}s+^Qi5cKAc4aqv!}yZ?Jo5E zI$}+8&8r%UMwV{Ks@wO` zvfOV;X~232ls8|0Pd78Is-M2Hq+mG9((F?6=|S5U`l$v(v0V-ZLp@QWL9f-7iVP5C zk|P;fe%imhpu<8BsM0&N111c~He=a`?Xs+fviFc*Rgh8NAx>LCE|$kcUzcXxMWb)_ zYS*rGeL?vCVXr$pKg@%(D~#dY=iG7Kfna+EC=C`$`w})D?4v~1@*lX~W`nrX<)HKV zv8X&Q*rS-*(!TboDm<-xL^nLmGTvZI5686PW~~j@px-L6)2faYIXDz)+0}AyXAu=y zbsdonKEw-#9HSL<4uQfz`E~A+Q%CMaZ_x>Dw|Vll2q5gac6V$2I*`whNO=7nb#veo zMeo^x0Nbi|{+~R-xB(?_o$wt<@?8Th@!5cjJF7Bn*2mf$)N$2?B{~!JaXhtFj2v-X z#h9tYT*=ba-Uf>92T=3(Eg$~`DC_vJK4ZqeJ~s3hc`sB|D!}jykqCe%vll!8^hUD^ zK+G|e^ET3kmdNWnGpVD=ir#UDTI8iKJk`Q=YxzvvKdNi5g)fu+Nw7gZtTjS(eD2$u z+6?z7^g7@&Tqp)8NG!Va1<=Uf*!yJ9lL!99O>S7BX_G*Iz42BZC-G2$*v0~J`a_+b zmTwkA1(u;3jJw;jznlBEEgX4SNTtE2a{_umi3~>(EM%mZRk5FvgU);S1xGzd4pPi=ydI&b(l=#Cj*@BJUc5uQ>Ar4 zN*zGl-DyH91X~N=XBFoW42z+^%3OP}e(v1NGQZmp*5i+e@O#LS+# zduP{rWgX>SAdNF@Z)-)WbL(~Z^N^vJ(?ZR)YH#TBrty85`Q%_+P&CkDFu|J zr(bdYfE+TR0}w*Z0ZqaifUCX>=x31;|I`Y|>_X`>%!E+lzh8Rrp+71kfE7ncdJ!T) z9tOr@3zBpTL}=TkP-*Z*El;b5ihAXWnuDX|j|=cAh%y4tkC#}aku z4+dHe(@h9Y~^X^yt98#!pqg-4p_9oz{pvLbcw_ayLFMAG zq%SK8!elkRX6TjV_RKZawILsed>tmfEWaoM5upCL=ai(`Wsqj7( z%eA(11e+=p$8@XmCW z|Kf(rHn0^&7t7x=AyBBOipl!*d%(S}Ur#Jj2iHk_*VcI;o_Q-9lb6XW=qKr?&7kT6 z5EEYaSDbdHZkf7oO~tPaMn^0b^Dx0)y_f#aha6D(@0tjVoY|HCrc)ZO16@6&d5To* z^*v=@$Zi5K5G(Q-KeAX+I&KkoNKdq(CL3CxkHzV;D<8Qo)GE&1CmC}Fyr>xhip-UR zpYc@su6aw+dhK6Y!eZwZOL)*c79JZhb2 zA7`6jj#g7mFl&v=ymRLO^O!;#x?O4vm4!Vo-wNmYo06x$x!-jd>!%yHc3)qffkd`# z8a?hV1)v$w(BqRB>e=7d2^LIcw&{HL1#C{#70UL+E7PQ&V*XQ@xEFOF!(vrb*=p6z z?$;9G=I^76!6o_FTkQ`carC$3WDj0b1efU&D4q_O`|Y{dyEeQ(sE)l=A#2tLlJid` zRNb<5ZmEn+4a%ac^bpBDX3@#eU~yMxv+r6v`L2;?BYU+Mr>V-5HRoajn0dW2(Cuf; z`BGfCUjKn}rqRwD9^>}5ruAE{DiHPdax5gOx)#`SqPV1CHqL8}2>D=! ztL5Qkma1(t>nQahHF(P=LF&PLofz?T3-{X-{#UmzO%GrSjWiMuK{?BU(P2dbh{*2^ z8G`J0|FGA&?A@Kt9+nTo{*`dnfZnx>n8F(+*^5=t)3c}$Qq)2}QVF-uQd-4Q^Q6^@ z(=iqT${iK<>D6bby4_{rEiMPVQtUsEjdB+Re$+9pTTL+UPwVzl6?_7qf^vOaG$3&<>-=>tioAiNx)T7TsT9WEGq;&?&CJ zzExA-#5@~CPYoYX-_Owe{=$!ZmL?PT4($f+aj1P`+C2EAp(2$NbRa-ZKZ79K5Ix_C zOh}FBm0-)+4sjHI5#H{)Z8eRnHeCEw31)yB(c8tD zNOz_vBV{w)v8A$&0k0ePTS80=`+BCsEQ0!+o1?03A*<>sk^I9KhT`@Fb1W?pN&Pxx z67Z5&b;s7!xuiU(UI!hkjIWS@d)cW|bG?Sr`hpH_3MuXd?EeJxbmodOn2P?pz)#1_ zOG|-1Zv))+P(5IKa9Z1rCtfgyN#|R&i(2bdt1#?c*qaw5^(~IihghAjywcwiB)-dt#+VMKMtOm za~KK4)0NK3wzLoY<}Zr?ya&_}(<(yL;23hP-N%1P*a2&Jj+dXG4dcJ6n|oQF(oj@_ zfK_?X`s}NBlt2AW`X0YCXr2|jw)m=+8$Mu5dzREMz#w4Cn(94&o;0mPFb3vDVE`}U z-+X{ne<9gB;=|~sat`CD=FSs;?wc_SMh#7X&OXvm#d&{f0aV{KUeiv*q9Cg5^c1~m znk+}gh25c3MSSB=84KsShI^tveV=(Qg<#%}I%tb6Imks_lh6pDqD|l#=8gsKYoYML z=mEoz7nVClc-;I7iJ->=5A)SoANIRbzxyAA1}6Z4sEhlAT*@WK4MuBAF|2n6!uNK7 zM1aNZ)eI640FouM6m~mRsbkjcYc>7ZtwF=nu{H|*$NEpL?75;HkknpX_O>F4JfJjP z?>`|EwOSOhn;4P%PsPLk0xF-OuOUCb85&}slA-_u*-hx$)B1MMI-H`#L~Ws>0Vtv)Ac=xk8!=GfP8{G5iWAbxcJ~zk!-LhlGrBQW` z5501khy5OBAMxro$MtR5*vu~vk7+xt5N12KZuF!RjkQYzm)aK9DszY%Py2f!{LLMV zEqHcn0bqaDRP55y*8TV(bBP0XcJN7UPJI-))#N!TOdU&;U2UidwV^RQovpskmTzku z7MrtJ(|Pcy|CAqxUT2w%Y~;S%0lYI^c-%D{!#%-}kS)CY`BfD&!|@8rYGmz82rtN{ zwqK%2&An@-(0>E-z(xTHFx!}W0_%!T{+5+ZCLy-NgwfRUER>=4$QfKJT3jl~rChF- zd%Zqj7MRf<1C04|k~3;zbl_}gM?|UTae2%zerv9Sw9RI&UX5WhLN`RgA!BqsZTWwO z$H&L)w(NJ(jmiIR*_TA#&(*(!64nPt$(yBjD1fSAk2o-kWsfXsp8S|h^-zs}E+uAp z?)R$W>@v-O61-ThW`Y&8dLs@}cY1lv-gXIJ%N-u@+9^cveJp4nTcRP_Po9sO#muLE ziG-KWD;tSzM|@7VkvCG4;nr|ET;`>o_Z3t~1Zv%KxbK@@F_cu+B&35|u{I6=K&q|h zaccdOLM^E)77!6(%h)tp5GWs6IHullaja6$npXLa1lu1{?{9bkYrA<{BY2iT=Jb$L zq2U$ZdD-u%L|X7$^zd3{)EjX1;$aR2(`U;|^C6Hg3-j{VQelo6QE%v*u{WL*MAwjS zR}MH9zZo*0G!FK}$#%&&gN+xfx1}dWi6Hr7$E4?B9cYQhHbgnehoH;k^hn!9EF_tJ zH3J{op#Q-&&w1OY6`Y;|Wh=zO=JWh!27x%9=qmL=_1rLKKdq!4_ z8EUuHG=K-gq52h1`F7@GH^}gQi9rJC`_ciC2zS}Z!CiFj7a@}jz$r7i>#86#7=T{$ zA)Ff6fm%%1RWRdfMiYzH_+Tl(i`@M_869 z11zO7;v01c?VkX<-+$fttX)$KE9$W^>0cjLi|nE_!l*%NpWCjXJ_3-xd@v^bh5FtF zRZ7nPDL&!Bd#4Zs4c7&SkCJnr3&WkLvI(j_)WRUAPDU!9YPvqW_(;ZWfWMLy4a&?A zbKJWd!XYGBjA=njQ=BYNG9WKe3{t=}wG;VwSDuDa1UrJUX?;Yor`6A1Wb3o9nlcDg zUphZJb+6ynVD~u8UF7EaTcrANFJ+;dEnLZ-CVIhXdbze`7hMa2%*|cD2H8Po>w2lM zSpz;hIDIBeLD8>JqH3k}R?EukP!}BlBnl|sap~KS^eTf#=Du}>({1I%-CRAr7rNA^ z3=O%c+o`9i+zNxF2X1p#czXYERdv-yRsCxn-vC(gq5`#T(1UOj3032-fLQ~m+TG)y!}MmW+(ayOC_;NJJu0;0o( zQP-$>zp&gFcV zv#I15bDrif=P~9qGd7#&*4U&S&f=jn2%-17q)Cmjqr-$}H~ zg!e5rv?4<$GcdN2wAcCwD?4+R0#Klae(Hf+PlxrV39g@lk;RZ=uN~yJU;3HK^_dd< zZY#>r!ar;@``vc_)Fqu+7z@|WMM?Vn>ZtBtVw?un96#T^qyFr3pSZH#`m|bEUZWN1 z26@w{GsCr0k4>Gwin@?(*^YBGO=>ka9UWI!9|cGq=g%mTLV{JKC&--x}BuY!4&d!`xPy zw294~pYUrF6|#ILB+?j_;Xk#fxhZVr127r=arZ`-)82`1d1CPKK=+4_;}qL}$Fc6J zLK$Tt&oOpkg6HRBf;@8ck72{G$j)20e?4{d}d-c z<~mR)*%e+*M-(OnJU1Hk1Asj)?A-XY7WIEGDoc5__bC%Hf8X!SD8f>lr{ssJzv1;39k&vk>*>JI!mzN14ECk$@2);?Y zHDD5ssXl6Td;XL8c6lLPC;U0I{dbTeEs|G;1``E+Fr8@}B$dm%QBmKD%irB4&$X|N zmyMRd$y2jR)lb6R#B|kFo6d^%i^PUq!G(LW@(O6BV3L@%Dl<(U{wyQ9OiNAtD5_~U zaw_qgV~zML3x>)FhwV!3g!CwfXF`rz_gc68#@NDT9Rcw&!OXHbA(M6+9^Aea+AYj} zsUhtg-)Ca%%9e995!5pddWECKg#YR7(U1UH@9o5JpAFftBKq1(yviIw)1eY9s+~1p zsHtnytx{+(Y1Vp@r1?tRHwgZbTB+kFl*w!q)r zftz$3T1%f3OayS$$LqYIh^Z4d>(~`!KjhXZcnW-K6+;0hP}Ca{T)4hQLKTiqqEycS zbGrluyI-eljxsHPG;(Khzuvh~VC6O`Q1}4AxWvFH^w<3VMcmSNh+De%L-p*xTLFjt zd2(GkNepm&p}=$m0|sWSMWQQ^z+AZb#^<*}AyIMd7*SFBli*C!P5lVAWu4eok` z@lX%hW8ULtyL1{;{(JlV=IVVB*zc&r6d9F^uxg=4k}n;`Qg(gTx_N;k#hbczDHzXK zvTF~j;gwDsJm;V{J*O71&a;r)91dE7{dG{1(~1m8e(=Z6D9e=$%~5v!iF2 zqU#qHTQ{3TTya`K)oD^EGQvD3!Mi0c7)UYB~O3;vCRjkFeyiqdPZ zOZB@@dtt@L`D~l!>N!38#7ZHa;{tF`w*%;bMi{y%p`;2@nh)`)bV=n(bqT_#y&#rY zZ-L+W?X8+16t-sxKO)aAt|mwq08|60{Maa&(pCJ1VLPYzszRe5ZNV zX#cT2|NLm^eXn_b5sSO}m@dQfhyRV#!`>&3yTUF=JWfT2G##DCC&VvR2@IIQHak@d$+p%FZiGKsfnd{AF_paL$ zFf_lB=4<*Hhc_PZ?4OEyD;@9JFe*(o`yoY5TfR4^l3@GlkG6W%97W7|<~PwI(`;mW zhCe6Q-Z1`rxQ+W!f4>c5yt_N-D#q6E_LVH|R4F=3a-n7Oto9LU%8Y{7_z|Ini(d^X zIpNwAS}@Y%yM%!sXSTBp8iq)o44X@bFwL7t9`D0{*rSJ1XInmCGM_n$&XcuppArB& zCl^BgeSFM{XyNZSuc4ij!?VqIyB)i+1r;3iPh{6-;kC!AxQs(XU3qK|SNMl?`c15R zCT*)P$|lrauV(G*kk_i(`w^uSz|}@=P3U5iQTxPR@Lp3-t$yOeu9+%{cC|Zotf*IQ z7YW6_tY?u%R0I{{46gy6`oNqzt4DBZF8vt{tmjBjB)vaa!hrJK) zUv?FP<N7DdK({4 zh+9p)g4raA@Zaun*FNjY*I<2gW5Yc2@P+?8+`oT#lMVyVxYz5J6XfqeAe`It{B*4I z_tHNbz?})HXZ>GBPD(B!N?OP@85_Tw5b26Uxe}d;PVRfMVEAH2xOZ|is;ep;0f>=>xME5=+lot10K05 zGTfKW#VH!N@orpS)ic5RHN+Q_3}li<^p)|t_HkJFMXl1P7k*E-TVA)`#Dbfgb_{e-A!Z`NcfKGy^!#8>-yW%}b9i@co#aOz4Q}r^zV>zRX0g`>=d>$lEdH}4 zg;!_54~3B_(XB*ekGxIIi=Q=t1piXn4I6U53L;(@ev}hF`^9+w)(M`Cim)lp&k$iY zb8)9;>>Mj)y`ItwWnWV#@{N{J>H~}|=uYzhB@v{@M&y^yRGskhUFayr7JY+!7bl+C z&{`EIFEc{q3(6ZgM9#_4|IPyeJ9!}Xsu}&C7>PY{=8yX4=K%1v_-aueu<}}buqL_0 z9}!ig^5%AG#8igf>!@gPk+N&4l>&C7&g2@r>XhQ{mg}|m1LAovpn5QG!7;lytx?h{ zNF-7OQ-Y>TRbKxGK$|efq*J(RcXEbCzxsOA6 z9M=OgM=<%;x0t7}D z*3OqM%SpHiyGuL54kt?wZPtUyk(A)qdxLpS@EayJ1SS?;d+FG9)ZINm)6DjI)){Rr zyw)A7;C2%a$b)94v);gtwixUd?z-^+`1}$3i%#fu32m&mss)Tf;I7}>%i%@hiSwkD zVZj1mCC!>DIuO7)mGe6JQWUJ_nYDGPw1-Ahqk*0+7d$U_Z=}8Y?K)GAGD!*9tq=;l}Qp z+=^7pf-`%`=o#HG^)`D|R#=>Lk-8bfjzN zniufRtDZCK6lL_oD_T<1CVZ=`Z}@!O@XN4~$wG*XpeO80Gvd4_r&XfgHJ2;lWPS%* z@Ak2)P!O|if}T92vd&@r#Jg}=J>KevYk`&tFnQ2h-eHRAO#F5oUJX0N0m|_xwuxEY z;Ix;yhaI4_NP0KJ@`T=Y|Ao`@8K@?b%c}gn7CNSzl-6pbH!BiE_$$Yk0kAfDep%J- zGVq>2rT;eq{_xMhV#BWmvea)4$6JMO1FC=1ndlRmMP`yB<>`KvEhp6c;R#3 zoUx0!u`}sE%@8Tp$epQh=6@UY%YMYV3JC!wE$GiUTJdHzye)2On5jQnSbq&-SlqQIoD*E6O_* z>jG8pj=Dhoqf+ZSV{hjl*)U`HR57aUoa^x)`nbvA|FH`2vpl0n4+OSu|zhYGhJrVV?}`*?9?Fwasto7WO5RrCmq z0#CT>O#Ku|6zgkq*p)x^mBh1{|M|#oj5%ti9%aIQnB}Sd-4AL2R_yS?Mvi6P9*nb! zBkVio&N=L^s@=B(0(qniNKq}<5_E@dwk4muQt1lyohukkjly}T z+eG7H&3f%+Y@^?Q9(JOn<5JWM-f07pP<)X6vU4mEqu$MhA4r|3v+FiAPCRYk+9{>W{~!R~MunpW;H1pC{%Ad0G} zP_~?l%zHqfh4ODvi!b%ZLc9-H&YK*<8cR3ly}K8y>UIEo-t)sdzpGi?4AKog4U9xs zl&ed7Q0Q@tnIWgN78h-RqG~=w5W<_a4|P7ZM&ziaIq6uREKRvKU3v*xZ)9-NC)D-W z^EI0+Y8S@c!)ooT_ULFaCq4NZVxbpX`|u2cAdLbZNwgCW%21^LGB67O6wQb>?!-Eh z87FVOSlGo>T9a%+S=MhG7Q-x-sst_Y>%hlqHfCD)lsAG`TOJj)mtR*oz4{i+?`xG1 zzFn_%d-U@^{runEeM8iTopRoH)znY;pI%>J&&>}+iD3c4Rp7RbK~WNMGO9M);7syV zmA{VWIV0GU$cEH@n+r;Tn`L0-v2bw`ukyj?M^hyS!wj6=dv_HsKs~AVVWcG*&GSRy zPF4!uH6J_12K=ykF(uns75v^pq0&!bwsobkGE$!$O2cFdJRPK5Pr26(y|+_nC>&M# z1Ii%CY3+=Mr85-lQL^r|{a z02fPt#Ntl%hE-=!Uky*1Rj3VYj2#bJyC-7Y)QHNW1`!eIS3`WtltAg)b)6%VYv!sR zL$RNS?qKKN*tW}V2oZr_Nu86Rl}AEUUC3J13vuW)Hc{3mZzGt@>MZtI>sOtZEm_uz zdQF^}@uzVQ^KE`AZo#r>Q5WO-lzpb=)i6%%0`QT-`o%`&r-g*J8%tTK*v~2Nr(9e* z&&$9sZf!0V!+p~Y{9))BFM9`cS-2=Xm$Rxx)4ww`nP6&t``PMqaKH3Yoy!&fC4->c zbke&9&Kb>fTWvA293&HP)w<^zby)gTr|cZc5<=wPx?HSsp}=;w7W=5(Y`oQG!@bV^ zqsGNTg0)M*y(Ywp>pSA5jdwuJE3~W`D1^^`HU579-A({#wC=w@!PSExr;-1FJ;2*O zpzh{~K+MqLGrJ5MfQJu)`qe@mVXMhcDq;CY-cFShDsaK#*h&?|vm!+y8D3@@t_A}K zlKlB~1Cou9_5NCVBNRs3(VQh+weMWZ0Jr)EME|Ec%|}kv0^~rgbdCY2?`_?D5+ljq zn-p8$RDpckfG9wCTd;94NsNx>)y(ATqBOA~Sy;%5qEPOh(6dcuJw639? zauxoemFEKg{`JaW0k}sK4McN`Uw3dKkcFEwTk_^IuqDb_a(yca;%nx6vF|oNYY&4T zq9-)fZS9fb?LmhqnEN8C6=urejI^`e3-g<=Bx0*m_Ik1Li5~&LpDrHW-G>m4sTp{T zhvavkt=x$7I;9Od4q73ikt~*zN_a%lfP9XgJUcpQu@s~SXaCgt5UL}-_M#aw`^0h} z5R$GBZbd&&sw6-VP6W;SWaFMw z?xfTCrKOoXVc0(p{jXZy@Kgs#^FfSX(boSYiG~pg%?$70YI5E1)gO9_$!Anx6(*|6 zCk-RIG|%|o7Lt-uOj}R5KOY?3B!GUnm%}T~fBUG1J6AH02*&2y54 zN)#D8Vx5!t9cyvfAaRc`^0^u<_XgH};mY>ns~sxRy=vE{PtrQO9dNY3tfj##zh%o| z?1?Fe^qgk7wfZb31lPBZ!PG$p?_1^Tuov%*RemKZh7oXF?Y(tbpA`>jrT9jj!*YEz zuo4~wcbG_9CYjp5ow4ks4W0-VBXvpxCX~9SQXk&ebI{%M!=)(}rQza&m}0}9AqpS3 zANc0Kp@Yh@u^aJzS%a_4pz%s(QUSH< zW2K4-@tR%Q`c#J99FM^&5LQCZa*k~ZeqPnAp=Fu8z}~kOCD?dhVBJ#R+_ca zBS+Pu$K~ant$a2!{e)793bQ%J`-kQCY|TV$ahsvs;_+NI49f9fN~#l&AVwNo9ZwJo z*s|es>D65NAZmY#5Ocj%{^w;jFKFYVq#hw@cjdP?JoT-}rZ4}O-}z5HfSubDQ;9xG zc)V%xPpVkZeUr1!z1z-Rv1k3cOC^{Eh;XZ<+w{hIbG0EM!0iis7ReEpU)D+H3KV9nG27n#djc{<^hRI(LrO0o`$U*$q`^X~cO8D4F z2H3YMtQh`M^hK&=Vyhg{*O(-p6ahf65>$m+ce>%0i9Fon(a=370t&dOm!ktVW_M>B zP5veIRxf=fXH|zg|B~=OtY(x84q7i zt$V$CwRu`Aj&3SnGPsib^6n{AdVWFR%&*G&d3W)lrYu?-VzXvx3r@^JIRzsr zsxPs8rN10_#gY=Mj`e&2Rh;cp*{)k5pJk;;D3)Sbe}<)S;EL+gW$3OB70XJFzo0rR z`_Sx_;yhv0iKrA#Q#+c2E~|)fvmMqKmBr!`q?>b1>PIYo+*pw{0cE>fB<%dnLBo;tMXFR56EB(e!2T(iE5Y&>v8~OU>i5YqM(4-@u^8bSSmA95- zHh1iaXMkC460nw=XRYr&iFKvAac;O<4#jrjCB)h40t}yFw00(U;H(7Hr+98@Klf$I zkB)tk%lM6n5W}jc#drQkBG5d$EP2i-m@U1M7en|r75MS|+4pe54=TlJA@)R-QTShD zJfwqRM^jQ$wUB$>NFLt5=Y~OId`^X6qVKAR#!W$;y1|wVu*!k4<{da;{fSUPBVfQo z)}O-vY6|>!wLiKSXE_e{9I5yj3D_Tc*&g_mVGRP*$; z%tI(6P#*hY$tC~|Ezh-0zW$2pA%n#lz)&}hZKlCI}K3~N_L&SaF zhtqxg1^QpFsoAp!97t)vnNstK@7ed>M1OXf`L?va!SttJZ#rr1Ykl*MKR<(b<~tE_B|V`iNrTHaR@w{SG! ztAuy!X~&!u<#Sh!XC>hA2oOCfL?=;pX-T#51X zWT=xu6tn))pCY^UMopTX=++BFWs<3B_l+^D9ol!f9-w^-cUr?%B<4Bu_?iXm<-u>_ zW#{Z$l`3)Ek-#bfXC&sk_7M3xGq8mE6M~PjpcqxHpLHWRaTECJAO08KzqW(-Gg69I zEB=9im14WkHR(4ltgqPPf}SYDa3*?#Cj4GPJcNdG{?I7hG9Usp6~3J@;4Y+NZ#+37 z!Xt+2smGIWC?Y1C2E%Cl{wofc>+3#UDPzxp-oN5Z14}{`R>EbO5><$<7EAt4to#JjtCfg`1}w+QMD<b8fOX1c1Z6M9InQ6x*Y;D9=R{Dk+|NT^#NBe{+Yzma%F&;`@L?`r-P8n~r^tj+ z-zdUnRMvYcWq8b3GRqDj%I8rQPVEvpalY$Xm#7AJhSY{YE^;b~sk)r5GW+d3^C9Es zIhgsoqrL0pn^MbFG7(9~s`w9AT?Bf`a}BPC3V-1}=8U&zz|qgI!^+vMVg=G$G%r{U z)M98bo0j+*G)40ISV}G>EwNx(mIg)R4i^?V|k!(}Z=d*b&Jwf~D0kUqFW3OL&5 zZC(0@J$BK3L-C&EXPFtqzjPi-eQvxtm;Mn# z;yJ<(IsLpjOXc88iQU}V&6%X6y1F_mgbt*z;Xj$~5n76dcp&$U>RLa3d~=(GY9EzM zbrNn%%q((|;ceuP6gl=oT4DNR+Bf6|~EB!$;3dsxA+6 zQ-!w6^pb8sb?T^Ale#BVzif%IX_Q@!?-ZO&>-$~RJ?Eo*PW4J}^rwU2n&72SvuNV` z=FqRNvw$Jc`Tj86_09k?*TwyikOVCwkCl3V!9n0d=p)HY@&}Y>He{hFe6ZB0sZW}* zrQM%q8AkacxF#4M=l*qR1a0{3(H(U$R<2=~ObWic@eS9GqbatksJn8Py^-MFPJiR# z%Y^T4nKLo=m{Ne>F&;vl;a-=n(J%y2aJ5~1H8XsZt2w#|xZA>}8p-9?So!8y1n~s@ z^%5dI!d3XoRNbE^>a2NgzomcJ0`C77NiP8lLg;nZ7Wz%~R%GOqmC1(4^l0o1%dVpa zl)C6PQ~=Mx;|maosEd3*!&Iavgvr&EVB|&O4My7*+j8G|(|_8AzdDQM%AN7Sh7*k$XlY?GCJ+vbd&qWBC)c_%qsX8=0oJ^j2yBBo5`X;Wg> z$@})M&y~JOzKe4U%avN}o*ZpONub*X?Ltw3d41p+H)9eh#gY0vH1DkBW*4nCswXS; z$4!6M`-1UodcZ{c0wMYS?IG&idlG1x*?~&Bri*`|5p9xP|18SugonB*>DXo_>x*?M zm`1gyX6KKt@r}4Yz$^Yp8OJJTkc=sJdxQF%wjX0{j1*d{dX_AfQI`-m@zspuV!sDo z%lLdU`(ZPCI(W)XY``kwfpi~-XL>MTD-Ssq zC9vHzw`9n3^HH+_Kkt(CBMmA)|PGJ@!RD0 zfSX#iZ{&o9)AI8ga;ky*8F)?DDUeK0byh>(ZZlds<=1req?)F7?Z--_V!L^m{QB&9| z-2h(}E zO$asS{q=9;sqgLQ=|i0kJEO!10&zzIeow~WHrEQ~PuKAFnAMogVTtyuJ?k-)#Z1J~ zuPssY;*Z-^g{y;p?9>yU!@-eC&yfn!8-t~bb8Dt@GZ}AQwLCM2Qgb`)m z1AMgG^S(I+kIN*0#klGz>bLyzpabZRRv21B(M_`cS5Rbq&7p;M)h@3?&vy4$6gab+ z5f=n?vYmFLRbvGe)*dlF`gtz|y-=ro@@vq(hh}MRYq5IXD+d2C^g54_C*SSX263xy z*>5w1M^iptI??Hr#UkyS2=~*snGNeGJ2>g9AuwO+Cuy*$R5fBjq8#_8Vr+^(mDp9) zw^pz>*1*J*%K+EE$hX@s&^u5NHe&4nh!Oa`te}K!?|RPS5H}W70L>Xa)3S7&c)F!T zWtcK(Pb+;-94N-u7!Q==n~jL-eG2Su+R`)($}QV8MfM&hYD>~q;v^v|iW8>)#V6|h z#V39@y9g5ahhA2f(40cGI*cSRb3v#ylrDz&lLbeTAPBpLWX;d5B6|>0*D`r_iDe(e z@4lV;?RMb$9(|)vXR68ApP;C9X~X1Me)i5@qqa!>e+u2{>0Fga#(g}r-Q-oRGWL$< zh$k)4i+1B+MyboeoFR(eHz=`6!&rzpYYgqfRgam1`U0$&(XUWh0h1FPFBbxVuG@)ooZXe8VhUHl4a+kllD~&q;aPS=-;)gRM{F4;Zudc7fW!D zg|0=_t4#dmZNTk|R!E@ec@?NOb@)Tqh%?CiaoPFJ6kFJ)NE4~N#ARfX+nHDdYdhI& zG}^FIL;i@SM|l1s^R6FVFKSmh%w4hDWt}8AeLDBQA;*~=$T2P#6aH_KNI7z*r1p8l z;xG37@bx#I$nT-jLwd37wnuwNyw$tUM5zD>Eec`0m&MDgnniQt{mp+av5eA+#yb(5 zR>NF@>G#D8+9rU-KJ^HS`HlB>Gx{EVyqjtHJePEQkXQmjw9gc z%#(hk!BhvQEYuZlPFz7bj&*Wd$#Qu%E*iopxW}rjnrZo@(Ck(_D)p_koG-@dYyrCR z#KeqFfliTG=HW^ZPh~;njuN3KQ=b#F2}~!me^;$PaVC4}vYiE6k=ywU6*;1c(EWAWo<~}d_}4Iy&3`qUKf(aQT9AF};`YC@DeIm3 zVjk)ZmgC=Hnd|uS5e9O*=b>9%L5@gW(UC!kh}%YPhNPsiYhxEu_O3bw^LhwrNDj8h zIu(bYwp2Z-eKYwLqoib2_bjLz>`KZL8vvPD9eF}Ka*U#}YO$=zGi_w;q11Zp`s9Q^I0 zTsy_6>ntSUWQm~I59Q?cgU7GBgc>J@a0iKeLm)!bDyvc%!~TGKW1I?lrCvwrb z*ear*FZZNVwoQ=%Ysur9D(co{rZH8Id?miR-xXW?OsZe1nG_vn7K&dNyE&agdx3Sc zo$i1%r{ahns(`hXIAzMBD+<0@_Q{6y_JyfPo>?U3ek8LV^{3Nemot(H;RQfSuG_&L zD*US{NUH?c9&+|#9U{W%aOA}B_4r`qdI0;I(m~rx>*N^t9;}o7KoLJOoO8+0iaoYc z@lExq09(V8P=17{S9@{$FL?{6Fndwwi^Kn*EgGKQ+G#U37ouJN%^)LZH8)V`hm^%B z%*D%*(>!0oLC{elrms0>N_Dq$0P3DEQ@F+L|v=NB4<$+T$}E1A#;_kR~;aK62!<#+HOXpkuG zQr@b{-a2R$jvK=Y05CfjFKQEIldC~B3A)Dk9ZR&y*)kdmD_pr6i-XIiW6C$bLMh{- zugkz@goC%J?-XN?nUnPHKx+%kMir-&_Uj=dnHmTflm!rw%nuC!c{vPBhDz{?+v(vD z(lW`{3W}a=`pA9kgRN$MgmMe2K}B&+NjT(bDoN?7d^re{xAwyZ%i7f2+@xSx20X*J z8_JLRy-MHB?|YQFBa8ZfM%KVI^ZKuyImZ=j%4+^UuT-k@{P}$`+>e|xZ1PhlGFh6o z>7}9d0&`j7c1N#0PZ=_T{ZQYqjOb&(r*TTE@2#|d(*d>9XZWrR8M6-L*)+dVRXMW! z_qitEyW6@h?MtJDa z;S|@P;$)f_EQW~rVeNgeVIJ>mgh-2?vK`j+TkYvYWgLiBxU=dMSPvO}^w_ES>*blX znsvCv(Pzh|au!#HDWTbxVKRW@8GceAM7y~6^mkOTWHCl>K$8wN>!O(soMPFKU>^HGpH zZAoqC3PVKF<)m+yOireW}_hP%(8>8E5wc*d~2eh$% zb9`k^zbE#cKv;5BZmg*lgH1nMr~R z`mVteSpVN&_-mU@-X5LXQ8vla^+M^-)rnHeMnpdWi`R={M3wp27mDI9hWv=Q+Jr&V za25wV!Hk@jEJ#}Z)Cle~-6Btyh5Q=@e}{?p)J}YS(zfFLw;|;V+jVbpNTN@0_}BP@ zmMB}vHoakxx>p`wF25l=|89Vflv*m!F@rZ<%HuLhV-7~X@EP8=Q&$~sr>+R1Hwx{r z8Ju>SBioeiw7O%O*8w0Sa@5AgeV{&?^E@i#`C&k!XPoq(y{j?f<7KH1DYRw!uk(A@ zYYxAuo|Fn6m^u*oW8Uvgn-jKr%0}a>a#yoe4_3+AmWzAW<`&x21F z)E?+oo9E~7*-zGq)inJ?zuwM7-`OMCT4vFc@Ap#nLUl-j55s8I>9e0xwaJH8B@~P< z+x|TKp}?;eCHrSJ(cyI}$IWU?cKumCI$5^B-%6Z_h}h|_BB{n=%z98>V0vdVjno- zmKmP6)~uO+T6&kE&IzCFbFMv86(DrKz4i7!C-Zs3`mv;~u0E}#8~F2{-B}s6ewrqS z)Q@>&eT=phO_37nE0l|deEej}@{DQ+4&o?? zI>GUOT>ceWnoQ|(Z>y}O#^~Zlh@>QV20pCAt2@88ex?{_B3`F!{%W(O+uxPisJqe# z`{I5h&SzlR{XpX6M8q{j-`8zY6ltlpEZw4~s-sv3!I;x#-2v?rUqBW(*!vew?vFJA z@4>m*eB{0$*w8XAt=Qd#thpa-WbDVzob@M|FfEdd^ro&JLhrP3hsV?sh@JElWIci) zOXv92Vpmu4HMvROtXk@V!90T`suq9hx}4PNDMY*n zL4Fa4K^y2 zCzWci8KHOj`rE|kSNQjwKba7W+&J*3$dhZ2!Xcj8{O2YFVs=&Ou}!iK;iG~2BYsQL{ON1CCaA_fT?fg(~i0ZT(G5GVt;iN_LFtMPEvSP;C zoo-Fbag%w=c8a@2jyd0E{H|9fHMtTCN8c5G9h{rk4_&i$k$}dPrPSyDP8Ae)T1{0a z9;V5W%%a}G$cwRAkRfAQXZ1pmAXM?&FSoWp%SA!bFa8f!o)KH)^glZF6RXPvbi4{y zJ4@C~G{W1?qgSsKgtNlr&f7i;FVJ&V8x^62dtJ}^7`9Mqono}6*)K3XSTZA0-{X1@ ztF{oNmL*o4nColoIg5AKyUTpqXRWTVkZC!jXQBd!YZe!}&I!Pq5^5e``wj}8jCam} zr;z_lbIIL!qK)lBOPfp1YNTAf|iu4ezS22^4IC~H`Qx)$yfzt0B+Sw(3E1xb~; zZ<0WIgYN16tw_{`$NxmZ-(eyuwG$ulowqjsjhtc7o}1lq7dAO_-sdv+Ytr9>_1yM! z^JMBJZ;vz4gQ#B8uC(16dq#MKfb5}e4ehMlG79{_%X2VG`zoNN6$N?QLiN}xWMB6m zKwUvlQpB&J&uLxG2FdKng9S|R#39r|vm38VEicU5n?)TXdKotzh%GHJSkScWHEi*8 z{@iQhaAG=j@Uz3!%>}Gu+pp@ry+2)eXBg7Vlxh=0e2E}r>LBZDh@bvyZ|C>o!8!NU zA0aNX5aXiKTSK=+=CwJ3)jh7d@3+3U7uT}Vtc{ywjGyz`N#3}1G|&x|ZlK3a=JQ?s z9wYYc|}GCGj= zF8NgKFPf>mH6F~~QCBkSkgQ6(vs#NvO0`>%O6kl+ONRna=ALM9Bwh^X4zgVxMZL@0 z#~Hra;Cbx$_H7andi|UKpSIL_r<@d}d|J)^w=I3m^XJUvdt1mj^ttoi#-U?Z^^jlm zkO5shs~33oAAD&ap&oTWQX~fg$F>?y^ItrDA+J9RC$!`!v5 zT=n&$Md7f;E^8nM8tyN;j4=M#Q1ZvV@i6O`&Ll_r7`w7QCm*ZV$e!3wqm!fx z?b+0uqY9)GsCyOkPr_{083Qx72-g{Z;S|hX2WACBrEH^@vnpE9>ZDChtr!e6DKW*S zxU({>nl9uDVJ)Ot0|_LonQ-$nUV=t}0rA}A{g9F$kh=EAUVf~m9H3*0?8#an*3FiK z#5UfAvs5I5Yg!3P7eUG;S%CNG;}&WZ6M`aigh?({g-x*b zsRL9+jm{fSV84;U&1VY;Uv}OY1vg9nsG5tAtZGGK>zOLdRHb>$?H5DjeN1uog{XC0 znhop{Uc`ckq)QO*Tl;NJ&(I0bC2|c@DzGNy^~&*o#wLFw+VDL)leRyi+i(2?eV1Pz zIYX*`UN2sdubn>fpBXD2PR5pzrMmdnY@c*JNsE4yt|Y{iS{gUOXjb~)SbNNWxPL}2%Te@pzjfC%8n-I?FPk3!fAs{Po za&2}7Jx`va<=XbWU3AOfN08id38pbX;d#lqtL>M#WG+F-hV`jF!=>0rWxXUvA{UaG zhidsguTkV=F1C83|0!s-jPiK_g1RK*as%v{X}ESlKS_ZY>APmqN2@<^wP{W8)ck_9 zS48oP*8}O6sE645=55)o&vFeBnN&@wX^Pv%QNE2!+F|LoAV#_}RG*p!;~29CHex&v ziJGLgO(w_?Hl~)Z z_#yyw(OkNX{vf(~b2dF(x%TolsoV*S_zUU2@QIq1TCN+#pk*KZC~zX?<99EXBZfUM zF?f&Xl(ZOaj7**W16rB&9qOCOihYAjL9YC(*Zey+1ci2Dwjaz;js72QKsY^ z|1|)*IBQQ}vYUK+FlWSfyX^Tbm6XBTrz-X4f>ON0t80NDl5Yf{XO#vQqrkl1SAwLu z*1ju0xog{-bc)Ine%lZI0OAKs2@c(OQ$90qj%vd+tZMCc9gx#<8MwZ$jdd+o8>B{2 zf)+Y%+9TM-TCEuot!LTO_jnU++Ad0q-32oS7_w15$x(d@@GnT+3fOYGzLkvHW7l~Q zy<6Pla*I)4Qf0SpdAt!I6Mh~f=6NB#UITYf9`Z#Vb#mtMvx2%m*mnA(+0cn#aog1U zYi44-d{cRAjzc_uswGR;4)!Z^R?j5CZBu7)vw_V{^-qE#Sq>rcxC_(=y2iHli6wx| zVvBirEUU5GjSRE(#Rb_CVu!D;8RFxa!8Y_GY^2?WIt9Fu1_n*AqfKKkVG%DbUXYflYp` zP&Y#V;jezCA#sv_Jw#Z3oj6TrAtJ}EQT_F=$(U*;Z{y}1vY?7WJ~xoU{*G$$E2fd+ z2U>`vXP8hv0YHTiAh;Hpb`6D?ds0@2KrIw&CPrNyfO^kbJH*G zKr3e+aZVD|G5@u&o)k4Dxuh2_6d`4#YZU(EGykEzZxdQP?!Ndg{sQC=38e4{@gF*R z;O*(H8AoIwx!x<*bqKxujgJ$I-1?pkbgH4doceYt0-Ik=yj665r0YfhYGt#@hk?Du z3-Q+z9Sa<%(-uY8UH)j}X<$V0jfU+@JK)=Pemd@pl({+HvPM9Zky47dE$P+T&*w7&k1x0-HYDQD63ssDi@9 zOoRITa<}wOML}~pZBhmZN(02!Ff>z~)cMZqL>T8aFUG=T^)s2g3pmR)p7zChr0qj- zyhI$$%!-{0vz+ZzZl(r&9{Ox`p*lKh=}hP=`RlqU!)mE;I4uJ;#8RH`P#t{V9H8NT z<=%x`p;xmY#NBGqTAiwTb0+u_(mS>HhuZQ2ZJJL4A4B27@fxeln>kBbli(X)|F;o^4B+S|Jnvf-KZoEZHF6)iDm+o%(OA?TS*v6=!qX-d=T03BL7KqG#b0#6>3fdf_MOZX}k zX6)JW)tWka5>xfrz5E){1&)`+()H96PIj3(BdoCvZT%1GrH+Bggc znTuOB+UTC#ijK3#Iigp;+T)U%+w$j3g#C(O6!*Nl)KYmyC*{qi@w5TwStjlOu=VDF zP&RD)uq|?{REmV5h-3@d8A`Inh@!Gpk|f!eu?$kAFm~By$ev}&zAq&^V;{!84#QZ+ z3}YC+%l$mh{eJK7dH-bi$8|cd^E{5@JdU9v-Wn55sDJI))J&7f!3z;oiSFuferWm? z$@+-g*1EA_^rpb`in9tsoy^e}Dey)IfWf18*L6R|UfO*`n)uotyDPl8T^XZ>qxO2> zpQd4y9k9}(tiB_+;?#bTl`lN0Xz59rcf4j{GRxNCdjm4zmPrpAG1;v|j^qEgXv|yn zc%t2!u`>N1AT5mU!5A$X%aTt!yK?n9PK>As*_8}rXaoOfe;oxqj8YzyZ(xY ze5I-TZ*wzgPvv@4Xv>C|`F>_ohgps= z!PX5X<-~1C6wEEv(c>9EwAj9izCY#cahU7|c<;BzX^bMp5$-`D1=R zZbrtR3BhW_5hZ&`hv8OiIsm{nmYEst-;!wS{93i48vR(nSx2BxLxKL?cgWGU&%tpV zC(wG53|B<*9%r9DOFtsAx@vtyHDkY^>Hkq&*B65bdOIQzKVO*CCw(rq`P~R#MWOKf zKDn+}0;;sTrq$J_k*=d9mo4lpxbwDk_SYH@ttnx=f0XjQMlXl?l7m5enw1f%&c?1_W)hefnd+s2aq&i-DLv~4=`VtF->?n`L!8}s_tlyb0t^fy@o zRQw~{a{%^(RvHp}$;&#>@l)<71yf57j(rT3v}in;H|_QlqVPS%Nu}DGAq}=BSZT`b z7CE;j9d|XMY-P0pWFIzP@y>EL{J~}y7QJG6bcrv(gkQ}b?n!N~qDGYtK$7-`7axPX zf(Xc*?4X`Hw^oNis9MFJfeCut9 zh*dWj|A9iZT*p)SCrHO#18fc?>Hft2kea{n`XmqKlfheHe-_p|n0>Sd257)1|D`8! zIWD3$f96iuKa=nHIRV!?^;qJ#2T1ue)2z-Xq$<=^^INLZPhzr9L%*JL6MN&NDW|_V zn0JCR1ac8ju>ad@E+~KZo^t5;nq-*%Pov5m(rNWP{Ldmt-&-*hdv|k19Y{8W&(U7< zP2+(P$%M>>2cAtEq*u_9WHb|tksoqdwy1r!F9^Zw@>Rrpo$1sc46p@+Es-hOY8lI^ zsazM#duXQ2lFy=X9Q99LO_TZ$7aqymBgV(~!)mEY1bGa3L z0hP8r?C2D?VfNR=`PjBmmAszO$FC|kddi}y!zcb2zW4&xr{3fDBjyGy2PNW@o8^aX z7HTIw*Z25q4$`=M-M{lsiQ_T3yqOWHK6Rq~m8{WqIBH1cWtV!!W84CBb_Sc0i;=RZ z`Y{{7SEl8dv_%}f4Rrv{n(4R|Zi(T|*6{d`xg`3=J_rm%cff~`kSQk8D!)0ch^W8T|1CT9g* zu99yee0A{7L8QqwlsT#_MoT|KTo`|-*E!oL2Y|zlFNc%dnuRYye;SFz!Q7Wq8uIk9 zgttzYjqZJCH~IpclNtHn*?nqmMSh`eol$B?no$U2_V}*(T@s#wO~59qR>UVNd)cy= zup#R@L3hjHlDJ!F{U_ulrEE9@`-$lTShaFCb&`9Yy`*tTYRz8La&l^9ckGPKlU8X5 zH%h+cTi;?w*&H>GwaBD5gIBDKcj+#eFL!=dyFUN$Wp;&9h&D3a^oO=xr&uo1Xd(ZC zw_0wY87&hzm)ak}w|FVm?j2fnb2e0K-*|sE)~vBS`XPAvYwK72IbGio6jF3rd}rGh z*`Q$u^&_h01pJ266wYKxEoZ!D{9Na)ztZ&=(zPBqk_6|gQkJSo%ApG)3U__nuCn?S zH~uX>;b16~D)#cjBb+7yi74vJkrGSydtTgDp zhuu&XUv5GitvmCDI89gp)+h3AO^yF$dN6+nkQTt%_DanEvpT6N0{0M+*EfO(q06_< zsVzau>Wz9^Jkw&Qsd)7+v)ug16>&LKdu_gy>J zB>WsM_4kd`@&0tIccvE8GR)=R=qn@VAdY)JkFi2)8O0Dr%w`RzrLXSko3-+mjop#t zF~$i(c}HDEvb;YhcGKk5o9VQ-4*E|>w%?X@d~b|m>Kx4cjr>M7QaOMT6y`3=!bn^$ zyBaLX@jgGL(tZ=WEC;2f5mq2OUs#8}Ie|3O3L3@|+lYcFiG1MM8@S#ND3A7eEjC{z zuNERQ-YHONx`?!0t}N^*A~(Z9xS48_-**UaI@D0f6jisZm-fQ8(QjZVqgbwH!@8%! zwk!h$cx4pGE518l6wvNccp4Y?5E++vBNOKMImOM^f=^Z}lxXDAAunUP8&Nfgs@qZO z{f5N;QXl!QE4`SpoDxvVtDWnZXFDQg9XXzmgYYLfzOdwrlve0{VkP<9%z|`j@xTur)E)4lk2|zK$D{tD!OGx2h0d7NE zqw02ygVa0I!i9Rf;^nlnGs(y8#j<7sQPVhptP=saBZA*5qSGT9vuxp8%5r_%3Ds8k z03+pB?AG?A)BL$56H=pY!-Ec682N-N@jLt{ z_JTjFb|fAEvjWxx)NsFZR?5HA!5Wrl(_x1^&>dU~2aYTFb1mI-imN5oje4~Z@VJYy zP{(o92E{eXu=SNSptlcD%7Nv34osJ&_?4AQ4EIV*;eXIPeTscsMF-vv=KAM>byi{n zewMCX@mKtGRj_!SC$CYxQ^}g(kx78dXIvQhevv=k?v%=M`PF%E3OK20dBZ7q{r|Es0Sam}M z_f=MS65MEao}h~zN9I$j0LLYo*CQD19(*6ZD);XCjLAJf#}vU#d5r4jD*At9((ud2 zrShhw%j%y}nK|eEonu#MnU!<fz;)5%NrEscyC>bzg*0EvE74mS}4BI-_kghMC@N+}J}*-NX^Q z@zb-m{5!pt zk6AQvm+x)9ylr{}i^$=HNbZk(CQZxNg`FT2+Up;srGT^5#@inlb2;Mh2eZ*!-wpS7 zI-HQ_D>r#%AR&`ZZ zplE5x$!DD#)8N3u6LLaYww5}s6oT{d`xT=}cG`n8_3&j7pjJH@8P z_z7yHkg@^63!B!7IdIeIej@IR~7%&efsL*Fo0bw6MD5JQ+NV#fzS zY^Y**sDaw;m%#gJ{?u|()zL0HVSM(8dzxM0`5PlY&j|s63y5o<>Q%3NI?WKIN`^Eg zH_3(hAj)v#f17jBC=V9L?gj?R1X&|TuhMm61-;coR##-V#0`cl(9HQ60Hcy?)5+Z; zuiNs|AJ{g3O!Y^5j5r#Ze@<04uDtCm>POAxdtJeP8N*z2s*F8FXp@`ow&%i@Sv_em z=M#P0`#P<|;5@%h9YW$82Lrfj-|RkNhg<&?h1`od!12Cb4c&=C%eP@;5*x&cn&lE6 zr(oE8vGGzVqL`G{y{V+D!IR~9rJnMW0r>PDth4`3Fc(ed2703H=ilA0-b8BP*VA7=b$=35GG zC2JNca^byrLAHO!ZSoFv-R{Hk6coRiO_!(ObZVDxhupo60Z;sBC$nRokEkDR?NzWO zDhLYzW1cs@M8nq$+UJSA&bVYnAC{dDlfk6DJSI7OwKI4v`5Q zyAyp~HH)KJYK{T9aSs$~`oj1rnu~zt&n|h$KeXoXf5X74$E@_x*FdS#e^io;cLUq0 zG5+3xpZP0qymuB_fp!9(OuB9iZQw1fvypfDQkr-=Ox}Mq4Svu32eV}JV?sl|jfvc6 zaBT+1VF$3Brh@0pjip0Te|N;yptL1FH+tUyL-^xEW%735^W4LN5;8WOb(Q>!fCzF6E?QrP*cdo#)m^T{6pWs z@azr;72FqE;pCy|<3k`uObqJSRnRzx`#E15pfxw~`D2(yB<{T*UeCIu$O3SSY_P`q zG*(+~kRBMb>}+ZI4T*Y48hsve$@c?kj{mg|nLx|`fbhFZW;(5fK6ibBTo=2(;|iLb zGDZ5t4tPd(W26b0knXHr)*929*id;`PlFOVYuVUv62WMX+u(5qjAYF0dJWXmG^u$K z&~(`|yani;$agf|+VCDX-TF=AG%lOXRWqtRzbdDH$oj!3by>QO8cij2xp;5>{_cc- z5L&^f?vq7;Cp^T}e8{?Xk?#WTy=AZeluphDR*qHgYMg^WaX?-4`KKMe(NZ-bbQrZd z&*O;owGQ9&v#Ng#iHEIZo|KIMN`rNQZyI>@8Q-gx#6$_hU*CiZ0(o z)~x+z|Maj)HS{4F1UFw@(a`B5z|QY3-xScfneqal82BNC%`$EjE_aS?y6k9t`mh2D z7=Y~$s#)e8s=A##Ak9N)9Y0qUik&!irg!CZ&VH4%e{nzAU)bn=0v#dz^V{k2Mg=Ut?NIi#F;&#q;|@lz)7}IR9pop!;dx{GwkN@J z@%NO4r8RNcu96=Wsi4ci=fg5$)2aW0LyeQ*D{jDF#?}KH$GgEOwl8AjwLl&Os&n@3 z#wG2uM@PbNFERA^;ru}ep}+yea>N@@LKab+`)bM zl2cNUHE1b3Evq6v+N^LeqHM*yR&F3SAyViO)S8e-;qY39axoP8oLCC)jh`9 zwLsl}_+p8;R8tR9 z9QcU!1`sT*vt;(ak>l%3plio(vbfiYMgQ|A6VPDt?nqGO<$+ri1iff*fRq4a-@(+4 z=IT>-P}kO>pW8&Bml{*Hs4CM^XV;sWH4nM?K;zpWR??gV-e zZS=8#w;V>TsjJ`->(2SWS3T!G$p6&5iA@f3W$bsmsf_W!g|*cC7@I;x?HKrkT}~P5 zbEA1q4nRDz-VTnCuE>!(1+&%1L3Y!(eVGtY!*+95P+3tpd)jY>eeLO}oFdqD4+TsL zA@yzJqqK^sj`Ri_WAaRCjiU;)l;dC2^Se{r0dcypmvP&wAKH5*Ww5U-l%Pr#ueA%a zg$cuq+1)$MEz_DYO%iZsWi+hQEcl{E-EJ(CHiOSHi zFHp$$Ue+WE#?r!9_U{kJ*4PiC&XC92s=hjKeO~nw^smgR^oFW>x7L`QnVbWz#F{s} zsWD)Dit?bg?E=OLSNv{2_Qn_RUIsQ=2An8YkB`lf7+=0^sxtH3by{g*u(|^Ue^EF1 z)59y{ho_^ z(I1a+xXD48>ek`+1jJUd0BCl81|YqUuR_S%yueu6;p|j(?fJS>wD0o>Y};i!01WXe z(z86`6+!N6La#fd(V9G>kF4Lnq?J2Z%d4ZvX8UdtZ4u1>MO$fq1ZXS%ivza*=xDsX zPpZa;`JN}&T|Qdqh^3K908_QZp&@)-TRO_nIf^d*wnpp@bN1cptKMh^ zpWk`du%Y+skn(drWnLuGX=i6g{)jexH0dN9i0Ul;NEc-DzLv?=X`-qh@V}uWaF~bJ z%Eu;Ox~*+`&RuP3^r@@IG{v#zahv|H(WbHsW5|G|i(~TBZwo020shP@lI)aUuk%I%&StMN0tE1eNS$qT~ z;Ya+6NfeBAe%-Q(NZi$IiN*$(HO08^{5$+Yp=)V>&0~YG71K7?uQ|?Z3g3Q>_Rho! zD`>uz9!ARP@jpr_P<1K&ynQ~n%pfI(x?mnzDq2Niv{4n5$e+Q zd1#e8E064q2^F$^-fiG4$T)Ru!qN8GveW0CEH+xA$bP%=LYk;e$28$Ca^4uKl#>VHSIlu#e+bTV8;LyV+#dHLT}RC{(8$Ej&$Y@m zK|7%~-UDrA(~etXaEXvk-B_~#5<6b;0Ncm17jiWJiicxk-F$H~dR6$SN5%zTH{&*) z84Mg7HCCO;jH$zQ_!bX(|Ahoo{w^+|y5pSc!?b;Xq}**|{bK7zz!kWjpRLG(^`m!e~B?9f6fhLt@)FS@X94j7I-* zMfpFK6#_Tv)n$%euYvJ7SIz0@n1Xcg-hOyXjQPVJ;^3!E8`XixdKsuU0qwpB0iGam zOcvm`7UVQA6<9{EemzJz*rV^%+_`R99fJXowKx7~DBmPSVanUaZGEEJiuIuxbmwe) zx@7ZYfd4M)u*j79B(zXFmR}h9s`GL;`Rnx(5Z{J-N=ufbfbTSA2rh}awVLc{`f^fX z>RBH_`%bSwCDC3Acjr#jQAv|SMug*M@MwtVRO@;!-9ThX`-=9u33d!gEf0z$VW67% zli=>6*V^@c;?!36{lb)Y`&q=*FEy&3yq~+VdvV&_9@poqwg=>IeW7*sRHz#2rNlh` z!Ko9tS=+U-u>ot_*l;zR(SBz*;b7fJe4MiLTuOgqy4ZJrQP<*v%0Atf7=p`*=UC!;xPq#p4Qd30b0Sr`O-Isf-PiuZ+Mn)E@s zh5SD>d*~Os=;>=RN6wCF?gZ8PKPDD+$%syqUD7$f-ayr6IiNemWdVg_xMo<3UG3A`kU~AG9aIM#@n&bkDOWkockkh+JD!Qef@lU zwt6h6P$9UtuaG;?Q>{27ukOI%7PPE6+0$~|@Gs;(Gjfn+Q6?|KX*16n`kK1HYmD@_ zS05Ke!5s6okuv!?0qc`Px+x4=p*RM7oudPz^7!q_`Q=r@&bG9=J^FD1N$V(`I;`rj zCP<&;b}!(?clCj?+r9}}RsoJ^<iybh809dV{elwEp$3li z#{iG2iF@xs1y{0{pr*qM*q>k{Z zu0+jbrO^$4YM?6Xqu8A(@1-8Q?%+LNgAb} zisBO!4JS7F4vx884F33kEEH30xq29ap0%L}!opDW8T66yTO_S2cOU z)RyBuG4u?dTEL-OX&RS7nRlOaF>tyuvr+RQT-279Avux2D6apxcE);sNiCQNF!L`C=lXu=5>mTx7T40 z-02V}thwsC@N-E)J9o7f99t%!r;cw=EwPZYx!|F5oeVYC*|nyXxrTNaN`JSQ(&F;?+>m6KX<0#MEglX#2m=4e)qM`w}U@i z))w_UScd{Gz(komWC9`UJ^T9Xa?#`!#E?5Vpd>;{~{ej4vRm^SX;zw#wZ zjoAM&^yHNP?&L6_NHKG&+iLy1cLSbqVpEQxi#dsP!m2T{kyf{J+nHqWoEcdfL6$kE z$#2cu^|dO4-6@0660FUPB73yj2dgl*aU)}tG-4kMtt(La9>=3Bpp2zA)j7%ZPZ#EW zK6Ga$Qf<#pZAByfK6dcXSle;RLl3~r8?zg{W@a(JNW%sV#aBE&Vk9k_V>zvs@7&=$ zBrT%A#U@`@&j)bb_aBb^DUOdh%iUg@d@wHM;#8825*dm1i=WJRb4x)7nxEoedD$(p zTr4)!h=OK_YzuNYfXVZcKa70m1H3F%O$8;q=Y-;rMw9m^1ly#Y#ff%l_I7O_JIez& ze7j*{sEY6J1YJHw!PZ5^en z#)~z^>6@no7E50t4SZ%x+fn$*66xOg5Vpgec{4{na=RE}86R(yI>ZC+C}4Y|9_FBe zk({>d&?S*TVXH4HqFEqN=hK@Y(Tw>3AS`I4!xNZRK5x*&DQ@V&nFL? zS(EQlyryZTljfF$-3@96M(My=6{m(FL9Zla*So_Om7e*s&Y|JuEDf-IN9yhg9Mdjr z*?*6?c=)5){m6^fuNGBK{Qs5Caf$7}01*0VF4@GWe?FKnVLSU^`lZ-OJl}H%XUh7AK-dRkg@{9w;nmK7p zF1Uy4urtUt_?a4iXzzUabv)LwEcLB7!qfd;svj!q*4pDFF?!@^7MZG% z$P(>_jsO~00pA^pt=0)>!A7w(W{faOdfYW5^Wr9^b2i3s;EMwOBWOk^ zrO(B=UYA2#{L*xL};N|!yQ{41>tqwsFVOMyAPv5F{?QS{qM@M zGYz=6Eaz|4Mr`ojD${PibReqXK2T}l)yZ$$1yP!dJbO5&kvU1`YP~Kv8G{bgd|>7h zlK{mO^sX+<_Ah0^ou=N=NtO}2JXA#3J-j4DgXO9bBq`^aeD$Q8jH={AmxDlIe2%%jfP;IxM52#-o#jOER@D?1RU+-=l*328ktdpacTA7k%71=L|bi>~Z3L zD_#1~8Ck<1!^T%4D3vE^DHH>02m9q-z(!i7bZ7qZV=;%IsT+}H8pU@{+Z4fxG55Id z?9u&UG>%bl!WjHQ5nIZJ_nweD}z=+2-iMai~S+5Nu5a{L|b`(qBVX+nZwg?+a=q;1(YPLP<6<6 zt$7r5$^|qbxsTx~uy%S|T!}S32?7Gslat71FRNcs%u5KDj8t+Y+=^zJcxYzs=Q)cObUOH=pK(cyEoG;ivi>RYB&f=4X|=cAjL}=JkgNgTe?NfPduZQl15nj<&raK^3qA3s|lHG+@d~qp1#MD;Pe7sc`SP<@5 zRd|@&FBikhxPFC2=sPvA(7FiE{f^%UJPiDL#VUZRw>)*v?Oe4aCgk1dqjA^ig?bLR z3mzX|6*;IN<3z1vsddrIsDMQVcOL3|nP%9*lxVo#7_-HwF zltD;VXQ=e|RGT#oD~Kx?R#URIT%Y72EiPnu#}UYPX0d2F!|UX6;rSh%B!ju!GQ8S;#V3D*wX-chU?;}r(dD+P9Q*e~$PSsU-i4YgBw>vbi-{?sCnr zc-RKE87=P~HxvPz3u??_zZJ>0DDkpR?6Pu3A~-==vV-8qd46}`w#|z2t;|hl4tK1j z;z~)qDJHFr7dDx2`i9+yZXDGTg*iF(W{dJG(ig5kTnJMoU^b$cveZ?F$DnN%{0_k( zu;LSksf`nw^wC=M=o^mI>#mn_lPOG*s9s#d=g_MeMa0+Ufxg#c$j7`+eA;fEe1MWP)Xw zuXkst=fE#PoSQ^h;%3H!fF%_}^t4khA#ego0&zJIeFA8g#h$GPN=KD}9r zM-7xf3}zk|WrLX#fPO@L*u)AMwb`9-L`m;1MyFqJ>^vro0hum+06 z;ShXhT@}7e36>&M?B1!x-r0_nh6ZbnC%YOa$QyEFAFKRkd!qj+340Hk`7Zp6SftI& zcYY(Kv~*e(r@)`R7RwkBkkO$H53B=O(Xi;<`N3*mbQ(HSC67xcC(oIN^-K7l`GlpJH` zV3D6#gzJ$wgu}{)IaP`vP7#JBg9`#&8&-15w#>wi*4uskDX#C*fm?szsy}0+4%f_h zes9@4`=8qRcRzBL5(hMVzR!o}p8UJ0fKknX{#)z#gMxjrBX-?w^Sn9)A`QTHBlMp2 z+}V6<76T6UEn`(RIZfhmR%m})A`tAoUZ%|jx;#Us94Ar53xRJh-++glIC-}AHwgJV zktDWH{i=J*zvsgl|D`5<9rM((oQ`w;7hX5-<`1xv9jJ3%ZGmK1m@kw;v@<77#^Q^E z!Nh&%G1KYZ%AfMwr}(s>wb*J-553W(ZoirAVhw7TKA`H|_!XL4WyRkT8p6Uz>GkjY zmexk6%2p3?5&AY2=m(Jw%A2@5@{b@5jkwl&1uINLtp z#oa9|hphMi`V%bW=y5@2iPs2LU6C`J;G~mMqf}-_zHMQ>NY#KKq~jDe1NDO$%BnQ2+1>WqQD#xbO+Yxu|b^{nrwItEySwHNf7s z=Tqg4=qeUh$O(gZ?Lh_#Z-=v0;!%eP(!JebSvTCe-ltro#ov3tH^6^z`$6L$uTtQY z93Ok<2xRwbN?zCZh9Y!bfZeh$@iVM$4w<$qv|g=VX#7uM{CmEt8s`LzDJLslZ;Ab9 ze{7;v(mlX0<{i*5i(dMEvmd#rl?%rgnHL>B>o_K^ZN36%@UaVZHkC9|jcYKJsYm8# zry@O2Nt*&u+5(cn7^c-zHwEFLC-RoJrhI{`%KgS8Uk^Zk-k@K|(A~KI1EkF0$J8jT z_=SH~lR990eyW;Oen0T*4CJYEn?~vFSLv|N^!*+9YJsCQ{n$f;bRSU{q@T80s);t{ zkFrzQ#*gW@)6a9W8uDd{!)7PJ^PH`|_JLUq{?ChT-)f40evGFRPA%?lE_aUV#MbCB zmVM{B>9X=AnAd)Ay}d;~G7OHe`4;G4Kty)mEV{Dt+N9MZoHnGbM$#rf*oa2@w8u6m z3SI~$>tLdB{Nz5fdr2KmS;3}hmthfXP?gs#2hInN|V`TtWsiC zMH(80Po2k$553yq0DeueQCJ;=PYz7;G{g>C4VK$zm{0Z9f*0U8P8*^=sDmGb7nj;& ztCsv)g`=oQ9=a1I>x6j`GXf?7TUH@1D@~aa_b-!eyBXf?qCC@ZKA)$$&EdCdsk-z8 zp#W$)+$W;L$ZKXhN@&-73itEy20Z7)reh3QXnhPCaIEIK;p15n+k~UnoAO?;`%zcP zkJj?@AZZ=Q)6S`9ZtUd*)C^iJNBSO&GB_PZ%my>9)$Mxh)m@{rEcjpO!|^+9z2XFL zW>+ck^xz*@!ud!-gXD2^Tv{s?Ld46D7^?o>^G3h4nW9zq?@vc)IVTP^ z6L}oYp5)%qa(bScXr#`!l>|Y?ajNQ3a}Mpl-Te}*DW_O;>WbUINrUC6Dv_}{Z(3g{N>hhP~E;A@mXaALNoD}Si z2g40*wSyqfeK4JQPn z&p1JUDHKqz6&-x+ZEl-O4(wGpT}#U-ec`(#fse*jx0zdJozRnFe}-qDE(w`)@I?^e7flt_EdpgfSW0p7k(tIU#nzz}1fY;b+9w=WgU-3RFO(~X z-_@6@zd8LS>jL3X{>v{a`iOZJe2z90-=b#o=$}&g&s^j+cszBdjEGzP&(wXBQ-G?h zRRjt@P)X3++=(}{S_$*@tc`6K$UeQ_>xU?p+0_dU|M?Hfoi4jmGCw=3@LN;6((qRRx-r-x2eZG}3!`p+bH zpNk}sW@G2;W#M89jRq(SQj`-jnwv%YY5F7DS1&$6erSev=Qrf7F;4bTea0Ta5m&W} zb~6^TCW2LtgC)G5`D$B9fm+Wzhg*SMijW%DK){cr>;T`%7O83kWO+~fvr2<{C zdLyvL=Za*XK_`4+D$U(wN)kp42_kJ=8iGlBp{!6t7d&)76OTeo5*c`=HOUSs`C|JqwF(7Ppln|4- zR)af)`$}PFOrf_VGzRtolRNV?^?-)P_XteiKGv@h3L(NUzpJ6J=eG}BNqf+U-tDn{l|zq9#Nq*Rzn}9%1~S( z1W#Wav>hisP;&-w7}@%04|lA8MMxI^OwriK3oYExpF_M~Q_TUnc?7}3#87I>cg)k` z^6PT625mC+xyt74O8&&P@DXNQPPAdiJ{(#u`Q&a-O_pJAZ(*N(nN}4oUOlJB7I#Jw z?1b+0teM=c(h{G9k%T{QTk> zDERN-Z>L@oH%`0HneRRX$rza}a*6+EX8ITAex2>$0UN+)!k_+F{s%tToRQFYY0vS~ zXOlXSz`Rzb?75a*F@AXWs8}_~g0YsV>twg>3q-~63}4h61_PZa3AWpcP@b&$@}h_D z+x##H%v|X>0?@^O_lwzMCd8PP^Pgdx5fmbfDQTTeuzX0$r(C%G46c6GkK)<1Y(+yD z8{9!<%T+9E+x&Yw#>FMDubENDdP)OyY5qAqN+LXhL^KAiGNEr25&2l| zi1`Ea#s+mE$DGMOQ#*@YkY-|)S7JOWSLC&RUw6~x z+cL4+!mB~TkL***6kL$>Z{9m_R|%f9(>S9fv^HkHQGA54@^u6vsGP`?JI9wfwFK7d zW>7_mzE&bO;D{k|=ioJFzKeH;+f}Yzt&BUFA_%}^IQiPvR zl-J_UXS5kSs5k|cg-70Ljji-{EQ`=~TK}{fUU9aQONV}XwMmD~5RV`jvVX}5R?UL= zUKgB&IWCEBmgaq7WpdZ`Z_<>+fC^Ui@**>P`y4p1oNa+7C!FSEQ?`0E1tOum1V&MO zAOfog)mSb}6ShPpwRl9X#)J}MwDI5kHvcTj{v|xh!Nt23lmP6NI;t+QW&=XjD{g9$ zVYw5QXQ$c+q)4Z)Y%gc^%px6^7NVo%AE~)UMCQjjQ~+M8_W?dr+I|i0dMOcEbqDjy z=e~~DJ~`GcMy$w)FV0SV@fFV#fO(l&q)1Lg_QBH6v8WY=8!V-*b#D=Q6C31 z`$ixM?rx6VL5ZI4J!1&a`e+pUZK*WXz$fwaS$Zij1*|RtZ!=9EWy!IywTBP=_8b@; zd9~NG4=`&PA{%2+IQk*bf;41O0bh%H-}97XZWs~*q=bVb_6~LfaW>Qn80sjyaV~%Y zy2#&^th;}IVzm@{E2@oll}f4i1u1KwsU!YRzhnQIhyDd11+)Nz(vjeZ81^6Noc9!4 zRDJuy&gQ;1p`1cpx)VHk*X)68^;09~AIm@3IKvaW^Gn)=J%V2KF2@hq%~MYAU6^na zE98Y($j;;rAbRwh{@c{Ecq-tCHk@ygOLZ`39eo6)h&OrRQPxNK8woGkF2rx-;_bjE zW9Y51oD9Dy$pHQQz-?mB_9QK?4r8sY`tpifq0QN`mX4Fn99~0w79RK3C7(pXS7VSh z9?Wh7U|be*DVH2x;x<`K4?!{yLqDUT~vw0Q6(^_DWt&?oj} zQcOZeu+nGOAcrx_U0tWe;MKY+K?%h$)TvfcQT6e`wU9`=nY1V4dQ!ayye)r9 z8FW4Xouw{hMtt0iHpA1YlYms8sbb4r%h7{apKwPb*Y163{;Y*k-3bm?^&Qe6x@^B3 z=s}MBALYS%#FQ3VE)s_Inkh|5GwUziM!ejk1ll41Ne3?Q@OaQ>l(pYzWcQ;Bg;5** zKD5tHi{OLb0qHnamVlS}>fUwUf~PkB8=-8fuRP{j>Lc{;{PV$j`H3@+=BCUR8c73j zKXTElc-EYA&VtwPrKjF~W6H6&UPa#~RG{K?YT~(busidj&M1$NustMw)U2!l=spGP zU`o2kx;1n$9e&m+8-QYiY<no1`+nQo$+D9S9x`rOD6Vu_vE)v`0cW zKkAAFJlB4sZlD6IiR?f_w}LM0SM1NIg7GUgf8s-L^$K!X|EK{uvRI=4WdAKSOR|Hb zW??qfryb(ojGkA=URi86M?Pp16KQQ z4@dm4f*z(74sli|`LW$%*88s+Gv@g!AUauZ7c)y`7Fn{Ee9A-5atrHKD{Lde_htU} zcatE$z8y2WR&hj`hwrZvbwf<{LR5F(*vx^^254@YVdIb)*^V~8ZTd-lfcbMRlhReN zVt1pqHxC`EGdHFMWw{GaK##onXZAT>;wHq7MZ*r2eKcZ=4Dt(N96D-tGKFM#n~ja$>oXRc)56Sk2y#eJ8wtjh@!iB+nTXX zBe+Re=zidgFV&hk@-zs3HZ|H5L~M>}Z-x(RB2C$yNnYuG+E2GQ%%FXr(3j&AOJWr$ zr0gU>J{p&o;dD`CaRB&x#y9%)Us-Jj^6)k0{OZxdwSbI+h3dPjmz;lX6kU=J8a=S_o@t&JI2tlz?p-kl$>M?vyS7_a9kC$Z zWfO#7P_bG2S7KihX7T@H>^;NTe*gYqdsK_krADY#rIgw$Mr#wT){M}iC~A)oo2pi= zP!tKJMy=M~qtznRCbfguwSw4je_Yr9`u>jl`u^|ZxQ}?22l3!M&h!0#O<~_%u%E7` zg7>5RN7oPRBT=_Xma9%EQ%ns-`rO_ugP`gN;X7@fVFdZ3GT8#bHf6~jBQyN7J) zSad>~phJHkTs?&q^Q);|z2upiDD8U)wZk4GT=$HBAVoprUS^LqyI&_Q7fzQF3>T;2 z>aZFc)Dh!EXjs(IEZ)v3-L;IWJW`VIG~g739}MSK$ZkQVmW$GzC?2!r-yW*!uaTd* z%r3tayGs}{*fo-NaapXJ_itzSoho`qh{P?8cSs+7R^05%>$|Qrw!wfl-)vqAx-@wX zBiD+4?ViRiR3J04{X0#^h|WRUyQeagK_z8tu17hBU>c9!)g@GmvR1j*6m!jv1JgIR zS3>Czl*;xrA=8YlfdWTQh5j{jU;eL|+qBH#pL6GSPeer$fpnC;A-_HlmUScA->34t zy>rvgKILkgxexTR*L`M<=cv{c?GX$9jch5?C~HbjnmL^7AQznPFWe0WC}RFHUCvMn z@Y$P<0ufz{S+a@hf|A#n@<8Go zED0#(S=klkuO)#@afVqbpnLD?)$}TA!#@f;ag}l!0r!=+!>POGD$`vO=YJ#RFL|+#Uou%|$j!TmjXH~=XM&g5 zNtt7*nZ_}@ruXwWW)oXF+38B+eFW^<*L3>8t67K@O^&1J^c~;957*bq?}BzKzr+Q) zXAKCbx%|kWmiNPpKa05q!}N*6?@6x;F&%0NzTe@ZWPQFo%fZ}?YAI|XRByak+##1= zPb3Ve!Up3AD?lstI8Gh?Hgt*@JU)L2FC& z+v;acDi&u~1YYg`^tp3v$ab{#HhB7C2&xh;TlsIoF7BML3vTy+Xz|Y|9{!B{mQnhf zt+sy0xNCgtQ!Wq!X(b;8J6$L%ajQ!El_R^Spj5&1 zbPa3hOd^mv`0}h-sjLgA2_E)e3MPCZ0vKkHT5C$~X%+D!!q;WRNcqYqF!`mUo5fPg zMf`Nk?0lnV9QU7*bG%cvwIXLML9l#0F%2V-f!KH-ycmq`tF0Gu(wl6^VYw+RS*PLn zn2|W3AtYv(=Zr6^na4fG^S3y9H2Oz0KRDb|C@eD}W2 zqMgFYhES`8*&4DlMr-UT5dIfHK$$E7Ggb}1``It`RK9Ng$>UA(UP#~5lbA&1n7)-V z7_UZW3;UL4py#g95>8!}kpNEyH>?k&e<|fG4Ei^+X??Du3LSWx`wx*v+e7gnp7`Pk zV|*gjvoX2&ZMD=W0nHbUXj4;w9+IaXNiSg=b7GP%&U2N@r6F&#V}Psq4= zeA?R_d2xZ?HsjODWr>vfcj^A)8rV`nEl;)u|K0^@)&?v7_=iVq7U6JMr? zrGO5(jb7AV--B|1;S@+zwGBqQZtK&k39nc4{mfwe(8Fi@#KlV;?N(v&_eFD+Fzm-& znry3LwoudxnnMs&y?aR;ax=7$E9kS28YZV7w6jjb-J}noY~|a~9yg+=sF*(k(&3?*K%USZal+NNGo0!v7l2JM9k8gv ze3Z$z1wlt-u~)&EEHRR8{|D|8>S+OwxF;4`M zW!eyevKZ4Gg{z=@Tu_dSAtjsfx-A-hz|bIqfB4j7yEPf*J+YxT9#=VE&v{({jaQvW ztR4GceEU7K#T&6CL0PV{VJq{k+{?i7rRMe+R-Kj;lAb)D#aNx00zwSBx)cp{TFB8m z8sRhhtBN`z>dwX&sP&Wvs<1@)vzhUHeg})BLXJSgWj})F`>yaQ+{vXu;Qap7EM3QU z)Dm+_4AlHSE@%Hf==5#zd?!_Ky>c}R>QK`2DCurVmw=sc3$NHoCoS6(J3yaO>b{te z?4+5J#1y+L^rN~wlAy;m$ncpuN-DjU_9a6cxunyH+!)HoIJS`$+yT{8b68lYXVXQ& ze&Fo7s!x)tM!gp)t%}N_=^hbXRzX6--ju$%NR+$Xg=7~nT&UaTwigFJ5wdnu;g9w>ASUks1PGBIuAIFJ1b37kBeJlx@Q$@?<39^6 zz!}mm0~oQmKE zeQo)V%vE1q0F&Gr2@zZ5!@ZCg0rJm|C(YC+a8Me+7yScC#!had@L-1zHX^HsWe9lElF&ti970Nrt>A6Nb( zY1u1|3DIQ&dP+&cpg^Vd!eYE|ur*=ryE=*G(!sR_K`#Tg-82);XR-X3P6`Fg$|3B{ zgwCoq^|Z8FdlB7L`MTX-Gq@UC^}{?EpFcr9?4qA~UzLt>j2tZ}F5k)BAV7;D$tNl9 zZ$dLeT5zIhN7eP6(F}VL_f%cjy!azA_#5HOKtJ<6eYY&gZRLAKKI}-R@kIEcdOnOx zY{Bc<=~c>!ljLp$#+$?6j~{&8e>=TOTTCpATDezU-NMr7b>p6xJ5GJ#mKe@dqtP7| zgu!QY$uMMv?+_lN>W6CXg5$K+#-GH3_T48132D3=Y;`HQ9-xkl@(;Tu-+s7~Z;T!M zIz4yZkNlTaRTUxus5#53kL!c?WIWz?1#B)1Vs~Xu9)kByI8OCjy4PrB57?!aR_;f+ z?z|@3kg8j!S`Eezl5L$HKeUkeQS zG%-CQkCEm{+||x!+<;wo)%IP=r8T$AA^ffJ(&tUzil+|xaA`W}PqtX>z3mF6-iZ{! z{_jv@?=Ero(7_9ydUDa|9UBXT%Uv(1a$$|jB1@mNVa8<)6UP@P{W`+s>s$i2SO)VR zYbftx>F0@eb`g=%2RSf8B4|gKf5l^Z@7{|EZ!M(f+FoycAy^h;EJ*s`HdP}=h4t1c z6UmMaaNsZ!<3R{y1~`>~i96=y?N&|wE++xB;B_XZab(PIxz`5$h3tbuxH?hzy*v_5 z<$Pxh&Uz?+)Nj!~_He#-ty(N_wG?q!lppBuc)C^^E}(3)n=Gtk)A?g@JTnNiw9e}i zU08u=z1%0x{czgI_1FZa@|Li$w4DP9P3h1x?+EP|yh1C#cu;l*E@N%REbriYs_x$m z@+tYbeOZUG56a5qxLp#^kt`GeAz+%z-~`7zL@a2533RWCKw+0*wLGl&Dp2h_q$ z@5+pi=CXBoFwTE}cWYXdj;mbraIR>r6EwXl44}y$@Xr(+orT%uxAEjuu7z(HDm(8V zSBFOH2IDgoQ^vd0&3QZW6t$9k|XP zaZOpE(ZOQmp;F>?mr*{}|DkWR_yuOD7r{I?2pO|7nGjX)Gk4hGO`n~k zVlx6-Hp1Wa(nCDcL~Z|Md&Y%)MC&&DdAbW*y+h2-&SF3L8Z}a-ej zN%M`&9DaB5%K&Tpm^T=6^SB?QdAkMgsIZc(nK&FE$9kYhhdJfg_kYR-W2jw2VHd2L z5p|o-m#!WGij+1zALuhlFP}iUVul3&Jmf!k7$O}$ zP1PK9x_})KYcZGs36j|prmdkJX{=wVLQA$J=xAN75+H*p6|v|5il*WJqGQfwQN2J1 zyzfM~)q5Gd`>tlhI}^A|UEkOwc{4B)oA2ap2jY zd4RNAmhj@DqPq)&LinNP5q_!hKm|Wxk0R!AI}Pc=#x_hozZOJCxK!?tp>IvPWtztd z&N#;%?ACZ&e*ZHnzTUZqJY^T%(83mgu;7Fh6)i6A7D zNydm>-J{6+`|VOmBYr(K(AzVxx7%Xkd3usCikJntOiP;oW(Pc~-Lg9bRvDi4;=y|~ zVqVFDHbUrX5UD<%6CxYC@QzFBOx64NYzR;I zr{V~?>4euHcO&~p8qGMj87%?|qr}Pdym{+8!)d4?7Y%hj=7&9bZvv1{j~4cs+&MaL zMcKua61PiqCO6X>_c?y#%LR)ZarU>^A5@%4ck!K;jQ59xZ}P-Ny-R?6A_4xDb3M}D zI@zk>*MIi9{}E^^oX_FwriE_*nZv&ViYPCP0|&EGppsIwhfnQ}zkgT}73SgxHpBZ{ zN*e_-?o76^I&LDA9yA~6GcF_U_iN0-IQ{gM$zfbvI35ZsWH6vN7t z{;hwW(lk@)o3BJdMhCEp2)qt?g5*6)l23b(dXkL)B@it!_Xq8^-z<-YFGgT0H=#5s zE((IKj%P!O>CP;l3!K!(2g53&npcoJfX(>RAewt!KamD@#UaJdwbRhJK-1b1h>Lt8LImuW<#o8^t|7tbmml8&Vm8YEYm zR$B_)3WFFQ-iIWl>=HF)pFvs(A!YPhd-{swyda0WJ$JjjVRFRKe#2Z=VjGe7cj7CI zacSl5kjB^tkSx;S)SfVup-H>d_!>XMx7hykh1rB&I;G7gO|dUn?!8Q})RUXAacDDZ z)O(j!``BBt%;s+!lM7>%$AVa_Zo=PEM#Lr}9J*T|)oA?Eje8yYf6xqO$6%LRuJ8gR z;)aP}*8CsKhJ{9d0V_wqJ>$XXXFF|IIvw+jktDzeUZ7AS5j2`RfZCDOKMRub3z!u6 zo%w6-k5M*i?va>pOjIT$R@*0M`AS#urrF>A7%$R|KoGb$NY7pc8l`<7KApOndDtMW zx;Ab{T9D-kaGC&Ini2=S8_WKN?HM4NIw}P=IiRe5i4q%p-)+NmXL4Y_QG;x+EP@p9 z{aXiU>FH5A=K&CrfKp}LPwQOdO4^)2HlD2(m5r7WgAZc$N(%nprw#`@zsmLp>wh-< z^TmD##RJ2A4YSR-ze%e>_bHkw`PAOBefa?uo4@Z11_Lcp|hn_ zZ-YLQFI!}PcG>c!SEG&f$em)+shDk&dDQ$4rZn&~(WN6~%X+H8i!y5Gdsel}(Y*PH zrou~hVAg02|G3+^Vpi|7!V-LQ;zXWtG8s6g&!;$RF6nePx_DpKDT2*W1gt!l(Ow#O zfm3OqVl#TB223A;ge;{G{1XDP(xbh-Jn0mAT)hyaOVBJtYc-V=FE0qf)=5^|Hi(v| zF$LvJ6SU;VZ9*BRh9OfCb*~(L(wevFpFpEL)qn|OO^2lK!G*9ZwCEim`qgS=6GE@p z3EEB`UbZh}a_tMiCB{_Jx-7K0iU5H5h^9PGrLO1r=kB@e*M}o(1OwDoh}E^@x@&fM zBmy~P+L6+s9R#RSIJRoBhQ3>xhcVi;%2yE=YGGm{JbOk=%ReEcSScqd9(K9aeCSH# zRPuP-lAPktNWt~kd2j1xqPV^L-N82Ack^o7kvNGOs$*O%$l)t`-*=;aNnhs)EN#c^oLTwpi4H9?EcuZe1c@?zs8opH=VNRC>-dzrvmi@+@_)!v5g~ z8B3|(M7+{81Z9;{Jsz9w6$PvhPgoAAe$k=WwC?-4%>BSO_VX#n-{I<4sp;ms=ZyQ! zX|}97hzb!c>#&bHodC*-TU>)r4z@|$p}W*fXzDHUljq}(!6j`@7BiKCS{MY4`*zE& zsvj=u2E$42fSO46O;Ekg7IE4flV(Rvhi))ZCXNX)GbZ)9=CW|eilA(GbKB-w?BtQO_q8y*UGX5#SOwT zOjedk0a?T3@d7;0%JEX*u%}APT%)uZ6MlwOU^#_lzrT&)G`^$7D!z}BdYQOhGefl8 zUoAKZ`(JVfyHE==;Nq$&H~gLQ4{wOG2)VuLL$yb~q8IXx`%c3I{GqZ-vnHlUpZ?Y5 zKN158Kp?SAWhm8jft;X{YPkrN_odp)4m+c(&r|;=3xK_VZygQ<-JEM-U`=PFW2I0C zz~21oDjKJqprEqeruQ9X<>S{zkH|>nGR-RVo9jn-)$+E9ir(A4zx-}9Emu}e!fjgW z?Nvc}+gB{(U4n-b)26{lLnz_tR*Funy#@5w*T}1Z1-qej(qV%riwrBxIKulKp#)*@ zG6DKJ*!aMa_wR#eJyM19EPBdg#?^`ua}G8~W746y%7vPQ_?DC9I2ZTaiJ!s?-ITW> zhkQvX{dKuD>m0SEapHLMpI0TAN>4(sJlpI6M;MjROX%tW5!s2K5UaePm7@S}gkesU2w5UJbEj&Utc(FjWabk*J`5Foz*es1cR^l49 zy$FBGCCcD7qgf6VepCPhe}C}t@0udl=F_}jO;qN_lMVVh+8$4(K<(hcl)a~Yj@)Ol z-0rS+BCPudQZ}Tiuogn?^#xUmL;xl@J3UH1CQ$jN41MJX;&oqbphJV`0LQwQE+f1?r?s zH7f<-mj$~1`e{0V`(;0r$75wBxdQ9Y^a|2*pOwCse#jYul3C8-aBIB^p6GeR!K$`q zKI^D(7*_N?q?#?o-n9q3%DXxIlr*PRrkqp!H=H5U`&x~C6XE8z=cLclOsvg}2>8z{ zXpsl&OTk~aw{rS@OG>ReWgl|-y~!>462}i(+U6{coOIH|wu5D6rl3RIPf)v=V<$gS zcUJMK2N<2xpYHF!U&b~EWh)at7zE**EFAIVS0KuAGNtd7chnBvFMZsd^THn_zyghw zJy$ztcvy-i*V0;-P;t3Ru700>H=d|HkYcK%uEi>x{X87WUs7Ig*wCKdk@ruWJFMf| zpgv9iafnimq#u-Vm@hiGI$|66y^$6p?RCH(xx--Asd0VvJkIndKsHmYu{%WVujKt@bj2J>8$!1dP9*SF%F6$Gpn?ifL{2tI8ICWC|3Dv)ic#MeuezZIQ2 zrM`*wZhqd&F56YX<`}Gs^!=UC$g9_`VGttb4+Ox_;QSn$Ara(8cazIM=f{vZ|SN(6U`<_v2NdQI0?^&lsUG^B4_? z?s9)qfo!fh480iKgfE;m`q&mtbkd?Qx|TA2n5m2kfCiUl{=(`nApp+yutXXLt@hM9 z>7#~j$h%D6$RZK6fFB2QQ!DdYE#3g>5`I_L#}fVuzN(%rQ?6ze9XJ-C!LG_Nlr~nr zca_ZE^qwUZ*erUuZJ}NE^gs$O|`fW5fy!36k%&}DKxf9d0_KCsO z3hu{`J{ZF0Fe%Cp6|w0ZZ{$|+lub50PA2P(i!%LcNKeaytsjjKgSLWWXq^^iszkPL zbS(46-O9Zi?B{v0vBfs()Ci(n<$sixA21lCGYy`I9oZG4bSP5fxQ3ftxC&6$%7JSn zz&&5oog%hxGFZ_)g$KGHloYRh2$E7EA<)gMC7S;&$v;^r)9tk~{%@mzt-bmOUl9K3_HH82&If^Fjnm+t(a zHB+0wm<>LiR(UIlyTfoCa}~Pa_v&&+ucuiZ?$hyWTH=Jk$MBrL5x^2?$iDQ^Ll1f| zPV-n^UtzRGiqq6)aDaxXZd6L2uYzD||6M!KD9^)FPZ9qJCo}qazW5bkFlD%^%w^Pw zGqN)wR@yG9D^*^IfsJroLa_8?fm-P)hux|mAsoixU?!$KSO1w+Cyvo3fy;blMAs6R z;|z~QEGsOT8*zCCFlbM_Ka+^-(NP*z|wODzP#oh zYPR58(X`$AKxQXK@O>lxZty~(nBVz(&52wpfDnI%YOoc17x%b~mdgRWE0zLuA#nY+ z!4b>ODnnzk0hIQPutZdOe*8hcONrGtNWiXS0>Np%ALVHxSIS<{#PXJw11|odw$hTp z1taRe*bYJK_}gLBQLWBD-p!@D_?dma{MN>*0I`_RK-ISGnn;h>I4%g=PBw!jUa7NS}XRj5&y->NqMm454&RPs8xfB&u22of% zvT`XjY~1CHEMuPO4PJJhDM&0SS4njOalm`ZKXHUqweWkS#Z2cigsst_n=<{3ZMnbP zovKZD$dGLmC*>S1$@)9ZP>pFptxSYRBAJrwVBS2L9Cffvh9Z)`lo{`T!}Ok>g>r;I z9u)>%7C@!9D+R&}?Fo^6rn9uajrj*UgLnK0nCi;TDxI9WM#?UWne03#c~u4t4@aJI zsa&|X_F$fpuGk(4eek+|%vkgABN<-SVz#if-%j6u?}q!&l?yc>Y~l%Lc+`PVe$71j z4LkDLaI~Q##I8K9%O#LXS^M4OuuURU)Cz*yDxG{J+H(H{Timi&^6KCb4jC!+-s2}* zwpX-RZ1vUBJ+^~xb-JKy@P?qHQYju6MTC4h z`f3Wpaz@o$C1Kj*4z0{$jD9{9#8M=|pxKJ4DatE}*Pt%?7Up)kw4g%zn|?TdO!A&^NA>>^({R5sZl-@yWhZ=5_j9t}&>k7Bl8YLCqIwVuR${*+#II3Bv zUo@73Uc>!i-L*|&>5o$0;ytCw7_i!93oEbDQFOSB5Z=Dushj@kEX{%JBkN_}VIRE95)bNf<-X#x~ul0VB(V8K6O^D6hgZwFT!&i^{FHmM&uo+UPLNZQtSSsUmAnERVS2Q~jtBwkG z!d56bK~Svz=rDxCR(oxGL{w!_gKI1*PQLZs_r{Y@Gw3^szm!5a!C)6Yh+7ivd&Jh& z@m|V>oVfm!Yqy)^?`b@;U#Uv3Cod%E_`|(4?w4J*lIN*Cu0p2BcNyJQs_*Z;We^*R z^#5UE@viU2db>WU=TXRb!%F<)d-s=>n zD`jRaLiKeo#0?U-ZY#wr%Z^`Rcc9IdBp80!AsQK9zX_hZXRGjxpkt|lTIF7=l*O4e*3$9e`1=6JbNhr+ik>b+@w{|Y}FyQ9;Rq&O@a1F{)evoKeJkE&^ewPG+J2q z&o>;549wY6y*-nfP4tP0we~fq03tkzBsP9QkpWqF!m7o3llF6f%!ti_7niB(dSFUN zd_e}hzJn<_6$r z2^DJh3mO;td_{g{79n2S!{LXr$hl-D=8r+|^n^$mrj=es9N6gxra}Vo3_W|fLF0;! zj`=W5l#I)wQE3Ml-X*r3{Y_r%Ne57E?7tiNn=qnT0EHK&_aEZL$HSWm^5|#RH;?>m z<`$oKR(H-+-79^CpujB;yg#)>@2>t8e`=p~(z>UBUoJ!g9DXxm*hC4MPFPnj%NULn z_s-H^_wQMv*tKDE^avXM5u~=YVuY7kZG{f{P3B(yaz9XKu-|H~Pxc`cK4cOXQ4Qpp zz(%cKRjO`l$X<31Qj&%jr#@tQ=i;6G3(g~No{%md{^MrJQF6bHh|;~&ZtvSpc(hl~ zqhXU%O|DqV0UNz(P9=<#hrCI0KF66TyeV1c-oneGO0k`}oP5R5*fO{X-zk#oB-eKe zLn-5(h4#prVKNDf*y<}Et=OKb%&$qiZ82jEs9>qgbIGsEgYw8?8#bF{Y&q)hFhx=O zQL>hGpUnWNxg-ptnWrz-CvmRl&`oe(7XE%qacdK(V7zrI#=2A8L<7Inip}Wuq+R>Y zO3K)utRdip6xIjgu!{{lq*+;(s<;0fum3)H0ng5rV+=*t`u_Q1(u#pOdh&tfX4&5n z&pstA>pUO_y1K`=uARl&k0E30GNv%y_$W~Dg2GrU-bs&7f(CQ}$kGhGANHd8R`S%Y z!1~x>-`bJ(I9kp#uSIkQu*Ft5>P&K)hTs&NRpXJ?`7@OeAQ;wJVB=EnsxRAChpQgl zvSuMF)Hu9uFif5O<~#a;D7?&fDN;g@Dvh@cSL#$MQtXF+_*~ z-uW1^a3Q$}R>Ok^423x65vp*PY`t^P^= zMfjjPbhk}YzcP6zYKCI+_}dx@2;vF| zwj%+tTBBt-OVb0i5j!(i=BvJY>Y%YTa``EDnt#-42Ru6xRopc>;GH=(-EbNJV&A$? zxvq2m8yfk)zpSunSQ1IJtUGh#yqK`8%f3c|-izWhRXLsc<=eb&c5^6|t1dJkWRi)h-yRtul~dT-T$z7a3Q?1USBx&}V@tZKg0I$|=bZsE^O{gKh4JjeSW zcy*tsC{rmIqwn#sPHpkNJKCwsdwGW@(TvjOiC-OYSjjG2@Y4KT0FZsx;Xf-BY^&z< zxP2QMUXQs>=XyMTZLGhLpv+gv*+Vm~RVZVFc#lJ%v9IqJM;tqhk z%Kalihf%6E4VaaVHAyA2Ei$$C_>=A(_Z8^i{;uFz=@_=9_S&q)0h`qJV9httB`{%t zI&fg~dn7~Pl9IpizZ69x=TNb(apAXr?n4ey2IjHJ-oZ)1Q#f^@!lZWU&fQ0eM808q zH@0GFx1Xge7jx@|rXLjdlcn!cx!ljv$cnKRNp_t;W(2Q%PB~gT0y34(gOphJJK{i_ zs#V9fu`D~ZcU#@<^RLVZ+1V#H{M}{?q?A2mr9YlYsl-Os$XDM{c?Jfn^_qP6Q!0<3eZg)UegkUd$r&3R-+ysV`z{3u<%M=Rdl@;lb-o_Qt4R+^X9sMQ5`R-Kum%F-5ReEc4um;z5y>} zlD}K!sh6?$$InE{YHbKRpl>;#0B@yjY9x`fRlL0JBCod256Rx$4O~`%1v*zt`6adY zi93F<7R(6FRRz06YUf|%?g){HW(rQ-(~+N;AJ=4KZTamF$nBK5u5&j(_ehRXtb^np zjUzUm%K1EHtf8*G&UYCQ;xCy?oFHbpdSiWH5Br+<_T&Eokm5~}0#zrxu#7_JAU@~~ z(|`fG9Nla;H!WU9O9&NPqLdg24KQo=ga9(KOSOFuTkiaelo$ZWFVNk`r~f%<$_&hr z=v$EeN4`Gk%v8X(dY(E5u?99%&npxo!xzo#hJpYWlPP7&%dhEV?4e?m4phHzaUxcs zn6<-!aKPKr1t8M!^zp5PIb6Ku(d*5$wZz+4(a|PfwI0-~a{bDoY5s7}^Vo zx295$HQ$7y!{Zu5t{gh6v#?EgMo-Y&n^V+juT7S=2Vxnf%%!aV%8{Y*QL#32Iwai9 zh&+ArnX1@$cz7>OcBt{fg@q{8YJ#HU1oi{LL}t%sk^;O~I0tdl0jw+o2AEMs8*3EY zo#l&6V^Z=F_mHxzS!;fQz1rc0WF}kZXhu1VjzvgOT)pyPU2m`3f%a*&ORcunJyDdu zBgk(;I!!FrNh+-|x2Bf&2};p$;@dO&HBrUlix?v=-CbPq9(rAriCZ$qvXZv{7RYf{ zsEL5=72mr8y4g`)k`b|`m5#BRF4YZAjlC-U(aQ*nhZhmG!bJdUQ7q+WbwTVGRL{gU z0sZkdX$jK?ENFtSBURVm?j_Sg5o>L!dO=2S!D)cLIr|Fi z^zqpr`*TBc3I(GVm4s9OUTQQUiSeqFb67Z3BaHlQ4T}0md7i@PZJN1*=BCZ(y(1@Gt+4 zsmK8^6tH>j(LX0p7IBSRqCPrlTJV%UD6!Z+N+DTUA)O9(x%QUnL${s>!sJEYSRUA1 zC@jkc#Nlx zFp1iJ4}-rIyyW&CJQO{#P-a&#A3WH$=Vn~9+b&P%yk+Wd7h2Z4`VM+Qw$!p-vF4Z0 zTtIJHs=R+v$nJ|%f;ywqBc@pTtJBKX&p=R}Ra1!*lb3d^fwYQ+NdJE7Q>+(rFwouC~ z6HUMTyMb;hY=c^2!MFkj$+`RX7O6IszE|xSe(Ea6lD7?MDEhfo@K@vuH z_K^k7p^MmVb-$#76}&6iD30qKSm*4kV}$dS03sK~adC^pzLUhsTuAfQ*H4rkUFY`Z zt%cfLaQC~0P`x+dWqLd|HFq$2Z(zI0{7*nwhS-NUe>p4AJ`v=ReS&4|af+9$Rb;xu z?U_^tTNUk_MkD7438QOKm6o8*V(D%(kdxo%*ve$uT)xe_%`OH|ms`JYY7k&hzZVnA zhNRBF^?f!yj}i^ohI)3_8Vx_To7LEZa>|PLpiZ5XscW8yTu((FV$Zz58PvXX1nxkn zP1Td?`UvD!a3$iEWS=qu=t|$g(OOx+9BH!7Q`l!}N9X9g>o@bp5@|4VA1brW`Q@P% z`{_tCsn%)^6^u6A7ThX0s8oK3YUBc0YL8d!kTA)@mYRFFP5+Tw{+|c76?kvO!2g|a z09=KwfFbMh^B>*&2q`Ksy;oxKQUeiq*q`q44beYl!{4Gah`+=7jnB3uCViMy?3nF= z{UfU17h4G~0Z8J;5qKn#c>a$8rn_iFnEg}6JnBDoed-+GQ^}^A=qW>*CwtVV>YcJ} zqu!rhPOCcMrtzVn!Ka4Hvi;BRUFAxn$|*S`*ET0|VDuQ64$Kuc>9eUF^K+>slIkL{ z%r{J=4dH85X?|%)-mVT}LY8x3)$8xXBAECOoxqC@Mv1|gkg~|_c28)5NcMb9*c|0T%R8Ek z;o#hdRtTZ>=j_usv5_R1)q8XKcagExwWneSh;_r}W{4FV&Iky57TdmF#@mNY;OLf? zB}R5ml!c{utl!soWCgFK;gQ9Z>!VkXLdR8ZH`S`xzW802BxcnSFFfU-+tJol^(Q5& zIVUKVVYb4niS6)qxVx?bh5iAbRS>Tpl&g4vYdi!#e#Oy+GSgF!BYXbv-Wy5GSKxZI zVDOA3ikdH|=DRrBCyd%qB^lgSQml2|olZE$l5k5#kTR72Q6Z@=AJC8o{Z!(w{jU?3 zkM}+V1)sRjctg}q07`0w9^pF`P}UU~P0Bf&yMOfRNO;~D5fMN|3Jeu{A1@yG`Q(~T2UQQ+{xjjh7~-?jZdL3*yTsR{J-VY0XCYE4 z9gZrI7hN<=``SG`{>2K`ltp|fUj-qXK$6cJ>7hP5&uY;Mw+#$%S*bwjbAxt+f_ZGjv- z_z#ChnY1T&&_8jdZO~ILEuL9|X~5^kd0jsYb>3u&wFloMe&kTt{`FQCohFB4D8~Eu zSPBX!d9^8W+z4ig+oEhbfwD^X$j5uJe{LqY_26pc$238236<>q;_xv*@#u$nW=SwM zE;ZxAWTPv`AN~=XfUH`l%dL2dIO6VqX#c!^Gtp$Qp!)?UAGbgYm6%;;__p(eeUIgS zjM-xv59xAgl31){Yp*LY#rYkwUQQtMbl4Mof_H5|_x^6@THE!+ig&HGIHeb_Ot@jt zZZaKwaqlI0nIaZcwTY*Fxu59-~FT6aI8xg z)gNNN_lNHD<(HJ%h!8@e@!=|UES9>|h`@YHee#^U<{oih=%js9EW%l1zv$^@V*#gM z5CW1B))2=b(tmnfTclpQ?_HKTykpdPIL9v2>Z>#uMjJR<^&%K9a@402W{8;w|);W3I zKF}*2f4}(U@>Up_iPn(5IX{;vrjVv>pqR?^KAElpEA`kY7FXuXb9B$uLp4o^ zVcK}HVUl#=bRC-{7)#I`!+5|7CL^}G69XqOSH45iFf0G%#e&;ri$u*DNPZ8d=LS zVt+JKe7~;&mzsmn-0fh;p1KGNlO4tOiY~L9#@udYK>hg%>9Q!)FYq^$$jjCLsVUc; zgAPU1xec<@r39odM}kjEnd={I{Gk=xUa?37{5Y*0amA|!R+&F%RBqR-FJ?IDoINi! zl5}Wb>H!bR=Rv)hKNX#1cU2?WzF{B*96Y+F1m30D9MMXl_W@D;(K6p-ulqX~!RfOr zI>V&~d@ikKU6L<5tiN-~Q2tqO8|BemE_cz8?rj3B-6?|jd#@m1RnW>#R&b*L=|t0) zxZb|m_|;$6f4@qmDH5X^{MO0X_3*a(ZOcKe?hOBTf>a>XQT2(Y`TD)@!wPmqK+y^Q zQEp1CxE;CC^&>MVZ6#rQd?S!=zZ}p7=kvSwsTanmnk)drm*v{I*Bvr#RqK|$`C=(~ zm#<4Z1_(I|04I|2%REn97`Ay4S`MFrz;DVPWh0qNk9PX7$ERXl0UMFPmGUx}OSIr$ z>}@~r;$m5-|C6QQcUL9XQ^5lsH>zfhG{NsE!CCNtE2i!NbCPvR+Y_J%?$p@y-iVY?^Dx-P3!blUp-7^l$`)V^EmJ;P&LMq4aNR2K*b-^o7I4t{nyABmhO12% z(JlZl3kqDkINqQ}`RQOLp}Jzz;TTrc=D&FHdl*`oACyfF#d~Fr*KBAH4sxv|rJZo9 z$GT+8(-~b~5Rfd)JEIgL2H2Axy^eo2&g(@w`{pY+UC#M4b2ILzt#5kJA3YW%-#y6} zrl)6TJU2c{t8u?D-FRJnGV0HLIO1y(Xz){e6-uQw=i!={bXD%b$t?+qqTc4qRla7M zxo$ZJy(C4!w=oa5Ut0yNiu=T%^QQfeXRq@RO4NLa&vI6fZfUBX$GS7$z$y8+;v>Pw z+j2I)N=o(&IEi22{uyn{Nv>Rs{&bnJJWkKz?H?Pe&l022LFKnm$sg@Ibbika+QnW3 zNs>Z>NmX)nf+W9*l-qLa`1wbRW=tudV!H)F86ns(zzK_RRf(_rW%3WpugWl?dw!5Y zed6pbd%KbbUa-Dg-y1Sns2M?Tl~sCYZb-iZ|5A=1-*m`;<&o-MFaCb`!}t$npDf9- zLC#Bwa+K_WOGed1_ulUzU) zck>65z7Ljb7*B=3c1ZM%t=WVMpK|B0IO$lK$vwo6_h4{=GQ{=p#ayJE?vZtbncaL+ zckD|W=dZ7qUqVvH_{PRlRQi0U_d8GGxFGI#qFa#ro-(BRaZ53x-^oU;Sf~}DIoHo7 z(6RDp^Nh6FQI)?lfAYJcqB=9P7g800SfcaJ>zCtd@yw8E*jPW3v8cZ$>Tb2(U95D; zI%Pfde}5FevhE*qI5Yjv=VUJ+>;GZvyQ7-GyKP4uhEW`u5djqe=Tk%lDIy>((XlYp zh)9DSPj8_U~)6v>L zAEtb^@A)M+NtP--xNggR{raR#Bwc;pbd(Q_I zcQ~g*RnekBNTk z+{bec#mhb@24&k$q!sdUwVHgkx9fvHBq{x~eP)j`$R?8+o~kQ0nqx7X9ZmI!(Auvl zWRvCytImbOv(wMJp#0^THWv({DMUM)y#5)Lm6A^$4FqY04;bv5Q1gxXnAERP`;t>^ zcVC@gY>ML9oFjB+TA&JiGq9HhZzD`7H(_U{9XvLi`z_ghrWE85gBDP0-qB;p=@?Y*&iKMcyK5nH&_}F8kg?zl=m<6f^G=9M({|w z4me>aZGTs|vZQK$qN=){95`E_#YZDNZ+}+*FdNarOyD^m9J*KA8lYs6p*`*{>eASn z9~jEGDe~qDE&_#%d2#r*sL8`o-ivmx#Cx47=^WNNg_%&P1GALKyqFM}CVewN)kPtc zB&xG!LSB$FjFh7^ERs5g0d4vTzFn;w--7=lvH?Xy)kL2_;YKr;R zP^$Y3f*u8g-m0sUul*kn?fWh6HX3=b`M(3NKTZD0cfe=n%{>qukEwulm?Z)_k$tYp z_o3~DvX<-%?lyw`TaYs^N8LA!!hP4WD!yyD;CT@j`Ei^;uVdToqB?ycbj|U`zn!L8 z`sE=!JDV^q*{fKS%!=JHgy`9zOJ#;W%>vCZjRYHFSQxvAt6?R-WycjG&e~jaF^K%Z zHMOJ2_UD0&P?uS!-42#v-Wu8c=vn);@BPLgW-)q?>KLhm>djgKdwsdp$N0vEgLzmO zK1Ffio`xhNou}g{ZUd{+DwaB0Mp2xq z`h{KfJ=t<&v?J)E@Yv}`W~x=*Ryk}uR5{Mn-?;%*dy!O&f;em<0$((H%+~D zeBJw|@%ri9=^L}<#dfTXDPeDX&4)_Tm|<+(C)4?2={`b_u!h?W>|%Ig+vqinu?K#7 z?)S-eFqE9i;GP;M;mRX^mE=bq@A$`uAN3%eP;B3H5|9-#B?NyF_&nG*%5d|#78d*0jbiDsW$fU6PEyBzVJa(;GL5}} z5gu9qAJJH(t9s!=|50_B&MdB6Fm39 zoj2t0WpYJ(5O&?b7d86NpIQ&t@03@*taRS4Ur_hEbU9r6Ms1TQDVyyho+hP4gXV3S_3UPmF6MQz!!_t`&f>ZC%Y{sW`Qf@s9;fMHSq%t`OreqrMM{I{# zTyoy>*p`)pV(v;v2+d-Aw5QmntwkZ3JR1tFHp;bi-*a=hFe0XPQ_y-96ESMIMUFlg z(uZmIvUorElWk+!<*n5sm6M|hW5UuKm#OS+-OhEg@g{@05kSjn2fex8Iq687Kyprx9|$aENVYXPn38~uJ*KC(f2nLZ0j3+b`m8OF-|tS62=VLRE{sN zmaN=oO0x-@ZyT%PWe57CVxp8cOBSxap#3{E`?<}HXi+gdbT}$i5^a27s z>$m|8&oYu6RE$ySZ6J_ngiPGHoz|R@cPal-s-yH=@o^)Cy_qb|*Cav05W87e2n$du zkDg^zniMGUw(|2E7!4GB)po|)*`R0H$~XeP<)U_);WfAXek5djuM-ueT6mC#{PTnw z$YiRl?>0D!_GU815^{S;^R-fAv>dk3Ap*FhIloTrlL#&pA3(+_U=Wu6z*=HROI5$dIxbAN?5}c7ecO9qNHBx6?5KUC2~eA_Z6{tl z+kS|wJ|+>d{)R<&*-3e7V*@{y3DPHp&Jo!<8=&mq0!J0r%smU;oh*^*^g z@Yb%W_ja|ml~?VCg;?Qg6FU#bN%5b|2Q+Ie#BaSFT>U7`MhdbUH6?4w)(@K6V^Y=$ zmuW=nJ2QYoZ^f>KUf{Dd>P4*;?W~WeXvB99~Ky-!)ET^!0r?6uj!{=Q3a{nLB=xamXvG4O%J=pn6>-xti4fA|*IK{xsbTl+IhigxqC5sxWIF+}%M=M+IFmusLj6Rpo z!J3bpdl%~!g?SVO%OH;eU8-^gdy6RY>;y)9u{tG_l^8;wm-Ycyl77Pcw8bfMj;<{PyGOP?dF+p}jXr^t=7tLd zd6jD3mmdG37~*^WmR+PuQ+lb>Zc(MN@cP}|!lf<%xB8I@vBx)Cew){+h**2n7zSVV zf>vQP^6Bb)tqvjeM2fKTl7$`l6>c&&cO*AlPrGn8EHnk?yC)ZXM&G=DvHu0ZeqiW3 z+X*n3(l4xAl{S#aYoq_yknwer+u}Gu9M_nP`8&eKcd?1`Pi)aeGwg)b{qvKdQkf62 z`o-S;3zK5PRMPREwPN)zdac>RuE)Ro{_2hz+k~^9DpwOvKlDr_SV(|UK|dYNg7`KH z8K%To-g=Kdn_i1liqm_Fvcm#f$5BiGuQbJBGVDEp*DhS{=$M zEWg`edD_x)gBCO!SU~FRt=iOJwm+~fwEXe={7a^zW7# zZ=p1QJ#!}Y=?Nu-`39@T4R*`HGW481OM7tBh0!p|Euf^4AJ}QGbnzF0C3Bovz3onZ z{Px>uOEGfIm(SNSGdTww=P%})?-L9G2=@j5QY5wofof2)F&IEW`nN-G>gdXX=UCoT z`RL3usT8#N+IC2Z^%uPU+vwEgQy?L4l}Q$D)mZ3jwGzdwFuHh|C|RCF$$W){U4ziV zrG{bScSi6gRY&k0^eb|&rv;c?ic@0IuNsAikW)7Szc|tr6cM9!|7*>&#G5;PCU>}ekz`;*bKy*Bc@-g!2b6S4&!_XKZWltc zi52p+p2SyLD+=dF^@4%K3d4-8IX|m?4{lG_7f^x7u419wHBh&uZPQ4Qj)$ z1})ce89G6%V7j>*65+Jd@nhttZl5fxl(ssJ2rj(49oRE$IL>LQzrx%uQT%{ucD{#C z!tSSWPLrzm+jZ|t&<3BaIc?|-f5$0C>x_OR?FV_2$s@$oh(bz|Qw(j|ABHgv{4fN5ynL0S)aOBY6XHiXB-qC7i{w8;MfXuvuQYaIqx-yO z2+RHH)jBG@4j4zpNK+W9hh4V{yGfXX11E>Kf=BQ{%y%=ol}soaOCuLY3{eMPG!dh^ znvF8ik3=* zDwM8OXmz^AV#031+K#3=tb5SqVcGTfc3FS!zlN20I`37E*HXHgpnDOQ=(lL&3k77= z^r!X1S0lP+Ig_Ej1~TZULLMQrOD;@IBbp_q$sH}9yfUorkocM>M9hd;Y%+90q1{@} z0sH1F1AA9P`FpJFm%7h`bP5{^Ok)NOTn}wzAm=%Npo!S4Zay(9%HN|uO>f-XJ-Z>? z`2+P`wM_{*<^&@o+1KWUedK7=s-ab2E3PG0f; zuSak+mkJ5XgVuUmG!zGk%4Xxa1s5|3K>?z#8}Kh1QQ#CI(W){QMsubRy%oD;%@9gf zX{}Lc{aC43rg4smMA&c$H)+OYb8v7s^AFsD{VS$Xy!c-^2rw!8nS~}Tox4rmw9Hss zGB@*@h{Y>_|M>eB0H#@s4SV21`O^3|T>SS}ON_=?ijWyW=au~px}eV}9$1upzLBb< zZs~*zZyP5Rd|q7E|Iy`sS)*i%aQyo{F*XN&EW0Y_3ikS!DWb{9&-G||i|fUz^!3TD zVec({0)OUt4N~T9y($sN{HIpc==@GYpKG$zS0GPo)7YRM12hJ_qkq5n*F93 z4!!fbFyWYS1dYtS@&1OI_>xX4Xi>K`HQ1VRc7C*eyS%r(jJ4MqjGP}TIo53ST}7%V zFS8sw?5M4|1VXr{AC2@h$_*AC!I|XnM-j8iCMD1lm+x43EhN{W<@riRW-c?Djv|98 zfR?T>KJh1ou$;cqF71VIZe@xvI1Ex<8Q69Vw!l|X;w7)_UVa82Ev)n?uB2sUNmFXA z{xT!h%|P{Bi<0w1dCfpxU38){5XzmHsqs3ruN3EE6!P zOZ!CpXuzZBng|YCBvLiXO66mVk3urTqXlL#P&?!^}kJNhygL~^2 zbp^cVfp9P>2lvA@VWq}FD;qcJN^%I&tT6z0ygoFzN**|Q1%WnI{ z&aYx5iQ0X z`u5Cd@kY&up%tndU%HY0@Q&2hO@zk~))w6#Q4=YHG3h03hZ*(NKjawwzPcI{G5r^O zdDH82STo$w-GoezQI0FhG9tINH@~zXPAi})FG=Q>GPK!SUvbDt?6Q{7G~0-Mdl=SWdWx}H*{G`o9EtmSIRjWVy`2k2Ru~Cl?oIzuJsPaJ z^8Q1LH*LkD1*A_kn#UrqZ;;$gt#I@vC8%44PxsF5ln&wTei2m)#xi(&$j-JXuar0L1v#f z8YDk8G7{39z{N%*^&ZOwJdHn3j0>V(G(INR%0RzD9(wQE4T~7Hy8l(J-&?JrW4_gE zrMi0q|D#@y>|(BrH@>_6@WUU?be?XE$IH^|?@KQ%*<1b&`2Ao`zS#KuU?sGBlp|6^-Wp$@(o zn|e45kJl-@c*Rd@_$2K5d7X}cCIqW%^S0EoXG$Tpiu=cidraBOwKw>YVC!||TKmb( zFR={EaShk=gWc`zvf*OC9-gHz;kBImAz9SonEep{{rT+##ZA~ECGdpQ>{z5@Z^$a{ z*WQI#2kdeKkd*XEe{=`9a`I-=e2y)8;}@$HCUGv~m<8)in`krqLAmq}P*fJxQ8i#J zXuG3BI6292#esf377lWo<&&&+23PVB55ee=%p=}0%R0{Thy$+C<@Y%)kAsiAEfI{K zFNYsj3wz)qiqLeG@K?-)19Ro1iPqn1@%930|BGPNieRa{BT7xb)J9%-BAP#C9khXa zpOt3Ayvf=V5BtR>Kc8C>8aEq|%w3uF+5(NQ9q)RPvXxAeon0v5B_Kdb>mEN#+iUJb zk~_TorS-hEsC7zO-ETkKehP?N<0h3ak1zhk*2*uyzSo(1?O!`O)q__n|5}(CIyc*f zG8ttSe=p7iGCH4by`SE3)gT*pQ6B*_VtSQCOyaLXT*uV#R|7Z)dFb`}PW^WriBHrS zTGYGm5zr}U=wY@Vh$wGvF&RalHiNeP;%NeoG_!oD)R8t;lajuOl5mN|U{C~lF`iSk0MnyRP5|VMcj*nSN*jXU=o86don7CLx5x|-n8r!g(AF$DGpyDkUJ^swtUOiBwND0`SIJ#hAGogU4f{;LvfpNim^lXLq zYOOW~d)oJX#QHg~{(?VrHjCuzl|;NA_qy*Dt*d46_R?F(dM7Z-G`kt{3Q0@qqG6q9 zUINU{9bz#A0kp@-dR*-GQgZc+HJyydhCqGS6(dJsqdSG>T;&}(AYSuwQ(uC4hj?s`qSFsBw_lD zlp7|E7Nx~Q@w|_s)!yt2VOreL`YRTy~%qW6EHmjC*$KU+R}Mk1iGn`wXNJMhr1E54dn=cUi0RC07rQp38TB`_OdI#cW# zaOJNXFKyOty#7wvva^cb6um=d!(Q)a*K0Z!UnW)Mec~41&T{y45yO;C;CJY2?6@Jy zClED)q_)HKZ3ozHH?ZFqZY&oMJJ(3Z-P79n`d!OA$z17~m+T{bMlN2dbvw1okmt~A ziK+_r%rVa<)n}mmbf;Ea3y6~`Asb#wQ4WKNvPo3MnCzl;CqU!9L$ z%fq}i6M})-z(dg#MOF3$s#6T9C0>*mK0&Q+wp`}C^v8mY%x+g!RnILXhd(uik47sT%e{Xm zDLMTSsIElwU>8$#Wf7%azo&69U~O|J<&d`$FJ!JH2#K?u!YJ{j^O07f!A2y13^*aK zlQN0w0g+#-7l#%TD!qupN%oWs@S`^frxlSg$2%I+&LsHWYI+k3ZQ^Yx6yj`Q7X9|j zA|roG^ZqA)G%XjrqZQP~x|1Usg#Y?fh1e=@M9dQM;KE8_$%cJs`TvHNr|iA~%do}C z)aL(`-Ze?g%irhQK5t@V=w>YRBa(~5Sfw+p{#D~SL-2F8dFY`<`yPF5$7t4`4<>-| zT-^(<*UDw*kZYt}NKsegw~-hsn>}d;av%mv z4StPs)W8#WE@zO99xU(eeYp@)H-qn2m_Fj3t-sTLf=oND&=n)w*+HEhC+ii8(cA1P zbKo6g;JJIvoK^*$BcufC3qOMr6!;6xfZAHJ=sHtw?;{!laz1I>=@IJd-sdGF(*aS% za~|N0W;d4v2q}H^pvHL7YD`fEfUC7DYuIAynLbgECzN#(c8Z*Wqk*xZEwkkTO-V;gwIi#fa`ja zcffI8Q#Q_27&ACGdTZ|q;k8+3J@u^8o`Zk~({sDx);#K(tM9El9dzQ_dwOXi9<1y! z5^XCf_Qdj)Hmk?992?I`pnwmDuu_e5RK5G$e5g&s4T+9+c^ko7_d zkBGEPBQ(;O+1KnQvRl|kbPBbYFZ<6iUkl7AhpuTYcrOn_ANP(VQw}+TDL}17oXt9c z-oVxq{ge05|2OY}r^E1nr^^0f`6u?iuP2d`opvvf3?qzL`n(oL!InF=o#-Ivdq@t#T%w91zql+ z@lb87P(KH?$2J-^cRvaH{@^aY{%~-@0k9H__ z?t?itDd|s=8@Ok>JGEthY_Gd+>G@h}`z#zW2dt+3Xjg&s&EN+!06w$ft`3Si(zJE8 z?LcqZoqa5JVjuzDJG)9SL`cGb3C}6`2Wz3}bMEuH{wh6HETyv+)zeke( z8wK|sox*o}mLjiYbwF32@p{yPLfrmYagy{YC*ov?}Jo1xH6x--Idk5*!)7Wr=h#;s0FixMN?8JuD8*q zx7&k~0B}pCHmc#(&bW<2t~hU3Lq-0?COC8?zNS^i_pG3K>u(R_bSgfy_Cdet&tsUq zl-e{b`c^Z|?|O~fa^41vP;P4Fmdba=a^oGFL4{7@U{zhPpy0lEZ8457`Ya+0$a0T< zc649E(yOqclD1ui*@!6;dqT?Z0uppi`K%KlG*f!~Mob`rg6EibdC==WMqMp1jtBz3 z#kpj?LsgQ5ovruLLQ|LM%y(=@p+*)xK#Z&E60kq~C-MCkR=6hmHgjMw%~Lv)|4sMC zL|a|ky3VI9?reN zow*>J?Z}@kjmUe<1=^18OLM;_o0x7*r5nlsw$0K}DlV3!2Vm@4H&_ilU(cV*g*9SRtX2#(LPIyKrVheBSC=ESG?YP+gf5777wDufc_Y9o z$bED)C!Ku1Sl8nC_ax6<9^znjNE=|qa&m;tRDVW)9citz_;E=pZnsh!%dAYP=5jvy z%roOz!SYjH2iU_u=}7SQfYA6g!GkO;rgxgs1G|gf0XdGm5^l_jZ#l@M(;%jJ&6Ca^*7G*{Mm?oh{#&fw1ZC+`3v?q zq&dQO#bINvD85tjh%5KHCmX)@0Wy>9feBq8wO&H&jxXuZoEl_@Y0R;^Znq6vQ49?! z;oH)m3%7;oQyh8+l=LA>Pn?o}kB!gz&~rFF-%`ud?u$$;fDb1L34SzHpM050gnNO+ zrpRX8RbT0rFRE)EDvuxuD?=MAvzplU7EJ8Bh`A$?R|}L_?*#9NW-<}f7lgxvsiujy zICX*6upEl&Wh?xk#eoe=|JnVa{@wjimz%%*r~9Mqy5e1R=pitmP;1F9=iAkA;C_aj zmL07z|J}p)$9*DQKY4vx?EU#%;iogKs7gP#g#Mi#a+e#22=rR^bFtQ{@a)Cff5+T~ zTRYlUMJX!$m9#f^BUmsPfJe{yTK95p#ZK=fgRxZbOAW3_z3}$Z0D1#o5)x{zUC0W& zLo|UE(MAc|#}LL9ws92Rca6Q8&$6@UNMG~CW5wR^{h7Tj5RHx=Zl_!UwSy7kna_(~ zF8_+tbSA{E5AFdx;NVbJCkqYsJ?ybNTeruGR5mv_S4>~PMAGWlA4mB4YIOMK`$S}n zj)FJZ3mR(jF-d7DZ>T5)XTdVw{|=uZ3=i-+&$dkdS1S5UQWgQ zHmCYb!zc*^HW@_&>N_Y0o1MnE<<%aoxW}}$A(z~Pv`)_Z!I*g5hgXJ4d&QAO?>Y3> zN>#Ducx|kMwk>qI%1S_8(OsC$J&5Z=4ByOzJH;%#5^e7Ho&U?C8NBUl=thh--$xiU zx%${~`A;%#Ky+p=x2T-3mI41AHD#zmd~gT$k=N(YtE%T4ne!lqAsDU&k9Mi#P}M;s zN@Yr;2FnxwMmAZXui-Oz(F==jyn7%WHHQ+X1;ALF$W!n>#@Y8)nOo_b|ww;8%d&h4yNdoOhg)6Dbbz6OR_3s~#Mj zB@Th*MVnZbLBF|IzaZ=qq*}uq=imJS{x;^diyZmY>gE?@_gsE}!PsPf{-(!ROh5>z zGiRgv`Zi1P(1T`cEq}WyUJ|9U(C%w?6Yq)}H*`BP_GROeFjctPpr0UZlL=n<4za); zBTc*#o->SY7XHI1?j~KRvE>2iw_|n^qh1?qTx06N;itHLrqbCPQZfHSNXj>wFRbgI z$uRlf$#9I>-2Ier{B4(*|wB%;rEw!m2l;O_mT3>7yA=2lm6e%*=zXz>*UG2UOhHO-j*hn zX%qmf{KZPlDtGZ0boxiGm(1hJh<0aaAlF1)*(4|#z|sP%pyRzS};~>CA(uJC?`iIbGRSJ z5x4057||6Ob(#z-rnG-)An>&%?Pbj>CdB);hml{?&lQ)~2evjQ9dfmdP$Zo*jmik~ zNi8`mSjxA?B|Gq`bGSe_yWK7K!}Mh9E9qBF)Bzr}i++TAS!d{R%HU104OTPs-pp+` zM4<2b=mD0vXjB^lCw;(GdyJVx4QUz!Pfc~MeK<2on^PZvKO-Kl+ZWP2f1wKi&S zm(J9P$%B(q+wV*Eiu*b&%B?OeqNYyE=)5?J$+Oak+95AvlX;v4#({{9S#cn6n!Iym&fnP$lyPVXqhabqT{ua4>sLuB*%cWGtsIT)QSmP+VSVP=c8 zZ;UNPC@6H&FS}+AhkvS>56|5eD^qZ|=nvC%$TQx7piS2OllcQ0x zHf-S0^rno|b=q*UgtTg~Z8;XE+d4muA3hN_>+g#FwGmRpSlHLNKkK6}@1vj;OdBfr zOoA;5M!Lou3Jixm zr#p$2SVJvciMeDCy13XLJWS82?=mPpbN|_^)GB%Y8hcfkCJ`ANb7LCHis+xxR9a^Ze--5{kPE zbP(4KoN>c943rFD&)>CI7$9?0{QNBB+WR_cM}HP26DD&E4Sfk6Te; zFFJJ$7GIZe?#92r=fqz-krZB>{9(vT*Z@v-`y5nKQhkZeUv~@$Ji!i#9;D}G8Vr-O zXka_&BoB98Yfbni*f%cKL^cR7ChY$@86{i^ClxVFmby0VtvF*Ril312aa-;fpuTwMX49YJVcneP7X9s`BylXR7MX zXIGY?UC2-UcekaBcG5`Rx{ki)ZZXi`#%m6=c_E=YF=;a4#>;`QP?d$6e#l<{m()J< zUGqbkht?u}UPH8u1ZrMF=QR5Oj#;B~aqWZ8XpK{>U)Gf%q1r z=12FNP`92vzr-2oDpya+#V(tVp=4uhkGv9esVzD0X>qor$vJ@C$3Uk5{^6>Y3vIQU z<>~EI{2Cpd83Ke?(hG_C{5+UQE6J z?12;&Iv|smK+oe(RJYV*?{ZRBmnwE&%}sON8=PP`e4uI-Kb%fY%9 z)Jwgmp`VBL*j&UkX#0jDo}8Y$#zkN6&}J6Y_g?ACKz*QkE>r{i)Y>dqD{w>MqEkhq z#C)Fuz=!+TtlCXD?O<*Qx`XNFB+u}@b`S?W_;bIqj3fp3F-;*}th0_l-xK3ULgGh9 zw;&Wed~tYdSsN%I&E}b_H(J6q7UCF8nF4PTO4ulDlnQ`SX1E*7_qxnuNLaCI_2xX1 zd|{SGPLB9xt4^Lpzpz0EEFannZ1#rm-Y!%&!ptu~C#)My^h^Iq6XV$58b{egTXp|G zjU(^EFQXAAOwdgTR30vx)g29Ug#mH0*JNxi$3rB7!9POvMzvTt8!=kv;xE|UvF6=GiH8*6{ zYj&ts)CtuY9aaUIfDl}djT-ofx{8&7-CK<j@D5Zp5Z_VHLpZuIbemy=TT-oyJ^%)H(jI zR1dWhC~g*(mZGLoEW+<*JS~>5iXtP%P+9x~GV*&7)v2SDzjyEOc^^VI z!GqDjZ+EYet(@RYjzmwtRWjB{rQ}s?NS-j~_MFvu8YH?>;?PH%h=rQo z;Mzc^<`UqCRVCi$bChEvIG=nfV6P_ZF!CKw1a0ErzZ8a0>ML&xcish+FPS&cRBs7I z)cM8r3&NZGo8E})2wT`=;dIb%E{)}r8SSFJoBc^66Xr5jgy$**O3!S*Qp{=sqNc-t zXk&?K^tQW{DetG!%@Uv$A!tBV;REa+Yan3yw>6LzHpgfBZ|$Hg8ehLtEb5k3V1;up zboIl18|e$W-+5fKX({vjVn3=7@~Ut4OiotC!{W=$jVz~G*|KGW@JkCAu#r1k$5Nxu zi#ZpBJee<&2J}emW!ZRzfZ(huRoZL1JX{*TAl#M|rt%>ZqP-8MW{~?$p3NN)E#4r< z*(K_x{Pjyb3fg@an9@qT;$}t?mdYziFXLyGK6=9gCxe=3K>=BjHx9d@5;%!n*WzU% zhbzThQ?5yK&3{_Qi~baJk-5EC@;@6CyNVqrFw5hofqbuWAF#z^NktmMhGVA(DJVnA=|WQ3F<0VW_C1^IbJVC$iN@rEvL= z;E+nCPAmBF;GR(!p$G7`{6XhER3#HWV#KoVj1Sck@$bB~(15HRdWCvyqiAlpn9}bl z6N25bAb5~6JPbzxl9XWG!zK;2TYbRYkEY&5X}0t{#h)hxR2EP8?!-0lwn%YDU4r?tAmUa9xi#BEP2Ltv$!$^yBNl>4ihb`j?)F)Nwu)1 zaB0#A!jAAqJ<$fRA&rRtG<+zTl@`ek-q;Q?!X3ih&j`FVkyoWg#t z1!gj8IOk3Cguig~qv|U88FjUn-`C;a!eW_`^=Z7ptTpQN>E0Ne6OMKW4EaF#C^! zhf$f$9OaNo+ram#ojZnmZi}~9ezeQ~iQ~?0_ojSGn{z#qvpMZ8=mm#0+$n@4BtLFb zjj&fst!m}clRzHwzw7os(!X=k$L=3?%0Szq)yfF%QKh^DQS zVGzdowtouaZ3z46nOaDDAD^{Kku%2ldGc=L7n!C#m43-Yd_LODQ(;wkJV9XAt zkuOF=6u3nKbvq)ikbI)NIbn;R6fMyBfe!FuUXmWnl=omeDfMJia2u9eW24r$@9auJ zzz`X){sT3NeBNr1iqIBu-tV5W^>2lsk)QJ~W#oQzzLSPCy9*lNb~jn&u~TVEs*kNI z`vK-#R2#RZ7|-#FjlEwzf@4Ci&;eQw&BtFIK3`rJ6J zzo{9~jl-Z+SlkWhWVVb1G0l&Tjk6q(WWABDLWwZm_Hq^Q_cXf+VdJo{Mc`8!;dh(- z(r7yFRKtl?&hblnO_6VK%j}SqQ|=o!?r>7{KeODwm)%0xY#*5<|G(bGbOKN(oPLa> zpc|bHBW)z6r78y27sUoyoQ ziu(Q%=;F3>i4X@fe3EK|&v)~?V&?;e8hPuaYVS=Lw^3Lcbt|siHQxS` za}%Fjf$UXNzvo$icL{Gzq2#hxXc8d)Bs_WICk$@4bS3$x?9`!J z8nwK0mo}A#t8ni-lpl|q6k%J*^?CuEwt31ne!4n>7SroJTnKQ{eCI7buk8;)4%mU$ zR|0TGetP!Y_ZjHzGDA_snYqE3;sTRByR?!`d{U$;p&{#zH_tMPaPaSZe0m+snRso0 zkEEhM8?VDJiU6%V6~tu7ppWp@CrE-RWQh3X{b^@wu?)myg3CFiU8WwM-d2NS%dVK<<)&cjpx3tP0>)IYK-p38$a9L zFFPs@un{KO?QAU7``P8%QuUkWKj3j?t9)szD&hW^(_codrmrZ4{R%SnfpldMg6&uy8ReURT6*Fz z=hXBb0Iu3B4l;|0T)Oo%_JdPSP{8QUMvtm>#(QOOd4eOC1X=TFVzU)itE4j}&WME?0c3Ww@Xr)UH z>nI8Yd(3ZXwk6tFyOU1RoGcgGJFV}{+^ve(qL^8}-{Lq(IgiZFzH9zsJqvPO|9PJ` zDT*u>haq(~UpnjMu9aZ4F-GqRK>y5Z()=ON#Er4tN|lmNk+HevHASebO&2eV$!WKR zD{Ukn#FMc8P!Znq5``?`YQ!7X7rE)0Y zsPpX~%(YgFmeqN3CX*H?a$JocD3?TLjjGS?#9>oQE9;LyzK1%9^utPQ7%$ zSdx`EzcYL1T;eQ4?z|j9tM0^T$Slg|cBReE4d=%{1x0L9e5w!UzZL8;XWngVxI(&I zPK__mQ~W=Sy=gqu`~Uxcsw2k|=On3w&M8zBk&$Jn)8bes$-ZY9vSnY#Bt;5SA-fSV zmEG8vAvBCNO$=ih3}YQ*1~X%3%>1U$=iB#l`~5!u3;!$LF1qmYd_7;!=i_mIxUn7{ z4oU&#*CSFF5i;({UwnAAZhYmH=a)7{2t>Z^;J}lSQOoc)Rf158+?|k0h>SC}6g2d# z@pv$EmzayH1>D#YO8Q6Qqegy)4z8)u)mkl%5Ym3g2~wCHy#7I3)l1xd4>Va|!j!LHETmz*v@LJ9?!=~4e;X0Di(;j+j9_K_A z-y4|JR!~ui7)_X5FaeBn>?-16=j^G)N)79dptLns!y?4_A3tA~cCsV4R(2(sQFnpQ zc99=1&>hRPwuBbT7H|88$>#ZhD;QbZ*vN16*={Mavd+tSx(9xiOu zub0Cn*@=JD{^w35#_4MXIzO&ijD%sT=n*4tNMlco1z_itg#9h$LyFPDvm#EyHj=M| zm#t{1IghAT>5us0TOB(kDl$oI7JrXB8&wFobZs(UXC_cCH1jp2fpOGY;1BTiDhE#9wuWkm6|emIq_4`%&6}!Jd)5zObep#AU#6GH-ePLZ+DzAbN7v%)YC4#_SN8=e$i-?taNZF~CQyR}U6%y$c&WcTkI?$J9}*ov12SE!N3d)`78POaWywQ=G_ zc$Y1ZboZwo_PHp2yXaEv`}n1qZ<~by`9gFYRQ0gZsoBvE-P@(~I(zBi7jnGmG?rw; zQaATbIWB@(WVvn>wrP7UVymQT#40K+f7z9Wbi2oFtQMCcz7(~n3==5Hl)(TR3vyZc z?Xjh2TjlMSa}Wg~PbJ|hpQ4KH^JR4m;Mk`<$AZh^>AzC^+59MNa?`fcgEj*ayOw6( z5xu_I*rB5z#}9Sji3ME><;=vc@9c%MDA!CaXYB{8(W79X9WIDC7Ld!6d$Q{EQoh{=`rKCVWaV z`Doj1d9sL&rM!b@^`|-aPz8#J=i5I1oA(LI#j{?A+d<2ynr`RN1`Im4VK!Z!`x3fe zV*nhRw^zgwuiGnf@lF2;U8q%vsn z4Yg>wZ$wK=aD11Rr#HjoTlYosdRb*LF$}u1?->zxp<=M`pj9#sB|jCDF=XzRreOc| z_#N)izI@^k;o{=l;4hCj0r_-tMPp^SNF#zCQSXhnYwb$#f**PEb;I|Pf!6EYn8DCW zauN_%-9S{g%GGPoE=ChSR_ja}ZDV>y-nuR990jds$AtuyZG0CL{34yt@`;vX#-t>Q zg?+9ZnO(6{2s`1!_h*#(Lg;2P_(rCyOw(E0f5daj>6e73a{M>v9X6Nx5(T6WbH??` z0%Jl}i&fW08X~z~pozU!3tB1T-oEV{a6IEnUKNo10fL4y_cSBR4>fGx1i_B$H!Qqo zzX<0l1Kr?LSgZA?Lw9I=gPNoH#y!o>f z^Q?O6t2nI-qWlZ`yI3n=&s)0reC*X&at6(wD6G7XRqPDZTkGu=BeUpyp2KJif$&=r zrdf(wsgZ3TodA=CSJ8)=b$<08_zbc2B+5k`xU+twz|hCKJoi$HDJoQk3f+o#94LSm z=M67jboT*c+vwyR9AzfFVxJ0w#^|f*8vs2@w)fY0+v}~A4(@)d9A{3D;q1N-v{)Yu{<|p<8!RG z_jMSc$&+}}PxI2hzim@L4siHXv2?)yOafh^=l1!tzyhDEEZA3PTHEypN$l8onre{HE~)#cT0SJ@n>S{AH1AllN$LjFX|qAR z`0v;#7aG<>ba)W~POb0@dbDzz2*1XRM&y_4Zv>PdmB&q5yAWz8Pfso?phf3~o5vK? zyxO)QS(oT_j50hMuLrWPwd@FM@=a>UMB4dW)uJgqJNZS&Z(NVh7}!-xdnhM?$PBTu zKNcobhPrkzjW+?F!C0SyX?D~DxWy_)X|fs2)wpoCJ4kw+?}XS<-TcyhnYB*DVwA_lZ9GS_onSOsc2g-*|3(e3{AbP z(eQgNuZWo|(~36O)aH)Kkh1coUGfdihA6J3Xt?A`)N0l>tmnk|ZU1i<%7A_!O=qt; za8~*U!ssBmu>=D>hvhgi-O(g<$f$$-X&Zc6L38CYBJ}g0ymKwXpZ#N4_jPDXO7Fz~y;|nvi6t|h$DhBBAkV*S$rx)l>S2Qr%G zL&5@g|3|bhbyxYT&DRf)&2J2xY`S#)YMD#rb-&9}b;q7x?6Z~ZOmCx@@s840FWVCG z=`(=@8N(lUe#G_Pw+LJ^fqzWHDe2V=odSX1rbd`}UhgM&w&){~phoDY!nVT2>8X$p z?)JNjA7O$XX|W-fl+fCsx3etYFs|z@ssUo~v?3^V7^Ciy8(@}At4GNAMEA>sj>~o6 zs+x$i(c^3uw>?^oSSKw=c}S^~*Np?$?e)821$wouh1tJfYd2|~6!UR(BZiDsK6MTi z8z~kKMC`jR$m{GbYOd$dpZ-DkZrS>`Y(C&2@=p`WGrXj(#1!i3N7=!6I0VC&);JMA z>{Vme_Z_BM7Cy`6?`GK_Weg#OxIGc&Lx)@B${Wu{YCB2f%53fIAp_-=Jr)#@Z!tQ{ zeKl3>tNTb+QcC0S*H7Z5kj?!`siI`8K8`e9xY+>H)T>>o!=2Dk*qlbXZw-gJA?Iu_ zWMk}gWFFGXRNC&cbH0}<=IuhFTrMxisg(D!tXg-v3ybOLXQ!CT%u&*K*#6p!Mmo{k z&nG{^eM1D#^u<~C8H|w>j!&-OE1mybzi=&oTUMOgI)JrXcqbL+CK*jJK?*r*<5hlC z&WM5$%;?> zV{Gz&;B`=r1+wCGJb830ahA_(I~#q<64(35$5SWP-88)5={}8N65E+)t zai|X->u6mWc>9JfPjT$f2g**r{lCkjuXtPTzX~KaSK8-41(NTB`>RR(>^h}0^h_|n3VcciV829!{7NB%nCtCp3tSU-t{Id(q34xroue()fp7o_0u%q%387$A!F ztqOa68&eo#c3G$0xfu1>?Godfhasrs9Jfw=y88Q;Kz?qtZ$2m9Y;ecKp@DcqJUT%R zbGy63sP?K=c2i8JS)2Q+cLAZu;_@JK<;5Ex|Kof;)IB)wtJa7t{d0groS~rfkp3NN zS})l2ymXGD`jj~OGI+`AfeiPOaQr2UMhycBuPA@oE1%Qwp!&7mwOt&beWm}9+r8K% zJUrC7D>#-zwkMY;Y1eeQE1m*nsTK_{T?vaciH*rv{EGJ#%dHp}WmGfLbt$XI+==fljS_(&`UbAXzt|U=?3^GWbe@;#Kf(kCEPf<-A zce|S`sdo1F^G{%CLJxhvZ5^Yf0eZ!*t@L=8$1c61AbiYtHCVl?f&rVB{FfmYFV0la z^Cs-ixQGbn0$HO*5s!ZC0Ky;0_-J8Fa$-tuL7h(oib==IfyM{}`1#5PL>g)_13iDI zl}>(HR&aGJ)1sBMS;M(Ee70yldTgc0&o?%prFSKZ+9z5JlXlN_p0L}}3BvR_MoEjzc#+YI1s zZWi;%#l4vVsI5JfX~_JN%5*!eU&-KL#~kT01to}A?C_>AHu!49&f;7Cx@1TR@U{Rd zH&>(Cc1Y$4LJIsY_{@pPtb4fyXis~%f4bN{)5XlrUSIavX>IC))N=z^jm0aT)n9J? z3D)lzZ#PM+75irWJrX@B7aMl~9V}h@b}%`dvedjB@>%Z#CQy_5brCO3ZM4snqb(I&~QIUE&TrC}upx;nL*QaKSZKN@(xwXM3_ zMh!W*H<=1vl5eC9#rlQ4tDgIU#gkAv><}BQQMZ@q7m(hD?P}~%F&%L>8hm*0L)2XU zEPGq=pNZd7s@iJcXyYiTy)eW!95*utk%Mo;p@wh*<{ryP-y#j$Cp~-4_(CTCK!EbYUjVT*Bg;P zwAbyx872HrkquY(Zrv6G`44F8=7DZmOM;{R7=LAaOhos1(f?jeCn}NX1#lSx50YeF28>E#d3OL&}f;RtFV7 zGzFIS7wEusHf;YcS#5&1J^$N<$CDFzI@+2}zfO%lnnai;7xb>Yqa6E?*_W3!{KyT1 z4F2}!;68kIJS(}r_QIY~(8jgHX8i6jVns8S|7cZ!QSHMt62ocp`IiDH(LY%LaRhX& zdh6sYdm{RzS7A5rj)KbDG$)PR@HFTKtH$di_VC>_KJ7q-<}I5y1M3SAGA&cw>7_LR&9qd zg`fZ}eeULMM7wpl>WGb=MOTTUosjh9(>pHL+UIVkAT{j#^mH}sC#5}!)DMfxkx%0l z9q~#Yf<^{A?>4uIv>{|X_k&TQ#;bS4<0*XmC&)&4nw3W27+Ft}q;s|X=X=~7_2Nr6 zAH5mSuQ2r+v>T03TC~QWZnnQRWC@OYor3qW&H@>w+T(OpLJH}?hrT7&_9O6O*5nm( z4te~sc#3n);j8&nYH$pxt0KyIypm6?NA>lJFXA*h6|u{YpZeh@9oOHs!RWv3Gyk=g zsUQ8JyZ?bv^QR2cQOvcL=BNAR+m+F{?-l4s2BT2@tJJlk6paA?hN0IK(H75v1X&`l zm_OgFu2KYhO#OEOE%;Xfox-*k{ciys;XCxI%=^QuV>^%+A|}pm8-I{$Q+BZpMYJ1S z9najzy)pE}2xBRHUD!_epW7lN@*!v?*$nmZCi};ENvRz>F`H%}Mo0DC^LDDQ zL=#7>f>JEsfZm$8F~7QB^db|G#4a~~d@C(seFOV?S{c)Mee$^(w-=A~)CKR2Z#{zL zEW~a?pJC5751HybY{co^9AOtYS3yDD1?veC73C4=qP;o0sr7ZOC(;dg zn}`gr+TjP^PY{aAj;M+i4h-y!eg{h2S8+I6w2{T~!Ad<#tc_gzj!qkSNVtgg^pQY7igN0(Jp}uY*SU-yr_Rg z;ke1wX!jOUXAbQq;*Q z$6^TiXaBf(?40}Z>VN=gq2k>7_JLu1qVZu<*@CeBPxbGepY&(#KHJV3M!SyQP{}b9 zpnP}rzgL^)98DWb4X>EgxMG!k0qnOgqtm}yVTgM_>5%P)kMZET=(bn?`9dncEv3RI z3lc$nU1mzTNXXHa8~!aDLm50-e6~I1By1sN9F{1Sjw00>RoK;z1Bshj*+i9Y#a!H<_v2;}|~j-WpCb6|LMcmu!h)Lb&g zTgy|y3$vja+oLGD)-vI5b9gj9xRTzcq(3`cvi_EPX*}~$v`MUnbZY}4d`2G#2HXGN zGTJTwANM=q639RAXZ0k<@#!=#%27oA+-HX`zP`+meXWx1RQ=&hNo$S#`m);@5n019 z;R4~XhL{5;aYhF|9A)rvOVzb1M|SvCV6WeL6SX%KAS=Y#{2RYCvwc1Kd$C^h`_e+E zxOV!z>n)JnlIuj};Mu%(e~RUS+YsGFOhMNq1C|wPmXoWoKi}CmZo9ftmwCPX75v7| zurp-&cTkgRp2u?JgD?8j9OKK`%}!we{XL&V^Ba3^{a33xzL75a*1WBT-(P@PKgx=Y z9fFTf+nuWFK~yp)@1Ov&F(Ku3k+q8m6Am_jRI1W<@@1l|TksJj+1W)qwi~;b-1D+$o=jldkfMaH9KXg+^^OwZl8kinZ!B$L2~W*))YJ7!Kk-X=Pz@y9vwUn;!> zoWrxClj~~YUE8i!o)VMtB$JewMf8lp_ZvCaBm#y(&G^QUAu1kIY+>N$`%+s+P$ql| zhY%c|LcAy22juI6@-V}S9HyPR$vO{`x6ZFfA-gw-8Qwl{2|7!cy``LB-oC4)>nH!R zR=ve)op#d051aZile?0$VaAUjKwP3}#vK_A0dYRM(Vkr)pTnNW^NJaVl+9$RO$Be* z^a_C29H!ihg8lKHz>VbaHH}n2RZs8nIxSk+FpI%5le-h(jB-0>;!#;nRkNLj_so=MI&QpWj9PVrcC0V(ZsGt|wwzXl5S z?1(ZSX4K(U8-`$MmLGTS;bngTk=k>Ci^ zVfMyL0FG;nXHXP)VGmIYx^zk{D%rjZrJcqA!59tlKR4e$zm$X@m;KDv0{TDTSLQ%e z;qwIzJC305g+Qn3YW^IkC9{umWltbQIKgN-bMewYPXT)IB?n8N)P0ofI~F4O_~I3U z)UT|r>$@eHPA%+ZD0jIvAciO%{=*z7J_GIC0Pc$c@7`-@jsJB=_%i*UktZ+7@6PN! z^&xye*@-@T!m(rD>Cn`+@>RqegM63OyMg^ z0_A5h0WrJnf$67h_etH(IL$qpJtSQ;+S*7_xI-_m`V(@_XJ+rQ>0+O@3I;U8Op%uw znGQZND(tj#LbpB3fLf`&xr8s0aOWUPp$|Gim&+geR8$Ryx%qU|sJa>`mHBPuz64iD zoR#&!2PC(Te$p^?@>4T!C`QlSn$+r5(0BOWB8R;R(Drx}95!ySxIL6!uc?=aSBxHW zkk{giu1hSER7{S=Zo^VEr4oV%Na)g-EM%>CzBZ=jlD1Mln)%`g$1R0g)v~@V-sUC0 z?|TjA;EXjSe3vi?maN@4+btV28iDX*joK=1zFRC(EYRXdzXysV(wia3Egntg-l9C8kPslt0K6zB|bom(T^ zl>AgJT8CuK0|=+P+%$}^xNZ`U3{rO|FrJ2 zms2!jLl}4;f)47}^;OGF6eTqphjTOt1KN`Fv?YdJz|HNjVfyQG-q#D}yw~D#81_*n zcjms%>@aNmM65HK|707h+-A44eW(6=^!fjJ?ekBp`nF)qS4TbhVdH5jW#x~vM4f2& z%>Zb)nfvjlLA^k`&VM@VI@7PexeoqZ^2GAtXT(9!Sjdii+@>;XQBgni+x{fcpZzZv ztCS%3F(#TN6LtOW$jmhXrV+jo?(;)Gt$z8?8K^zPH<*E5fdwhh$TyM8UwawOL6WOZz_2Q{{t{ zffuL$nth%;XxVx(XzA0yJ$+HgL#6$+C!WO9O1kN0YH7nYy7+L1T(gNT*xN0gnNPAA zbLIDWJ2ed}!5p-Chwjovq`Ll7kl-m$?WB;~+jW)Ek{E!j3bkeYB4I!R-cjl}3-u2k z3yrePt**ENsO`>51}{`Cxf`oa2uPDKA#I%n4W4ckX=D|b*3)jCPzIw|!RL#+CrGE! zhXnO?cD!Mff=bJR)3ITeI9w1M3ZH2B#zca@A=U6@$T+i>tvmDg(E-B~C&n~+gSWt;Jn?EZh|wk)gL#Ag@dwaio?5xXUfE) zmalm>Um5E0zY6TOUSpq0n$7_*0GocZaA`(w8$)I=T%M3$w3|3; zr`$-7K6+hKyv`PGO5oDNQ(2&413qh@t?|>`Xo(B_;;)`CU+){AWdJh7`V(0?j*cHqPS4&dEjPyOIfoALlF%d^FpY z%GwBlXdY?f4_%k}_8tC;6i*@dTGK4?{P_L6^iNs{ zyuy*QvT;43NJzg@8UoZQJto^xFNq5JPQiD-P|!#2B20mt2dejYH?Gc* z4cD}q+tgB+8NeX~!I==%0WA8*w)*|morn=@a+O?p=Expo7T5D%eJY;;Vz?mk(b)|6 zkRl~z|8CfnNe+FG*7KnIyJn>IKC^VX&RR!!pv^SWEo-}x#@=68G`3KX8C(6NkBS)_ z8KbNgsAa&71Lk#XU={UgGMjbTdg(k}tCpJnj%%^{GpyXG&B=q5VmU29X=?6?tr4n^ zv0kjtra9fqZT)*-RYh!sx%XRYA*(Ce46HlpTag=mwfurlTRq?Oq8a*as%g32@VLgT z7fl^(K+*RAPy?eXE}Y$uN90_HJ&otv6&3$GT}RG0uHA zZ!WkOf@yE;*y5dnlU7?HF;`eEoB+5EB91O4Zz) zx=!hVNHhG3q|RSdz5mO{`(M5N@z!rC0>){7yg$~bd|lE>njuiAtI*NA9ge)-(y{eS zB~O}>-vxsroC${nDn%Bxj@(zRGKhF9a$eYXBvQ@#V7~=h)B%(o@o9jX-$p#QdGV!G z3GQ&Vw$2-=IP5?L{^@tE>=Qh}r&{JFn@b15l z%6y|VQ>?oCED*%dPGwTjpakHmu_x<=c#%aI>y#C(#9K~U1=vV!D~T0t+||QAB((2- zMLS*|bmX5?@u!+%8A%AoKaMQ}Rhho~Shr_hm9korh%sG^JF&e-61^a&L1K~oa6S1 z2l;LMP3+b2Kn(T!_LcUd4P=ib4mwc!cQed1$^Wd8cg-b z_0J+n&hyr7q^0+`+=Ppn<-l0@)%?}Szo30o(>lFl1fiI=6H?II#^?v9F*8ayfP}7} z`vkFcTu+)ey89ghf2L1I$VD@|^;z9mv)Wu#qwETzOWTh?ih#XWX*AT++~ko7+tXe1LY*KE)*V%*4o8R|;n1`^HfbG^%7sP++ z=)ZsC$;wVhGk8E!And_UA5b?rt|$RiyfDHn#sYzrs3SYFBesvd4qus?t2Xa=yPVJ~ zde_48k>R7d6j8*B7TZD#?#%hGLjR&g&a3cfDsp;!XgH;JF?hDhP{fJRH*7Yu6Tx{B z;Wr`WtE`#%WaNGp;^aTy73Vn9oQDQFlkDjP*>Xd~CV&Ea?#>(ObO-b(oq>y;MAtRf zUT@OSUG1Neq;0#YtDE>}eacJC?(?xHM=k32ki5I10nc2ON2^OW@yw(CtmOy?d;E@p zaoXBT#)=lLCM7r-WTqcos&|69RTzP_*7l^Fjt){sSOZZPGzWGwR&J|Q1VH4a^Y?ZL zq1@8VXx;iR&PLAL8j$|OF{Jzv7X{F!EV?IKEn_6)6#(ZMwUL`*pjB?{FG0K4FuX#q zd(7;rK`Uq+C&F11#+fzwS%Xu6fw7;MaajYe@ZO zY-x?2Pg<$-n|!WT=Gc^7b>E zIL5a_6|Ds>VnN&u)zEnC_g|;4r*a>{bT1V z)2DzKrQ!?$vVaLipakD}{=6i)^zlJ+0R=vj=sD+yf^52)H@&PEj=$^j5aB#>XvpwJ zD_~vZuj3Bo{@ti%pW*RHqg*Z6aEOqY)4>Ug)Is7j3_Fi6l0V_o%=%vD5Pd<*20Ry> zR|_^)6Sy*Z@)fSMgJmM2!_nw9R?r^sH9jns+gFka%oqcbj@_ZnU)3D?bCBf`20m0S zJ!>InqBE&Bb+J4Ds?K-f1w`@t8Jkf&0aJQLm!4PHYfLVYSXSQ0IhXonEMJ=d>=K>5 zbBMXYXp|R6{r3^UozW}H1}Dw5yKYc2Mux#ob0&`c8>!!~Eeq&IOzR8L6`x3~8wSdod{=a>Ib1>25#38Y3zSnn&;WL2a#Hc6G-6PH> zdHwYRWAjMl6^uk$q5BYtRn8!uj;Dc74)0S%d*#xF0L&4vr> zqw;6vWLLl+@Z~%ft|L|t&|$%VZ2A*XBh&eh8IBn3&>63dHVI$!ecSQaXx+D2i`3xWW8B5poCV2l# z-{`A!rXCBOIW%M-y_;X>4B}2yH)4*qXytsqX(x~+aKguW++Z`05!mlkC@tUmpbVtr z^6d{vzUb4nzrpF(4)gU&{#AXbK|^=9+~=fO6e309&}LQbrShN)Cu5DE!Ct9#py^QM z>N=!^p1pa)=n?5L)Pkv2*gK22vNX#3RPfqwX_xwu&`V(B7_5R{#N^dL1bN3s$DI50 z4;bU-dP2c@8S~)ywPHDsLq<3wM4K9L&6fhqb8`DlU%H~o&_^?Mc}H(F6j%`Li_>>X zn;!{T>(ImJKt`htp^*Obd>E+4S`Ocvj#(0vK4Tty@{&AQ)-l-Y1m`);wT`RB*l-I# zffS82MPpV@OSMi|wa02@KXS2B8H3Tp9cm+dZ(&C&&nF`vwY?hEt6>tf)dbxq_o7u! zYi`Pb^!q%ut=rs7J_h^cvcOt;s6wLk=ti!ab;9m*O+cpWEOLN}^m&WO?}ttFay}=U zNv}LNGYQ>aOa|YJsx@c`E3P-)ml(jq_gAk1BKSn=z=`RED@)Xoz-jwj23o?2HePV$ z^Lv$+{`In%6V#P~((2@)tjSaI>K7o)3FJ4{>I=_AQ?{4p_XgLgu1WjvAbFw(;wMp_zr$&yL^_T6umYcO=X$HXI_WHk6wJxBRy;w^TD+b-qhQv7LKB9gV7eJ_f3~0*503_!K z+Ub=DP*YchL+UdWtY~8c-!4iIKg7Lo-Bz`qcqFbVGd~b~8EmVc>oQXu(Ki@~v&x~< z&MNCtp4R?R!sbh6kiNemh)za0U~Z}3;(~{CuJtqvi8=L2*Mc)-y6rynRnmEXr&GB5 z+G?*3`8R_HQrx8Gw*eCsRk`Gf`j0xk>+M&n33kT%?Hh$O z84x_&^;ynr5}yyr=zffRJ9%upPB3iWV%(-ESQ*?Lo=sG|J~zmH^d{TwqeD(ihV@?B zYJ{uX{(fBoyur{D|0TfJVW~S?Ywuf+&A={5Ck;-q_QTU{BlYq>jSK+wI@Y}rj6^~1 zK7rSfh;!zVx_{7`gAaA&dg{zE5E43Qs=9< zYgJ}C!bO`q!@75?D?43obn!3t{tVudGk1x~*icc7Sa9!ct1Ol4ZqJ;%wd(4_VJRW~@Y(}ua))!v82%4#=KC=g=Wms4 zyt1+f6EMLmwsN0i12~JMrc%fLojYk42;EqMO+|5kS-}(HP+DlWp!tcNt+RO_b7#)) zNw`PGg^N4OIRd6h)1$d!VO2W?+{M!2UK(||r2cNpvN6DPFKsVdiW91|ZCjTPQJeC+ zZ!(oOA_y2^w{}aJ+hF=DTi0B(q3HqL{%t!8;=%ZQ|LjfGi@jjqty7?=Vr(hC9A+sf z%I!@&h0sPNsr!jlg}|VGBbDAN>~5u#Ws%hiyKs|Ukvx80l$rEI${R}q#fHG!dqR*( zzkY<R0o+k@+?HIDggvF*_xl=y-@PRu95oGC*VX6nFt#Qh=FJ_z9i%c0pPstXuha92%0lJ2t?0 z@=X1@Q)l%#FB@AZB*U0F+#m6$lqG=2@G4>!6whHVATQt}>P2i4ESn#LZBJG>i@|ku zeNLB%JFA5}wM~%v5)P`=qp22cJPlQoQK2FS&@v7?J#9{-0Ml+|Q?_SwtnU1v$@1CF z1ClCJOby}U@br*0$b%_wj9+EdSmW=2(e3AurKd9akq1A2z2li$6Sm>LP@qy{xGP-SM}5qwUj=H#G;v(`+^?OxzM z(liop8g|cvqckSxh`h2T35C;n8(E2P=YrFn^y=^WoqVVRkbB8i)mHr?u#=ciYC0DvI#3(4PrcG5D`(@vX9NmVIF4ri~GBn>F|oYzsp z6_}#I8>By-Yh^su)bi85N$yuEv`oDBFZW@;aOUNBO2f-_$KcZ4S_Q<9m-nFc@q}-$ zIj7k@xvYf@zO8w-+I@Yx?U~?NyzY>wxVZhCshyl?kQaH^UenxW)Z0Lfnq~>U*@k&9 z?c}k)0^Iw!?gXvfTFp|EV4v*;#l`GIT>RxU#6oW}I=jG&=BQFBDa{`?LHsw>qu_9z z*M!sL9sXP@lI%J8BS=sj$_R&s`@d>5pADE{G`Ec`RFu{4@Om&8E1gEW^~tJPJn3q zxh8?VT=0QzOO*Ds1^1LF3`+VKpR%Zspr-tw)mfN!tRJQl`s0)v`<%dhmhe zjH{D&dbe5R3tswAp&DCxuT)Tb)oJp`v?_Z>wEd zgL{*6!=4T3Wv%oSoUkZRcH&00QY&bxwR_)i%mBpsWt+KZKJSZt(KzG;JnFm6W=a|- z_-dpO>AQJkzGe)j2FmI^AvmoCk zj76j=`XhukNF53Sd{Rn-rdCEN!1e0%!iqVP9%pB;V0@{=QnvNXy3JfYY4R$yynQQp(DAk1cm?O^q|^&l<>GSX=$lYo)}*T_YYnVe@FC`) zL*znh7Jb}c&lw#u)#SXi+U%m6-;FoIq<8fXSEdE!A|Xx5IxFva4ushq7QzC zy#%CQm!7Zc;If(nc|XvHx}gLTM02cC-*${3O35AX^nhqGKmpTUo508$lcf+GA{1C9 zF18Z268$%5;UeSQV?KpxN_^6iZT54U`|~U3Aij~p7T=uq8~7Q$(;yg8_4Sg z&dV6y6LTHl?)A^@F^<(k3GLWj;9)|5SLJr$?6l=&p<}~Aejc2ItBB6s+t*L|#VQqV z^(7!q%QKEgO@7wufgi3%lpmquC*+1t)zy(o9d~L1Qjt`=?gtY^8QeSlN)IMlREHZx zbM!MHA9DQ75EJCJ*PfS0fb%lgjwZd#Tj9YSX+8r7zHahu$*1 zz^!*aa?aHOv@bfnBKieKPX?Py%LWCP*JqUG1&#wOLLm}z;!_HGGv-N`nXp|q6zNo) zV0_Hg>?AFA`s4{pU3BH4mb7^|pLCd(DF&$iV+{7@cD=p_o>-#Aw zRCye;!gXEBiAk-B*p7NGDAw#n#*~C}k1VEn#cbnU2imnSZKQ$_#%x`xp?-1%CXGss#H-ION%FGuZCt(U#tN}XZS~=0$DPDt-=Q&n|K8;PHElk^ z)&pVcTY^1NtXhks0& zxdEt1Qmn;nO1;@^E1%U|=rhLl(Dc8`ptYN_BQWnWH6of{pYzqEhouEb(`OvMrU>{g z{`U&t^KR#C6K`&Krr~EUo=fy&!53%rq$B+gwf8PI1`>pr{3H5Y_%}(Lx(k0?>U&?Q zd+088WUl3m`+<^^PlfdzfjPV%d3cfd4lLc7^(}K4drOp1S4dTn)7Em{syGsT<67Kx zX*%h~oOW}6uvu)Zu54>b_2CR+hTp|k8iML)AR<=I2Z?J`v-bX#o)0lvp(oMuF2jf2 zTn$Qz$mx@jJ=EY=Sy6oAQ&&jjKd{6u%gvxl$N9401 zuPj=RWo5vUB}{O$_)^6Z@m6!#HOBdZ=$$_(SF&l2X}Q4v!F^y0*EQ}Oo7+qEC4HQ6x}>fJ9@P8v3IkA8xFV|C@}W=uYQ z^O@ZT{cx>~cJ0o7On~e{Kn$lq+!xQ#Dva7M2|;(HT22`e?JZ8s-!56~Z#Mvz`e>q7 za)@IcZ{-5tcJ+&^H)vJ%$5`&wQRe2$J_Ht)anh*oU6PZWjuq5P=|F2sw9-IL^J$Bi zt_PV{iX|F@no$`2b#y(8Sg-+{aUGRe8d)J;dn>Kc<*mDDhF*UO2%%g0U$8Zyrl(Yl zT$x?(E0&rZ`0Hwe;kwE^*bVnjWI;<~9Dm=+BZ_l-yWyPGrNa|=7l+>&>#gKCQvDD$ zmdNEZ`bpi44&Hv^k9eth3Xe;XgC{R7w)+edM7L#kWxY4s!vVYupUjH1@!g#6i=oKt z1gZX+TVIQ51Cw@y|1P&C|0=hnHovm}l-p84Ve;_S?uHJi{YP53o}4+sjV2;0dFJA8 z_wQov>>G*b4jp;9_M}Fj+USY7>$CNqe-JDkKSID%IJT3Y=0p4H&Hmv`TuwOz66O4E zP2)A2^RUoJ=4uCLhx*;jFSZ+{^*iVIuZy*$&v~38gC;p?^KYWG;p=M3K~!Q20O3>E z5~gc`P>YFiop`Sx^##NApGPrp~}R#%C!WGK6d z_fEK4RkbO^x+AzrqfF8Xgh|j6I$YchuQ^aA8y1xbv^w?HO#pA(dKH*xQ5ASf$xcqj z%THp!=C0!PF>|#?Rz}wMqw-)x;Gz`HV4$iYK?&rTK`GgJ+gF%oZGWtkyNLYE;d1zN zV9odCO_*%w6Xp~1)VRPR{u~w1`LScYFH{R>+vHB#Ri|!!SEwn8@`$ZO^*?<1w(kz^ zDmz_q zr{Q>13LDV-BRQi0vBeLf&RwPsj*u(jNi&2b(&%*Y_<OD7R?F`i1bmm91sNdb=2F^r- z4G)mbCU|^_jn>CP_z`w22$@GwiB?g2Ad{ND z<@{vK?>C1FY}HJS4=i)ABMLq~#iEet|y z@rt0OH+nXlqaGsB$Uvt6mdZa;%D73R?zFzoA|17KFK_&Pt>j0FRxuX-Z`adE*L>{P znSIj1_oZJ*dD!2tREfQoQYBh-|Qy(!{Ko)>$LEXRS*`CNUkbuZ9jVfhu4IM&M5JYThWn7KyUJ ztD`qPE$qK2R03oRv~$|#QveD&dFGePzgmBJdg%QTjo`2FU|_0dqp^$hEIyEy`AFrg z3096i7L_oFZ{-c;rtfz@xKCv3F1FQ=NWWj`jAx z2SAf5+ssoikL8t^H-4}`UXr0k-+g{>wU5%7BVI&j_87b01J%vsblKdbWeS;Qe+>mY z*mxF|HF_T|=svYv1AeVM`ngQ_&|P^w>Wt7;#d_!L-RQ>4TKCQN`xwP;(ubQuxC%LBwReGEzmSppRQtw4CSn3(~2h&53)%1U{4~SG@Q*U4o)E8b6Wt|oUD>`jy(!J-EP^U5@JF{5 zyDi!cv7+NbI?BoOF-XUJZwbs3_nb@}JDuSJS{Yk(#@oX}24@@9j)+Y7=xvR>mOUSE z@v1|Aqbpi*+}wKdZmi*sO_B8NA3O8GtJRTqhLT)?Od2~0kw`pN$kW7qZe#MnTe%1aafEyh05zxRW=wr1X_K6xk@ z#L+J$;`H|4Ie1!Rky37mq>O5u;^CWmk3Nd{TVKBM-IE-yh*~y%uhc~rCwK+$>H)pl zENRNCNds`e?5rWjv=p`tV8#gtbCr_d#apXfs?z#t*Ycy(YtQbBuh_0P5L3S48mi=n z<)3HhN!8L6uyBe)+HS(2mW4Ot%dL?!ms%C_2+~7I+(C`e{@)K>;(hXz-?FOJcD zW;Y*FnPTX>ly}s#5<0%UW`~N{Fx9XRxq2aO5%_znrRa<<<64v+CN*m`_GzE;Hg_7j z9om{oP2GH}E+5F*veH(g#lQqv*v)i$8MNp|Eg{pnMafjhuiHO_V%Ee^o4d`lPDlIj z=6{oS^3bpDMJNwg)kay2vidr%I#|jk3v(ZfzmZVsUP;^RkC5E_dOu_6A#db0(Y^)} z`o6Bxo7)_vkBl;sx3NLy6Xl0-k}z~zkE}U2`_e4!qai9DbFn2-AZ4(vUFqCmNUh1S z8vTr#vuZb3%{PGn|5%J!4z=HW%f6X{fy-@I8C2H>7Pyi&WIWVkLm0ZR)yzt1z-^-a zffXu_Q*p+4OSb`dYSo!Hx=(tJW9F1#+R#bCqM?C~RtM??&ncpdjB9-F`GT%`O3kpR7e-Z9{!eGiWaQqzd(W0=kkfyw zvr`T1YsbD<-TYN#vm$J5c1Hoic+I?-{?4^2D_kGnU+jh*^pG=L4>FPbso%N;v$}2M#w? zB5Y9~}eteG%$yoTTAh&2B z^v|ZaK}ZQM#a(hYK9^@k&J9on%A{(`9n;jfi}{|EF}CGyD+vp_m`J$!Jk}5YaGvU$ z)I2Tc1P%pfB^8u)4nHoRM?F;_7ib`tO7AfTSr32~Bm zNm?S*!h_&Gie4ds>8E{;`u8}`l4>OZ#(Q*Z@i!XurKX&82 z=GCEld|xJ2P9H1{@kV%@AwR=#hkI{>mz|g^aNtRprF7T-V{wNe&=n2^?G6ks1zPI3 z%qX?`Gm3A&r zs%G_iHQVR?i#YxXqMyUc~^PH~5sv78X%O4&2^~H=^31yiZ4JXXpS}h3t={wwc#D<*!#iv@c>Aun<+G3lv%E1)KG7_oCbjYTa)262kTP)jOK% zel})3EHa^Y;$q2?ofeUCsMG7LR^8Fz7BT-@74Ny1rK|k%F!#A;6U!n&KOQZ$ksv<# z#LihsVs6n(c_-w93~hbYp^d}dt&Sjyj%AyqsGNNP988ujAgnT?%%v06WL6b{+kKnH z+~YR|#0>?70$ztp(SaSARUITwB?NQh+bvwm1v}!5z)c}Eq;IR4z(f278n`W+zoaCi zyc+oJCc9*xsbz*c21x>=YWd)1v3v$dI#3USOy3%)f?{~5SoCXgf zsywVTvk~sZf;dBLGW;)(wpD%w-5byKWbU>D_`q%HOj9119`Nt1_kSPh$3c%h$1uh7 z?zVORZH#>m#B4nXH|<5%D!c>$>WDYJr)=HGS-s`( z_M7cD1)tCr{gI8{*9u-knE{9nHOgX36AqB*KBO@ zJcC-ZP;MDttuVX~pY4I42;IT=n5%^oDqJK-zx$pQpZxpqjY;dP4vU`(W1iXi!4Sk4 zY56l6Bbo#4^C2^-dFZ9*u_uf1KEXQcEV9ek?1EH|`i@;uUct)FLyh!>z?hVtr)nQ( zhhGlLPs4I|6?bPx%!7J;Hs%NIKmqa67LodW_fIbtl?uy@nl&wVmCt>3E0N7L6}TDj zDe{BqdD@rfDhR7q5;EvR5+5acWWi@_ZVWmPJr(q;Pg-oaAp3kwoTQm@p!M_6xN)8> z+LajX%G7~Xbf|vlS1wc8MW}AyOM_IJ_ zapvpvfK~#;Pyl8qx2p zypGnY{>8?iE5hO4ee>(98zL$vk{b`84zdp%hQILab+c^JFdSImkqlSdv4xd~Z&Drr zR~24Co%-KFLx6Jy&a!!czkarOeRh{i9GN z+iG#0A0?=@45Rs#YU1}M1#oJq{RcVJLBxoRc%9=p_wIFSm%KN^G%u}iLMXwK4*;+=?n4>#>`D0pMGI1;!9!J1_7yw?4zJ>#UAvHW|EGzI^$-V)? z(a929eHoqMHz6)pJ3sk{u)aLW)ai`#U5K7=w}}}1ZFEK)<)9l9yrk!!Y^%%DY5xPf zJ4^Ux-_9Dl`b?$F^S;hmAqcg|;g48@Gp9#70crEXc?mPRJ^#Qpm)A1Y?)t>nP}$Bw z34u2a_KTEB5Es<>Wf8Ajhj>H9aom2 zUsm%BZTe-_8q!oUzj(juH=g~W8pN-DC)|W*g-QQ zn{#uM%Xwb0nvU&?*DF*Rx}aQH;zxM{HABT|>O;qJ44biUjd~wFtBb-aoXxgFZ$NDc zWl8!HI9YckT7Sq!MT`3-r6EGx%w&DV?>YeofU^y%fglVcs5?h|TQ$0}tOt_2gQ%|?F zFB-(MpTretFF&zY7+7d)C?!P{ye`i2^%Gh*5HO)w`bj|uVCd2XO1HPsnS>e2f9{H@ z|JoI&MfWB;E6LlC|FD+>DHQ;4-Ae=Na4QYXv+8hwEQHwWE`Ot0{I@JoN> zhgdOh+S8a=ts07B=87>!k8x_tB(CuJ-428KlIh)H@DA47TlGVkgLVz8O4!#^!UUs7 zRvEe6fDi+ZHfq!hX#~Cko`*>zp6lHypR=|k^{pE1gLoxVwRJ&E%-*$&R{9nOb12lF6 z&AkVV16#sQMtaR?r(lz2T`KD(jzq<>-YY?N$_=S5p5-s;8KMe+d1x+`*nS_hQV~NC zUCI%q-WFQLZ8{{SBX|R`o->gtjSGG{d~sBQH9t(Hc1dr?d!gjq+qBw2003*!7S?>* zy$E41-?jVNUK>%*0P0k>nkp>O6sPe@f0xsJs&}83s--=KlV;Cn#@cCEuQC$gjT<4D z#mI<-!To8D?{nT#4`whj*+W_urEeh{xU&ZNK|Z}J7LjL60dtcT%4&k!BMjQ8N+%4) zqC)yoKEowOW+~;X>H(lFkMFC@25tOC9j}ggjX6f!{4a|mP;^Z)<(XCe*L#qp>jzt7 z@`4*k+r;kGxky{4l%M`cewFJFTVci{vSW4*{TMn&F~Dhkuc?ALi^hJR{Qr7}75f9C z9b^)~Bm+JT3MAF=Z5KxM2u+i~DgIIPus|E!B@4u9eKxJk227Uc&6XqPh~7zkY@IUXx4#ya>RSuv%=BycYY1t z$Ui;6mW)w8Y?g+>b`h?-=~0^hj$c-qcGH_%V*IRA%FG&y-5Ja=Iph!$`*2E4n(?SA zVZ?!OZSf3?*Dz@SmF>4T*pV+#Zu#smQ>5T83x25b#==8v^xM5C$%K&*HG5dIQ=RtQ zsK~Gj^2@sz+6%hU#q7LS{xxaB1p*Kd_gAi`b_{ zaEo%e^a}RbKDCzpCR4?pD}P?sPYLjEPv`r{+&+Bjv*@e3ey*`&nPdaY&Y_~!s?v*~ z&x=ryF4S~i|ADg0K}NP2Ue15(_0_NqMSjN22dQkYBktE$j-*d)H8)1Rkq$IJ-A9SJ zVpAK1i=&K0!YdW(xbL|?N;+|l5fxtsx$so(;<74lUZc2&d7<#_?T^!omSU{l|U*kM)RzH5I)ah!K)=nL9_l= zyC1*W>>CtBPB8^9&L__pw@tRNgA1_u6?p@smuNOzzVs=Y+!)9v5j$zBQIadXfc!?L zpvRLZ*-I-c@$Wa+U2(%8&$IGlB>ml*wMw?8Z=)sygXN+iS69-R;GK))huWbv3{(F0 zD{QwH+c$A)3?x$bO$&=&+r&M}`20{{2Ea9Hn<{($6>9Is*V7}%GCm9}aJ}_**B&vg zheOhag6vbNPe*Q}ffGPPJ&ZhtT+J$?AE&KVtpO??ZePeyAg8`e^M4v3dGdSi@y6Gj z%9Vd6@=lA;(9g8ia}EJrHs)6C@t{~9 zdEcaa_P`Yo9PQZN1z#bF?Yp;+wA3bx-vnqE4x`O>$OX?p=S+C5$CC%ZF)rJA!}*k{f57i}GznSN1>!lgu^6XM|99wdBob?evy@21>i91g5n^%)b@34F?vt zFGnB6zUf)0E*v_Yb`Q-0Sa6S6-*^6;^w!RP6T`6I3O1-7Q+-oka$ZF1t^jbKg{qaA z$$XSOukPmZ+Kl+!Bjl5pp?h?qrR_JvmhwVN9#_GC4q?q)vhwchzZgXz77Cbxle#H1 z&|I5ST%WdUHD@p&dDfPc5PON|j9XT>8#*%jRtaDu3opQ53Q%J|Hp{vub%v0Sjtjor zY#|I=+}3_puQ;ZN&{%m*h~r+KmjX)*c2FMmWEibq20Y#oWz?R{uHv`8eV{-Ab5+o0R3CgNm8_*a)*D=l3G=FxvC#PbXo~7wlU}954D#cZK=W?Qm##vgU zwI%OBM{2FF*7^VEV=-{=v8X!lX8Z4kG+;mHFQd4hb-IMT)eT+)RxL(56dk;UYVp*Y z*n6PNiXMOVeiQFQKi@m`^x~ZdQ{Uut^)mz(02j1nk4_e4Hd+Pz2oHbxI>+n_Yq8U8 zO!At~#dcTyPC<{jAXEKaSJC{f7muD>-BZ;GnkYPq`AF*rca1#M)d3t}&OnYvm)2To zCT4F&*)R%Ys@^qsFZO#>0}hQ2px{g(ZVix;>PC;jFX!6Zf^1Ynl2@kMX>cMWs8>Ha zt%r5fu}{;De|+-irRJiBm)V{@?4dTZ2dHw5xz9yZ^PJ_^1?}s4qWjHGtGi*(R#j?e zR7f4NxA1TMvuOA2l|t5vo`d{^#qR#aD$yqHjQ!Bp@`w;$?xH2}v893*o1~UM-~rKs zXqbcnDa2^Lg_Vo8^xMj(PU%BU81XzX0F|IFT*e=_7Kn9bp_eg zrY&nv7)O*m0ZQqw)F^gyhxJzR8{|R?xpmWMSwzmHR^ERuP~L&+EL2lfhD>P8G3Y)% zo?-X_!yCL}#hK;T`jrJ=@CyNjq z4BdHQD2JE#sl?iFo-0Ma>SZuwlpJzO)*AA`AY&Ft64@J9{&KAjVhv6%X;KeLe=U$=mxWW#2n zBzhn|rxJ#}7)^8NeBuRLeTcR`6CJN#Y&kM(%*{lI=8!o0=6N9aPW@zT8FHT5c!xeT z`BAubH&}0Xh`3o1wdb*1ILz_rMw08t7IwGoyMp0lI}Ffk?NAKla+4V6M(g2FZZP4F zKsWtJ$8rGCgKSxb^sZSeY$ew2@}V*wZ98p#(0cjSeXa4RivKx zv{1LiIhEV*;%2le6;WGyv;Q)BNj~aJafD8&f^tgwTQPyOJTZ9X^bM%1wkbY48kfxVbgm^Eh+?vtyJe)WDJr`c zCKL>mkj@CT(WXM3aXC)2F8gtH3*J4`#XQSNR}rlJ$g zb_(6wP>%79!S}BThP4>(BA~b$DsG9gUK~WZ(#05O1|i#yL3Ny+s-vVmb0NHyRBFC> zZ+VnMIWcANrqxJb&Qaa1R}RT6lVE6uln#56oQtFw!Zo&m>R~`q{vFEk@!O<2wR}yT z<5D%DN(CwzHK%ey{AZI;knGWlLpO9A3Sw&xKf+75y~&u(UX$da0vbAQp+e4kciiE0 z;;{Ctn`J>1QKg!N4LgOvx2SLo|ALVJP}G95l!}G_C8}vgL$MjEXbYi$O;u-F>h4UL z+`W8PD~*~K`dLh=wlm`=>Uo*kVCWhX4Pqmw0+CN=>;5n<;~n^G}yE*-Pl($MNNu zJ=KpW;L{0{29)~$ye#wSdk?-{LMHOR``I?X6m48H?{3E@noaPw34(3F8Qck05;=16 zd&#kjQ_)B6-gb`;aJ~Jr+R1az$V9vE#goGbGLgKw*Wp^@1t=OcfocxVjZA#(a9thS zM!$KqQSw{bZsE9{Vp0A6mhFH;n1cZXcl9WD%vD74@VeDs97zL%!A`b$b;X%3iQVPH zdewb~e5aNS6Mn&snvx-ToMs}cjm&KWSzgH4pHa{{=sriuQr$jPapex|$FQsI>5=0T zSrzRZyVTRz(0Xp1)Uz1ysULm5SvyyxpN;-V*IBY4xFCIB$vv)L(k*|v@n?%{!;T3W zaXkm(q-n@%lMr-Q80F!Y*iikl5U78r{d|6G{OG(ApW(91-TkD$63s)(wT3*!M(MYq zv5{wFgTU#mV6FWEdDve=dIjF>c20GoIM28H!T6&YC6If_iuTvcTYmS=LeH}g4oVyGu>a2K2#KKbePm_0YOpY zjyHJjGu$GcFg;)4sOLOPI^_TExjDGIcH=Ii`E##l-_nYaWl(>cg?$El78opQD_mp6 z7}N<^y_&MlWesVl7OBN{A#kRN#_!u&h6_)8itkQc?y8)0ybW1z=;&Q43}h99<-&e-B-plc*l^XN?M3j}dKz$e_`v$#E4B**Zc z#;@%I__D#N~1`4o4LZwZJCMh~5ATQyA&p z?Oo*$L1$fqT{F1D75%gB>aKy59OV3aaHXXg@j%3c_8M-Q8!q5EKPU1X3YEN-RM5*d zT8Y~Jr=NmLygst@DCmZ!spQtOXuMK^#V8Ofrj^efATpmQ<4ThXRTp@cm7C;ago;0H z2#)7vC)1ObDw1YWtWo7AYgyY%Iswk)3RnN{;?dCbN~;{E#?$)0QH7XdNMTE0tT>T7 zTh!g&=_7NIX*~BjFCDtI@H)2re(JJY>#L-R*(uY{^%Q_uwLXFkrG%}ES;*FLAxHIHflDnWdJH+lwzUfZ5GrpWY+k@e?WAqNaU}_SMjLoTB*JA$u z6w#|Qy~~7+$>1@h_VBtg&w-C|oZN}TALrMl4$1gi!Y6$+YB~rp8eJ7VItXg4O|;_V z8z-TZTm{ep?Yi3+6(l1O%og@LeVf!^IAM3)HQS)`_5)d|O0v1ZSmy{vB|zFt&}Mu0 z)G29>;)KN__igNRS~@kH-2b%frZm336T1}^0QM{FDTfcao zk5hqx_3~jc8w0_Y$A+uN(H+*d2^Cc1Qx4_9hg)R_;^-Mtx>oi%ynWM$&kT&Xm^BlU zV@dMi{@~N`hpT~+7XAaW^v|A4 zqE1W3p-TlG%DBj;xLiRwZJm~G?7h-pIHF(T8pM4u@qADXDB;tp*S7RQ)-#eb699LH zSv;PxZv3Dh`?lb6iUi$gVX}1@9)>uq8_IqBuDB(wdZ~=iYqae?r(h_~2d)z>sqwHF zIlD*mVR3GPD=Tt%ktI8e4#K5~8G>&jwJ5YCN7Ki;E<^?oiA%aP;!2Kh$k|7#KZjC* zg0ep`774ZJLN}o*5|uxJ)}n8cAMzhqvR6iF0rarKc5rJWcc2IovNJjf(W2|lO>ka- z**hz+HQh(`h18mfvi_ZRJF6ZacV(RgJ8P6$0rtLoCH*(FU~v{Rc?*aPPjH9<6koN~ z|7dgK6zn-PcKn|Kp=Y6gf6#}8Zn^c|aZy+i8T8v|u;3irIPmigrF##4&9Pg*qpEiC z>Yr@}UE!~QGM&G4rY$aC9rkpubQ9E&&}-c)#I2d2-wo2mEiP7%=5oXR4t5<$Jz1{A z8Sb2a%&oZQ2}w9OK661!OZ}U|uq69WE>HK$wyyH(r^h~MmoV3Q8m{AuobjQ_yYLqv z6*R87!H_K7+fB9MoT+Wl>tfjMiAo-ufnJ_w66#fq-O3L`8{vBHVUW zBAQ=e)Y(?tKWKt{o~f#k0Y0&-f41$1g*0UM`Bs7V;q%x*jv}U*QVo~YLF#JA`*T_6 zhP1_m6V+0Cj@v%Y^nDQ36~+5=P!_hl-&DquPlnEx=6GM2xNyUAr^6Q=)|#Q+`)F9^ z(itrs_7IeQF$aQ7nd8Pbq588}S()Wajpf7vhw3fb7i?RSK95L=6n_;l=ny2I+~-Zp zI$1P?MCREc&wKmk`)H!WB^!Pnb~k38byb?hOwTn{6fViaXzFa2K@W znX(cai6zDqK_kCE$kYIzc;lS_I!S`gFN@ehx2LtJ*v`NY78v$@Vy>ue!9>x@C)tI{wBR*hF*RIlb+W&O5$czrhM1oo!v=kes>=s~O`o?0MEvaV+C zR|1+;yd6zUnAc^$&EA#tPJ{Cm(=yiWho)}r{;rF3lsGHPM>t8|6^C%m`4aAzs132J zPe3NX(WNm1wa)vOAtr^mCKK~$1^P}5#IJdRRYebjEHsAl2GQGl>x~+tiO8VI!(3h? zL=D5QPq{U}S(-t~Z%ohjj6+WBDBF%I4;d`z@b++y3!J}+IA6IYV7W5ho_08NM`rlX zf1l8Qe{Q_A=h~c1RM6`EM};QXQhG~^EKo_OM7J{{Z6UXVA_K2^W*IJFb>UJ-tHmB^SY@XeT$9!0LmR53m z??U`V*maIyjsjRATQNxujD+F%#?A`p&dmF${9rWa zIHJ;S*G48iN*sWJBq#{Ug;wIsq5gAGhT=LwLsyF2Kkgp4=61*GbOX8OB-OjVyEBqW z9Qq2e!hS-6s=lT@sG1+8*u7<3EMI`$z*o1&%TnlE#D?YNGRMJ|OQySR$A}@*)eRZ7 z*w3LFV#5GEFUm6xaD;+RK)B7T=%%q^zH6%~21!1o*Y*pRx&wtkfM!*WmqfQaKIDB+}*dkNuh! z9D`y12a05(aZgO9Pu7ei{-ZP3TZo@H#{VeFYTSy3O6RP?^o0Bmvi@?XJi2s8BjWZ! zKi3y(uhbXiwys9J48MV&hr*kh0D*2A;67n?$Eu6$uF+cJH{5fqJMpC|_l7Q{QMR>V zNv`jzv}eeQ1TFE8&J?MiGsmPpfJG1Z_s#Zhlw2Uod$`p0(0^nimu!b_p*w(7{ddOL zg{2Ot?6Z(*v%0*bVMNS`Iy1gWcc(?Q(AUhs>auAK>)Y}$?XS1wY#DvFy_S9qU0Y`^ z8=|w6G=CLn%KHql*qCO3bQLb^Rhn*77L)lB@QQ$$H-yvNQC0l17bT?uakDI1d91>W zRJ75;65eriP_-GY5^eSc`S82}lEQ3`Y3J5VLr$7r3?kVY^WX{e!L!VD9!5_sgU|io zTx7@kg@g57>yfR;T zqpCaOq!V}bgst;is6XXNckyC!IdN->!g36yib$%7Ytp2YJDR3 zT*ozOJE*RMO!5C-vJ@9(;v0veTwyl@HF$wjxl{w>qEEkH*jQoi=+1Sbytsi)#!x`= zh|cQ6A%AEi187W6XPKcGWd{X6G`m#4m0aKX@ew&-C}|@Aa@wZp72R=0R%5T>1*D)m z{_=ic)1CFcq{6DMt$Uj-85+7}?i5>XnfObHn-$OyWL^)2HjjglwnE5vKJ0U}L)kp6>y?Y~}Ph$t}HuAa}LjqST zhI+}H2k{W)+{d>2ie>8=5mEF;2H%HD{0R?4A(b8}eFNe54TXDDFfip`Y&Uum_E1#w zDq~w8+y`Y6*hFR?f?!A)D-N+tz3;UMs3Gop0YS}QN zFG?%pIC}88hHTQ*-#sLkRZ?H{x+%xnz+v&TM~D*8inmn;2^uubTHjK$k&ix0`U_?N z>Z1&1so2XGO!7f~3@$PsT-UdAR4$2`;3#U`bVPrEhTQ$v`;$rfuOiOXM655d_^+0TcGo8*%F zAzCO;cLcYJ10I_3Ghjd8?3tYIj+Zgo&Z=@9*9vY;tIV$sIbebD?b%0-F61xquD08b zoW0eeIAmqBnh#l6aJF&iw+?^RZ#r~B&LU0ibF2f{4ci=NwzG_STj)d8=NV0Y%F@+0 zw?-H1b2D~x)5fx#sY;C4joF8TQIeX2T*ilxESZFFna@8beVf8A$wjo)^>+P;6@O*a z&aHCYD1a0cu@q7G%v`9fKCb!pvW2{`2of>JWteqa$0^h#B-v5jR&51sRa^s;&H9hL zK=Kb$Nm~Vc<;$kX&W|TywkJFvgeS%ErpruSK(&1yg{x&jlOmLAdRcJ2F5g4{`&sS+ zhPx2u8NviD0G)bi8-gvYAkZVe%6bhICK^JZ7BuD86%gh*ub9~)OayL1^z1-ID=uI2 zr0e7kVuDl6Te-k-E?)W1m_48NFC{HK2|4i36#>&K1h6>!Fe4otz(_yiWh%*q*^@Y>9(nxs-MyLWvWZ1k@vlg50pr; z-s>V^_bMLSH5Jn_f=Vw~aemslje?&LkWBrzd@3Z~~W+8mWFh@q8l@{p!0HHM6(v`Qdj7U7wB-rKzN zQ)P$GF`ZeNfa6flj2;s5;s*H@Z3fpVVYNN$xasE^#mh>76Qekb2PF|sOjBp&U0u%18~M<#oE%XbYM(W-3Vv)A8jp`5C3t%3 zLlKWjE4ojx3*mew z+Kh9i0T{MKg|Ag)`k)YcXz9U@6>%eh`4Xitjyi6I&7o&c5J6j^Q>bLWr*Q=VOpsGR#|BC>T zBn1IVtbDpuLq%!HnW1YR- z2Ge}oMN)IOs}B%FZo|TR!@u;oxzD96C0PO)gmy_N_0Q1R!1#a}3AqV3!B@*j zAxS(xp<=QulgKh_e5)X7YH3N}v;Nj^_Y<9kwGCfY(az{3eLRT)o|`cjm|uIHD3t0# z)9|1)Y#KiB@uy4*v|cGIO)}qtXzCgV++>p%bzo3mX_FkYZsAuE*#S#!sp&Po{7>XF zD(ND~mbpsW2ZJM?Pu$YL&1q`vN$PZ+bLhj=+F`7`NVH0}G#k2&+I%F5^xuwMdwsIa zWI6C#4#$cXZXBsUJ7$ttx)X7|oO60PXeWsu zS6u}i>TQPfyJV{;nOAPJ-*i|y-R!vCk%}X4>ckxoYAAPbpcUSRyVNVql?9IEc1JFC zv>HRYHBBK@b+C8eYgmo4v=Uo&^NA;tk+fd?y1@Lkm`)~T>dOboH6wNE2eDag*T7h} z`IC7%fB^s=7Ycc4=2X0vhZhUp+y zE^=xbDj^nJ?L0^kXQZBfXx!HrQjZ6oUQZ_|S-_ADwI!0*=C)BBwBfonu@U9Nukc7! zU`BHbpLw7OD_)7&Z*XuQz%TuEsc#Fs$}dD~iJbU(MN0#QTCIq( zatNB6jbJ){I5vONPWI9`J_0d#GCY#ddXW>+P|}r(US%%$wemYzUw@ zTvO$Tv*5I!lSMW(>3IbVgQWGy0x8eA`+-%z&bUx_0UPEyIIu#wAQCb5!-DWYSNC51 z$~0%uNyh{!5u6YeHWT#_k0hDvnR}aWA44JR##-(YZ;B;?eOKGzp?$e>BmF+5sw`Nw zic^u)yj_u_amS}jc8}Va5j8gyJD6Cn=Lhfl+R^CZo)3XUVJ_A@k@wUy*ZII`x$b!D zyxKs{rGe!eO5_0GHTZ4JJIm#xamU^@j=X09FD zmCl?uYqS+FH=p3_YxMb75fv|X+hc`oVT1Op=ID3p{8j^5?yh}V* zN#vWFdiw7+-9!;9BDLb0_vB@7*W9V@Bkbfc5eN)11{& zJC%{yORD6^2D^K?mE5j_0eAO9_TM}h)rq78+*cSYCF>$7|Kgs!-eF-L359PLPsSja zyNr_LcDmi}Xro~CjD|${ywi0W&+eYtFJ>>UQtVC?^cnh2l|8mnkYmX7IDPk{@Y>&IJQT zv@eoHcDCOAh$vW^#%f;d3L>Ydva?ThxJN;f*VUtz!(*FoJ1@q(1-yR`LTU$unLvoej%7Ix8ld}YD_pJcON#l?mn3Bet#(XSu#hC^?x?Ex-_t|O zw~y$rkLbHO6`CmkE4ev0CztxN{MC%OT&3Ys`Jd{W`GkTYD zVx8=Jf=gGq0e0eIer5lnUYYkJ>n7v(4RiduMw3&35vs}r1;;O~HfcG(r_ z`bKk%muiv5=_A6~`0FF-hB#BP$cph=`t2|lfM1(MYaK5S0w5+|{`ZgnmxE2h{EKr6 zFxD{}3K;KsFvS?js=N-ne9f5(c}9g?99CYmxK{*p0r;m^!Z1Tb(;Z)b^0k~*gBWaw zmg7N7k-ykLjCAox9Q$-^8WdiScx#?#W?ML9>Ka_fr zddRPD(Dk`eu+{CqL}@CwXsfBydE9jyA@DOx=>dg|l2-?dD!sK@cq><5iHLwZ<$1WJ z8*td%+bbX7RK^o!b2MO|V7}tSb*^CFy127bN}G~9O0Gb_&*}_Sygg3bSt`Ap6PwV{ zhWWKUa5wXvd2MH$Q=?aaaS9@JnUCojujrrik{< zFd32zq-2jF^1372K1p4A!z6n3Q#E|Mii!8BWnPmN4)#wL;uQ=Hd3l%|J|00F6vlZ!S>vChUxoh5bW6{uQnvj(ySKQLx($Q8$?8wwb;kGU{R zeDAz-&qUX@b6nJf_R#WVO7#4wRKKQ6LZ6#N=!p!*r^)3aQQ4KJ;7*9u=9vkA%%920 z%J*1XWrk3Jt;Rwa(T9zHhvW2lPl^WXp+}(4*!l%4Xr<_Gcb{2wO^s#|c&#TOBw@(C ziR*^vG!&&B=6dwc^Ff~VUI3^1|Ihi|b7C^Pz`dh)fXTeCX20J-#2^5*NJ36jy;qj} zs(hGx;-};5?o>#($C35XP2ggou(D@HHt;2X*?Z`{N1G6hx{~mfKoA07-dPTZQ-dNONqpI7^yYd(v^X56t|Jp zb}I1bPM})542-1etDEwtOGTjG=QnVWb_?CnQj*O>v-YnwR=a``-LjmHzo;IZE_tPw zZHPZ!JaYZz*WYxTlK}EOedYPf8;(%{QAz6?93ADb$HV7;HZJ{zQ2bSmIbgA%H{RH* ztsn7tBE?)$;&WMIH_X-LAt6XNkK|U;^yY8fTeeJJkKqDnAHTRp>iAMH9Eg>W%5iJ`}KYaJ%>tPY5#m~k?7oP zo0q$E4DG9O6qb@(Evz@=yZZifFxQG23p36ar^{0Qt}VObzzT|%Ye6MrBJ_U!TzMaw zW?SFsCR+$ia91h{>TGE;vCS=#LjU4DAWS*#JzR3y_R0tagxs_Bs! zpKX6;CCk)ro)@C?Q*(bH-CCfr$x)YB zzK-^7d)<)jIfR}~hJSBsrS}rKu=NV!is#S)560xH8iTg->cMN2eD~EHW zVjGY9vJ0WMQfS5;>-skZLM$UZy|S3vcyQO0Ha;@pN19ycT_XJ!DmwvcWlpbXigjui z?>UC%_dy7v^<8+~ai;MP9=a*ix9E$tMNyYSroHXXcwP-@Sh6N+*kFp8a$rYlqLB|a zptA>gYE9cW-wh zEr|U+>H52o;r(vId)_ag{c+V2PDj*?V~oCC62=BShe>#zV>|*y8^O7zvuAxMiBeW# zb@G9xM^lG=#s`F%pNKLsVbS6o*;zUmzbH3ZU;d!jHbhdUG!hO4-eo_f-6)6JHrqBCHW}e)qv?l@WMMjIap-@K3dbNo&hp?-=eW!2RmpA^^bIfP_T|>q~uU81G;s0XnyTY1G zplxkqbVM@33`If^K~O0X7=cg{6%`qp$|xX#D99kvLLd}VP*D--AWa}qK@sUl3oRfJ zszGWXbOHndgc?dh;Kn)Uc?X|DU8kh{uAH{TL204n{z&EOA z&|V*Vu*A+Rjcz*$!?SfW*N)COdp7O*b(7G2;|XVtWV&3o5~>2isKR@c5+q&k0Lv6; zD8!oX*Q)!%t9>wNe^qJ!KjE=%?%N2rfW8s{VDxLE(%!D9P_6Ypke7bb!W3i&@h-|p zKM2zjZOKvzIV$jtS}FVRoYEl>QwOYX%XXx%&Wi7^`j{fKx8^&aQ@KbRtzaz?^+-o_ z4On?tm>kLl7G!r~4t&=f@o#;{sW4$5BJy~B$$#*PnU4blI%GGzYPO~g8d#j&kN;O) z|EOkt<$ZWm5G&^jw(H+o|M9mDnI~U<#28wW0;iLcUos1ZjZepltVQy0X0VWrVp)Y` zqn69SPld;}rp16P6o0q8;*l3|SG`-|%#9 z(QxCs=%Sa#3NL0y(*gg%t7|0zysydIClZtY)M>ydXYoVbL0L+EQp)NRaVxUZ(sASH zaG90XoB0`VI+JFsztZrROh}0ftc|B7>S`L3_MRThG#$n?tj1voaUd5KRq#(u(8h)`Ps~A}b}|^CR8N z>}~?#YHJsz_hU*DdCl2Ql!{{6;5kyM6dhg|ml?Ty!T6H))GVE-InZR207}mrT><4k zf?hQ|EclCe-ayI%ylyeUaqhF}%v!cw0EW{p;e?a;1QNp@g{aBCPZ$)aA|Bmg&R~UQ@=WvqZYFE!(GV{Mp32t zkFMTV=ba|N##W_5Hkw&AE$6vBRhQi1bdCn2FD|$RTu%(yz_lbn#Fvtv*Khy-RxNxp z7+&6*&fXgS3%Fo15}mP(B39}>)VR^`F0$pMxS`^+DkiZW3$7yx`?eBkKep!F9@aUz z6w1QoiHOmH$+4X@|B>XVHf0lPo#FHI8q|g`T`bBnO(U*S$)|2@ECLo=ik_%eEHf#R zdmnUd9?Ywwer%jP0TQ!zXAn&8_E}f9UzFx5)dn0>A^W|)0T2ORY78-&$)HdhHN<(v zy^W9~{k+4HKv3b@F_CMjYZsGSB_pncX#DDJNL9*fyE7i_(`&3-+JmwG9EDMzaVFKw zIQ6;=X|SOksVYwKuN%P!L^pYFQg=+84mZ&T2H!!vYm3y7zf0mgGKlDK+k$Uc>QfxG zQ5TDM0?GA;7_AJPhD6>&x_f)nH@5e?naVh}EYLH2QWws@=$ZBZR(PdQE>bpMfqE%O z%9tpHl06neIBbhIA1zP`1t@c9T63W{yc0H`l+7Pu#UMs!>?RWfiC-IarW!htfjp04 zwX#-(vVYeSNBD#_P9ywWI1NuJjMU0osl_Za;8GEbD%B1##NH2H!~XoN}k(#Z`pj2 z29#x+wB9Ca+S1iiV_^##t@1ElB-E?C0=2x3NnY!HU=Z!Uk^#Zm3eYib^I>e@Es-e#i!RV%6V};@^?z8Tdw`!ki_(7l!qA;R|7J z6?QJSY?`$Xri@}$lYrYf(~pX*ZG!rqpU-h~8#KI>^4`KDxQW2@IfNXU)(~u`N&+@; zx9fno2W%m{_z5b$A1l{7`5my~Pt_}y{E0v|Paf0d|Jd}-1`&PAIcZXguGbF6X2?rB z6)DNZBZ1G%_ara11!IGlLISm2POZNBtQ#g*Prs$D#*D_Fk~GUhl7 z6qLaDFD#u7@-r|DCxq&BTuYN7Y+z+}qfT3I%x1|F!M^*Ba^B1R(p{Ui%9Sf4zv5jd{2wFGgqS#NQBLkknrr0#u1uIt76O_;~6t)9WIUjW$I^nU0^GsaB- zf^{Fyn9x{oQgNSsV6;2QI5tR_@)@e|xq5KRRbLk$y@JBO!RwOU2hIq;i?~6cu_dv5 zM@FRvk(~AC(Dt{(oF};bR~7(mw6vW4K2rn~ zR7Jd=+2QTm4a2ORa+a)FDCP z3|%*PbNL;5A=3siZ5;r@Z6`x}7do6ytDda+`=G_e1PwA8Rj|5x0tp@qJAiW-H$AY~ z)$#Kw~deN^2c@;MhL8h zK;i3cDyC6B#_$`q4qk@Ii9`;Z<3 zlH2=AJr+7Ys#|-V&4(~PnAm&bOO2*ewU!<*B?Iy}2GN4k$dm=CSf^uBsS4vHZ*K~Ek(B+ zU?m6A7`p{oFe7tyQVPfQTGHSM)pD4WN`QSP$Y|s#-n+3!IiT^Q$F6XNlso2FmsZc+ zMs6p)^jR>xzj|l>%?SXZv8xoO77()KTuI#{>y$;|G9toX+t^{8B4w%a0&(PS<7?}x zTsI}nyQ43Qa}g!xgHMB+T~f1;(r?Imk2g<`0F+H+nV+lmB$QLyBd+ALq79qWm>CseN zl2hMRi9to>@$KYhm`Boa19S*;1-nr!?N&iPb~ks^kS{!v0H_p7B+fhG5~QQLRhgq5 z0MO?zM2=BFo*d>C|0}m$J7|Bw$c|bxulMUu;h*OAC{Sdo87Hu%cu1k}va(wTGTf+6JBT=Ib)#w*2#@HF4;6{~aR@vd+XvWgz4J(4zVim`6eGdMh;IIjV4+?(mXHBk{3Vs?`kT{IDvmI{5F zxH2*4!gDlS=t^8}(?gFv&I-yhl@%yX6+0Rnx%;l}@m@ zU_fX7Lk;2F!GxWUyA58+_4knJ%A%lc9<0xw8e_RV%VID3x>qR@G1N~kxCcg#Gby_k z-~TZaGqs>dEvYag=T)o|Hd4KB>IjsSCT^>)6Xqq_5O4Lh#1AU*f>#rz4T*ZM*si!$6+)hI^q ze`qN)(I##!t50@;6PKN%=h zrsk4sYkkCnE+<+zx@os3Xe4M?FuR{*y`6@IW&im7=mc>TZl61{!M zKlix=@iK!Raov!7hJk^O{58i|#otP1<{du{Ej}bKJg0WXO0c7gi|VOEh|gkfWag z_Lwcb8H-DK8{h3EYsW}Oc6l<|jrNMKGXAy{@t~KYQJC@H-EGY>6qFONo&Eg~Nh7c<9K-z1l`p!u?=z8hQHMY0S&$*54fT~J+s z<+11@^zwLX1*G9(R7Gilx&2L1ikrPXFSow4LwC%Q_pFK_6?XW#Loqvuw6GCEwpUKe9zjMsGzYw&e<70;}%(@Tmbyv)vb)K~uq zvS;7qoh@~`dp+FLQBQ{}j)al}80NNfXy@@6efV7Q8Am7hMzn6L-1^x2Om#E|zhO^9 zR#N{k@IA5Ro*K{z4E&=TuKUYh4ozG;@^)Fn`DWez%qs84nX=S)!>R1m_;ixgY<7TS zR=Qj(J4!d)X!EHB?=mHzZ#;SvRq#;W(-w`pXyYL6($*(YQ+^lR%ZkI4dZ)>yvlRhH zz7pvd>9;6jGg3xuc2-J}5v~~wj?V)l2C2W`d0UR^!r@ROQJ*7+U+dhmvI##wJah;p z7)PZFVX*a&0WWcPJVXwRCtJ7WCA!V(RY;CS)>TIi`!C`vv5S@dgv0eP`fL0P2o5&s z8N?|L+8Fj{?S)0rGV`Bx&2+D%7z^x z19AslD0)j~n!$;yJ|a-xq$Ow3_NnM%W57*1G@~Oj)Kzt+iO_ok40XCvd1MC=Jf@Js|1s(n5(Q4S{5EaF@byJIF$) zvUP&C4F@6`)99-X01_DcGey(BEu)`?T7qB8AA=j#c2^T?&N?49pAig)A6D^oN+ zp?PZn(NKjZI9JLtkWB@r^h#9F4%=S~WZeRC3Z28X)Opdo9<{r3*)`eqNi`=IvG+q~ z(M{F5)Qh9=DPif1`wBzui(|A4)6JJ2<}}>45GmJP0%hiT&H7U#c8ZmWKHvRy@e&0Q zrjFk!S7_ff7AE;a8s&t_pu!u6MZ%mIwoB4ToF5``aaMS0$5)h3BX?0s!0R8(*%BIs zu5uXWG$?`slJ>BsNfBHwc98Fel&rXllSiej`V1dKOqvxxjP}K4lRz@iL{K`XTyyQ) z9Ia4A>mUbMUijVEX;0*;C1~=du_23P;9j2z*|hrAsWtepyh3IqFfcbQn0ZR@X=f(R z08^Z(y{6(6@O#seUG*yyJM4;{q=t&Ix}bZ8y9)#yU0f3VZACJ{k+-LGP7PaWaFrfxKSR77lezU37 zVmuLoW{(l|eTa|Pv%_H!0v0^vl+tjcJNDUB4$SRwDZwp#{ z=`)zF;&Jn97Q1xgKsQq}ayi4>0fkwMsws}}Y*h&HV19xjuqz-_T$4{81tYugD-&{VFd#T+gxo)RgO7$D}tZA2vijk*_`!sG-ArVaC3X zn91jn>7C|5-2iHFR^*UAM_gtLafCe^=GS$#uOu;v`l>LaCmX}eQwLEZlKD?z&b1N% zJf6PG#!`O?SK9}?qzx4?&N+mu0Kr#+#F5hF&QF`d1abLMz3cjCsJCT`W9otU7Comd zBUyWXr2BJA>3oz2h19hpL0o=fSMc239!@`|zv%$vl;oRplYHr0i5W<-edml`R;{GD50t-o0mL zTV7L6nTabR;@RES9-TxD)gXn8q40(1;I0?tXy3OzCF%z~*wK&TJ4&RP-T7NPV}?~c z=pX_u?DBorn(clFfbR02|v89pey9a~;S& z+|Go~6a-mga0JQW`g5S?SYM9QKUY|gU-Z~Y9+_L996|LJgNOKyivN5i+@mZnN+Bi2 zB7<;au6qpjK5k-lkN*Ew^X^7aP<*BHwV9+0r7foYh+?oof$(9um~bGb<&ro-QFscb zUY{d$_$hLULfU(HQ82Q&;1IC$eAt?^`+}XP2V`6mrkr=XD)z@9B>}Y#L`bj zGcVO7jRX6>K0b%(~SSN7cg&p#$=wh&%+5I%9iS%rb05&5(x3wf& zH1+GyOC;Ov3-y5X!bf$?X*>-Ya1@0PXLUJn&i)|-@~!T!;Z0yKLCK|^&r_pzENZ~t z&7Z8i2dADSI!;Vht?Jbaae;`_X@3#*P*;#_oJ!_VD0B0SA6MF-FtlXnNl4zNt!46S zqpOu`R+4fS`uI-eU61QXTe2==UwvRR*Qyf5RRI9e78CZ;mY$ow0^7aR82youHtb%5 zLxy-^A)j-Ie)q|evi>?|4!fdeyFGArOjo(7goJC&4cTyYgYTZtE0%X|K&iW$LN&U) zxC>t*A_=$EiNfy;(jyI^Z_b6JYTPe9E$AwH*rAQwdGk)i?Jcl%w#>lednRJ#Rb78V zjSa2WMwQn#Zdg&=YkhlI_?cZb7|cz-XI|gO4~xw|ajI-1n#nG0KUEK@78Z1O@g|?R zA6FCI7SR1IY|mUfD_EG3=&`ZV2I;8B)(o}XgZfh-{*^u`3PQgyb*^UqT|M`C>7wvX zk&hv?d}E0S+s)e-X82eRA-?6_ETo_H7s+!(qixdeHcQ8=E8>3@`V#pERY+2C&;9Rz z=%3x^vMY=l#q}E7JvvPt=7NUel3IeXJVOI5+e0B{d+JOk19e0x!O6lR=BnFQ6#s~# z6m02lgzKmsJF#QHi`D0hKAOu-KCpT$sexz{XP}k!#snJo5d6BB+^;NR!KhjBBHHW-|Sb@P{fIjZPLlYF7Uk_J1c8 z-#JwjOAvm zMXM`Z(5V%x7e^nV?<+FnSHDX9g70I@MZw-30c#2w9IDa0ntG`e^@s!h@@-0ZVp3}# zw9k8?ALvgT^BRA3xa@6+&^egJ1ZE&t2A~enCbIZz{Fw(p&#GB#Q4UYshyB~iEfP$9 zuM0Ep2J=(iI@fJkG9wtsNOaqO=0PVE-ydnlOIyuUf1==Oo`O`Rpogu6EJP<3flxY7v)LCf8|-tbNuceEYjuB4-CrQq`cua{i;O zjn10VCi21m4Clj4^rbe)WNGsk0AcqEWr zthPs6w+`=hcOL#rHI=4O?%fIBN$6Au1r_h@dmR=?FYRZ8biEA_S~J#VD-E?DpG7_s zQOx87OoiVIo*?x7!?+Z6Ne&HOUpX~=L{hzdzfis2(kDR<_~6|u0*{RyslsV*?rc!t zz(sOfT0Ks*4O+F~^K|i;Y9)aa?9N}5Of6aa4g+!wtBgCiyOVL2ESJmkHM=_<)8mFU zOPBX-yZ&$TyZQ%DGAOfKI`We!OcC-VLBiHeY4!R$Hd=nxNFLhoq&j2+#S{9Hq`iv7 zEG{)YLn=MKHjUr%r`8F|vxyntPy_IXz}YS|3TXV%HFS^0w7L*QjRvyP0#O}$mW62Iq6W9uOoEy?Tk&de{ zEeFTP5x9s5{ESg+eMA`E>Mp($xRjH<2pX4mX=<$dM*>xpYw2zY#H3mCUV!Ho62lNa z+~rZlVjd6mij|s1ntK&VxY@CF)AAB6utnMuKZm+D7}|z?(&5J(<@T}@e zSXUb3y+^QZtT~TLyIsKEK^=x|dqurN!k_F^1g+_Bgt>jNGz}1?i=XR}w8Y`#=e`UP z0(lF#5>uI2D>^tpf+s(j3gG8WoDgPe)|RcS*+`%ixrIk(Wk67;CaEF^U^bY^`%F5+ z9GaXB)2@3AG8O%}^SuMa{e{Dqh_t`o(7YXn-8=gF_7W|#Atl5D6& zR1>^L?eF>?-M|mqT|NuhyylyV%ady=`g5SOka)LkZNeD{VI?)Bv;>f^J7Et@k5sb& z<0L70ovEz_woTlNfz;(niBVH_eOYs0Yl)rnhVIYXc;_+pAcK00!O&gN@wary%t}9wQxh~9 zV>~^&-F$vH^$_alRNnf(+;;UM-fM$4xHwPXQQ&F*!#*!*E;{$C2p@Zgl>2PqqSI>J zF(TwH-~SK(-U>Z}`t!_$yJ3(cxTRH~A6zD6W5~Os4i8s{r;l*|hu&WHuiB2C7`gq^ zVuI3A5Ke_q17&&EJHx}$z=dk&h!NlH*W`AE!}q^NDMtAZb_DaijRk^@QMh=3;;L?W z5Qof~PG9-Kke|V7DX*oxx}qA&$1YZv!OL04UN?-^|0UKyWi-fu&}!HElZ%ZU91*s> z9A#0r89hdnYK6{3^IZrOgMlW=<{FA_GUDRK&bzjkS2#`&eflDKhH(WTmcNoJj&8NG zM3$JsGe8I^UZan9h;A|EI1m-oH#HO1Ql-kcqAot|SSvr-UDmK~|C`dj`onC;>mjeZ zONR)U@7d1#UQ2Ro->H`&MQ?MStR0c1r)&hT-jpOgM7)wQHlIv`ASeyr1g}nN^7bcw zx1#eR$^#sqy1a|p7wS~CUh}PU>PjHq)L!Ef?so6Hd-i#%rSH@Rn;&*?Pc94fSl`lL zlh`NcQX3sbS_9pXoFrUzhUz24J?(Wm2n1mead=FWB}Ud#3WRzXt6pbo=_8thFi^Mu5r9@61tl+;;D)!&Fdr zIjmpu$`Ett>H>$2-{vM{xv0L*dMq0}!~f-|OD&PLcn&vyOn`HJ43XtOcVd|TBtL!_ zqV)EaL4Mdq_>Q9q|6Rymgwl=N?y{V<$@l1&%VR_%ERZuk(iqd?FLp^u)qFG1Zn^*wR+PXCmm*B7T;T8{Q;Zlrl{9MD`>M(Q=qH8-Vfp5JP7cstYa zS{8D5>WOLJKwQ5WT67{9ARPY+^G37M^E9cq;qESo;&|PG%%}n3D1SB&0S^}+g1)lm z4g;~HksYDa_8i{W_E@XiU};gW`odo`7iKOL*NLk@nRk;;NFcGzj|5qOjqr=olHBQ9 z-g~(}WfSL2xjFpSmU-bdT$}k@D}#e@ItJj;64IgBF}j(#3gz@UaH z&Ev)rqm})={^Xj@t8{Yh8529b@NVEc$c_BQ&6g1)64T+`kFJH~lryprgAX>)VtEc8Mx+2Fpd9s`x+l!<>!}xkVMlr|&;S=!>_M zSwCeAc$(?Xu%^PMH1kZ|LoD})=rcRB<|1T$)7&Pm`{Qm0Bqs*f!-hAEuY~t>z}P(L zhhJVr(Q;SLs(iF*!vV2fTd(5$$U8n`bEASGOowmx z5W)ctmyR4=*5BBs8jvItM#*pk*>8g6+dgTw;_$M%t$DxE>U5mz7FkP(K8EBf@69j% z65&=s5{K3{0Yo|ERigg#me@tBp9a5wxxU(k&At`oiR?!+3=)$q)47jbN6BslhRh(y7ZqoYR3;zlT zz3&4qwvr1xT4NJ79?^9ze*g@=Vj)>zFWW_7`b+EpPD+p zQn9uss}W0m5aB~`Xh=gJoZI+%5D2i&J31JbPY-R#;8ZP0%7~cS>+tK$4KWLC-fR=c zW*@WEc`MI=lHIO1XteY9ZkK!yg-g2FZ*_*)U-2l`u7=n0TZfpj*p~9 zC`5GL1Q)YMVL84~r!Uz+%ez%-&gzKP-v=YraoHKF0e@)mKat*BISu4Pct-m=72o5> z(wV6S1?Qy?m(@&#`S_ag(fpXWo*3ql`!e>gN=q!|2uh_U+dclCs5wUkz>6f;;Ciba zBMHN}+=lSd)cse4N^r|&XXy!m15aCq=?oFa@ZMSxn35TJE3|LR=E#rJ%XQVOH%7|~ z0Bl)d$EI54nbR+-2DDxeSsQ@1(@Nl&_*PM$?$X&T?c z)>rsg<=4q%Vrod=t*)vkte)`fpTN6|NT-XsM!D5Wyx2L}QNDu4jQxfV&5vaAPURKx z6h;onKyIlsKjzec?3=#I6{s=jklm5DX{BqXSYG-!wMY>GT2K_V^H4#M{AyX#na<5y zZ+M}VP!6?b_g>}sr0Z2sFA$T)IRwsns6ClEEA)oThIHL3qYZkWYy3p`NVzq-*}_#@ zE{Z(5lu_(8nqcs#wRP4?qFr@OA#vyC2LAI%9|cOiC|&-#G{Thk4uPI}h=|{-bwt3p zaW&5?UdsYGao-+~s{;ZF)vH9v68dq6%O1k&&O2|wPW8rc_MO!Z>Aj*efruU9snnv~ z_lv@7Da>Jj9PZqrFYAj8Nwz;Rh3|u>6#Qdr@YY{;JTM?%b?zH%$qVhiRgNR>sg*pu zc~aAVMCX4LtWaU({ZJTlqXO;be+uZ|B5Q@*vY3xzz>39D;KFQr(jLv2H!b>WCNro* z7vG0edT!?m#c&|(9AR*$Gk*arREmb&X%gej&L!WCbb zT$hupk}+Cb`ZKHjc%il!SBns(yC!YN1ESZ+HI8JC&>gwl8B-**{De)C8lSxd$!ZjM zJdM^3_{1b$wlG`kQf9=WCm6sEsq0M;enW8BlZA()g$8fUh8wasTc6068qoJZeIvw& zv_V}_Jzr`t4^jvp2)W&Pgl=J5D>)i+R-2F!j=7&4hP+lA`HRTp(0-H?g+za-g6Z<( z>NkBdowe+f%`bw=-T$7I3KN)_6G})fH?=;c(PjTnPksPcPR)TuM zLt0;BOb9{jCds1e$dUJ!vQv{|*+#NxGf$DR>)c?N^SDFECnJV2WHfu$iU#E-kU`Vq zQmOBWHKAGGS~HEt#hLxrK5L^@=ehx+1=h!JjC9@fV;VDHanl%_RlYk(b1+9D`2G@elLBK#J9{Rr=FXlANSOQ%2X zX}o09%}j=6kT@{ywR0fu)m54;{Jfz@qoi!Hn)ZTP7jb39swmtA;cA4U*O6Pw3VLFc zMe(8W80rbfXL5vtV+A_E#lXL7EQcr5araYTK?gPwwagVV6HK$J*c__0stCATO&Z;d zb>dj{MV2_?&yYRy~C zEoEtJbr`I+|7&Qf;=fS5-YvFw!fYZ!C>uH`*6NlkuLnM^ycXxHub6FKq)DwPzZy2* zr6Z0}h`~vOtbYN%z35n;Cw%XVIYsNOx5<_rEwe=UYRS`fTHcGU^#8N#{I26<>8c3@ zBo6Sbdr_3-Hhe%CZNi9G24lEWGdB|lNt==Bix;i)Dnq23rOPH8EDVI31IzPGKz8iT zj1idQ)$-6-FgfOEjdO173u&#p(ARJdgBfqu0&YC^K}UvrHBw+QUo&tO)1sSg&O9yE9zkjZX6Ny0G1Dx@KdP?zw@nGYSUpIwH8mWf{A)Oc(KV*sx49ua)D z6xN)Us2%LM`2gBl++Zej!G#vrn13tbi|sJG;%-_K|vwt!;G=i2jXP-)WTpRKfnF zEV;ji3-bj9o++Hs?^PmfQ!-sAbcxi%(%xed+x{cGBw;oVjOMNP>o{OHA?y~}&&u44 z*I?M#OLr;Po;P)$oy(Lbf(L|C>Gj4^y7oziOcNh)3>E zHIVg#gcGWPX~`GF^g;c01_isl`MS+;19Z&gqb>SSOq`z*_F8|;r&S&Gz{^S@>qE{R zbpoFbL!GAYZg)=B+G`q|Bn4wRf6MQ^+7-q4%8r!wr3QfA`h`1lx6JHuXAV{_9%E0VGu$yOgBqaBPSg9a8>Xpjbxp_NaI>?fP8#9r% zo(oq{hIx3XC|LK^%a%W4oILm%2bYpV6~}vZs{=+Lrk07}(7b{uc5 z?OhZ})O0nL_C~iqqNP+6p*L<&|3YYln>3#Gt{MP7}=A&O~BmxYw+^mUa0#;%xFuQEK)*DSa z0yA|{&AdeXttP_Mq61U%Sg5G530*+T95r7`plRv$86!0#`cgZ7q`M6TXeI+ z_5db+Y@l$27b#Ox^%u9kLP#>FK_mPt?l9w}ou@-`sL?39pf_Lr2~6#{|{+g@&nG=$t;%k{UnW7U)B!%h)oI~8eEZjD5fvm zI$4U*dVx?n?P_&G463vsY@ZihVucRaAl_`If1k`CtMh~tX-%xvXcDF&f?FjmpF`Bm9p??6kIVxOQTJ<==X)5M@rj0_F`Q}@=7OX zkK%0`G-p#ojd;<$K;6|1QxPSuxFv{O+PF8^Q1v4dy?vvMCv^GlcZq7WyBkrhd)Kzd zG7_XHguh-qSp03ndbA_FGcFhQVE}}Ol@w|jG=1>WxKF@wx zX_NP!vI1%&->SU(#58B+cx=tvI4SC(noNvofghWl2|HC5S%Y@e_{SR|?NRB;al>DX zB-^B>@FqM5NXu&e?M^}YTKVaZ$aPM+1&P17;y=B?ZYSyBX}2OBxcVOVhs$QNHf}ne zQW6;JrsoP;xr0(cyfeEys&qr|G1@7pAa=d>Ndu+|JvIIvXQ>vC$JIu^&K_Ep@#aRi z=`F0?NM*RN?oE4jMaEzhLVj_E@;o271oBVopk=l$7@Kl0Z5Yu zgN@`xfUbc20zAY@+sM-j;Ouw5C&|Yx_cv{9FjpcTt^On${^iuve{gDZj>8E*?a(L( zA#TVNI_YBkp^6rUAa1RLr=ytX`>T;Y$umNVt?3@x|0u;{x5vtILEWM1&sMEf4)*?= zghSD9mB@|4MZ*@>_Z=Z+0^=lYHJVi<_xK&vrh(2A7j-Y%TTa z3>#Eu$fPaZ1?t2INzonp>(B(iq{-}pSln8NVnz~!3PvXs!|^Zg>s5U5ipX3TAlG~% z8DPwaDSJK`x;|3^4%{x6R#_0fuVMPu46!1bZ3^SFk3^HcbIE?mCcVuW%cr@4J3aT> z{iyHy;=AFDxW813Ga)onQmW+Y35gP^#2$Zm3-_Y5eN5)!Sm#KSM^9!{_9)MeyaU!n zj_A&x@u=(kkP(p+7Lg-ddZS;thl&=^I$`D7FQpgdSs(Gv-7j<}&MG*d*}oO76lPy- za_1n~xYyQ?z45iMQ}jsfXP{LS@SGf*T*ieL_F_hOaXx>K7%k(mxl22@EK^^(+1azQ zWbt2)`g^v1PO)*-;b*!B!aEZ;tv*(nRdEHmz|DI%3pa8PzES`7OY`fj0zEZO=eBTid;l9hre`NmskE^ z?mgCExchD34#2xa;p0N9tRzyVzY_@UC&Rn?5@0sGm$IWBOT3+{6o(@XmnA7B%5+G1 z5f7r{(E9in*@<&@U!u5cf_y`dmR`HxMd!>1-QJf@p3$G`E9r5W8WZ!&0F`+nJQPxR zJ&oU4t&NG92KZKeqQ;b$Zd+D8UpSPZz(cEBk1-E;T!q>iCW;u$|6zItkN8A)umGYR z3G zh_-@z+uK3+G}AJc49?l2_66{+$fUJ4#%K{s&86P_=Ih=XRe2x2Gr6QCs_+>q3xZs^=sF7^-B%e34UiPA70Wr4u;hPmm6_aJutVfw_n_0QT%E^80KZ5?V z%rjDXBYg0$BlCZDkX^=%20n(3L^ub8hi{-5dSX%$597Q&T6;}Wb4Xn#(rnv?o}JrRn#*ug z9%(TVam3qaxHfyej9Lhp9-;DtadXBU8wyFG>ETi>X?AQo$^G!cwi1NBhP09T5qz}f zQuQda;==GgBCIx|`zzp(+t;9ABc38W0jV<>J?KOWGb;``N>#mk)@``3m3uML;P0ta zt0~44YlEo_gT}u;mxaG;+)Eh6kYcvEY@7v? zww{P21p05SOl?`&4K2_lpKOWLF;}41Sw7E5Otf5qF%G!}Uah`J0dVbvG`>)+i@MuF*nl4BXVGA8^Ue}t^}gNrmR`-n|njfE6k8< zCEMsE^e6KWq&{WYw_nOEoldcgx}hfk5(rr`x)tr=ym+ZK`$$M}VPj@3Pcy$eT^&4( z)pwS?9j}l8`y5tN_@`giYdv0ORcX8njAO3r5vCg&gVC6zvVXT0tvO{x*=#Ap(RFI9>y6m2C8zeO-wt!;f_**Nxlg-!|uCK8n6CQe3ZEp&R>N2YS6 z%Z}}19vOA&&{-8zC>)TR0pAmm*_405wWn4PBbTb#rsmP?v(xdk9iK8W~NUZ20v?24` zc(rg78`HrO>AUSHx9JdFX^|&4cN4hast^+1K$!UQD_{*YvMT+ea(9%#Uzi1wT;BXd z8UK-T;A#IO<)E*zLhUF0HdZB+^nM)ci!K(-ALG zUaYX*Z_&m3?&mQcovOFlmbM)xJlCYfL9B>G!^l^BG6w6GJil@3)LWO_RKf`csAP zL=jtLofjSKQ>05O7VJ-Rx(K_?M8BIIfpt2r>l_eQli z_ciptYJ+|ENK_cE<9aCWX!+_;}t z@8R(fFlYAKFw7Yp#2ze$P~v zT;nQU`MXBX6=L-a*BmjmW>0A>Ok1G^^3D<0>K6wxy&{$AQO9OAIzN2yxD$$;8yI0; zM$D(+n4>u$f1;^-Vh}bp+llvKx7{cEoM=mTB&Kj|%&Dzo@6KRl<5qaB*RaoB%fPWG zfa%1*7>^$y#N`)J4rQZyae>5W95;;mwBd8Wf0!PORW0<)yI~LKvFZfX8w(tM*J)-g zQTvMQ2892tBdmWsY#*p+^$QX-wEAIkCykE`vbRhB$zA-AHza=udqFWXC7wSOKTi0e zRKddN&cdy@l@)`6GGa@$*>rNTLX44PNYg!<@jU|fE9dK?Ly~`w!B&K_e+Ol0oAX?< z<~*lnS9r!t>thhV`o#E;OasZNgf(?((N&YDg-YClhLTTnwRe&}J@3{oRI)ZE9($WF zL5=^zG6$5+bCvYvm+bAvuCGzhlfvs;u(s^Q3CB1+CVP&g*}^?0T{u3`)>+r27gSi=X~BL;LQuwT z0iYTs@fCdDBdL3X^+3#Qrl>T0;iLI|_MLKd`WFcG&vOo`S_u7>c_SF6yM~Y%HlrPI4ww5Cni}vz+W^*Fs}?kPrD&oZ_*RAlav>MqcSu4mKrnZ z#G#7K$U*q?wy<&@>USpBFzZ!mnu1_vR%hX%74mbAcMpsyZM@cyi;xvu2Z}7zTmCWG z<+bcG%A2Zvr6%!zD0|ber1SQDc)Fc(no66j)LfXR(#q1z!X2BOGE1e&a><31j7)Ju zTv?{9$h|UCb734C$rblq%nfscazk-JK_x{+1w>Hbq2KSh=YH=0|J8GRUchmDUvlyJ zp4WMu=Xo`}1l=Yj1Z>TuZ@fTyK$q^B6BQP{dVkq9aZ%-lI{$FXOqVR*RBi-Lb+?E( z(e<^q)P2s;Sc-0XwVaiQWT@6u@2H8W4;x7?Z++9mVYxX92uw(PY7k*X3F0BauTBwyI4R7n}AdE*6S4j zqWly8I$mFQ?3sMF9WYUF`LD$FH5-!S1qLtuscAm_D5<~|Ka zE$5Xqqm-jyr&%dKu!1}+>bb|*d!0%Zk@ItdHtX>Kz4eRfa-WnUCk0#=j}-}%F!$#s zI`K3m@s}^U+n;NXv~-lqxsst2`A~Oa`9}R&H1fgH2tN6ys(t~-h5qaF;GP3%EZvrK z&NBV|V1MCX?x?x*4_s;ZS-P{s-gBKq?!No{osu&N@EPZfH+i0?mK$xV3(ll(W|QO_ zGYh3(YXw*%*S?DChdI#Ov_=>e4(k(<8vk4i_Z@u)~1Ygv=D7dgBAg!?U(H?r0eud?a?(JOe6 zsJf%H-QumhVU&mJp)onrmGXOfE5%K7!m;T=Bc(Ju`srrl)gj*JoQu8fD5Q&X(5M0C z?JQ!S)mCS&L>ar8H`ANUPWxdKHTEAg{lDb1^c&3PB?r6x8)PSajI^0vB1#vD@-Tzl zhvH&Ym7`}fhT2c5fPz#kEdGUWd~l7t_JiHZUq_D$`Ga8Y|0HMo!dsO_pOHxiAlfLA54Zt~nD2wFeT_x_f)kM0w^ZlcyNYpj# z*BcGHthBHA-Ex-s-TEB!i|`mczK&MenU0GZt@vudn%)nH$L&bS$hu9e8H6m>v?_uj zGp351$a7NxgDK@%JD5U0bG4~82Ci{g=>6=eMG#BNQ zzJuW4QeS5e6VQAPLYuNf=?=)8mR6PP@f>tR%M@Ne!oL$DsRW?rALX8Xyx=}d*`bbh z?5aVO16&1fP0lI`Hw=~3w`$c){+$H?LH(ql9=GA)NG~A5gDM=%=N{gmUjlI!YAa%Y z)l%Q)GrmL9!n{v{@nId$j3}s40w%aeGK(4{ncVX!uG*KsW*86>)KQ@nuBjBev+Fs| zHfZUz0yxVNxu)(6b8?cgR5&kNBW$ z(pp#Yg|OSqv!cW*Db{?gEs52myUXm>hMTiu#+wo(oqTzV*@o~OI%+s=^Xy>)zI%sm z`5PPO7Jdrpc-O)W^+lT+hdzMi@`ClEA*K4YoDX?Tok0>E#sqS6#8}GVtt#EC%me21 zpkD9!X#krxY$uWi>CdcapyL=1PtwTU0cj%NgpVPF_H7{80A5BJNw6%XR#i zx6{2Jv~iN;{vLtRT(tC z+W9ZK#7+2H!GD0<$H}JEQ6MfYT`GpuP$1?+j~p6480h8D!F{NENAv`>{)HNZAibt@B5=u z3dp1om5)IqPcC0RnH=`sG3zc2EdWu5dUSeA{8PB0Yy zY#}@jHzYhRo0(X`#bk7j%Hsug0+BwqxKRQ=z~dYrz&N`xlLkBu+bf^%5te;IBkfyM zGJog)99o1$$feCm7F{34mBG;)1eCY{-SrAzRpAQIpWjY>=9e7lN@yV~WDdU-uQ$WZ zcAaYRadU;s?R^~|NNTXUU|dYA#e^b>(Y$f~ZTeS4V!u$}F=1<|^k<>{YD(GPT6KO` zv1h-2Nt;Oj<3{ejF>GO}Cd(HGyr8V2$PT(ruSm3KeL$DL3I_!(zaS)c>pibv?mxx^ zYYZF?A7>ziYhD*vi>)4xi72DY2G zc3*5oC#FV?UTdU>V#xCGC_pX@aX4CvwC|X;obfuK*+~C_4Sr21;qOqljSOB&GY2!$ zs*Wz_5gE(}?k_6=&HPwkg*UtD^B^1CrSc0%9sJ^&CiyHmcCDH60@efdi@$Z%!gPJ; zgwKrIc|IWlzEzksx?!ZuW~SF9V3658m)wseV)XqCL$#airaN=aC)`Vaj z0_LjwUBHazP{SY%+#8iEYJP0Nh~Ggq1RznezNQNRk8gg2X{lKKx76&dIXWEUv{CHGE&Ng~OOlo|f9rdt2X8wx}VA7)@ z)E9IbZ&qR77->S)GCW>$Qgb@xKCe`*#l&m#uqAxMXxsE{Jnx{yKDLu>&Rd_FiS1O&J~e zFP!KcWPaJbdf`Z&A_62vSe802KDJIc$^W$gZ2y+ZjbD2`ZqRiYN)Jw=&jkLc z^g2sVV$1wE_&mM4C`bCh3dza{&Nq+`C-1vQM%)r#^VrT(LDN68OJbsfQZF9v=`BBc zO0U++=j&it$)J-H;}x>MfGsy$c3|Ls$HqMkDv0!A-mSy+mh(}QW11SE>*C|io|;=T z)unQ&m}990e6goHHHF_+wh6J`p5Wj=Kp4P;e?uR5V|19{`q_IQL~gX-LTBw^V!3C z1b4B#4j4(3Y*%zPvp!2n?H8RRgFnu`>z@>$N@sZcNYiQf;Ftd=;b+qFO>!jataMS$HOd_{ODVtAK6(;fsP+2cgu3#)e7%}?ygF-gj7swv^#6JuVRt4bQRX-e)Ir-)SVk$R5ugqe%m zQ~l$$IlxDjK7vE$oA1Jsw#~8tiTltdbvEG49zU?TuQjR;IX9DPvA0lS?5~XNGKaMQ zT1Nn^(?Uu5L}a~G=S%a-gUecwtURu7`P;~fB-)A<`wz$_Zr`%H3i_>v5fW|?c35Mh z;8?BfprVm{=V=7ou;$LkW1f8(A`R!|KUpYuTvd$wVLqGymlV15IISG{1?=uf4HNGG zsnPNtS!dUStzR|k`nJ~qr^yL*zgs0~ku*yQU-MGdeu_6-nq?@+weL0F_zgKqwhO8} z?oguP9NHOUWF_5I{@&yMQTR=2^ z58F7QL{50<>UFxk+-ADuNHH|wdVs7ZV~B{o7&{&J5!SrY19dBH6&X&w6WZ=cziH8%Ju+%JF7+4^n}0 z<+SRa&5HAQ#Q(|gQH;N}kEAs?|DPLqBJP{O`L*d`kC^?(->K<5p21^!92WM-z3N0M zFkkL?(vrM2Dh^!Fif8Hd-4|bKZ;(2#962q|(0pT#>&RR$pFia`R~_p>KdMAmaI?Js z*>I#FCLyF(`wHUbW<_Wg<`6(5c3Bf;&|~j!q_m*QMNIJ`CnwuNn>!V{B3;sA@KRqr zTI?D>8jySu=pB;^UF=rJy{Y%iHbn8KJ+;_+`Ec?p7^Nd{@h_{mr~cWh(60}E?W$=A zVSPsfBIopMz+;`#khAuXj^}yUV}-z>j4i}TghxmIPK(6>Pg2Jjp$GYrth2YAf5lv$ zMq61mBQ>u+WNet?NPI(jkup(d29YSlH_z;Fqzp$q?2UYq+Sv?+^tgfLfq5Hf@Bkq@ zD+S#{z$e&_%rJ|rqnFego+y%;BQjbxgFS5;-Ix6Akt zcb{422g1Z#NW$D^hl?_2*x5iNAa`WC6v;-k2KBQ8vX{=wkR4Y*pMyk!uX4hY5j2ANHskEI%wF|Kc;Ii+Vo2Iz|0yt9>i@1$E}! zx;^38N9~z_4VpZCVy@qqk%bd(Zyyeyh^93|DD#0zanXD3d-p|^Yab*QX-|xAd?)*0 zxzg6co{HXx{-e3g@w-j;_B6#hUJlh9lQAvde*XR+#QZ9;A*WJElM@d-Q4Zkf%M~V|}-J^6^2>6UC z$;*0W>eF%f$Z$+d22N>^T({>Y{-d1-yZEfh@dqQF;iOY3QXQT1gt(9()OEKZy?oB& zGgsVMA0RdA)Q0u=T#;FVCgWE^A~F=9h@9EqB(`Zm{H1iNvMLFpqGC0fSzT%`M`jjl zotaM0GmouT#wBbWw!G$QvXP(y{iLQiH~hsIJ#0K%mS@Gg7iy_;&29SjEgZ&Y5D+Zb z!#JsZZ|o{W7SZBpQYYKYdu0b`*%wc>oz{6knMq)HLbweyjQF`0TzyYjq9Sr_7)&ww z4e&H4J+?Ldyc@D>buuP;aessxC=c2;e8X4th+h|h3>5J#3PDbp-ZnTA2EEH2Mnua?_@8tQjU_TFLa!a9OdfuTK_l=Bx&C+LX zI;WzD+!plAOJTD}NLZB6mWyiU~P>XK1CIw^0deo=(8vDuXW2(=*SInKHXl zt|R%SWgCQ{DoQs;ZK5mstJ&lQ_FKE=~YL`V|u8!)4H`M zQ9IJxqxay?e)Kcb+M(3*%}6cRH7juo5MAcU#e|@U7{+?3A^zcyb zsx3>EoY9070;&YMUB!9FfE$yLAbLVKct-c_d1l+u;EsX$^HJMBYFC|z*M4s=TGBL# z)l-^K`}7LzdSDgv>thVu8MNG$`z~ViUbgQI$FOQB-U3|-jvS}4dfL_u%F@bQk9G3u;)XWp~}P`rDuq#Zlm@HI=*)WZdN+09ngE_O?spkh=n z81;U23dagRV0MonOW@p?8?JRXAiwUgcR;^=g~FNmhvay(qmIQiS#ZW|u-f#%&R^CD z+v(;Z^%Q2zvKhfDA@I;_;BV>x!y((o1$Jt%{oK#)fN8hmH5NWqb9epx`esi`>HFpX z`Io%Fv(MTOLJ9kpp0tAyL@$`Mjjbb6C`P$1cW^M`K_AxCGWldVRuwL)O*aK z^h^`|1Ie&7U}WJ2ntXaj&+nLyAS+XC`X+A3))mROZuWPhDTbaLJ$ysc)a<3ZM}2w_ zL-mlJPqsWZj&Wk?FJ&(?;vw;$fuCGpd;R0KhRgXy;+iy9=&#YQyzJj{PQlUM?%7pf zkG8bCAyc1Xk5L6JuPpCd?ti|;*H>PRj8hGtCE&#)sMznYR;%9=d(#ZK-@<3K&ntP4`L3)Y;}>OqbqB=+6+qx zf3PuL)qv8)&OF(4C#BJGdB3wZ!1jQi@`}~=s*IfbDWt2UJX}d9!Z)+&X`}v)wx!Px z{PCNKjU4-$HhZa3$K%Lr_i5k5;T#p<0Pb$Mrhe=*v@jjhQ)K4o=PZu}BHI_S#%|ZTN9~il&AyL!KE$HT_I%!Zhg6UmmL^QuoMaBs-I? z_}5Fm$;g$drbeZVKAV=}z=il$wfEA2yPnH2<~Cb$g*Ib}TCJkuF(-gnj-QHeLX1`r zi`A+MZfx`}(6Dvz`jAa;JnyqI`pGdOWAQH=541c}bmPtWBu?6fzq#C4Y|6Uqre0rB zGbcXXMJU$ORn!%}sp$;Y54kULZxzH*4}pMq>LK~q+vlDVS6v}*f&N38&8B;6>$hcu zRq{<(w0Z8-mbp;#&#l`Rl|-T@wpl|!X$*eNMVb3Scf-cVLR&^M&=Rl5J5GDWC`2i7 zMeEv4uOq?#%oM-PWHOI@)BYFC_?P_$V!xG-8oTk^-FH$EPG;e$(7tXIJ)WXl4}zNR@rIR_>Q8{sXq+sqPb&h_wtUddtQ0wafPFZ zlfAR9DA^o_bo@r0-TEG2z*N(#-|!kdjx?uyf02QR2@rSuqXtm*8B%Gt!x)$5(>0`6VI3@73rx^lR!eQD+8My~V9{ zW+B3#xTeRIpJEjO0_2S52ZOZ_!KTw^w+>>SL3Ww%ee<6#c ze=29Wj$rrj^XOrT=Qlo`)D174-qikN8b{2EDB!B0Uzc}B2F{oP1k05Wy z#&@cfdF-laiJnJL%t}m&$6uBh-)VlILoo2O^b;&vBBmB{EC**K@dl&_?I~O{JDo(? zEl&|sXvS@dgYU^Y4KQmfdJs{MsC8Ot#oR=ANWfE|BhK~~u#=Fhzy7GWL095cYY4-2 zlHRu%OwKTjW9J$J6~0bO6|FW~Bhw+8ZehFr`$!|tmnpBvBG(&S!~c0CJz=!kCX{{_>&soA{m}QY0nrr@0);$phJw`J4bVp1FOS5p7zYj10NeBg#j7^YeW-v+#cg0 z?ASH#$A!>f*&o&upHZ7bo&v5&*?X-$^+qPo+fKNz+_RpK8#^5Hi#}&0!w=FNk60hE z=_pHzH_ak#dMU2icl-`eI*FZmqi%!L+`g3M#S5OUpd?OJ#SiX?4d(qgchkRi6Xrg0 zPy8WCqm&ieXJmD#+}9ceX0mqR-5p4GV2O{He>44<*5ApVi~L1ttySE)i}eEhDzCd= zKeM_Rin8YI)(sc%c)PlIM{LZPg;QBn6Y(Dd!5>nKrLe}e3<7;O<&Z%h*vg@_no=n3 zs532Pt$UR+bE5pI6Yh#k``U}QH5)?H2N=GJrx*UlH?wW1ujtH#w}CEz?4YwI)=1jD zWm97$%^lT`iPtP;`HY!uAHLiAHS2gmiL0`2lWHr`8JkF?v^WTp76f59!>nGN-Jw{19t2%4k; zuNvqZmf=4EEH`S;Ik<0T^4wv9rNL}OM$IrmIk+yr!$>esw|7Gt4(B(H5R%Gchdb;4 zQe*wR;9R`3#Y@uNVxCd^AY+ErX`$l)hW|$@|kzu zNd8^N^70yoUY%3#GckUuU6o2O3euAM!mm=$s=O8J{R5Bv&gJ(rDwV(cZ^RMRU;wMZ z9A(U0E-(X$K1V@alCGaEjU6=hRMRc>ZFeru-=mur`O%;GGA3w5BQIVt@RO(Jw%M77 zO`xbvQQbvl@t_mHYNo2hVW6bXWDJ~Xav)tgvD5`ab@C5c%pan}Z23E5g5%C=txc}O z``ibe2fB3g>6N9HlF9WLJ-65Rr!9v%ov_F`@9@ZgF5O);n-A1YzIw7n&oVz%-&~Dx z21E0NL|xxVQ!BF6oXP}b_I}j>0I0mRBW3$`dwu{oc%TEHr`)i#)1fpibY(+CF^RFd z5@e~#Xw*t*88hfamZC72Ja~5_e2PxKC~}|#6E4U;yZ;=`Dov%wn!1Lk18VAY9>nKG z{i3^AO^qPZYBvfjv{&tlDFBd8LCfJcoUW@OWS};?iL{u_(Wi$%mkrxYliiRQU1rN11d^W9NzGkfC0DH4=Zv}L9fAJ6ti7Qnp_it#gsDnB(b$<)k~Lpx5Z!o} z7C8`gT!|r>{6VY7`~%H-E1XQ5tE?XJ07w!=IP7K@t8@#`kO&|$fhdO{w3NsBCR3DE zvK)l%l#l;?%yYgKa1tR@Wo7Tu|9iIMVbjm7nbx1OT_D~$=j_0I#}6CWY_lfn?X1@+(Of*G9H^~&| zif2_~c15Dk8JKiE$i_y|2N}hc+2Tcn9ojo8_(V_=)r?|n4O}>}M#*}CUM$H<9PS!< zw^19WUCI}lty~{CvN7?2FU+qlQMO{7(||gH8F8ELdSk37%z|b*HLQmEdP${e@m%Tm zIfT!cL4K4|OnY#CNcVYU9fa7(m z<$F5KXkSb`m-jQ`f(glN%u3fDZ^nf|7qj)ni)c@15t`P>z9hJ)&3nu|sDbr*hITO& zmW74QUn7JeO)b~b9c71Gdl|l{VLVU}KX+c1lcx*-`MXd3EK?aA#C+xmrqAO|og@i@ zIRAF$*__yUkU$47K&?ivnTkf&&$b}6wi-}>Ga9gSsm>d<5vg@o?j}#!gg%tD$b>Rb z%W#o(2ta8?UubMzXTXhPf9W7=GV$_)ng*QE@}otm#tV(m_x@DY6=Dd)9)o-mNye3~ zaNnvg&Hr~1Q$Cu%`c}pc_k$7tF5;!VO^xaiGc8h@ENUt^@EBv)LPPySBVwYuhB4a1 zr&CKf`4g{InG_-Xl1vKG9>uO8@aE->(2DW(mydx}bUQzVqJhbi@cT&Jgz7R|@jYbY zgSGK`;VDnfgR zy?`Mqim%z1BwC?aCYdtMLR5KQ#Dm7DC*~m0kB2Y>fW=%H$A{S&PFKc}y*pE>gdekC zzQ578ZxJsqU&$%F|H4#T=%Uq}wzd_qv;LQHx29ULzJs=QU?;rFP_uUXf~US4HFA1D zkz;nVfM{q~TO%b$Xgx%8jImk%oA?O5w`5kUGdk7#4ild>tQ&|lyktgTMw}~+*OrPG zitCatN*|oimhe$I^e62XFEsIo59U=L7E zqJ@@3?sJ8@h~?JSdc};x)_}ulNTf{4a`F zrNHh1CR%u=lL_Vu|30z-dEHW_OVp{Lpg`Wh{Jl&wpm!TEkX|egWz?cOH)zb~0VH21 z<$D-28mU+*FB~r(B2b9+{_?17>s|D|idVzgLb!K{q7WW6cC+`E#7UpyMk}eYXDr%A zA&QA!=+ws=M`z~t`}S0oOl=PJ1Ai(~Xnbj)>2;o! zEkLYB{8`Ja^zZcAmtSHA>3G@i!TLT6qu*4=%vjZm%DNA)h6O{*Y7V*U@B6(lJi@yuDTeNwMmJWpfXSGF;Ga z{U3oz)k)#>$wF4cGd;qFZo|*Io!Z~;oI7z@rnjCG#FBmZjorQB1xWQ{lVN zQJl$8wYB%k{9X+zg>jmAWvqcT8u$0MX;3lsNJq+jz2}w06+h2}$dV#7zQww$iDy_3 zW^xp)aXJMb}t{ z4wK=~5NahA_}u(MxMG~VW1Bou`RiHP{H^HJk>k03lm0!fRQ?KWt-=vo1pp!|VG6qJ zW(Mb~utD8z`~eU$b{ju2%&s1B{)(4rNfOJ;cdKy^y3b#PZ}x|gyLP>UxG>J3It6d0 zy=)9J7o05w{SBKH?I(12h1vISU=vTdiH9`^y)cO_YN4SfUn`qG8Y_HD<)``=4#FT- zZl88l>{HR?8#JeNjX7IdU0*ht`|Qrv4F0=UJ5C)id2T9VRzF}3cf9oYknCVS%%A*G z))7i5+oQ*HedW2$dlx~CHmk$d<@aSLM?7#Prtx*cx35EobEW63YQ+m`=BebENJ>2g zR983i=f1$@S==s| ztlNfdfn`ISkL`gI(K!bZuerXC48DhlVZJ3%3u$&VfR_m+w;$J<8$h7X(1f~$X(V-s zrI9w$T@OgB<}NPSeynFc+RrVl^wd~5Xzk~-Z%)1j?08)vEbVK|$nRUXk0=Xt%No=Q zbq677 zXVi}{<7sAx7+L1}yh6A|7AbM&oHFQ$s&ZCv=S6rCo@Xh8hp)LY_=qHkU}$Ug0VEUR z29TRS-8B#Kq7S!31liwLh9$^#JYWB)6KYAOBwbe0wMJ(MTChY7lizd=SIyM8MeE=6 zZj)$kG{an(8=d@RraoqC%CC=oYj4ODLz!0Z=bdGXY82kNn(8Zw6q-{U7hp;V3${Tkj?E$fOH0s({g3(0p)F%`qy*CFpnTSKO%%RZ88eO=+F!>x6Frx!NvH?f+bovxX7fMM=9ZNgNo-sAo_D zdiBgrJ1@W68JrXOFU!6taT@O=G-m_^pB{7$n?Glmtqy}4mChSOjE)$wW0`T(i+4Q? zb0j@5(x8))7j*Yzthm3ZW^^6Nsm2KIm~Zj8Bf;Gr$--iHz-Bs&FzFS4ENeT15>ZHH z`?;G0Fa_UPX|qs6PRi9@=kREFO&NOu-fx7zOGgCmdF5u5ynHdnJ8kpCpcuK-lI|6 zpe>dpJ|2l}z6j6ejYVs6qe+tGK)m7b)c=h$9(=DgldQ*MPU&q|!fD_S@I6qo{&x1?|UG+eYMwi35i zo@XeYp7WFrSL^2W-+(&SB8LKx?IZt6Yf#nDfUcOaaFT{!qeb>2r5)OV9b{J2J50U- zFLs=KFFjcu=04VM-$ky>Tq`TV%iLTbX7@(~&lbv!)96pL+1Ea(?SZw%I=e|(KxOxl zC;fd#SE47|LCyCUVU9-=eR}orbpr(yOt!hy7m}@p{c+)H9IM=(uCWw^l zpwr$Lz>?6m@11!yWA5lgtDMr>xN1ZEoaLK2+v=UE42$)&r4kV+u z!9UcAY0o2c2qaTw!6u=Y)Zcq#T}9_6I*Co&{+i8mU9T4JADq2~=M9AK3bB|5vCn~u ze*u=;B`w+-R)vl9A`a$Urzs-7=qAM?{7VSN(1+Uzq8GpF_jS6!k>znEhK4f%r5qH@ zt$3Tsv^s9$B^e%zgLxwjjh&@!ck(?Oc-1*@;6kj*NEb*8Q)qQ#w8W5BdVJ*M8)}C2 zcAb;|_7aEqHP{)A+^+Ow(1FS)cZt%)l}P{?v~mbv%z5c>xpw=srEZjcQD_(1s%zLd zx_PrzRX#2uNu*4>iHNUyYjQm@aY`}=kTZc${MH)h&!py`uf9tLXcSoPw{SR`cU*q_#n^$2Mju}j%nJM@> z&NPYG6WI5BqS1oJ?m=rjfd3_kPF7mkYVHywMQ6STf_2}$+wG0l%6i_afFx|yWf9^VeG$H?T6O?1}gIh4<0emdGCCo zWjzxb?G4$1-ah^ZiL3$){$R~gDbn@cN8ONcCdN=5&on$QOhq(vAiwK7;rVglb3p3n zRy2*@RLU}kCo5ZR4;mQIDmgl&9=%Ukm zE2x;iY%clU8I|hUZgy}5St8UVHm&zW1~C+4G{)CW6q=L28qdn3bue5~<9H*7L@eNb zCbe(HDevA2uWL$k6s$V=dfZJGOnZ(qviWjrzUcGEZy|TQ&!oDzg2uJl|L_z4`>hF~ zKB_3>y6YPc{)g0POqDape6WoFrL}oqYrU6q5WH!$$=CXU_C$CWI()n~c4Od%yoMJY z@eNzXvU$b?T0Dpc38qTAEvcCCjz_#g^JViUuF^q8AutjC`ffb%2K=w*j{XrNwMiw* zzQ*-M)Wn(S()QsQ(FInQU_a&cf$YI)@y)%5q??Zu%PYN1jHN*{UaA$@!5zPwX8{+z z+D57qp#tZL%2inrYZ^L#bqScI8<;hJGD$q7yJ(EtWDXc4kM%WdI!l%wZ2MDuEH`>Y zKN(nPc>>mbrq(?f2g49K$te4|B8Z_e|D+p01 zG>bYIl{S=3>bR7wbswgGQ@aEz`7v`pmgB{1CY?eAa5U!(S55^N^IV|$TtAL;3v=1c zMDs|e;SEh;6zyU*A}9DZ@q#nb-TRfXTCMz#8+bIy?WC130xK5&nTQ}48yq*Oa`tcf zWu+3+934$xZ_n`%ajJO|ZnSK2Yf852b&%EhOLEBWPTN|wA(5f3bjZvGnU-76(Kux73Xa0wU%#`i<7`)MowU;Fk!@9Rp^Sa>u&i0SfkpS61q2(@kR;Ue`2#ROS^2K*lBRxL z4M}bVJqyu7ewTPzcKE?DkZjkWQg_vys)H7i=RQtlw(73jJYz(t(@ir=TIUFAK_{A{ zvq7^Lq@_S0x{%jz5S^vc8N8==r&6S?!EV+<)N0@*z;BDIQ?2NhU`BKjxyFKWi8Hhn zCwJ9K1w=XXCdqG-cZE^h?_}R%nz_o{MpBOiWtl~__47kdA(|W{6t2bg@!qHxkntlA z1`&mg+j`Bkg_!TrAN~|xs{a2`+&rw5%5Ftx0ul1K&5N1Hov>qP{lC?>aBG94Bb!Tu zkhWsv%bIyfTVNDZh3#>kJ2IOCYtfnrcVXn;d1zf??&E)?R{Id=^N|8vORQaEw~u24 zvw6kj5?mqRtcOaVPVgzz1!G)dVrOREh(EnX1lwz4LZmGXbiWO7$!G{k$6SU5+^h)9 zvhv$e@)O8HWDs!0BE`rvY*QELV3lB$rz3_60eZ)bw;1i=#v9I$l>BHifkGk*KKahsOAX{kd@s`~( zKkZqA1UvrFL^Ru%Dd}v(G;PQa_}s!_gFFhM@+Zc?a%;eSv63Yz{nU7A~8P zBl5yFf`0`q7EM2`yBzssbD$H4OAdVz(WezIN%ePcOd&=+*)syO%Vvx*)BxTP=rt=w zX+}^YEM#3_4OcgZsTro37L)pHmX4lEB3w6{W@gmW^lY%im7{$%W$tf=kZdPdp-R{h_X&6Zfk^lI*X-IU$vVZm> zr`?NdrNoT}fAw2;(}m-N3uK1k&h;_eE>EmPz?%l~k3KQR50CtJ<2R}vq4(`l4m@$g z4fYS`F)gBe+=E@$#fD&m0`LdiJl+s|9 zlCyz*mo!{fYPgiGxc(yGmw9rq-#z%WdtPd@ef9U0;IN?eg7(1`lkl%M<3?SwN2_0T z>>j2janebj^GS)p&^3x*|Bfg1PZyjzT+w9faB>@9oIF}p@L@K(nhM?+=@38cO3exe zgdY`T7IjYMpCEOgTDfWA72>C_r?@o?+zN$tbBEl}J*`z40$)Acxzb=?&E4ovr&^3g zm^T7M#RjgdOsNLGX1KEllznO}euo2Pad&B{LYCONri^sTgyV)@FJBxy6n#?3(Cz{` z318Y?YMaUJyjHPrH>*?A%dF^yY1WBm{@9CLzbE|#i01K&mWU5Ilspd1#K9n2T~#_i zOOg6AHu)Ng(Q=vN!UHQrhtyMcq|2}uT5;^7+c4(_l=x~bD>x~uKWrW~`PXZ`2!uXu zREIX(C-2LYc<0~3gG+qoPfR}DXJMX%^Dzrt>M#pOWrO#<+Q2E7Hg1V& zI?g@1m6th(!m>-BvSa~GJ4vdEI@Mxq_-&TD#Qqe02wwCbQURwbCds3zfdJ0wRHA21< z{;|q;`0Cvj*+T_*fM%@{f>pI~hBGlgPuI)@rZ{TN$FEcoLG`d^L*PwF`jB#e7rD+b z3$8|Qs*X&D%Wuh8T`$GX??i^inZ0$+5a#YmxMjd0Y5Yt=q~?SW)oMWA?DOzHm%TV2 zw1?1Ke?RR#6~Zg<1YpGULDk0CLEz;2x!$a;6Hjnzk6@LQ;jDasz)kE;#+ODq6k~2M zvzj*fxZR~0wc^!x@`|U;I>Oq!9yvA|f*$cs>8fZHW#7lOa0Z@72*fJxp0(|9rp)~C zBOZW0FQz6{CnI7V?*sjt0UN{-W zDq85=O+X`k$QL<9*`i^Ct1f5Of7a*i-i@yt#qkB@yE{*)s`PUX>ndTaqY~{QV$t1q0TlY6^YU+=v#R98V;!u!Dvi?6ik}cK;*+~^M$w&hb)%hr zrHNnM(8fThi-h&bQ-2<{nx9reQ>>@y>pwyKC9<2<1yll*6JYZWEu&RO(Jt7AGBbwA ze&9}Dfyil5m)SSv=Zl{IsEp3at6$V*JKBy|&$qN}ao$(Dj+^purZ zlfssUfL**!(BGl{-%;(Yp}JoLGqWx97k?i`<(jS!n|O|r|JuhLp3)&9Gt_ijyjs9Z zNzo|LwIkq;3((v0<*vTC-EN2mzNdC&FU=8Qh*e7y@#<@w@pG5EF^3F`!$O^{m?eyf z01x5X4CSg8#N=5^&|A}RNy=8i#Tzyh!sOzhnum1rj|IyUh=36&#nim1v|rv;fG!g! zgD5|7kHkk#T%Pd%ngw2isvjXvKNlRTO)mm_8L|89D41m4-IIAnz!!_|pmn949vN7`~vcUZ{!ui<~Gwc|oeKlCOQqr|Lt(7_gI z=wK$Pr{&^j1AU$!#e-PJaKv!e%)dqqItN{nc%iSu4cCpz4S^;PvQh|Z_vy}fzhM*Y z7srOuJYQoON=FZ4zE;p$C^nS1PM3)VVkF*uzSVQ8S_7=Z9t*bUNc6h`_3HHNn2k%p zV!ncB!Fv~+!1y=hpJ=hpVWyKSXbCAFxiOtlWw5h*ozeMZg^)pd%%vlED8VwxRIr>Lfn)CwSJ|C z28|tk085P1-@myqw6+%nT+(u~*=fK^9d^xWTg_f@<5=0z$Mppk=)U`5Z}IFRGn=6Y zjd9S+u{AlBp4t$ynt~kszHi*Eaf_H@aU1(XwEqz5po2BEf6y`xmlk$6(`o38?6T*Z zLG2E1{2+1R=BR~Y;?`?U{#=+Ko?)qiIJc$5`9=YrlgRBf9Ta?<6m>oil*>sO*rSWyfP~1{;zTnM zaUx6gHJ*ooxQJ0`B5SylpU|LV=f3?RHtsGiIO1s7ZmSff*1pzx&9Ql-{t*Q(}6I*h|wu7bv5_nvczD0g@Mxk`~ zNAt(!`>sU0*Y>*^1;AEeygivXn*6*LC}yqtHISacYP7>myCbLFPTFiW3^nVAl;ta? zOSk}ou9j7H^x{fGm*qQ`stUfDA)kB zEVVghWsQFeZP?H;K${@`WN`yLKKLVQO<`xA=`1kN#Wyd;KCl{A_dcLAmInW8N9_aC zN=H@*NJ8pl+0_Vsaie?WZ7RRI;7140pi{=>LGQH5XcolEg1ao; zRoQhiq{K!5nww6R#=DI~TZgxv6IM+U28(%~(^AnFiaSWo&u&&^S;X+f+~viuPRgEF z6&3ZEJ7&RM=ZQ_ZospQXyvKYr?Ks{3ezsEqlaPqks@L5)zPvFk!3SPgkd*M)I_L#g z(#lV$aFox$vrD?GTx8sIO2qlGO2c+ZspCTmw!KUS&M#?=HAQoaKUl9FtW>j&hI|y zq_U0~=P@FB6dW$v?C9asB++KeYAa?+>Dy$E!tMMSZ;6c$WHO&;PXe4iinO&K@0dwR z>dq_HNs^Outu=$0vFydgEhl3Y9;MXx5iPOG_3Sk&uKh|eFD|J~3bzqHUG5neV~q?_ zWdzlE!hJe=>gbsBuf$9%FFfwch}j>#Y!Uf6@kGyINH_ax*Yah3Th>MrlY=Si_cauH z#@3?_k}odICLT6zs;!G83-aBUwh-KlxqAo$-zFqk{Q~OTnU5(}IwqFb4)F45^y}1e zdu`P2t=ed>sjCNvZf!iQ7oDLo2T0E}^PkZ0!@+*hSDAH(w+YwKKu5{*M{cb-@{n?-`KoIrB71_0u1!O4$m@6Ko1U=_OCyDTkikWW;Anhc!V zBJ<`1ApZ*|$MQam$6ukI zk*8`yf0h0RWsF~0t!p7PjU4np=l0kLFyt8(FasAc& z9~*tDw}oli8Ubkn1_3E6hk%Bt>iSUO#rWnJNhYwr{xIl@a_e44>))Ij?J@Fr;EKDW zljB5rS_D{98tdFk-IFkV?YR9G2RttL<#qGD+Ud@OMNbC*W5Qc#^8sPjXFdv#a>y&P z1uNkd{W*2yU|HHxd)OT_-jDgJA{rI+4fIa}nrFQ8aSSm-K-;o@wt`t{gRx)m&G{KQ>#5MU5j6{2F6?N}F5BkHV?cLM{i6eW z*D;SIr-k)S!e9_de(PtLH*Lh@9mMHpwkMz&hyt&?Jd1+Gj1;`{a_48GqSv{&h2NWF z4>A%aiM%%3n!u8h1GFxMyb_8&s&D)7$SAHZQta06<35N~zfsig#6^pR!i^Y@l?Red zlB3P4ww$Cnf_|?suc|Ag#@43GDcm|pGxLvrpp4yyF~)J=M7AV_w9jsc@zFan6-4Ej z!39`5C&nkoH>gLSf!4=IA^@@nI54U!%Hb&S*l3VGqpScbxSBW7*f^K@%w?__xGSna zHEI$z@IUSGe@Pb0v#UF5LZdEB_HRAL&NaXeLlTN4gTaEqC)dRtR%$%*)yAqhyyopm zXw)jVsb9SuK#5v_&EEvMf|SXJL$0Ni5-a5dNjB1NV~%EyEhzTCp%jUShlZV56YQ`(>8xO1(eGw8r$Oj7QWX<4Dd6n5&AHbMKN* zec%OCx7OQcUA}vp75!4G@+zx$+SuS#8SbwejFc{L;dN7o8n1hohuYsZ0(xI(S2#~d z3wA&4k#Ib*ii3T7+TMq{G@X%y6EAdv{i8i47Y=GWo`Swv6#l-w(OFoB68{Ei4GEm$ zAd{wU*@(W~ttsb0uGmQZK5T0iJ+9AbE>f0iaah3_s2Nk^FD@yVH$i4EP6FtLu97rY zmM4Bsf+OxYxXLeEpNWErEm+8-ji16X1^y-(KO>UZ!P(>c3X{%`w^-gh;firm^1>aSEKcERe=>0$vH*q~;Mkq`6NEVB;~MiSDAzQc z$(k}V@zW0OM9gSXWObGoQ`%r5jinL{+bT_nD#eI5B1?6*Pv@`G`x%Ixi3KOPEcWnc zMe0u~J@;NfIy&`UR9d_f&OA#aWLLCxwJ<;%)i=k1+~-Mv9a<&Ug}EN(0fhXUl-!XI z0GVu+?IVBE)HuhGM@ACr58D`+NnV$$4hIPaC&!qLGd89lt$Gj~Yc-Oew3i{ACUf^Q zY^1EuZ~=JXmoNVVDXMJ;kRs#kLT%aKz7I;;27vXBX7!%v9R3omEcM)GfwX#8o4C{h zw8IB+o=jlVQ71oe&}Bjx<+5hPYKU_Y;Wq#PaFkf}X^V?xKcOzK*?8RIYTK}7^@*6h zg@~tSOR-(e4S3J0&S3lvTir|Q9cot*!R>R#Jgk+-3pxh|KL`^63$X)*K=Ze!5hBV| zZx!bI)S$bsk{NMg?1aNg^&Job>;MyeoU1j!=QDG>LR5REK38NSYuK0Zwk@igAOJ8r zM2`GIAN&|BI^(k;=Qy=)FJNZa;yk`+3tD_L)nnqbpJIY#lRfFj*_R&G5NUq-*uIm6 zKu^I5wVr~E)@5#jS)Z~yM|Gm&i`zdz%(xv z=EoLJ?{w-JlRu!JS43@z*t62s(l@x3<~vUtvkGg@kjU7e@_VqSH47WZzvCy`&Aq*^bbzBR=M6Mov=0fVn|8BTXw7T zUDi$)QN_L| ztp48G1Y4qlU=pFnY~nJ#(ZSNAL(O~OG;YfBUSNe`Y?Wf(4YX=4;A778!Qc|g=s}%V zGB_yprCIcBkps7cX6vJCP4)JFY0x-WEWTkb~Km6k`Ri<=9NZZtW!assjYE$A>>1~4(}hwKn$yK zE%5*nCm^Y(0O1#;S_ce^C>4LYbiDBM53X0o6Eo?{ z{PYm1(j9*I&5zjL0p$T}CW`)sVk55Bwu_uo0If?XDYn1Inx;x%$WOrcp23) z=Ga%c^=T+;1&wESCGEh-^zk7`;}#1EO(ImFojgA(ywR!;Tu>)!@IxB^Ax}HCTnaF{ zQ@OKM5eM69e(9LVk|*`cFSWAve$SiFN7?+iBfiv&nWOYQiOF**c)u+_q?i4uS-QCQ z)%B)4e;c$EzCb{QWA;pKe&uFT4jP~xup10+p;Kq`Sy^<$#X=^&Vp|IK7?gD}OMEdA z<@oR%^?ulIYrG1id@n1n04)D@;PSa~fhCIP9GG-h-iAW6mkaN-$9{RKF%fswp}sX0 z1ZtXm2DM-Caml{eG#B@^dQ{z{#%?@=z+4l`;&G=d_9QeIdXHC>u(a&o^;zxyk&YA( zy_A3320R~}SaFo}05)t69^n#W2S#*V4f8!{f zaD3sX4y#vW*J$FaMoAXNm9(SrW1LlhVXMcGv}8U6T_gG7Wy%Vk0+5{0A3H)Pft1O$ zNd!eT9XD%;Yy#>$p)N(qd_3Bs*TqK&Ca{d_I6pJl$D>a{-sfshRF;DZ{TQ-J&=I3Z z(p;!|r% z)W68HQ)}%~KqN(1-6a7Y{3~93+BtYXC_`~XIMb)yA;jgI#Me~jo6_|TU}sMIifbJL zxA_?WP|qB1V3$}&giL)gustoh3F;p;*6?R%XjDOgAa?)SrCy+&?_vEod{^%TvCcZ4 zG??SV+zA^fjT->QrKq^TmFbTu-c-7_@a0CO=Y^rZttJI$J8T09`-7K0u+6y_%Wb|m zVh!wf^^1|_^!{ltk7h+8?n>hza5q*xJLfrUme-|t9Xb`tdEyn32Yu%UZQa8uLLF>6 z>Xq9(-%;TYdTs_f+*E0W)Wc7^Ug?WajbF4M(T09V3MbS*{t9?*eIKNbK#yd}7};uzS#~gctPztAnU4TI@{e_Q8Fm z$u|fYkyqOmU==@@a2O>>J1oWBJ+8mI-gfA^gP_T|e)71mbxQoc7G$a(T4KmQ9#F2# zM+zhlX%6qxQj>WfS`rYs#t}JIJ-5OI2qNQ0MjC5{(oEq!mHecN4UnLY#il9EWVPX{ zl3EHQaDF6W#M}>&D~uRbQ?C8nHsrtRHsUYS6Il}O_qW#JY6npFFkPB)9%XS99L557 zqM?J|`vGwQi=wnS=;AnNBv#TcfvW2pS2O)x2{I@Hc!``XUrEw2zgke)G~w0!=9THh zTKD*-4$lbkpA}VG&*-oh?Y`P>$Yk6J&-V zro_U*Cy8k84lOP6WkbS{R@@${s&3uLU`#PtJX1o&|Jg%*UvNkA2PUzjJb@4^ejjMP z7h$QMgfz(=j%xCpt2JK`Q)zS^F*eV>E2*OXM1N=Ef`ecpCeAfaQ02Jw6@%Ko$yUgz zKK@5G!XJ)18Xp%-`O_u>qTiC6*txBQ#*I+2T%s=tH-|yEJ)L2kpi(6(5VZUo_RV61 zCNF>L0#!4-Qa=b|S1gIymEQ!$i8e6i&Iw2noC^i5-jB4Lz1`#nqB-J4br~cdNXE)6 z5rpj_q%U_w2kwf_w{|7cLF^wx1BCf>Z9a&Ro=`aYSg^=;5L19B=2--DaB<9A??Ac8 z^GfcsB{fukRcV;-yhTdqmutzLL=b*DO?p65RTSO?sUnkP^a#CljJc{7Fe8?wZYGWV zYcSV$|KjmYTbow_%`~yq{rJ1Wn;KnF`DjXlb#geXkJWGjDrg-9qL^aSRPUR|MYA~g z3y=dr;v#fv-t;8mpZ(3z#%r3mkpGb?{*su({_>B^{vMX{Z{y$LH9&qZK`rk}NhUXf zX9u5DXw03fK#k%TjsE+?p5Sz18<@NXAeI5j!pT&yG-3xYi?Im#%O&U%7-$3pa6r#s zof|wtCO^RRe_Oc^SSg)QHpInTcJ1X?uH#yRDIJ~XV-xmUf~GTQOet1z+`Len)WGI? zxdv~cWALK9JupuHL*9&xXY8@ts_0nOAZ2&IBtYtmeZo(hyql||8Vbu36)4l7e@cSR zHI$5c+dp@V&Z8uz0S-cs0@-f}f5=3o!Vj}q*^yqin97H1JIg?xtz{l_-jakb>HZ?< zz7wtkd$DD*E?Dy0z4^+mX6Oy^2_+r6v8xVxAKNHXr0L@L7UAS~)0g&TulLT6I#&S0 z_j|RHyPR#7RJPOQ--YQo`kqY$96-OzC(cH=j(c~Mr6z^+=CthrshuG3xdT-=$DQ{8Kyqfi#rlRx-LR**9ONd}%NH z+L~DvlwSf58J`e&8#6eQUK_N0Th*r6id*TDAi-t%4@vS5Er2FGE;kzFRObXR(|%3! zGFxbqCKf_LTs;MwrU4+}cRHpDWj#!%lPfMg>+89xU&$7h$#DqTGsvG*Up;oC6U9A1 zqA6M4`bs1vzs)Ez9QxlFXY<8Xj5Fe4ZCLf+jk4?2u~foJgmIQGDZFZN6)Zsiv*v>c z7$^hwn*!4w0dS7Y89tH>ALo=*;~Pb<#*Si<%H!{*=K8)1i_dK`Xk|bnO;Gs|V)1*P z1MEfHSDNPPf$QFa$EgEsH|`Dk)xi#D23A@BM`uG!I`oc-7bB*DGVeuRe6=a3!IKq> zCvqLuQz27R&me_Nl%Fg170=d4^nB#n`ON4XdFG>3K1Q)qQj>J4Q|aQ}i;?do&nhl% zpr1l62z+Kl9}~mG)t!A>`Q*Ihh!yv7j+SOqBN?WX71G+fc*|PsHc+K`yl)Zd&S!9a zbU}y3$=T~9lgA~XNZkT8J7Uf9+H@<8sF@i zd#~z_R_Opq#QS8xK~Q31U6;~c(pH%Gfr|2`x{h1|X(Ab(L%qC1E20*VVB7SaJ&cPH zuJ#eGPrK_3()8ttTESPEU#ExPwNJ3ONYfm;q%j)P_VonXn+G)QW1lel4_xHoC@ZiX zwAg=+6djdyolXFK>m_KwirK(JZWsj}&qqrL6ol5RNSK z#6MEg@&-Rer2r-pFwLN)8?}bo*{~#Y$?ydF(C?f}w&ZKI@9Q?g^U5o(BV9cxlZ}|9 zAk3aGeQ>e_XAE^xTirXoXQtJ+u_5J?*>ttPz*E-Na>2{O9Z>u&h9zT)Bg)@)U4cg| zT~Q0T-h)6MSJ47_97 z8S27K_>5>XN({M-^KMRxrr>6Rz^5%chg9CU8VlZ9!9P3DMdGy7E3rd`=5#V1`Q zg!X)qYx$Gt4aO=LNmO-;hbPGS30}V}dM{ZvC=~tbSX?4=K z49>mLcixoF7Y*NO#9MO`d%bp$-*{zJBeSapUYf&TPb*?<)0`1RTKiJdTG{SgcNr8J zLv~k{r$A%2QZ+2>2NEKCvL1xpGq7K@Ue<0XJJnFq0bmA9sd7vCPhN6m3^9`=3LAAW zw883S0*bR#jf_m2Q^^hicB#kb-FmMKV_n}(Y{aXVyytzTWNIfbf)RGt_3$226yTmvxWDJ z?|cBK^O)LtVs(Xa5%A^RWg3Pg*l;^KtSmtADz*Y#b{utXS}(FNm6IBk!WCw_m0Ht= zXpR;7OsJWEcGupYrMDB34yoV%UB#=P$X8eGB^PfmE&u)JN-9v@E61wS`$EZ{c`u2% z;LF+!o$36_rFXzP9wI~ShbhwG!$zil)HONj!_af7*ZsMJMY>L*uCqSqJmE#>yZW`# zBcT?LqocirKZ?go`5$boZI7zcj$%{Sl^Wg_W*?tQn9ZTTJD-&X#<2F~)F#;64Z) zQ;GAx?9G)&)R7}GTO5r1zO~Mjm||Pe#gI*W?^9H_x%$%wAI3x|#y(fvn(nH9Oo#dp zoTuJr$ZYdppo%fBIki}?Q3!ul6PuqhLh>Z^@{96}*Q2WgWZonwmHkVA2YXl7w736& za6b{=LVC8X^?@~YaX6?^3U9p5Gsn5ssRUrjj6i$H+Ub$y;zZ~akY?!M=n$xI>#v^6 zt?uFgzULylp!fq@mG-vwulALj5OM|Z22g_27+GLJIbsuSEyZ@!WmUAL{gx9@(a9n| zV#N%!t@nb8+HQ9!q%*7^^L237E#(B>s{+&!J-2tcsw^-Yc|CApG~pZO_S}XFZ%pD_ zW}+7rRbIHRYkRzI-QkMyo4}sB(Al0eD2?g%!vQ|+7Ei)d;vmv*lMe)!vG0m{b72Z7 z4UE@Md!&r&qsPvv^V&v=&XQa zxI4Lo=saz$ZtNzFB@P;ND>>YCohmP<8TuNQEY$vh>dP=moLo*U_kk@*HKVtTL_oBI zN2&Z45Qc?ZUgKQjnr2}=eetP?V>R4v#D>!amt~HENj>hWLGC|S6H(9X>U?#F`gGd-Aog;;Q;!@e9vf(-}Z) z4qp+jFoccGL+lp4IdeW$`6X;<74~!rk1lrcZxA!Pcj9qi`joTpdW*;JIRgz(8*9Xm z8vyt79@`56rshO`k(;|-RE&4u;nT6te@~!-0xgeEg-R_9m0X_y|AotyA2<=t?0cOD z1L#vPqsHEWue-K{1U{|cu&cEnDERPR@z=E+&2K16TBn(bIyhpKZ8n&&#W7HsW-Iqy zGaG!>8^=kBUMixwzoOzpaatfi$7j>YkcBWx@J%3hr}aZDuoh`7+`)^RI;(f%3Qjee z*?Uzew|HIG71h5&Y_e?)3#^?&p;evDlG7Dq8)MFE~G@f%EFSMF#_P9MGrXQNR z7>>D`^ZF4jP1V>0oq#bGeh%;NsC)IZNJ?9akHz*vEChG+Gp+~69+N)=?u8XsyQ2q6 zKSTI7dGA%v!0l`nr#)fi_paNP8_M3xPW>cQyd&VhE?w?_x5rQyt_k;lq!jz*KkeQ& zda?%CC$iuB=C2!iSyzVq7+axzY+)H4-b*v`TNaM!i`oT$BvBodjt7ly|_fiMoikx!c9e2p*caGE(g5>{Am>=SC7ET*;rt<5va^a}9P()45EP zFqTkw9rk~dpG~uWRd2zou)nj3=7+D28OBEUKK9%ef2wL+6utrwMk5$GYCo_>U*(F_ z^#JubLzoL)&i}M$?Rmsc1Gj(gESihD&U!a>-r^znTgh6vz{>$iBRy7z7ETpb)qY>#H*zcJPHQ1ZfO(@}w;Xj%Vti1qS!f-PxM zhZ0>LQt2R1U;GAeQBYBmzHyv0#?M=mvH*#8z!hYdGpF)w<`}NpXWR_jC6vJ+ zK|j5Sb4I_Tv25!DoFdct2?;2J=FdELW+cn6LXKep>E781=@{W@c}f z*1uWmJ&_PBi=zzLM4u5AcO=-_LNV!P8L)iJc-pvE?D;i0y;!4ItMT}hS+toEZ@ z0?S=OrajBso>99NN&KTj{fj~rGL36`-vY^(b!f{FR>OpkY)}EBh0?q#VP&t}&;ga& zoy&|db|S3q3*_0!CTdwT!9O#oyTO+gm}c3LHtKR4H{Zw{^|?K;dwD^y@)X+dKMka* zlHu(C6^aFPyET7xyB8X27XI!Bq8|Z5vA)@;mX!awF%NuhztSrm9B4ThUyF-x#4fXJ zm@+jm+Zlo8B=OgL7b81*pXM^Vv{gHx;$du?{ z)vd0K9LXPvi3dl|_c>jw{iN~TBHzc&X6S9iot+j*Gnzw(D~epcEiUjdf+>xCnCB@r zCujZMto5=Qu05iM*ureE@bV(^#sFu<`Gwe?IeFv@i+9Is76-0KoNV^;PpbST9|qzM z7||vC^|ZHb-lqhvH@K(gSq`>Q(VaOJ?-Nw#GlE8{4wFpZPi%Y_H2cN9#z8&_A6*t! z(4P@o)62J=dgJJl7pMXzqHTakPHSzkLu0jNU3S!IfO{&gjDC_RWJYz1lP6tQxF{2S zWOWgIxGW&{n(4sX&sMg3YfTd>pV~ZZFSik##hqcAY3hN0YG5Fcm7>F{sOeaXeN!r_kGlS+EElv1&o7i&cu z>8ajZX*Y76j)!qAng-gRXtJz1u<=DmEf<-Wxol&^)(6wmU48$6pHTtGr=|<>O!f?iLH!rlW64}1@_cahu_5$?^H|{4fO{6$d&;EX;yM%G3 zY2mvMO`XU=&(YdTJj&b-YQ+(PhIu~Y=upO*&tvtN-P7*|UPu2~>V2;ZiuhXoPjQv~UC znF}sJP|+ay2UX!UH^V+duzonY(#+`zx^*1n8vHqRkM5S}XPy_@{2(2~i&wHR?Iina z(4F>FY>Zppdc$JtZqOuPL78D=2b~I_=P-FlF&5r|*HS`I1;!$J1pCn%`&*UoFY5F7 ztwlNX?W~SYeG^yJ1&^boV0cNhttiqktA1^;)5da;Dt%42SqUVZ2p^G(g2?3SFxf(; zkAK32tVZb7D0q2n*?c*EF%9!Zm(R==WG8PI6#B!d7+zhE?P#>smc&2dBf_EWwkwNM zE&5%JEXVBa-ZgC*K&;H`y%Q(1r*9Fts8Qu$F`PLKAc@n@9B^EFCkyxf#Y_CB43{~X zBX1@N20(2u)L&DVTW#l7^O2RmF7F-$!9$hyKY#(yD}=En0vud1jjqIS@~s11RrjKw>91|J-DK11qMt7y`f7sGBEA^` zgROoA9}b1ii(NxtraSRY_~=IFbuy8tNr)U4t0Fu7BiQvzBSV3XhH5e4Ok~~xbk_qg zk*D#euAhbnRvZr*cShKMALmZ>gf8s6old-3;yUp%;y_}Z80waa2vZh?G0%2HTh|8T z-phWS+)0@(akdHiO^vn$=|E zeI`7V9P-qEtYxTwM@s#xlxRF-rc3b5PgjfeAV^E&QMite@9W%dr*Ct^c{HnR zbKv@ppv0yrQ)7nCGvA=KNH#vYFK&1nNYRX$)%LS%zj3R83r**c!YXcnb-y_`E2wXp zg)Yv#**xe_y9~GG9v91#40w5B@^n93JHJnhfX*d+1FW*09biSI4N(A!ex*Gi(_%Dc6jG(1O zQSB!KKEF^9_l#oduzrFDbCMsaun#?ca4q?FGo*f>l|G`-Mb%x_k1ilbReD9R>+Y97 z-B%sf-N5|#+S|za!9%a}=#rv|X~AjH9tB}b?4$0ugdl(P@g?M>_HxtS0x2fJy6vW6 zu@7S5zRUz(&@qxr?>z|xCipxCs>Hc1uG+k$!mJ?Jf1}mo@pXcFy6Yf6w3@7VT-n%! z-a%vKZfjRQUK6r2h~}AA2Hs3+Y7gr7O&Yi)*?ux)cfbp%YRY%S-!|iuu5BfeYCS;@#2ADQoXZtfls^ReqrL&wqSv52%VJBh!oU3*AgV}LB z)FJyKby##sPqqz!_Qf?h90tblqYv@^%Vj^za=OWaF@UU|U&jviIt%Lov43%`^ayMi zza&70b2OQ0q%8uh=#qW7k^_rfctI83h2cNGB=S`Ze6`yOq=)xT)e?JjrDxz8YXA`d za36Egb^et^e!<&tQBO5Rbx)TN7QIcTEk=}2-f6D$r!Nfn9`k`(&A&Uun9;^#jG>0r zjLc^SlBB71X;i%CGk^`Ufq^;YC>z2ue$=>J?lQO1po32M z8~^i|{%Z-{7hQey-;QYka7-f!OGqF&wzCTCy?^fEHU4B&q;Z9NVqj7|yAsd_*hybA z8~vSM!wIWmb?q+1Urtu0XXV`f>5`p-jrQaq;5X^GqWqK5N6nrJs?<)n&V9Git2o~d zo{5=(V4ERkQkCDoo2!cXLYH5$@!x9@Fn zB&=mIH{o!E!s7tmOlwPMm%A%5eNVpfwbShK`gJSluqUFMsDlF;H>v4F z_)s--kUm@28h~S1%XUo_ka|h=ADUD7_%gv1!j-bVk4O}>14(?*nI|!wD0l}v47J&K zY06blv7Nif;Mfs@pS$QQA61kx6{VPtIOhX&C-@v%xwS3vld?oqn zh6pX@PPHK>w8bH88EJFBmpcfncXON!l4hX3Xek*dizu)k)a=PLvhUtA!e zcP06o2;H*!m~NmWmJD2n^JRJW@;NvJ6A>nTw2oSWit z_1V_YQUwTUi7OyfsBTJ_P{M!U5`MhZpf_3l;N!nfUmj|0;4-kFYjy(yVa;B2np+&U z8sq`hz8_F`R{))N_5kkuRj^+;@`)#x`OjDMXEX7;hb&7*rhHfXVf5{RnOhabbZ1wv z7doK-nXY&HpR_LEZf@DXoynH?5O|!^Ij=BJR zwMU0wvd`P*gm5_AMZn)yAT9yT#_WxcJ%%Lmm!ClfXJA*XNAGZ5!-K#MHUk|gFF2ZY zVXw_;+IQrQ=`LMc1pT5+lZEZ@hK#s7{Qj&);9fj20(ZxT*9y5|i}pbuEWmbsL*Xpv zI#^=GdCXo5G7v7wYx8z{bj`IxJ^U%$T(EVHeb@=F6IqkFXM9OblrFXlVqN|3Aw)jn^ou61itpa@A0u-`Yh zd<@GEEu+P|7s|J%Kz2}>^QCuI`dV<78ArzsP&8Tx8S$#m!3XDe(BF1CGi%tt!d*P( zQwNb(x091%Y;%Vz7^&D}uDmy#$Ff6@4E$&7C*S&7V&Owtn%C_4ZbzKD8YCt)=46@<(kAwcn^ zsTsD4%77rbPsa7t1M4i4{`4>VzV#@uK8Btf9+`bGN{z`2Ka@107&NQ#YHf(Y0gc%c=y*n*pcecQ zoduxy1PyKl+@`(p&U9w=AdMMlKA@S|6MnpyNCQ970)O`eoi&i>!41vxJiBdW_{-i1 z@rH~)Jgas$o!`;U;q32d_G~x{6Y5?kd=3k6?`2)QK&TABJ%pgd`2ayYv9D|D>pOT}5;(W~gEt)Oy&eAC&A-iqbU&d*Z((p||_q+7|oGGk+IuC|0Q*d{6yp(&9svnG*d3) z(d_n*llFdwZuiUj+FL}0u1m%8={Qs2R|2s;X_)w_w0a#rF*q}gl5kmXD~Hrknf)}o zc;MpddjXKEQRG^>v^fGHc^9st6~O9$9RS|Mzjq#birT()2pJ0 zjODCOOh}L}0A~7&^cfI9isA}C4Z)5-#yrklp1;CEE{FbRF)Fk1b~D@<=7RNO8z&<~ z7ImiGv0j=-u4??rJr?wJk(>{8+m`eDmlsz)j*T9TEwDvITSW?av)X7--wy}J7kAy( zF(iy!nJi&TLr2H`EcYT;B*`T7S94p->(0?n2%?@AAYpzKu!)RZ^kOR_+iUXYi6MEe zkGVJ~o#z(T#8;Pcx!iO?bLaH#m`OYAa{?n!<|lSrS8iFi*fLFH_ARE$;D40jcfb(` zgIOQy5?6-4L+r{*H?#3-+PUdC7~@$=dA{pmc`UD_?cSX0r*rd65U5$#-5zhp&~=Zj zT9N?NJ=rdY==j~)z?CmCCQHDY*hkI;G6)M0kL0Ln#z~+J7&Z4Ly^OuVxc@$BDgJqP ziymt;{o1}Qk4X^v{Gu&bt!%e8IDR1qh^wCtPjp@rc0#|pOVbzZ0-Sk; zc^mC5s9-zR^NnY(W^bpChTR?XAkRuawGoatu{a5DZHId85MiSu`={YB%ndPT9da1s zWy5X>=hR1KIJVjYhOfxJ>1nbv)(BggtM+M_ah4gFBViK7Q+SQb>~UwvlliN6etq)o z*PF*avrD*n>(-ZF9XmC@XWb`hpV~ry?e0q1blURe2v18dM$A?q1Ls@c+uc#$_HDPd(jC}AO&ot#Q3U9i)zXCeDje!S%=XW~?cB|xT8g)W5{aqsj8DNQNbxQ0EW5*z= zai#>Yhhq?GZ)aV_PJYZ z;j!Av!**tpd_F^Bo|}IqS{eu%wcs7jZ|HlX#(+7~&dW$~wA1&nkb$ZxkxPBKAksv& z&H{5=Q=kWAo^Q7P3F~phWczRrnR~~V@e97)3jmq?3lu3rC3El2wa|P>tK7E5HB$S` zCPKU=E;7n*y#d*T*`2WLcdrXGX_=Flq)#`=Kt_o&ksR+4NlH@(22VB*RB`U>9?RWK zF)t1jLf+nxV`lW(-QtB6#`BYtX;xprp@2)z;k}j0EyFM*G%Q{G3(nC6SJ?ihNseTCc3WeI7dzs`day6L%3nINPf@SDmy^r2#2c2A?^9Q!g1GwCd9vu@7i31Jfh*pC+e7WaD!5q8zWsvOm7F&>QMp|(mH!=Av)=5_ zaI;#^#`=Az<92!{o^;t~j^CmPwywkUPC2%Qn2x)3B`1!FcQ-LVCO^Uh`Q3%8J#5D? z*)xj^9aK+e?+YtHJi29bco&NQhzY1ii>b}NW#(w~R8w4Vmq_mX2sOAo!Ty9D&%wAQ zlt9NkF1f;$X13K|WFhb9_w ze%%|=H>fPgfEQC5#b1uD(ei_gSHew5%TJt2YcRXD(-#r4$PW$6?YT{z35u~_r}mt% z7iNZKZOHiLeDp9LyYDwrQVW zIk7Z`u%JQ7q<#ATqfnKO1SO7)0ACvPP{glu+uuw)LXa_8T40>}Sre95JzWF*a0xRZ z7VweI?t;T=0Fl^04tDrH-y&41vb|fj@nt$#(EW3*CT_f)D}J^RwhTuAM*gRrzU1QS z2Re3&naEVUNzO?0D3^M_V#f|`ZeB{a!|A3#wt`ZNG))<$)g=?!Fy7ekXEVuVyM@H>xCT?KeNXaG6W~=3f}q3jaTZiQK=KVpmvl%>S^)W8%9v z&6`zz%_`=`&GA11lroTEk#*krwLJS_yb!0x`r~W-D7=4>{lce{iKb%<&wdB}_ zwp(|nL2l50nwxYrt+*{ZIM?Pd+anGXe=w!VV@=gjuKIfMdBiqJdcgWL%SxAu+-V=l zB7#wO{7vCfafxRw_S;}{&|DkA`fGdqTBNSXwW8ibQ8c-X{c`0;*`IbH6)nLrdT6@( z@em}?iJA9am|C8_hT|Zseh@vDaL+t(!TLQ9y7{=J2u#|-e;Q%^w0n6Xl&}y;f8-s6 ztH)1y8H+j+Xe6oVr|Q8z0xwkR!#jL9n&oMSwpI?haI=fz^e@9aH6acm#nzj znaCS_Kl>4Em+Z6--S|-JH)IINN8R_*LS4i~fasxia{=!hStOd9J*w~wclvztsK*^K;s=IfFzHp}K=*-NgzrhY;L>oF^VBV}n=9MnlW&eLHq#eGtK1m zu5`*u3zuoN#>&jZ9cFSSb6lvg(sCiSq{0nxmt|VXl_o3PnWoZ8h0NR)Dg`nZDi>Tq zMIl5*1Y{BL_i{eJ&zbk{|A?AGv<|;{h&HU6W@%zCqqg{kwDN4VKs`QQn)2r>cT?7iYN4 z3GMl*?Ow=F=k`+gA2g@%b7Qy=NibCBlLp`MIjQXLP=@3+kJy1%7tDS9ze|yo=bogSb|BW z%UQGY!$HLIu0xl?`;T3^bbTno+BKWGw&Y{N8DT`>dd`Q^g`f4M+;hZNJ}w5E#CwqZ zw*ARgwx(=$o7F*D z41`KpVzz3FQdy+KBhUQlMK^m$sbU9~oOQbMSMg`x{XlWm?ZMU2oNs)?89#OI-c=m} zPgLHSbxLmbb_rkjUb6k5w4w?OnH@Y=oqImz&F(Xcy;&W?-B#uSL4sqJFV_xs)8rw0 zlJ}I_KmvHZC#leVA?giF7bm5Si&k6Z1Qpv|T_$|&H~an8uC!EEvO!IIwyfUbxqsVZ z3RKsyNC_Np&6Ve(OWaP5IX-<}^5KtM;ruBY?KXeXh3mE5Qhvq)e5mj;35Q1Me&Xy7 zF*Tyhx8A^|%EuWV1O}1Zmuu6q6&Y?PK~u7&n+r%Oy(JqZ&5HwL7YwR5XVzb_#=tD6 z9T}(SNQb7=pU?+G_MwzVj~Bc0!|wZ%V!Wxp}Pp<$wl z#F`Eke|VtWr?lT8+|NQTm?L zY%99@#4ASi5Q}HJ{|u_Y8qWCqqWXGw%AI}vk)26`ETVi5JOK^8UeDagJ=A?-CO15e zaor1FB;s!XM0EI~^+bVVf*i&Ro1)ti-csp{npS_FemdngnY%J`+V}Do@XDm+R%yL< zIhH#Z(sVs7sZRL|UyW#~5Vs&BD242n7vhwVVIA%ny(*=pj@u5bkl;mhmjof!R`>JaTCyqw5Qa=;qMN2?}Y<1Dy6C>EC3 zE~&Z)J`1Vcs`|!&%M1XW2S6>R?}@3gF|8k0e|C%HXMKPV$Nz~6px-qrd^@fEban%b z^Je5#_28B3n|YJ0o7X8oO!x-6)850z9JTPs4f_H92l2Fnn=G$>nhmTz90C{1^;v(w z-jzUI54AYe$=g%jJw}};DCFa&kn*spm@tSiB4stEF2}G)5d270Rw@3fuHnOh+FeB# z7mNSH>Ub3_^fE~N-CiBR6}4F%gdchu3>|h73WA3NT>Hpv2?La{BAWs8>}RlU)!oRu zUaq87`soYVS4UfL;gJkr(rkK>d^;d`?L?UP18(Srk8L(H$e@_kT$;`>Nc-x_KI+wv05melRJdJAse>mR5X^; zOf!Z}hBCe+IH}gH7u%IsYQlteyF}KS&!chZV1oQi_XIz8G(+lZiO{u!{t#xCY~l9N zz?Re8Tt?B0^_gca5Y3U*p-`T&8tCtI^_>)+at*m+9SL)VNo-IZNNt~02Fa*7mbs4> zUv1}MP-HllT?WrL3tPi>q^jTVfjmjP_NZ6>ixOxA zO$29`AHnrDxPHBAqwR%EDwL;K^yfh=Njzhl+Gf{PI^RzK*%GDZ0VH}h&(92~22f%@ z*0Y}`L`^{>v*#)+#cB)ZS1}ceaGqkoWc30Zql;RSV1zD4cr6Q$SvvZr15xAg&w68} zCj6rtpQ?#D3v=qE2I#uME z7p7~f*{hA9OhnO4S&aVu?wr^f8=%gW83dnSG)k0Gk>chT}Aa#sg5;xoa z5;WGw+d@{L$qfv~y}dCSMd`4QF|$dtb?3_qdCiGpaxEp86XVK6-Bk64>f#(_f%qMi zJ7d4{O2Ih*EZA^Sp};wEr9wv_dZva%Q80oV4o&tUiP=-gkZ=SqxnVG5`HbAO@iYUI zXeLU2i|^aW@A`Z$AN>p`OPb8OFpLpwI|FyBR+N;NbOwATAarq_ap*TlEi&ld9s=!| zwZ2c1#XHyPh`In3=f+HR(i^-taehYCaXmRE=_EK-m4WI9nZPftdr6p34xYp}3M{&n z7x-bJpqCDNR^zNF7!>8Of^pQqfo`}7X^ehHT2-aFJCmD6d@odF?5Bm#a}vaC}N zXrby{sFS59PjbM#C`s64b)%s_$PSGS0->|Z1Cf`y9yZMmCajMil>^)&>(K<>L+lfG zEpYdiA?pMGS%0j2Laqdt3jP@V2U)06T?7vD5@LBq2X1Wix)?@KL_MtlsI$Px4l?@N zv@9j^?k%&AjR=6%qKI5#pbQ0tih1>QYx*NjA9mOVYO3>Gsz&!Hb;Gx&Mt-zwReh4( z4ljIa+*3T85FS1H`x9WXq>maI{CTr+FnXM5-ZIk*D;DqMmcu*|L(Z;6RlLll^seuN z68H{;bntz<1En*a7yokl5!X;u>-aqn(^WJtPW_f&pdDm`;m{`TA3t>ai8MR9o%|IO zc~uv#*)5wprv%ZQI`by-&2ls0RTmsMCyMFvfeJ@i@4&r@g55NGrW0>^O-p2#{U(kx zFS5V>l{C{h<32HV;jw>rWU4SOFUvlmjNt)`ME z!zpxqdYx(0Jt`q!@Q-0t4L@?}c>VMIo>c6`9S4#17WYbXv9iKn@W4;YT142Of>VVB`4)iRi3`r@)xcmOVP+;v$L0O4`M_;KdljU zsgFFMnf-{qjTeSak>4KM&zy#RcGs1cfG5#{X6F+5!dd;MhN=n!Qz7X&>wMiq`)zHE@^-AbL_iwy*XFo_T(> zC3Lvk`Y|9gN9-O*%^3XGvro8Uc_XvCEdEiVRrSEdOjnsKPv{J15u#WcK-`=)=dwMf zl()6Nf)1@b`9OhDsR`$K;R{WE7a*xGefELQgB`1CwnxZhsO$X?$EOZKM!^l63NI<3 zL-2S$F$QpK#)Ow~9giS9mX9ssh$$m3Ke8BsRyk!c zsx%w?s|Jo&P>vitxHlxPdw*R3`)SmlJh%}~&CI>57bwmf0%CtnS5#MvT45M5wZN6JY!bR)|{k~0}cYKEnsBej2~XpMNtKJ z%-qbSgzYaRwHsrlmU|Xlu;cBeTJ5A2_7()Pz)6M-Huan}J2aYH+F7OHBw~Ax&B%{V z36=w7mmN3*_5tvq(7RDGu(JJ0w^ejiKvT*W$#+BGIo~2=mvyEam(kjZNr{uLtc`T0 zal*)0dW)i-R+Zrt!i9|{h4<05J!fwg+g^$e%LA&F3Z&IB``t{9nnZTPKU-oO0o(K8 z6w*VGQ3$`Mv@vBXq0TYl`Gbzt{^078D6u0N!hdlKn{%q|dk0aY;h(hFp*oA?X8-#%LIlooLw@1gy(37_vqWxoSi~cYY~@60u*fQBHD=Bq90O! z!!I#h93q9J4G=qR?37Ourjzbjka)#P^E*k&JpO{qp`=(~_z)#^o%KheBn8!6DlM*J zshm2}-+)6#>x7Ce2#6V1ndXO&uArkV6Af_Ke=*+XR<5BJWt>ixUno3pK42Ynt!uq+B-*$) z)CXhe|I#z^!AqT7(^?ea=#&DJi0NZPjC6sh| zZv4guPL48e)Kxb;gD5IvFdh)oQTxIg3W`2pP`nQ8uM_#M_42NOF66=)n~6$&& zOq=(Ud723i%n=I)3#y$#d-Zp^-9Q@gHn-F?4deq6o)(7Nm~8Qb<-QC2b9-a_K9P0? zP)a)$Z%w$lLXAY!Z^eD_7N@BaFh6f8%WGPV3`7J`jAaBz3Bz8Eng~`fi>4>9Ps z$!c}JFr09x!`YIC>fJ&}xm{PQ=|zTM&X8@(U`hS_zXCA=7hy^FHaJS-{W{dwacunI z?`-lD6%%2B+J!cpfy(mrl~`^5_r*636v=uVgd5t@Iyl9{X${e2 zq=wUIDsPQPISoX2?vY)w+ENwa=bd~MoWQ1|V*F6unff-&oxn&BLj7ca#No$H%y+!3 z&GZ2GmkYfmv`SIuNl1|K_I&5*Y=$TBUtHnvpmU(Dj9rB4md;edAid+BIBfgD9Ki)+ zf4I&wvBj#{rp^4l&tm^K#M(USK^SdoxVFan0`q*%#6!|())Q6d$7X)!TBfa9wPEL| z9LOwBycmpnS8hRd*e=VF5KV6s%K1K)Mqoz*_Spz>gIF$pn?hX5Wk!xdu z{0UvdOWT*usx}0^gWOwtDRP>1Rp|P=eR46ub`;gQv92}+sDX~^6Xn5lqD=e!Rzul* zBSgr1wwV`cwC%nPzWnyqZdAj!jLK+;ysV{a>!VbSGHg@1DgU^@Z>MjLwD$(rMeFNp zww=xng_J@d*lc6ld|sO>ccwoew$u*l9^oC|Y%_5ucRE`b6BlppxW8@p8QbO=^wH)M z>q6gJPP%xvF?^eBWkv7w=OF@_>d5ai5k+VU23DeJbHvK1RL8sWY9X`;km?q%DMI2N zl8cky)2&h!X{({~mv(ji)r;*K@0`qEE@NGuDlfdy_ha!x*5trB#GgE`)O7&Zhv0S? z&mEle46RI0sM=%u9_z^Ylv=mv{?PP8WvJ>`_&TS#_XtZoCqfK73oZIcYn)$G7b=ewUQdvm(6Vy#n{%4 zZ%QN_PpXW+1h0A%dHsh|Y+Bf(&WL>d3!j%@=ct^nuIgz|j8%vct5hd{VgZCLye$>7 zRS3AEEui^pn6$jd%fofTEy@T@FciH&5>-N{dLW6lwXiF^Ve=yZqCHWa(0;L^@u6qSInuKOtQ5*%)uIhVmRx^L+}nf$OSeA&oaEBT z+wCF`erZ}ZJW_DKq<+DkL#dU<##PQTBY1&x2Zb^SdgcT}LTq%p2@`qw^0 z$JC3-P8kXtpZ#tX_a4H#+I)FGvchq!Pg=F$;Y$(Qu}WK<^^uk93%7DA%Dh;Z>B1r| zUa6|imyp#?9|P{1=NyWT!uc|$7^XqD*rfwj-3>61vq1ed+zdYHs5eGR_i<&}f7Gi` z2YN}j9geVL7t882l9qCbh5sVsJIYb$sn~S1hGi$bU@lQqoZsI}W0e>jiJza3fvMkb(KOOgHsF#xrFK>}&DbcRDWM%5af1qj74- z;schQKf=Bc|M@>$P7W3*!WmtnMUITB4Ci`ek`u_ozvwFo$R~-4eg^$yDCY}Tqq!a@ zi)VO!Ru`TYNsHSqS&X%u|N3?7F0ZuwbR$>F)9Tq@N(SdQY($TBC{DOsE*g7QN!tf12tUuy%!UU{(Je}gy-gS!MCcFJ?lAaDH7qT_WWeMr?#3~AJ8kk z(Z8EJf8|vhgFpf^wi`LDa0@r? z$QWdeN^G!i>aA|JDEdj30A`j7ZB_^Zmtsb3kdMwryL=7sevI^EM%|xyxe_I5E>eVh?Z;ED0 z{yF2sKtOn2d5{A8azpX(iTxW`Qf0!m96EEywUAZhijyLrGQ0c z;JXqK1^oJL&11x)PC-2AtZ2{-86Fv3u=(ulJ|!5Te(O;;f-k7S#<9Jx)w=yj671C@{}8}apE2{V7a2FLtsHvdxIdQxCArI5%zRt zUvsXL+ir^dhhTTLQ5(U|yd)zZ+cTMEXRXgNt-Qy2r74X$EUU${WmbX)W}ldT+%}|t=qf?U+Gc%F3ig$^uP;Ks zVa-`gx0=wMyW=~z`nqY#CBpcwwaojJ3A^x+>l5A%E>2xmC4KnDo@izYwM73z*xl>2 zSFsq$#AKzUpWa3eJ{(?5{sUqV(K*=JkXhXABt!r-X9jmEk;zT|%~k4iDy9gAwxc&} z0lor~JFp1+&LNaEw_nr4C$-=mI-}wk+5_=P+N-|%>U-&uY}vo6xsscnaaYbf?YC8tDIWoS4zIE4@4_5TzE z5cDEi1}3nnvCI9f9H5wtK*cG_h3vK3NKC<196}WH4qy^3>(8bJ;plWZBOEV=6#t5R z8G^2=VfK$U_9m_mv|RRes#l_m^xwh6+=P&Iw68~Z%9g@@lKvZ@e12u3HbB2j`>&Zg z8knhV0NJn^un_&Ye3OkIA782TZIJdAFGl^IGBPiGlbkuielr! zL(TjI0lJ|+(XHun-`U5~e0F}>WoSxoD9suSYGU@a?sG)Um9o#WqZbNx;Iz;TLkbJ4vle z%<6_HIW5&}1ivU9qXl%5@DlS`$Gh>yvSdS{c280>%2)p^&|Ek}BJ`+>O&a5_xi?82 zRV|aB?^>eQ^`LbVlfEFUR~Fg)!@_jwixiZZtHm^I*YGn-OI_@Jc_D0f)2>2dM(&c6 zJ{jRXRF+F>ez&>E_B1_~iOsirE|UfDGYI`>J8pH3%!eBGpBH$POgFuovZL1&8d%hn z^L)zh8`=6C_z&;`C1C{_Rbc0*=&VF$$T0` z)N^lip}HF_@byM@)%V6|IcgC(U`CYAPWXU$GNEgQFAg>w>VTa1hE94Lv~VTi4NscbkGjf6dfqVGn1)#F)8 zQJ1XZU)1z<8NOt6tiZ;Qy2yvg4{?yz_RSu5ag8%?S@y^hA{u7XK+uk7ga;FxY>;1M z&Tjm~u(Xi=*bLN@iBuq-im9&G&MolbpsS|p0o9JLhw53&$y_WiT;ygS39+qE9wR$Z z^6!64tvlHNyapht&mtQ5UU`)rsmbI6?f!H>#W$Y~B|N~!Mp)UBBO(yST_9^PYc!gIuoyFFRPd4UdH5>r#^8{8+fAwCpn_FgikH zR_CKQq!0OE(jOg2+YeX8$<0wX7_L$J1A>P#S6CVJJG~1Zfys#}UXf& zecA`){IYi9BW*@#+!2V{{LdQ-w$m9rUJa6~q~3Fv1HA#hoZmK5>!IPFJGbX!tLL_z z3r`R9?RE+pRuqS=u?UXs1L?k=~q}%)M-{T*F}g9 zFg)kNXcUS!3U?pFD5{iCQz3)iP0ZtoYnC>H3eEa}eq#r?_*P8KIJv90l@&p;!8uKJ z)D#~WU)89;Vuh-_dEf%*IqT75g!g_suyi53qSmZS(KdXpaVf##uPN(xuHrjp;q9qO zC&M{>oG$E?F6>*z`v=(YjxePZUdhNziRY*!t$+s)@!~!%DIx5_v)wVAD=8%faqgWclNTu9S2Xw z*Uuj*VH#hGA9_Yrec5zkEPK1B`)uifrUc)?jBk8-+HR+3 z1kvJCEjx=vt(g-JbqR_9$Rx?(`Y!*?(xn@kD&%R zX0}NGlcV_-Z!*)dgUAWTw!eyr#xfnxAKtP@U0j3^Cfgczki{*utz{$94L&1=KA*@h zryWAl@!h*YjdA<*%z<%&36E&-e1chAsj{N0r1Q3aMCDc32BliUr3AkLk;`8#*jp6z z{^;E(KR7grhq@Q#9dz2EQA}Xnkl(=V z>cw7Lz1alGg!W37zZMS{W~>5Rm<&%(HPjx)rZdtWF209iKbDc8&EqZC(`+yL zNw+$M`wFvUsVr;|!;=7X8R@HiI+4sr+<ZaNJ{JtCL?%Bu%xb4js{me3@Ecq9q+uUkN3~XS8heD ztTR(OPABIpr+7~z?`n6eB8u_Yp%WI2&N?ljk|0gqsQ#Skp>y3pWYZ`qaM!t{Jj1!P zQ~H$`qTcC6WZek+NA=tb8c@Xm1hvVq^)f5ECYbp~*TTCf*mgR}?S|OCH?_vsaHgF7 z>Dc<}$*4%Jh*a!-qbm)vCkJ43^KfeD(A*Ain4l%(sL z4q*GHq!MF9C%#0rljs`mOdVBVcBNA=$L^xpshB6GyScOEa65;vD6{2h zzC~Ti)b*&U#~`E2uA|ycr0=?H7=5tgq=C|;TNTSx)-!vcbcM77rbk$)i}psK*ZS{+ zpgR*4xirVm=XUB;3`mu;uOsJMtF~a5P`nYy#9eWN`$VBC2)SvwQ%>BQF#3WGL-poU zw6Mti(VR@D0Hx!ZVT$<^%q~%vskG0EHNHs`k9yn_@KzZ`;n+VbHf*VZLHVvK;JBbP8E6K&+t`2hnLf{*(qHqZRjBzF#tx`;&Btwc5>+q zWf|9B5;RC6agm|nbU_opWm2yoi3I-LU|vCzmgbD}en9S>JUrt392YUn)WPj2cSyM|5Ik-Hz%P9jTgJay~ zTo1TD=y=Hb^P0i`N609?N+4ik>C|igdv1%b67j&v?Urb}mt=FBl1At&MpY_ZuW?u1 zr(&kYN0WHKJw1Ht?}7QkO!qy*xhC`zpHfA4eSG9Pm#loyy{OcEO4q?J>`S}$MDCmg z7}$%Jw+2ThpC*2xDDn<2EO!_!pWU_!Bs=f$aZd;cCzE!gsGt_KvF%)brc)^{dXGiY zHTuHz)cngX_>(Hfb7Z;IIXjs#J}LqI-SUtPtv#50Z7n;4*?M6i-!gLlk{yBL(+k+r zt4|W7GIFu=BvhBSD7wgkHXYhWmSIutF(5U`Wv;r~HU|4v!+$4fga`l@#&e##)7fx) zYJG(pK6!!!8ZZS(y|J>xR_b=hxC0zwa~|6^60xqY+P|cyOW3(nmo6OEyB@!?N`DxJ z5$zU~jefa^dHYo{vuD;;>$X~10e710!n`~QM+yET3<4!+QGBSFvx<@2eqa&FYpFUK zY?%uUZ?!*(Q88YIxr%OM!^GU6jfwry7Rg6SxGftUhGR2K%h;M9+FYwo8?C{DUr6O` zE}S{1rFMI<;3lX$h2a$5xjcD-V@Y`#*L&vEl*9f#DTPw0-+qDF#8v4tcTJ5%T|i!? z_WhJ=u(%NWLr_9nP{kVZwBt0KQFPvHI`pe*32%l3Al6LUHWM8?pU`d?^5*49Ens1D z7hn5ZSHiD~Dt;Oz6!Pih{2Q-bM5=>jtKgLz#GnwLAbVI?(`ecze}{SY@p{~T6XPDI zj=m&Z$HT)7>ZmzL_&_FyUh_~bBO+@NEhyV^PKm21bJZ4h=QqAVjs>}RsLK~z1Lc`X zA3Mb^iQ9Z; z$?ds~p;l#s)6PFymOhfjjF^zi3Upe#(JlW-%`2bCBP-e*Y;I^SA7E+y{R@+Ncz&V| zzf{Mo`#ALhs4{VRCGoxQz)j|l&(`s9Dr@`{wP>L9{mP;+c&{6?s%aJ&%L&3`Bo}_< zOIT4jm>yO)e!68nRro94lMi;mCz{=II`y0_D9ApNT!k4qk-ds!i+Wv6cQ1D#C}HuG zuN{#KO@CD- zn9c!4FxmMrr>H!$XWLEXLaU(>(5e?!yqB3=UA^^Oa5~vrx7CY3@h#&|s`MGXe{hn# z9_ZGsZT!vEQ(wXU88vA$`fKfUXt<|-Pf4~kEGXw~JDY&awk(R@PP5;0u&0CIBL-KL zvE>8Z>}(O-kU!z?%Ccg$vUBLI(Fas5*}Q(+;SQm9_yWT>O>@{m<5#yzt?!_FYy}Wo zNf}IJ+-M}B?!J|M>IcP;JVF4{lMm{4^fzI`)>KeytkT{ zXkDwoR(Lq-c^a&(P?tq*MBZoHagpmLE|4f@6PFDy3^Dz;qxLGsDJ3CQKO`S@jr8B- z@zi@xC1u>K)?b(kjIucggQITGI&mv9Jh{E#YxAr5VEzJspq5E{1?^!)8G{qPgkK*`h1CB?vx&K*?F zB`f7Ga7mY=f~eN#>h8P>nOer!z>PkWUFyl4D~alkq$f?wF0YokN?H;Z#mnvbSJ8uO z1h6%S3c@)5HE&aZc{@qp%}a@k5H4u&yk9PpRrj#;W9ZgXQL}|pgMp+3H z^xO5rry|44J-iZGSfHeP`=?`h>rW;)8qGz;S5^%c-N>dYG?8%=Ylgk6A0{rsje0*- zR=C#WzL0($vdv?u`=QP$5u5TCboDg;Y(7nR3#CIFvrVTRyQ-TPY-Qh@JltUe-Y8_g zO2rLA>LM5?v+mb#iVDAj3#gdLzhpSx%Q9!yWdw9pf)7fMl+CnS0cwn{a`siI3;*@b z)q5XY_H(1%u+a>K9uBW7QKWlxGDg2V`n2th321LgPrLLjdGTjkA2GZ@-*QGhoUmm63ShZkHP=LYd z;N0`j=9Z<#5n;S%^LI@~4s}m|2MY-5_smjQ52~7mD9ySUpvvI~Ou>9ZoH-;6N z^;yefpTMC-ifVL9!(cWsS3i5agrC#X94rpipbe)n7wo7pRcqRtTQ6vyQ9c-Jp8*P_i^MsCoO#B5uz@ zj3nzD&NkKzx$2Bb;Bm<{tB(9tIt1HxIUT`IZl^h=OV9w2PQRQo|H~xp_Yq!QQY?Ay z0SWP^)lHpnSxb(=d(dolEMb}BDa(*faYP7|5}Frsm@`86?>|t)NQS>po>F}krFU(q zXqrjO!o&A}PXEGu^54Qp=L*K4lR^34D}H7jCdh7nVufOW1s=2YT5zNDD~VL43tqDL z1FqHp;^RD$zKBHNK{hLkPoL*=+RxGV-{Y47D`B%s+n2}rePrvX=$e!JSchV!l_%h- zsIhk5e$DuMkkP>a*D|y7;rdTf)vtA3Vb17QdmmSgWPB%||Ii)8l-3PCAGlF!>5o3l zx!+{VR~~{C-WVTo?L=TI^KH(0cOrhv+FW(fDlvTg-cXp$L4}>3zjn*$zLxiL)Iy^F z=;`+@>aHMDgf($I<;9BuvYzS`b-c;h@DdHNpQHA{%AVUaka8n)FfS<>KX~;7(7`Eec2WCX^b<>43O;h(y7gq&>d=RUM9V+dB zgJ(*4n!EDvn+7?iqi4xj1p-+zz1>$c-lF0(Y+4nVyl9U6hzN6ipH=SciPseCvbz>u z26O~+$fj0^#C}nhq+kit#UAfb{xL1`b2a9N$R63W0IV;4uXp1_YazF**65a3&wSNu zVqf6wHtVME9P}c3quDLd5n`N!jCqEu1qEvnmpB3H_h;6r{ONYJ(^~0)Ek!debyuiI z>u?%*cY?WkgGrD=O)?s}LrkBJe~T`r;MCW+X>x>NvqWrN8~LY}z@AzqY%BTV^pA+3 zZ_@53%xP?DYYv)#nuLc+CN}UiUssiE1DbK3@S;AA{vG04z77ylPEc zyzMPuu)lcyU*ZXAWwgQW{wFtp(XJeNeHUGg1MSlJyi1AY75|-LXLnIzaI!)po~FO9 zTS{EMhez36a(~vUv9ut*!%GOjpS3Jbx;@Z)#V&sI!zbG3S5*qR;al)-NxHs4oiaF& z8R--%QL-5kGr1XnRK-BpZewMjrx@7Mw2(P{8opmcMgm^w!Cl~j@y5{ohGyVDYuvFX ze2-$m-=$d&9C~$iU{6eH|1>%SA?dj_KzcW$fLnrAKJ*Cyzvo#$FaCQ8LweEaxO#s1^mppVtXrOOF!Z zI$+R!3iF+>oujOhriTmaQjxu+LxK@i=bmDg&os+@gR`_rUs0L-)_!hiOXlJGNIyN=7on<2sCskh@A24lbjk%c0FeS1SBz zzHJXQ+`>Q^-)YisvzmO_?g8^tepR(wxas1;tL~jk@f>L3Z}>3U3*1d=!?D2%CrUVRV_U~cJ7x7Sb_YhZ;t8`}`8bi)Jo5UpSrSc7`J zs=N$Tx-)6QXz&5`SIK>uE)J`Ol3|#H6wByX_r@MeI;M$>%$4)!^%cdpqcjwVPG#mp z4i2jJ#x~m-EW|S7i-#uz#S>2WUG;)cjUPLvQQCOM{fR#QGhxAUy3EgP&GHGLbFn+E zpZ~PjBIO)aDOx(BOTntJOvw>o)lH8#8?hv`1%{MdrCi71^9f4e=>A-Vn^VJ=#du3- zZjhlU*bZk=@LBjcHe_vzWZOC3FwXEA&QMa|wXoSA1@sjIil2V}V49HE2))1fFJw(C zq@HK;=D!y0P+-x{s;1ln_?l>^^n~lU`yV6 z+uTxpuVY*-pWNP;Dr|o#{!&?4!2@xWsO_9mHnvT-H{yx z_Z&M1R_GkTe58yQkpRrCnu>!Cg437@3`$jiFXuLAP*dL;vO7`yNDC*j#n@-oO@o-@ zvC=MoS)Qh^Cw*934$E(rOUno@_pAcoN1=1?%Q;QDSE8c#tW4k%23o7yASs_h{mtwi z$SdtTYa1LM%=Quynkk!8!a_Gt;&x9`Fwkrs9^r2}8oLD}^7bT*^@lVFQmKiI7Xk_d z{YG)v5M2PY%AYKHkt}qC+p$Gso2@p5JEtoy;<-+^t&J@jV89kc15PXw{a$ zDr+??tI~ByF7m~O&x6av3BNcLDe4DaGpF|NU%bp2I+IH7RQ?L#=SeU6ldEcQ$uSc` zA*xaRzKo4ZDMT$0?OY&;3Jh8Ho~=0WJu`CBGsv;EeXHc0ul`LTBswogRZ0Zd7)UN& z)1wXPKVL&ynzwUP3+!Oa!DIgG?DT{FZqdIOMx=E|Eo3ZJQO#V7I0WQlyhqx#0oQu` z(rlgO4>8SpCZygb-SQ{R*1D!afFioAYL;=|V0BP6k7Z&)HBfS0#B64bt|(|UZ8$B0 zQm0HrI^gvbO7OeNw8c?1&#%k58E6!8OvB)G|Juh}tk?p-{jYKTOJH0F(WRg|Itutp zEYI3@#R@7F;|)Bafk_9hc>>pb?X5Pky9s`xpJD4~Fhv(YL8B?WW50p?(XCga?>!$L zd$slK4RFnLU`NrHEr+W1J;+{f@5moR4p9>flv==PZxBzcD&$sCN55>#x=Bx$`@1=- zUyMh}T!FIQcM%Jn16_eMs|aH_h(KPN5n6=kX0Ea#9=hPBVP$6B*`5lGEK24CVBTva z=}zFz9910pF>wQqHU zEzX9^l)GyNGk3Q6V~2t#>MJ!y=0NmzVVVbr1iv1~H>fMz5scsH{jxkFQENdpVSYa_kZjCb`s4sBSv%F|6oL?*1N64Ko`F$Wz4Hc zy9pubyT6liIjui!a%qRIDFv4E?ZMHp+m|=n=26v;t@MX@KWpRVWe!W9-?aOWYVvnl zXdY@ND?^rpcw6y&RA6`lt}We)!ki{MYd%XiEJTfd^6az?l$EoC05zva5LCT0Tj4_+ zn#fng&yN+Mz=;c4t!X2|*M0hmvef!11S3p#@vsbzWe-gLsCS2NL{=P~zcJzO@L+C| zildGN*_Q0Hqv*S4lQtXNXnb(}e^~%Z?1lz_1n=U5m(cLxb(rMU=bCV3qLXTKZqjjm zGE2AYjJKF`dn9l2B@XzT4RI)Qx;{mOE@)LHncNVH{5%HPHOSU(7!vDt6z!wZoPl7wDpqTb9(i_ zLoDdHTf|GBT}cJ6&h{NMZLWLRaCmsKs8RH}ET*+5KqHzguRnS*ZtzGrR5}S+1d0a7 zY`m==BHimDsj?42@Z$#Ewzgs~geDKf0%w5eb)n4*tQNshxGBN?OyR8;>lyLyAGK;u zxHOxTCr^n_HPYTOW(pIW-bt1?9%z4R9$LH53P8GHu*(OlOM<~uw{TBen3oUQ-BLvs z_?!4CX86XOwqbRz*tyEMS6PLt~RGA@s#Pre;gaS4ZcOm0!$tx0mbXVZwPEc}oy zwXv|h5ea+~OWq1Dir+4yP2u5dAOVqp9~3$|-*C-Z*QPyK>6KO~>v0tXO~X_L9OIlj z#LbBP!hr?HG!5zlc2K*m{DPIucvjQmJu8g)JBw$6q^YM+tZZGETM>Y}(MSGP&ZXgwBbSz4&?t%S%< zfbe_IqzI_V^8t3rI9&GcOUefo;fUoP(Mh+H>w4&>(Rw0M#z2+58nF5adxJ(xz85b@ zR#b6H}RjP!Af^{(x~#6$&&B;C5Ki#OS2vEJvfd8@u%`iho=iyDez!*M0{hH?U z7))HLjwOL_m$Q93JsYBreX9Ow@9Q^2MQQr@ZCK`~XFtb%(-_u@DovBR2C;r818>&AT zW5rXP=&V`A_Y#bhbS@Xz==nQD`GnN)__oi7g#AF+V>VLi6V!kRnfNYHw_wcaXft!y zPCa*R?El<$-32~H0Y9{gC}QnK|H?6Z7#L^{HVL!Pb|SA$4C=>3 zxn#=TLIdQ0j+?!g>wa3Av4DET0wYqNkvctw*)a5i3|O3=mFGAF@yWLK2PMIFeGKqy zhR-u{PW{m;A2K9qTC91&0%d8^$W{x6{SYdVR4Nt%x_H3+Xyo=_(zDnS{4o}cTli>T||>EcwZ z=+Huvli_Az>4Cv`Q}($t%g92BCU@vV4JToM^an6eyL6H0+9??YI96gr(l!YRVfVo~ z;k)G)309&_Tfpmuc>PtEX`R^-quFZI?{NGRGC7UBufMWpUOoPSTf7J$r;FpQTl|;8 z;$h%&dEMMn+|{xoHpXT?qzt)44irop#)#1iVz_{{bqo*< z!xvm$K>^UUKAT{Jk*;M&gYkda$v0SWMt1|L;a`)u{;8dlBNZ>NUY5oEHhkw3DW~fc zC>RJ8LZeUwap@6XXYl>)C3m{fw9meQV8*GI>Q^b>$BC(N$DLK^2(@QEXDmU8)jf`|K!VSA(X{EfM0#h_Wj(S~{} zhZdwZj2L*?5aWYQ(7P{c3a%gKBZH#%ENq={v}UcvhZaelUOa<%fpfjI-yuxN`mM{o zZw}lV9#A+JF7_eP(HW|#Zx%L`y1!=!DJiQ!{n<}CN-+b!8}fZSk-yZMENMfUOY6Et zhvV8!@D!>nOK`!d#L)NF?&+nfQhAM$4T2>HcqpTP*XPc zdh1>0#-LarBG2D#z8l`x)u564joN>obbb2OW@vX#1@2dX!C<@u=3Ot-Qr1DMrS!c~Ms z2;*2CgfC|lbnnO9QqGiO6KX}zW%!NzZR(T@mtU;w$7pO5e|RU62Wx9!xz-uMWYy*xs@Mlo2t1GNHcceDox50&Xnaw?O04p7R=;*MfO9`$YR*Uq6Gv>q;N>7 z{57<6MW#>A_CgUHJ9XUQndNh`ImbkuJi$*jg%OME$2yWlH!$8l$KitC?+h;AsiQ0Y!we ziGsK>d+}w(KKE6_qXbA<;<-SeBss5lx(DDdl)v3v+%o+tz3suzL2MgG;%8-KH?wCC zI?fA18ucdC@NwZ!2S2rBIqS~Tub_!BDcV=ZqD%lj)N&or) zB1Xbek48m}+J!oiP8$*Q|9x34?AYuYvNe?)fx6Mm+bf#bRPf+uLUlIp0$B;f0mG!6 zaQ&qZvrKz*lj}}UM)?tc-ovT~nSH$&0D13~l7nXOt$osMNkBP-q@?n7@M# z=+pZ>MGF}!#r}-!@^uG|dQj%P4amA$g~TxisrlK-KPX?HviOVd&=udMb+S7t^&fZn zU@JI(=$t3kkvKz9k-!dV>HI?EQ-U3wA~KA4zuneUX|bCiGQJ@w|HH3i0+ShSG9o>I zTZwL}*w(zEZ?6w$bx9*x1}2%fx^rPcm3J zAuO+vbB{&{kleB{m@^OlB@Z%I$GfK2%8X4MT7d3mlz9Fz4le`e;>FVU60h%dDHV>F(KQCwJSAU%%iVH zxU+KZCLNBgB%-#@|8TCW|swb`w?t;rzs&Z*BwzDfg+_c-5|;fFZY^SkE%-G zwn=3#Eli!{k+b}J$U~i{xV=PlfrHRY!XmpWl9#_L>LaO^MjAJjd80%Cfx*mF)#|>#M0#*%}Gj8 zV}lHBQej40tR6#&Hy-P!=khwe=poyE^yDVvhWvj-f#FGOme?ZAw*%7uOK4b|QzCRL z5p?d0y~86nT#D&>ifLj56eA^aF{^9zcGI!As?TFHiMX2Kd!aAhCaV_QgZIAq!g$o| ztOpaCbrU@jHsY?y7GCqY)FOYbSWee z&O`PV|C5OoT3->onUzbexfTa1FWuK_?S>6~%M1>mZU*T?_5>d!wKnK6Os587 z2pdRket!5Bp1-J=nzi`ZUNN0WH1Nv>g)C%9#)hMEOnorepbIy+lS*8!6!HZ7>qu1D ztS2m#_u4ba53w@`lgBcq`iD=;Sj_hBrzLc$`>cyHN!*{TJEF_vJl3GQYIaZx5|LMyKuC2t$;4Vujm+nS z93)l`G=-*J8R~V7QzG|H8&KnBknH$79=YQrT(1!l_`{ms!YeXAsS(0b<{hlGMny>= zBl4rs_N$B_sPcU~b2F8^cSzmdXE5q=s)Jmkwa;8NurAPRLc$B+(sQ=Bcs6}Dk=2w} zg(<1&BT3#G+349{1Pp~_2zM;4JHK;6!{_Q~n|KZL+<_!5-!r_jU54LN-z0+!D9U8vQ4K7$X`LCeiFE<+}@adr!*0`#XHfy;cXvBBz~V}0CpFz#`( zsz1!Rp2MlVq@$p4(mumNpf2bylZu1RrLdgv573C@FVM*9{xO69JCkf%8@E+Scrg(D zz0L&?Q(1Fc6~Kmv9&0)h_nHe-76UIvepQ{5(lJc~AXTYD15uIUcjoRum;C0onhn7t zcT3Z!BEvry=9CcgWk(rZS9U>-A&#vNMm_XrAr*ryIbg^vH#v*ktFDGf%y zYi?@*vkGI8P2{6J`}kgk{*`U$K=mi?Y)FMI=u_Nl0I?HaD!YFN>XX~`6YrwJ|H+Gh z7H@0=X}4QYNvp71JGt=RSAXMN56}kA%<--A9TZ!Va>*_AizV}RKV`*Db;VBkC#)6W z?lfS|vXDIuqFtg1$on#WN?K<_B6eTH`5>-6Rn(|l?&Lbdl$WI+H%L=J zUHN@g-;x<-I@t?RKvZrae`sSLvTJ}4kZ(`tB@nul}T%LF3bJircKikZM^7%eX)zIHkOn?|Jb6#M(u2*UG?{=d=@Ko{3w8 z>!Yu(V|!RylC@4{jAQaY@hPa;b8zzo7N#&nBsAQbe&=+pi8gk8*bmUF=>XCLa6dDr zY%8Z;AfMr-N}r{iq7=;_sz^1J5}?UoKgYI?in}Lh%_`vGm=n`bB6NC3_mV^PvsTw) z>t1-iHi@em+Z71?=Xmk-ukoU@m@fFcMRxI28vrcR$#q&4S*I4T>gNB#{%5ElRf#9G z2vrDvzFtb}q#j}cYs%7v)tPY`u>DRS`f$TWG-e`42S$baR!DyPQWhK%Xzy!#l}(N< z#zI<|JBl{%Jg>rw++76CZCZ6n4isPv#lAn`GM)?O2E zkQ4{jLnda4tZtR{Hbd|rud!ySZL80Z5Sq)stYCIcNlGQ}NzuC>78sU~$f}Sg7<~`W zXPqu2M5ps_DWBUP*IdbOb!=bG%CM)(0AFh(z+LZA_A%+cI|#J7*8K38CguqT_FddP zj&BIO4O-J0gZ*z^FVY5^2i#~(7h6vm*%0usw)shlS@GiSiu^!B22jyq$qxrS+?h{v zo+=vK{4|fpe-pGhkJX_J>sH064h%JhwuF+#IAD}tb}pm<^2qqF)R1xYA{MxPoK30u z$E}ZP;CmD81oc|qrC#|p&-ek>s)#*p-pd`h)YZt}-{4B5@{71Do+8T%ExBn zp3)xAi9g5vBL1Cbt+yhqmeOzzCLdJT>;9}Uu;@yIe=k^S%;dHy*MeWp!VHrb_%?~&Gsr6sqpz@W+^Q%*vS4-fd5b006 z0HSAERhd_wbPIQ~#4~lTH~Nu@530|MM~;=x0_!u!QF{^?*ZG2WKuDB-@QYdG!0Z=^ z>>IYj(UZU)HsxAD)@o!AQ;%PML6(v*<*djs*o*(X$4~liMF3S_Mn#!2_Ylrpa-j&J zl(Au%9lt>PKGiX$POgVoG_IH4GJtmeT5q`5X|?lt&n~*%EOWz@9e5upbTJ`%HS> zttOsasF6(2y!zpdWo1%6BmI@z;+^TU1>FVL^AGvW1I0+~aj!qEqstFdmW3D0fhZ?w zvY4lIa?CX3Pb>#w{;cuz0C+n<70w8*Js@9J|VIl%UkiT>&gibl;31&@~6%;piw1md@?Xh-i0h|0SeHY!9$Q;*th{ zVw@zxia~lzq*%U3hg+#Q#F~`#Ev7Lf&4iX{o!F=hR4N$>A@0?S-Giem=Z&nYrYM~4SM)s zA%oAVL(G>w7xsSGd&>upwG(=@>`J{h^%6l(hY}~}nlMK>kd>b*6l7y$B-0HmpX}&F zogQ=o4nmfT^>yYO(;MV$QM)kl4RteCWY=juYJ_N`%=(bz_NrwvfMWbk`kl-C zf%xfThFxz6pe}3W#KGwIXO=yjf!-9OCsx1eKIG8*C$sqvyR0ZRX%XLYk#nw>Y8gR@ z5y8OE4zsI#N8QS@F`d$=hmG-bcAiX!S+jr?jpUpmd&sIQz>!}|6SItcL2jZPD^5OS zY_7cV%%%-mz?1irzv5XHgP}J(ccJaBf7!${W)AQyD`>M9@o@U(1+t(XG#*!?LY7MG01$6qUZwRvVBj$)Bg~irFApR+W=wyCmg6@pD%eJ~9`i9kgT+ zHGL=R-=Xq_M8S!e+GX>&%B!6J>0q7=BZx@&Mpq zd>?4ydZl-*d8%fS0CRE!lIb*Qe3fQuD{umV9X4SlCt0P#)>BQ%m$Hx{HyV@)xUpb_ zUtQVh+QFEDWzr!EW~EiQP%W0f(_fO-T>HOB-^;*vVp8GjhLXP*x}GW7BN^E{G=JCRy}Y*^`aG-A3LE7?_hoVUg$E)TlH1_7TOC8lzD zcr}7ep1GVM)ny{wh}Q-B#rbv*(=)e*7oF=>?)f~{=>=it=f>{<{F61 zBTua!&rOui#`Dj?L99tqnZv=3pdC)AdnR53YUCTMqy(Qc2PyPj$xa=#T@fQG2`L`+ z#n?*ad!n-S{IDH)4_W#Cysba?r|Qf6*@;W!gk{riCb+H-67JBKHAs@7=MwFlR47|Y z7pu3}|3GEZb#+TI*eR0Yt%bS=IfXd;)b}ZJ>ST#OcXi2xyK~Dt#+KU}aP@3)$FWN3 zP{~+)(+*Mrvpv7K%*eE6e&g}}=Qy;rp15l0l*6)%*wK!u=<>w=nJ~t)uPz1}5zcxU z15^8%j_IC(G(Ng7r)~9a)(hG+n?*3`ii^~(=@IqqG^-!uBDpzPj$6i-dTbWid=^|Y zgICX}or{_!3-#iE*SnwzvW05-Jq%$5`>=*N6z5!P=C`r`UBxB0kY4f)qK4Af9b8$1OBbk+o-3v5d?hn^!U6hzr5%#U#@?2onZFoi&t-J6@Gc-fI4FQlbkd7{r_LZpTlqL-5&@RRhAxo?(0OQ5~Tt z{z2ftgLuNwnLhdt4R$SCQrFqO1o7Ppp?bZWC3*xD8Dw~ zfc~q2mhAA@kg~!6534*(dU00Y3ar*_Y` zmfFbpx%0Ej&tw!o?Cd#1g412UOx{u4PJdHgq%&_aaH$8@Jh%8+FJCF?Y6|)lGVP@B z8l66mI8xKs88)=tC-$@=*tesvC_-jeY+j6;KM;}>Wy|o#R{}MrAOi^7ayS@HO-R^0 zJ63ppjceDW=7p1rX1A(aErFvZIfH3glyb zqx+wGoZWfWD6@qTY-elM7xuVoGu6AQ#~Xabk=Ye*yzst!!^s@y&}5H#$netnf{cL= zd`2APiT^FQ>8#IukUqN#aCLM!`t3J;(2U!iCG5bsAID5rkIIF0i4eAx5AMRx(1*JC#mv{etZr32y!Ra_n(C}FcUTX}9C#lhhZgCKsx;b&KZraPGkeq?m1Z?1m1r zE5*2If76-Z=4C0igWu48DU(~`Y3^84oFRCjF1wbDtTfN5Mw-4A30UgZ|3>9`-D}?+ z-2A2(ny|XfB~a~Ag2;o|nR{xL9EhK0afW_S;-o$Tf)3st+#Yz(#Ti@KZHy{wd}Z=9 zi8I+a_%E!1WTFp0Ga7KkiWXg{D^J8Ig=7>Q)@OiShTX2Jr)cI{iqmsw)g9g?3@eMs z4Lq9J>TUpG%?<)hxf#o-W!;u-&B2bE@nqpv?9{O6c;ISZk#;hCG_}*=CBY`+zoF+NjEfSQ z+V;ElLmaV$7ZV%7_apoR<6WGjPfOr=#sIB8&rlP&Jute}53jcK@|Ben%hEa>dP#~D ze5H^u{e#tWT%tM+>;-rZZS&_}pb{?1ri~T-wqfsyAxCQ1w#WfHM4#~Iv134P7N8>} z7Lx&93rc_u^nv2mJA9*?vcfB7*D{FupHxrE0Dpy;?I#DCSM*oMHY(cQ$r`p~Qfm6! z8=dDK(CQXU#vH5T;xk{wh+Y1x^^2bzyZ4v4QNy!(%73`-`~%kZByPSkXTjgYv*5{1 z&R^*O5N+{}m2upVe0U{$4T#Nb1nj1v_CQ0%ACMFPukZzshr{fKUcXliOg~Ehm6(r4 z_n1wOeDliI)}2pOqupQ5-H^Vq%ovOajVetKA(qOEce2iokrn@2Y)& zmgRpibb4a={?ua3#^}yNMElHH)YFLSrC`1%Q(0DOb%nfekU2i}wchCOh}8$|_UD=; zF@heHINPFoknC2#jeaCFuqv<_RtDu6_b=Q>N3}Ns_Ik_f;r-{0zBq2O0%1PdLj?gg zWW1!K8bvX#=)})DoyWgSsw>1+H#w~q81t^d9^!WD)h|s=O0op8Z=6f8((L5OhAwmD z$XQcCiJ;NAp+9rg5`4*9kRsm+uAdGv>928orhZq%W3-d`)Vs3f5$~i@n08A}u4McujOuM*B_+Gq7yPV!}mX?%^7)fuOmCkRRE`TKxdF4Nrc zh$!Ijj@@L;>;qiwvdrUW{WR|pVVi4iM|`123}9Pinibq0O=XV9AEs;sX_c~`g6o!O zD3}1CHktN{w@ITvtxvcla>Z1I+>XE))CDbaSXQ(I4^G_TSU@0QuWB!?%&hUbghha3mL7d7hH^2-lx#!{tH_=@tA;}pzH@bmmV}fSoz*ROMpO^A zkf{nM23dQ*&H=&WnUCsYuzom#e9f4IVrl@ntZVA9&L$HBKB1au+oaY~@w!=#jzvXi zCYi7VSsFsi>r;0x4K_A#E67w0#at9zYCPbgw<7wQ2E>=#F%9Bb=ZlhMS_wdFT1pH4 zhlSehudqx?F-=ha_mn+yWKjudAo#^&h+Tsb(Aev`Ds4a4L4V;dH)|gfD$Nr>xVpX4 z;1{nQ-D;&T>l|y#U(|VGj=tE;tZ56Dei-drIWZg!ocWX4oxc$;LMlR|2J6Gtxi>}} z{E%1S`9WL#on6dqb6|P&Y)Y|R>kX%pj`-!CiMV+~E8P5Ys-B>QF+&*qar*Hgglrc% ze%aBtZs9CAv6@|Kxg&q+9Bd&kC-lM<$H3Ei%(pP?l3r2zPGm=xC>izfvnBENW?yu& zd0lw`hBtXHu2ML01kCXX6Ztwn--zTsk4zYE-dzp7f^x6R-Uz?vhRwKE^|{yfE>}J6 zJ9E`mY9lha=yybWSl)Kl&zKY05{>msfmxzKoSmqay%1DcW+3BdW~O44Qhc=1B2E;W zo)sZ&wO5#Y1j;O;g1eM1vDKGp_w2ju`~rcxZ^;DE6h}qZQQN)ULywOrKQw#Wnv$cu zwRIy}|Ep(1uQF@|wkq(d7K404Ee3l?k=$kre$gbCSiJm)0L~ z=xBKUJKRdE4H>-JbQ_3~E_KB!hx$5?M*B(K3?p(6ZPgnds`lzwAE9K&GM<6GVylffaWuYt_nsq#Ns7*77hp)w4-me`kPMht^Sb6EHOaxTO&fxe>#_ zGuCU05cW7!5xL&M4lrkM6GF3IZ!QK>mvl@Y$E6kkcD(TTiFkqI!G|=6jkplQ;eUtP ze0u@T`{eHpT9Dq+HTU4^NqvOs)-7EC;^Tl1>fS4@O`ax;TVHO?`Q1`>jqIlky#YY& z$7VzNh!PLakv&i?Ko1}7NVhADDElRL;-~0BvNu_YVL9z&8U%sO2G30!r|I5Q558w+ zhJ+!gk~*+7r7034YjvIcY8E6s=J0^BdRzhrG9})& zA!iV}nCqX`gD7nXYuf8?8-MG~&sXv6>YEBs9 zUGu>N^cog2*FPN|VkFqnoqcO~G*%t$^wKtbpx1D*Us)ds8e}54g03^|&v!4#ZufN( z@Nuc&%+=--bXm+V#iQ}xiD$((hJC4=RL-{{KbQh>QF1-z!3>*B!_6lG{T9HIE|c0O z7Bte-Q&wOxdKLO#10Z9 zcctC5#A{CIztz*BGl@cw7~wfb|_w6)CvG|B({LFTWaMD82L!NdOZQXFr+ zIxd4LU3D|bR#>4MbL~v)<|DAGK3lr1lOO&V;#uj`^@|Za?6d~RIYJj^ufO;tcIX$6 zkDWYU9eyF^aQCt7&2B_5$ouKL=VDguOl}RFxU+2Piiv3bb@4{|)Qi|7fm@NENYH~j ze6y0tDZD)Bax2pRd7?&AXpRT1n4BDWnGCO09RHu>7r^^^F+QC6@Un3rb6B+M@15qI_cMh085I}%dP_$%(HoApBz z^;2Hi+kNwH2Yl+bmG8vkT_Ku^B1?^pvr{qDh#$}Yu`8udmAQIaX%__TWfRo|tZ~&X z1Toys4UFzS6`?r!#ni9q@fYr2$*%UgV$08$EpsjkLfR&`aVD>V zP>o79KC1%-9q24mE;fC+NCRmogucG8eC?pD`{Ho{(8~KgLTZ23*QPQQy#@>K_J79*=jy^o@^4DzgT11o)NPCI0MYd%TzD{XQ% zK5@CXy3-bO*3W$lLe2Yvw9H(p#(ZrUq)CqZbrSbwST`|ni?%+ zt@Jv7V+l%^o<+#iEK&Nxb}CiMBd^34vX<2il&%bFXdyL}jVkzPHw#DHN4X<}4qq)a zui-*S0swgc)n5o<0>5~h-!qcv(zVQDAD{vA`Pl9?5*dG8$LQ!nH%)$g^k3o_?xi5| z?b3%aoBTlf^C7I}Bu(k7n5wP@@lO=!FMh@iFqIIFPwdsrQnj-$%qx%nzu?N+cO>t% z!P>^B+qvNHQ*M}dlcQS&>-d1zZ;hi?46F)$n4>Eu?5 z@m!dGXZqWkHf8VKKR3HwH+WmAT+S%>I6M_<(>Fcvp%iLg3~!iq-GwOi1n=iqD+?;x8o~A#`NDyzR!rvwl{-ft{5dxKRv{a3_lSBw;jH^ zBn2sw361kth9ngMZ$n!=kOzx`lQMD30fM^{ZR#5Vjo5HGxRZ4~*z4$8K7C zr;;b`hn2#y_SnU^Q&UrKi9cn|f)aDaDxlkq+%C&_4~hcEIAErmvu$WADF9oQX247Vphe-EYQt zF=5h64I@9_^(mPftla@pwckW>ntJmRCd(!JaH7L!4ywVQZLzV+bA0&xsvZf1%l^K&+` zzs2^)>}fMgNizKkzknt?;sih;mRwmr#lQAU?r1Uu)D5Vf(H!W_D!Q<-A!bwQwSh~= z2r`Qx{?p)sx(li86Ij@l{>Fxg6RLQd;Y)vy4gd3%WxhtQR+LPUfKB)ReA+udittNt zZ5t|5Ts2RZ7KrO-x6rANKS*RzY-#*-n7%CL0nkeuVMSP>Lm_vDew?i`wlEn%*cwrd zi0F0In}0QWFclO2KL3CcXxT*h!|Uk7#JoTm?+V=3QqtTtHvM(J@sfqv zj}V+0Bkx^-wU@cD3>}F;0H=0aT|E&@ss_g9@nvl9Mw!HZL$+vfzbWc?NC)!z!E-<4 zmOaKB(ZZBnvLB(hLZ)nKKltFx3w@Hl)ePE-kV*g|dL3?wLqa(B3;GU>TVZfF#@`XmJ{i!qq~`xTB4S@`T@ep7s{3wsHMZQxBSgnA)%S#OEKw3 zAyegYbOJr}?eJ`|JH}GZIgy%@8&h^EqDhGG&WF>Vf=g zQRAqB$IS^3Za5K1N!cWVM<*JscVxHjWSwG4udVbO;r7pKKEj>1n(Z}B#-xRc-tFYV&<>PVnzkJk*gdJYpfCM;8PN2mTstX_{SLBYY8DY~)jlCCg0No&sf zoa3pe_a`@a`f^gJ%TyXA!~;gG8`T^=sc!u(!`^@QV6E2inYh7&9;WN}i7)~3eLiwB zFfW6gD~-rqzldYTu<}vR5ve*%u-U-!oqIUq7wH0Z5IV|m(l4brpEw0PwAkPOoao?h@ zZ9Br+yci(7FfI`7k(H${js#xE%%*(}!F{U6Mc-jwVOB&%8y4BWsk_^cL*Lr^>3Pkt zx*~RZH|2<6JM#Sxj-TYag5VLQ?09iRj93`KiI>DV47MMK z7ONS|MRGi7*^KvOjyt5{3LkU(RP13(_4L2kSB$_(zgeB@*t%q37TVXEiqBx)%%LVv zt~?08bEr3>MEiL;=H>WOq}p)oTiBqdH~%-F**zV(USm(uEGt0leNL;scq!6v7kP&CGprA8Zcv> z3i75_MRRm=ct_SV2y^fBcw6%(e)Qkuyd~~0Qy21!v2*PFFlzhw}r?|}b$Zl0h`urWYA*F%q$~$w?`(+Lxn4uKi z$6;Xz$Kw&z=9H~a3HKsR8~3q^Wz-n-0i5V)&uTK9X0_80W)XoqRXOL?Fjxrwg8x?d z9@(5D>kiMSVEUkG__57x>wzKOB5ocq{3#VNVIMjcXrTu+Z3sWGrQRdS!_cDcJLu3- zsauY2xy8cEzzAsokf0w?5-u?J_Xn%a$lB6%kx@xoyhh4@?%?(!M0S~Ui>gKvA{6CW zcQnZQ?uM?}IhO>~y&LyESjY6Pp*%E8c?I;m!7tAG*P#ja)pYf6v&h|gQE@I~xw$;P z-m(Qi@Ylb0G)VY&^lIM4O+(A88@Kynjzg|EY+s2!jy^=D^e8RnjHB-??OHn2|KQye z0v7)1f|0qSQ>*99-2i>I2Wz)S2~4AYC5kv3W_^`DR1yYlIuIY^#0x#xcJfLZa+c>1 zo#^LF!iSpkDi{yCfF$g__T?kl!Q9-H7CVa&Ps)h5AJs^4d$p-Wy}+NEa)4m-JNFzy zZ%Bi?duamdrxlc(PMP8aIlU%2jKiGX-KjZa3RR@E)8i}&T45Xq8#e%`#U^9&V^g2C zwd$m?v2!B(0li%OYBSh0ZcMk7LwC{_tG-9a)p;c%diT_F6y@~orB_7H?Vd%L7d>W-tE@Zm_+fC64<|tnBaAL55#S-d3N(g1^O~spQe82MWz9m0sdjtZA-i?#fwtH$@5qlyqj*z^o}g8WK$h1 z%f^rTho16{r&{;Z>YpGAqu)5s7-ti4viJ+Vahpa=m6hpyIuQ&kJIZ;J5N=3*gXO67 z2XacN?H|JsmoYa_(aBLBIbzeQ8sOMeFUN__tKi;hLh+d{)PK z&Cs&BKW7m)@EZ)+M2_!O*|gm)ko4u$09dHO5FHfLs=d73~rNzEtiH9*N=V6+3>QM&ASa`~CsE zu{y9ekMA#CA&LH;$I)x^xWr1^IyJ7f$f36Bx{CD|RG-yw0O-Jqq3L|2H`cx7qC(Mc zJ-(02jy5E8PD0AJ5uZWcH0}HFb;4j_sB76+;GD91{jz3!tnl1*gGZT*w4Raa1%7gp z5@{W22b}Kn_vOX3{_R#S4Eoh6I%6_;a!Cx zG)x(&wF8eukJ*g1xfId*yOf;?RV(F_$tE4#=KK)f6M!$yIqYqbE!8RpeRGw^_*&%X zzaul}6O(Gf>~{49VG13k=-vnf*6IS->_^HjAO5sZ@xYl@oi+V@{G-iqIj*7}`qU;| zt@QeH-HWonSpa_X%>s$-Bx)0*SvG7qn`XOJn#$0BCHbDzL3XHyn?v;u>3<{2X^(WS zwz6dh`I9A*hUx2-{DK+-2cTEa5Z#rP46YRJKg+%No9@8NcAUSVawdObnH!J0EGr)n zu{=E;|Jz59(fqWyr^x5wu-o)Ol$+rmHOUjo_L`$Co=0KiN%nss#T zLCjZYyGo)DA^h7>@NGqkYx2kLe#*>fE1ae7xT;(EDmgAd#`CxUO-w(}xhpegJX6>1 z`0RFzYyA1xtJpivewr&yR@%d0rI+J~tcYkjX;H7T-)YKw7ST|C{)_K^&27KhR!&kr zz&4d?Ef9*&#Ss|35mosW8rVZRtZR@fdNOg*kM)_V)5?V=zz&tH8rxf7GEzrd`kjKz z1KdL5^duTPZba-6i;C;2fT*nN{hIvkU_5k{$bNMmGqTBmUtZ>pQF{#mBX z+!YPPN;79FPa2_{*d9d<@6WGq|mjc}l7W>FrJ~^m(k4$vsL6Jc6dkSN(-oxzwt<{sbvYrh(Zr= zH*^&_r{xoM4(1~Utvk&^#|JS39c8n2yTP3ZH2)u^9f5N_h(PY(6K?F~~%bJL9tsM_fF z%$}!;;V+`&dUBXf!OCm~vgcUGA>q|n!QZ#>|9rLiYrl9mt+wdH-}^-#uwO)I09Q4j zy>L|va(}ECPLt1;R?(sdH`RdO)>q%ZzoBYt?=dXm>%q}|xaP9X*QfR55L#I5Q2x_6 z$CJV3OQ-S9bGs-R5(qi;#Ngv^!`usDwncBfcr;~1@{+{t8iZYyxO(PQ{NwmX!RQ@n ziXw|}bV^8gSE0-5b976>pbhE*6^jm341a;8M-W-zI%BWzO0(eD)r(6YORP?7uM? zn_S0DRX=qJ!zobr{P0Ht$qGnL3ZZf8ip;TQRlleN!n9Y;S7ag_TuF@Q*!g{)ip$N2 zN}*-~Q)DovV`=} zo1CvU0R+UF&F!1@Yv%;D?%e8`5O&#m9vSF1bs!c+GQNW+o-L%7JB;>GVwEPFfMtg( ze%Uog?i68y$N_?W^aKR1vfh4O15QqR?V`eoplTTvkHvhd0k+?t>n!N<-?E{v`_S#R zj0K0eOVM^|)c$|P<|MB*&02bi zP(_p^6U#p9Kzf>2IjB}NW4*c~OsdRm+(oYf1e@c9!_AH@231Bl#XF<|D9q;!W zu$HKa11kY}=q*I!@eV@SyBgm=9eZb5N=dX^7TbucEmuoW0si1SLO8dgC}Ks~`iYZo z2#nV~eyFZy-~Nj{FEjCd3-AVK>prF#7bSgTlDbikID|LI^PSxyIQyG;6D#1bD>~MB zmbE@7fkUyp3ta5)lGCqcy~{I}g-ETX^-K45Ay=X=Y*U?}f;2$U&<0X6q^ViCh^$-c z_iQogx7D13Q{D>YPBdsv=hs0n5nMrA8U@9@&s#c|FI<$|Q^j7VcUk){G$aNu+H;dvgAy`OQvrS4~;y_R2wy zE&oB?@Av0|!h5|s46TdG>x;^l`kCfFiHD7#t(M5cqbD32TJj4)GDfS72+0}lb<4Sz zN1hHlG)w$q{F4R!q7e8?Q(L6!6{$Zm2FI@$P$a3|YT><#c;p+{L*}~>)=kq4WpUbG z_X`WFK_kKv$j}_>_I8aypD=&$r9lbgeWKj{I(^;~=zD z{zt6}uhsAuX~|1t7Bbo!`Dv_89>~tIT0WBcPIklOvdr6fgd?yI8=0V$^?%4s4Ey9| zt)BIwJJ6b7b3W`;SoTJ&~B6HgzRw$M9sjMIHv#`Q>6$c+>^Bse zudC9lEEnI4aneI|2RqeaE_yjdGDf9&B8EZY7O&UZkIwoF4TZl@4@s^PA}XbE1#DT& zzx5GA!mX0#X1H{xo-+MmUzJvvqrIOle$c@!A=k29WiKlv%IMgzm*$y~wCN?I)R-uq zC3n`ftXjHGd|!cdb5Z^MUsJ-b*Sd9!PJ$b`in1 z$(Tce>2t*4lC)CVdER;6%VyG{I$;jf@5idamo{lo%pS6hKCXiZ1@D1%4@}-CblC9@ zW%?zlzXXCKLLwP(!sc+6RakY@#C_OvL&^`dgwc-L1eVB5OQ9cr$g~%?JtvRdpEwu` zWg9pSYj>FFxRj!r3w>F^)XnLoK*n>ae1~=S2CqhQ`Eyz{KicEA1+sR-&!%RJ*PVKT zY-Akhe9E#cC8<^D=!bsaZxa!1?ur#I*Uv0g0ey-&wB=X8QRUW%DJn+Q+I4F<3oJl% z8Zlidh3TaHg%x1%eNYc_0M2iW!awBQB|?-R>PI@yIPP-9JODVVSIopb2k8TRN68($ z#1M~KmNfjs{amw_&w|Ofk4cCBgPMuo0LXI@x_P>0d~G)f*rV27n1RyC{qAZHv|5AE zY5R1mX*!g;uz|`He^2LiZ6*E=aW#KC{8a&Mxsefifnwwxc5yI&6TefZo^9L3ED$9Q z5aN{N7^9~l^#Orkv$HVzc0IXhPsZln>F&ZC^EObL;9@PZiM|T(4gvm-xT7=gkm_*b zcF(PQ$Ij93!zE_DW|eWX6{?A>;8SI3w$`RU$mipr9z6>3os(S$Xz*wZivVhS&=F34BS9=UFof?Mt}aPCv$eYML4zt^~sG zr@R)9OA`$;1*t%lAKJH#DURTmq`Q#40?P~)_5I1{uylunZP}po>^8o=+CzgY(_8b2Z}o%ZUZQco$VAwZ-Sdv`kIp9 z!LZ@)PKGLLJ571F=6_S#>_Ow0k(H^LWlbYOv#=MC5a&Gqb+gcXV&f^wh=q2#fEH4~ za;`^xbE*AHB5gfa?zZAh{D~2fzk{F-XzIdF8ssEDg!@yr`9b6K^gv2KaZ|A~a#WfEtGxfC>7E zVlSzEg$Yk^h@m5P4Kb~7;<%{c^3Er@vVC!mcZQ}`tnGNAJ7&2*j0uBDhZqLD>z!~S zFWDhb3E}` zWCT8pv35RJ(}qbZoXjd_I++Jxp92jd)$a;@(-R7R<@Eb|{4geEwK#UBSUf#c)Qx|r zs|V4I*_!a0bi8P||q@>Qa>VW*h;KdMQ49i%SqRUM1;^-EeY6A_t zZGqCq0CAGW{+?#qzEnW}gOfjtwJ`nTNu9Cnb`9X0OBxIQ7}1K?U)kIV!1g_ycnCrM z*(?I^8JpLp34$!adjb&N!nKK#_oVbBnpuUucrxNCkz8|YpgdFQSVoaE%P)+n{Y1_> zo$sfB(@e9}_Eir*`TwVdYb9E>?&hgQ;3Y|12il3{nIhhR1z?Yk$wWIUfJwTc{=gN_ z4`=>#e>YMc?h6&1K?Yq3KV26vbGp3m`N(`#D8DrM3BT0b3iv(Jc1S?HZb%#8*er@L zDp>0qVutk2ccwqtVU6IRkNQ>iCYRZ1=lj}1u1NYV7RCmN~c!2S*w=91`dH;lESVq~Q#X<*qh`CR*CbPOyL=F1Mnekt0)4m_y zduJrerrvv?*{m<&Tc;116;y2gYIgE{KU3}E? z%-MNNpMaFOI*`?&S$)J@{KN|M`CP~4tokO$V5^L!l9;nrQ$1s#jj_TwIXuNC51Iz+ zyl&$pJHaTSCQ7?SZKjxTk^askx1zZyL^$$(LnyIHXnBc7M$_k!RxPjk3 zFN8j2{$-#d*NC^mh;cIV2YZmowniURYX zFQ_}ajsovry~+>iu1SOP?nZFI-QM_8A7`n|#059gHqv<>mIs!`>s9PUI_ind6VuNj znTIlzuUE>g+~WRHuyAFvS1b>QlX0uMiiOAVz3|0#_+cMTe@!uVeIJ6%I@62mAdd!R zEN2m)?F})W?}a?z4||6p?`Ixj`grhNzb4n>2SIQg(3vuPBkC}7@GWec70bsin|{Q=QY6%hEd>&3T`D zt4D5RMt-rVENTVotwx<1jqd3?nl&o_^1J11bxl^#>PTsZX1))_l)r)%df;Tq$i$YUn4yRRjj$hn1S6dmAr}ZkCxQ<6%C>xq!??>t!t(tk-!|E-W5_^6PSEf@0t-pOHEuf*DQz+MMPg}}a~z})J>h_9$W zjduCnV|*OiIIfr`ThHtO13(NZMI`|uL_0(1Vn~=bZh$h90nsb9~>cpJp zi;Se6^b2Rf^Ix0D@@(<%Na=^y4c4d$9f+1@gm!pw_c2{FGmmTbt(D14 zLQt(gK)oz+g{e;ZP9XU+Pg8Uhyk;t0u)Ua7TL?XGC`pW~uzN;Xyc8PN-)w)5jyvV@ z3``H}E3xy@vA6vJzuwW4EuFKF2`(yUJ^(g(mLvIzIF?z}k4is=;O#Ur$<44Yv$`~j z@ugB{6Z^7oQ}oOJ*uvHZWLZ4bmqT}!v>N*Be=DW{(Nc_C8NrM9Cj8h2f7-JQb3xEy zYr6WFc6Y}vPjn*NtF`iqyp(b*ziGKQCs%k!8hPCGj_{pKw0?U0LO^Y~Q?SxLkTzUF ztLB4%-tj$aUv=FVlQ;!E5`TJJGuTTN>Wxo7mt@kToqlA!M@)i}VinjBe_Q@rZ>M*K z_MCgFCzX-2{=`QWDK8z}p6Zf)eo4yKE$A6pVVjg@7&8z~0m;Dh_=3E{Py7!t0_zU~ zH4MS&%J{eXwMHk{>y*1nasYdgg=}-nYzmy>hbm^(giitp@Bng7ed0sEG)uoQ7R-H&M?EX> zKn*=ITL&sJl85lv%W)Hi-f>(*@qa5JcQ=)gon8s7zuyuk8m9yzY@!6`F`3( zhARW82xlH>O;MD(53w3b;l$|9?=;z&w$EWEPPQLw@W5UP&i(`vl2Bi^Ot5Iysp%ICUk)V*5lN+y^B96 zSP3bNd{mln+IJ;#GL1OUmhC~C<|Ud;AS|j>40HP$I;cMpU|3VE4rYvq0{`&VbW!~R zZ9q7AbB6j@^w(qFv&0z-0F#yu=zHtqs+Et6WjH{6kr1_jKS`R304_`*L(-N20@yPz z){a$l9j^?3+jK*dzEc@_Gv*61s_ayldsYRhLG|)9$oP4D1V_~z_+P;DrT=B-U}@Kg znn^NOIg80TNB-K%edM<=Y;p5~1$w^b-3MkSw~ijcn1CEaf0<1M7yP;7ISN6Z;YdeT zs%oc(wp=iR8=(Db_W?`-@>J)S_BHk27b1KE+d<2Ae6|ZWWTfT^VmsC|P0#3cPC|S9 zeWoO#1$6vF*F&mJOO+#G*EWLe(dFnnHV7O4py3(M3F)h_p)Tv2$98Qa{|su5X5EqQ zwgSlRMzo*bl=+Hk{E%#e)4S`{%y=ePL?tgdypBtPMr4 zuwj?=4TU#jhY=;AklL|4c50@+sW0f@qI?89p7LYM0WxGD{pL58aojhxcExPldk*4f zt^KVDyxdAa-E57_E{Px(U) zjft&X_=bqa=Hca(VGc44{XC+-)%Ysu94GSxqFBs_IpJQ?if3;)_!%1@olIu3a`eB# zEiWJVCuU`>vSV_wX|tsQz=^(;9*gKd4GPx`vk0-kHh4n-gF*i>4#|;UkmEmZ0=#o@ zIfRXU5`%It$B3UcoY^os9Q_+t8QlfADdG4R#4gjXVQ`Wz=5;CBb%m4y5KSNbNktiPeHR)W*RfCfBXNy%5)UFP2;>b!#bR_po zjr&=$``eJe`d+=AWzSdJT?j`%eS=kk`2plRCjSUVK0%qj>C0W3+~Z^0X?97&IP@@D zD0TpMbQNL2=_ZLe_$hEVC^{nJeaUq4Qv>g~JCK~f%#N1zU~?iE+u5T%G~pVQ-WH$h zesB?YVdykXaV2gqcb*e(^u#;_tyyx$P33!|>jqfUwrLF>g4aj|MRp!(L}}{HA|ci(7dmIdcIhcuF&(*dTN{Bi@_>1Tku6SPbjC??1c>6ec$ zyoF9Em&mTZgL;x0E3e?%P$*jCa59tB;02X;_i#W6@G|*H?%a}vKzD)=``5)eXYBLw zc%YeeZGx{4Pw)$GXP_xbLi6*DiyHg$^Z?L><=L5a$*MYaq#*ZF#e zIV;1KJ7!-?pE=$1mp!L_kyQ6s`5_oYGWMoy%tu}o9Lj5we${w+A&rDJxt8iv5qa|A zQyAY-M&e(?)LIw6#qQO2ip8-SguRU~j0`M3fL7~^#r9l9`8UEJ2m-ma%yZna*T|zV zd1?B(9?_=X4(PN6n>>ddwN&IMv{_dwj}EhZy{&YoTujE04#CSWQX#(E3L@X+x${?$ z*Zs2fd)?C;z7lNglx zm`(z0NXIvx0m&#^;CvQ{fzmDO+rj)(I^|diMfqX_n8l0r12*`rQO%W$!Y}eN<`z-I; zhV5(zwCsP1T{8)C@WYki*EI?TxbW!?OQS#EGUqyqW)>!o_jj{&xxDKutd||DdL-|> zCg#%jmGJREuSYJGJE z=769gIDqe@DP7Ky%o$C$Q|TjH!?E{!Mu6`ueB`olLm#WJ*tV5o;Q?Erv^NZ;77ukY zyjOW&6zdx=O*T8hR;Co+=C`1F*^ZI4$MWw z!C1}u7un1e_BK9j8Q1M>JL*YoigAedh32eO8U}q^6x}D~8;><-{bC&W$|mSJRPas4 zZuXJ-*4QJ^)01}6qGXjFNcLStJnN?*PnK_pukw9C)TV-HgWr(uLOg2<^j%b|FQM5% zhyp^wRNU;vG2wE6uVs}(bsuD06liF}Q11fiB@Q1}4&StS7(E0yEF37rVfS+pvkj{& zIg9yN{+)zA0UDof&U=8hX6>Cr2GPQ*DKlTUIvQ)Ns7UDD`@}j=qOu$|rR$-M*6Zx) zn0|y8>Bm1_lyLK)1&3yR{9njw52|^O#0Ne2m~Y}U>7DhQGTWKUewOPUhF*~-*`v-) z`Wr#`$o#1fhCzuxeGnZ`D+fA@obDYnjeXo0KY`e5MO)OKvDEdqdLg5a1anWFQZHAp z4p44ecam>{^V=H(ay^=M8@1?p?RTZScZ3xcxPNQ(C-{4Q?xq*Qt^=2{ z`#s9dBsK&FdCiKxW0GUfVEZ9u;VL_QdrVgrI=Ig{=tkcirnB|;L8b2Kc5NP2)#L{$ zl6n})n1*q&?5?unF2gG-jI^!maF?W&==6;N*|#FM@92s%_BT)C*@;tvCbI0&Dr(%Z z2%xiY?D3Vib*LCkCs^_RG4U1?(`I`%)|T=^lYycXK7JsRR+5>tTEeoHFS$*(DKAOo*m!;$2;_9PUAaZ;NuC_XWgG*FL#)G`uH7{Go zFj|b>B9P28H|#$iny(GaeWqcu^cH6>XDm(SYmn+ld()wg_>h9{G6G*TfLGY$x`Cbo zRNLNh+g>NPB4S;D8aQ!XIeIE3V^0y)&*>asRlFZ~A+kT#-U8@0W3-d3ZTVDqxL0$- z`+|ga>lkDh8@VbZ6Vd#DSYXb%Y5on+3cLl^5NSjz)jAV#S)X!OrV`7gHvF>L-Ns}&)5}jOJW`zr z>?>DCVsI1lb!X&K-Qk;^-n0r%hdd(z+LJ7}PL!P5gY@|4YK3rLk7tZVu~k<4)9T>P zH+b7ryOWte>9zy4D)nk_I#3uAwuC&G{NZs+3=pt(colaQ&=?cOqsM2c?@hG$+kfUN?P`F1$qCxuFM=NdcXl7eLczc| z_TOURk$v&_;n(Yvn-0Co@0WL)jo&&?K8sHeBHN7zOG=HKojV?@6Op&wFB!Q%PX8j9lN>+YRo046%mQ9#BUv=St>- za?lv>-a}=?pX%a&!~fKTfnM;c*ykFvYQfA|vWXEG4;o*T4Y00RO>}f?AM0AX#4%zV zKF{{7ERP4A&{(~&Ip(FxTeF954G`*5BSgeso$!Q?z_wygm$f7dl{JyyHGRC03fT%f zfB@+I3r8Bfi6g@ICA1L^MKsRc>f|Kxxc3ZQIH@_h2g>ksyF-g!r%;3Zd-fZ4 z^p-anceyg!VMigQlMk(KL)7zG^PQqc&$;n2xX5&yf^W#(hLV*&J#d|f1FpAax1IM% zyIT=2BwfkKOZM%JRSGMt-Bj6efU3!RG=_{_HVq;7t`EaUqwly}TG-F>$Z+U=9buDdA9sCG9gB}E++p)6bW7RIsZ~y=r?D(CXIALROD3W3u4^b zC1VL}%x~e;@*-W{Sn-ul<5UpOxTB48O6&6UR)#I*GP_|g&@_Pb3bEd9=r1n>D#vMH z?P2_L#eo!J$4?Tn{Vr{HCUIHh0@J+1#B==?fe@_oJH17AjC;Ihy5dy*U;yeW+Wx7; zc{hO%h>C;36A7>dejgn4wm*XVe6ao>AH5o)&YJ%Uq5Llg7YHIHf849w>c&!{$wKtd zIxuV3NW$-eV@D>XyA`tEinyl=5uaSn7&-Y3I5lj`$not)uAEzochZOd{E1t1VQkn; z_VufPe-tv=p4U>3IhL|JDLVoTh%tnfj+JUdYGVhp2=6$1KD-YA!S1YkJeDH=89-<4 z(mkm+-1#hgemnnM=43W$q`Gi%x)ADBm@FeSjy=lc+~THWVOI@Z|B3V+81BQpNbTEb zSI+u|IKc+LTNIX7UWtu)<@1&(dM7c>8U~;+9LDl@=_K z_%VL0zu_vP2;aEV)LuAv9adIG5Z=N%IMAO$J#xDHJlJS*`k*3y&e9&wt*WRyTq+G+{RLzHMbpAO$v|pe8 zvwuzJ9uE~@E*q{qGWb(|d}f=GVa9xRpr3-*OIUXIktGA94#ihK)=!^&U|J0-L-ZIq zefGCpfUJ@s>jg;bx!Uz=<~lcJIE4bTUFhxDP#7F?toGx#JD{t4T={bMBx!rL1-V3v znZ1Tb`U~WpId+DgO}tb3mHCRU1Du~*!jLV|zu7CM;rQBtB3Mwc0rc=jO7Lv^#k$U~ zGMCR|zk;-8yJ|mR>v0+e_EtJIib*0@>|G)C73bSs%q|ty3+Vc#x1-oj0M8Xm7;PD!;$xz%yD&Tet9ZQT`UiB2xuj6M*n&(G<{UywPULb+RA`rWt+5TiX{X zQfceZ%!ABqebU8Fh~kAg$}P*)Ez6}~VxI>raGJ!OpT${~#-53h_}o&wO7dlz zEiOHHneavNLfUzMe)k>`B{qG)gQaXH=yxzxl331I9c5 zG7$g{qOC|el;*qbu1RYc6!Nu1mqq%O^eP@geU(X4nbLl!2$ckQXn}&xu%!mnbjDcuSxBu}>cs4*+4T)V#h7G;TyWcN4P37uo4@3M17^f&4wM6cmu-_WBb9PijKJd}_3Dvs$vS#RUdGCWni zXAu02@9Q>-9ezwRV3(`U2Ts@+svBv(p`;@otgoymch`?`=%TmfTKB_FIQW5zQ@X&x zrshgiF=H*p@k!}VKyff#`NTrZi1_#1_dS%cSH*$3YT+RBGezN8lxCNO zY`{Fv)_kN5ETJG>o7)K8DRssMp!#l_;2f5cSTkxbNv-|A;<{P|y}lhW0EFa8UVasv1-f~Kk@|G&j+ATmO=GCBgPkxG4^ zxjzP{jXcjoq)RMSjVT|t1d-2yAN)Z6$)M-L!jRoz!)-?nxmZMN3CcSc5a7NC{F z??%+IEqzm=5OLu40VBBC3wDo73`R_vNA`;DhT95`YL16Geg#Rg{@(bwQQg2+^_QGG zo-R%k`%q{ULqC6PUdCPj5ZY_&Cb_O!-MuEiw{i!tFy0D!eK|GDD)$$;{&1#a?_Mur zdO>>X1At~;jxB4_Vdw`ITF+mf@8<=qdU4!@mWv@>2v;!uHoni z%5rG(8bL3a7wQ-Q`HILNm>P+g|GB}b*RG7l5!)FMkRC4_hOXh11+pfkNX~y`69nih zhYC}KcP+RbhgTBL5*cGd4|sQz^GKt4>ce-%a-MRBxA6B- zmRX-&Sz@h>&J>vcoR)Gfqp*E_fAYLJpp;}N=z=)YF$kmy_b|&}XQTNtF}EV0#FmuF z$}{_>?f+@4ADx;)qjhtJ%wZVC@i#y)qxJ1(whqWucc>N{^c~)QoL(a`^u!Jg)Q!!s z9&NmrGo!j2EouDDPg0>6#NLrt5du&zO$SksLHS(cL(Kuhku@u#rz)XlLaW})mCDHg zZ_4(S#B$@mG&|O*P0g;cV!n{`w`S-1=9L(>q0tA`VC2Tn(!YrtUX!oW_HzSTcl=1M zK${M`Ju>u1c;ZB}md@;Q1$qD>G&a0JTAV>#0FrFgkzsYpmh5Cb( zxtpDbsUoFM72x8{-*@UNKHu8RI}htv5u0aua`)}2j{g93<4vLD#56zuLru5VFI)R0 zM5pt%&!mojV1WZrwL~(G&yH)!b=AUoQUF3>V z%N@U0AAm{4)NoS^@EO3T7FkKn8Si$RA4cNhq;o9bDLdMq_`&@MguO5cEB;Wrt_W^25jgD7-$SK6|!M5XrlzNh-rIS&WB+Li>+ zwMO8jjGHJf2be1baTCLIEb-y=Gpc-1?L}H8t|E!6A^{Ncz(jIY6?zhZ$(n4E;Gdke zOk3pCR-GwlA2pe1)(a4e_RsAXCXY;Piv?n+-+f#0|Is=Amt{iOBiwOFO`+#MN6Lhd z9nC#|r9b(Jj<$sujD}qcLWX~Lts^SRiz@jJU4?+?pg+AebE*JWW4D{e`F;tV1@^8E8z)K5_8m?(Kmm30cY7VsvfQSDEOAUEz2|{@ZicOo%R%NLWW9r2*7!yg zfiC7=AC_vD4%aaiCyEii>n@$^Mid(_m$P;)LG>G&|V!bghAIj+7B4F&ps;kkaxSN>e!dwO_!JB)O zZ&q5~clBSsqubT{cs;-vbgAiQ74aSZWaenhdD9JYmF?L&#nD*mCqN|!5mRaeF+^A9 zk`-4WmR866YfUN8iy+PM{$cMEUlizZ`%3?UG4dn{>Ae@{_<7jlOjsF(0NojX5c2Y2b}6WAp0P0%rNdjee)ajy8gAA24p1jA=J>8;Fm{Il`kd zefK2EOzE;}Erm#KSY!>px4${~x&2dps(h&_V-To0*Z*Qya)ke8D;uW8YTjbyzv_G( zyFN}F4KI>B{ylL3#5pVSVL|h2EsXUqqg&(W-)(V6+#A}G&aH{)xEg+NP|s*mem}D4(m%h@IZbavw4`d&I&8Q)v^iSKkOHZP>G)1;XE^O6MPpl-{l6{ETT?60OzHSVh{WZV5=g8t&tPd?&Zh58%qxAGFnaFxg4^-&0SnJahO{MVOkyt)>gYI-vdnHQm5M>dS{xNsxoU4dtO&$w3n++72JlfdAD0dwo;5LnLdb2>nnF4$a0iZ{# zXe9n>6Na=_NUhk7Vk843^hLGF4wDgYPVDdc!g`w8=lL4ZWWo?G*=Auf9q~6>{Qr~{ z$7g(ezr$Qu%m4TL-Q_KX3jo&k;)>6$%~dgm<3h(=3VAV;#x3hL|=+nsDdwthKojU zWtggt9dgoE2W$G)&MZF-{{d;uiu>R_XGLak=al*z)jq)QuJfsex`)%%U6SErEN9hD z>NCl(jmMQwsvH@B!30;1PZb^lZRDxmbjQwmfyV71n0IYtiYV|w@y{*8w~Kwi$l6_tjxL8PeOfN}?1xKKbAk>uOCHom3ZHYFw z@)J9oA0?WsRsao@6GXr<;kcQarp1hHu7D#lX)|RGi$La-;;XkvOu|Jr=`2qW<;SkJ zLP}R~G3l>{d`h3zUN3(pAc`mLE+Aq^^1<`Xr`(IhFs;di>U13F=-k)z-2Z;_tN(Zp z*Zq|Q{r5d=t;1TKq*24df{NZ3onQFL=nVMQ(e;r+aw0hMy*q1*r_uMKbax{oH?39D z+KAckFZprAPhYoR-NyJ{SEV9;`#7}&`g-Ti&p-KR&-=qKIj~Z~_&d9SYAM#qYRsAG z<~4nQm*H^8`$8OY@WqSF9RtWYmJJq4K03BZUWnT%nLg7VekLZufpr+5*hqLpX;Vm7%-Z_wQ(ZGnh@`s6-0dcRY zHVqw$w*DaNX4=Po9bdk}ZhBdLYnV)|Gr9553O{Tf8XPkQs&c=&9%UU9o8=ROS!O}} z!S0GXshpJ_1Wa%JRTf2=HUHg|TN#t_#wFwZ@%>0$WK5dw-g#3Kx4nF@?6}xw%b1J3 zab4)%(1Vm_um=f-zSf~fMU`^w;>NfeP0(;%GPssKV@bSEZ($cENKF1_0XT4+2)X*gPSk0G=kNK`{ASP8s{-j<%vi1D*o`t-2n02X3`!FT4c;*`(%S*?vycLOXRxr1%{ z6v6+*0EDe*%?Wkjr=p<_=8o%6rRU(%%l4`l{1bu-qDaK!A2Kg=8P0WW;y66>HMHP< zv&iQ9hQpW_E>@L*o$s z&0`%dOpygkSOa3K>Tw87ntnm~dIRY7;V(OU3SFMs{(!&992HM$NPsK6nFgo99ZRXs z*tk)k#|QVF>d~I=rn(GS!Ut5_e5n)XE&2F+ImvGx5U*EiX?zVEo)px^@=|qF+dnba z`Ohc9N=GoMStuV4z@3QvpXViVQh#=m*8H7)LxhaE6w1d-FzBC#aXW3w!a{vhJ;%)q{pi+G^sI*|`c}ol>^7a*FRGk+hq82R_|#f? z*Uj6IMo~|ZeZ|Uh>-)D`68Ko!Kpf_`apF$O#+-5} zPd|-0Q3ePTuBf5f%V1h=|3A{&BEX)>C9`d%ByL85(YzS}^gM zX@2N7L4E6`DZ-z&3YNPsM>TyPz4v%$zgd9A>I4gFa!cX1!=d1n8{BuOXD)F_8mq-w z%)XA`vG%6(cfv>)^%kFSY7{jD^i`j(ZYyJrZ2xgdVBY9-$wYh|Hba!2r<10PM0U|D z=clj3A5G3&zIo51NWZM+pm}ZFR-^F!b-A^>X;DYK#%A)u(@coDJYlgI@^E1nHZNgk za^dQ6cEETvwo!ew?V0At;NseVVzEx%=FSbIr#YZs^ki$sk-T6Fkj?5L#1PxxZ=$_0 z!O-EDR{~eP-y(Am-4(yfNN)$*v8?Aqr1ZK^lGXat;dirDT@Q4PAM(`)aPQ-PU{x0A zf<_u*_fu-bBeG&zo(|QU5Pp-SO9c9^XTkgzEUx)F<4}to#13t8C&JS93I&E}VOVF* zm&zc}g;L3n;ghmtT^K=r_~ht{!J_(=rUc)45?X8DJkmffsy?9Trf-PY`pv7Bop-6g z2b7l5Lr^YR#L3>)cc`G20BR8qRa^nozj%c9o)zmfC43b^ltCl}py#he)eR>sN5^xo zClHD9`imp77~*2hnQmH<>@rvEL@y7ZkJfm3lFVZ_c=9J8^;Nw6>9|Rd-9Fp@c-Dtb zMCvWV>UKNH{{F(cbMGq_<1hVheB|I1(`?OYg(t4;vf(?7G0zT5A7S9x|d%Yw*1St#s& zjDZg3RZtL6a5$!<6`KNatYq^%c926N7N;&Ii|$B;y55Cr)-7hY;zRAMT{M|1E6FJJ zENU0`B|567pz95xQ2UwrKJq+sLZ^G$JDd@zb&1NcX8lO(SUh$>loZ`qo<=v2pjrW~*5#o!@?}yTKU1$ODF~O+@zoew2*ebmd;gJBd zmz}EvR&Z=9EN-1?C~z6EMQ6m%8It#~@@u6AltGq1*|OiX8hU?xCD=jHewJ?|H|= zy0z@!@dTh{69NYkgGSo~ve=5uQ?-TVPXqvJvdJ1X_iEzupk8tOxRC3&wu#YifTk}< zG>ekKu9+_J>+Vm(S+){QcLUYg;svdW)kCc}4`VH0<^8>8J9z>q8sW zQ!67Ob1Sv`f`cF}7Z#14p`pQ)J*BpH8tRASFwocS`HsI$-K8C@J2bw%aP~{;k*QQT z$K^vDIv?zxG+=exLc}gQQjwmLT$m=swU?~BE}{N06Ii?yj2x1f&Y;bKh#J<>g!G*_0l>X;jMUSx7Q z7{40~PEgd0=Y_vRe zk+|2#wBKBaYA`j^#fFzDZd=z{%iKH8ng_bkox0RzGBYzp35!Kf5!;toorBMdBvV{! z%1oq_n};$MZ5mjN91dDUi)|Eh7G4)uOrL1NoHD0@R_K>!UM~04b&RWD0XH;FpmE?T z`jyW&pkUbOAyEHmVvsshD}@c3EC^{bK**jrJ^na>G!0ntINV=$Q_sovN10soMm<`+ z{3msl5Xn{Awdj{}ZU^pe&U~%qrCNE}fpWA{a>xH`x`?pZoGs85qXGDT&lbmRmUNRM zBXlG`o>(->MQ<5C9@ass8AfIeg|Nr|(QB#l3H4Of4ckJV6?R3CpJ6>;SR1893SXkH zxwl5VX(w-V-sl5?`}!T<--uYa1o7y&tQ!!A(8Q0tz_-_M#lMgrp*YOz9jczNrA6|7cfs3Eb7J0~S?GU;RarI9#u~HY zjM?4&$o{@uUnET3m%axZNP7J0oJ{I_Ru(aTZ%JRD73J;Fc8o|KTf)4tRBg1-+Md(* zc2Dm#%@++{aY&_&$1%~sT=*HFZy#0MX6FwGnZ@ef>-Gic6Ly_0ZJ~6rf7xjK=PbMS zR-AWSc@ffh@8H4_F9i+3ihuj#qrk$X!r6`W_X=-{H1eG}6J?tY{GS!jzwTxv?JTq| zm7wzcexNd2%k{bYbSc9*tvfw%>HLcE_&Nu3&Ah-@u`EvbRqFVKO}C{s!EfGoXpRLB z%YQS#=r?~{%5V1~1XLQ5Zr!Ws)rfYB9lF|6DW`_THvaNYbD~f1cR%6n2ukm8BYP)2 z_gM0P7p8Mus@X;A4Ty(TmnwOTmkcw4*2A5eq=nc5!ay~A{n^Yz{~&d2)cAo2f8qLS zwN+awZtN#2x1RD@dWXK}J4j63IsBEuKJS*V0h7NQCJlEe;q`#|VP@B6k6{A7+3xI4lyA05_KWFFE`pDqwfN3iIy z{!h+WPlf==d{&6at^#Ow^e{G-BMrJP&4!3G&THN@kFjhGwrQ0w;CX1rqW(RW`CONd z(61uWUs)w2{UUjs;_oc?RY^w?@Ay_qXD%A7^@v8N6n_q6~=qO2MPTg+(zJNHJ@8YUm%Kl9jc zj-PTL8`ZBwl^hjHJGsqssMF#EDssO z0%4|_>!!;zpVSvh!Z<_B0pnuJGYeOg9z?ZX`?a2#nr(+#z5wx+!oWv@%gv?eqpeYP zyxTbsb@73_C^x>3yk0_NlI14U%Jr%|`OB)Vo44BHpgGGWFsWlyJcUvj-B@CKcaH;N zNZzM8ZdM!^-#P;cnkF;+!u^75knG~7RR-gU^BmO|(H(>~cOkrtbCQPS+fl>rr~U|7 zuI~#r+6#U(eKfk<$~xe)F~>};9}Q*C{y~c6Z>%XQ&%wUKE_^80?H!jKk?=3SX5!wL z|LCY{{n~g)+FYIlgCS_pg}pWv#!t`jx0X}(^fXOI^4TcqG4oj)ehGjLFV#eO^hpxb zsW9p}z&?%~+6cv-Mb?9qO`gq}JpisVvj?WT=B4b3A;~BNB{2PLKr?8Wz1ke2A}0<{ z2XJ(HZ&gWdnDM7R#e>Y4-`r8&YnM;g6R70@s62|en!|5cIrk5#Xp%<%%Ao}o_3tZt z^R;lP@(OU+iAOCGW-37GY+}IG5dzrn;vBn=CrPdjIC*?cCzc+ zJCJQOKHBui+b$1v(QjDrWq+!8O4)SXuc^YoSg35b@!qcw#hS|RDc6!!K3rK0v~oH5 z!nm&)$xdPpb%If~FK5F2583FZBQ3V*MXTdq2GjE^bn9ve_TlO8=HGWuzp%WOa7lnm zdzPfJt)ZHB?MtQjrsR1s&hnF8;-}if^Fe6;^m0e-YEwU9ZJB)}vQRT%5EQwT()<^^ zccaXu>HdvQvp%YIY>%XA)lZzBatJQJd0}epTYX#B#Q_ENjr>om@{>grlVhtDidSD! zDnNq4zmzQ#sE$8pZtLk3Lia=cqpAn-t%Z(!cm|uU@e2XLHssSEZ(=aUp}P@wf&rP)I!t<{TH6p|YUFVdsM|MFg|eh`jsnc~qmr1Ak>;xeKT`r`rmAZ>4} z*{1SyS$7p!folNlQK%dr?}c3X&kOv@w9Yr^U!8EArjrt)UiW;Fs$ROsR4ix1`m`8$ z-u+zrH+n8QkUL-4Mgq#^0R+Yoj&K5$4}La z(I~flu8yf=YqtovL~-1YS22A16^Uzk`qSvc{<=Zjb0Al|BYPiAyveN>%-@Iz9EB0+ zV+~;$T?_)xDGPntiV9h6q&I3uymK%>|$j_7u-wqHgG)=LEJu$!knDegs zgwAQXQ$UQ#Z=1)G(g8-&X-A!BC|#*xc6Jojx6J;CMtX3mL=t;HZD4xEHx?)ex~ckU zn0Ex9A-|cU7}y_*I5JxQOefPKCxyndVb{l^i_dBK=!igjP)eYQFg*Ed=xD+`*W2X8 z`Aw|psK>w;q|=K4Dzo?qmoj+5@ywQ4^ce5ddGPi5)v1^TTV#IqWgM`rSX(hhrPd*R ze!eFfliepzi~kU~c3-BHS{fFUe8Q1Hdop(PMaoSWB)7&iiksR7@sHVyjJrG80LEzz z(@j;ccY++K%WUq|D0?e?Usa?TT=5DwN^P5K3T@&exLfGi^1R5`(st9Z)x{f!;kxr4 zP!5ug^T%=!oZdxLFGj1Y$^M*!^3pC}jm~l^cjH5jffVIqLefw)N{Zlvv_|b)%g^VGEA_C#+|-)8yQ) z!Ord8ntNe7|Na5){o&15%rWV-iP$PPrY`zi)yF1Uu>(($Wy!BT-*xIxsb-^g2b=f& zOh_0hT6_S1ph178bZS9+kLIkER>{CqtjzA!w<-6U8HyW{1A^jPCR-LW@5Vddu%dg1 zSa{3|`yVnxwhPQZv1ZXJ0NxmPIcoA)bs^5a-a-df#opk=z8oqb&)#S3^jZl}YwVh% zjhkmL85+KyXPrS%DII%2Eq_q0=^58LlI&XYE26S+jnt~!#*F?UbWSK?D#^(t%WXBb zCMUeaVNBa@QdfL3-Ts;*`@;4-u%5S*f3Z<-#Ms1^WiyjA?YCrh!Baf7VVLp?ET8r~ zu4&SVzp(h&Kofk`$=jEH4b_oxaAx3Kvv7wDmX7K0Zkq*0I^*-Zq@SNpB$qAkhAdrMxNRAwaKnyV1m}K=9k(IQ zI!OM2Mfz9h?2*UBbOz)!ED4`edrv@4OKZigA0Lej;qAi*jJcJ%uat9o*#u9kN-hv$ z4BOf_BW#<4vdpIJp<_fBvZ9C@IiTIRNj{11&{=bQ0u)#M1@=wg1b&_#rj;y}8CFK;pxaL1P*3mc+81*y9 zDG)MG(VrRYZO`I1*i9#|8lZV!pw<645Z6A_jcR|8jZ9}+v=*v!@923lG6q)9oylF-l}+m?@Gy}Q-lCp;u|D--syRl2df1C zg-M(r7O+I<6ceEbA3GL0#6J^8TxrkPVKzNx-qU5Go78|x))ipaQg6gFk5;LI7Nga9 z!-HQq+Rs(Gccm;$j#(gS*?0A13*K$&)6vOTtY>DTom~xO`^FiBslH;CR9fPAAtDPW zQ=}4C931Vf>3qQ-xu4=REr*OflAgqt@qMJhC*rISF{R3Vhq7FJ4U4mr>ea$~mx{D5 zE?%7USKPT2d+HrMW|gv?M|FS$vI3_%zi-$;$KjDO>h0cLW-E~g3&RZuCD4?_6mAAjBmdXwKcK%iuL*un5QSh4%Pm21g>&hRXR)Al3W%*>@!|KbR?2 zkVUbZ`C5{sQ(oJ=N1S^7Oi|XQQWNLxxmSCPq9tzJ)(AGfF!sXcs$I5i`pMLi7&mr- z`DBC@`lTK&<#2#5?+^FPtA3^A=)rIbYG1t8HbhslC+t)IZQj198;!unz@w=p83E4z z5S8J2xseJ;Gk8ODTy^Ybsb3X@{mu`;OM#SSP}2keT5>OKtA!>x5|h1L zIn5d#y+>XxTdxjkeb^yr<@;K3FE8bNq>OKr#46yl^4|IXTtWW77LZiH3;QGBI%Hu8 z)`)lL_hsv0zf8;)fzrTvkp>eV6+=c8m{;udxyMM>vM?8eR5i4kqt5faH= z%L;-ZHCHcUFl2Om>;U1&=Y)7#uFmTCt2_fKa0PFvLUjh7+F7r5|6*+`6;ISoT&d3e zle>L?@`j-nh&d4}rIk|TG$I@dkL z5;j(LCbk@B3atHEA%?aS{#_3%>Vs(tNhg(dBBg@00tpofMS|Kf03)03pg}J?~CcE70%IB7=@`#^vYbTb6 zJ>cA)%Ci+Z2YI(U+HVxRxX>o(Nck8aSjv4|7%9l_7wWaP+9{5m9&YYxi%o|3kYrSd zRVdwlD6cnb?nqgtUw|r7Vq=-qAmv73(G6Ui8*%A7PnNzJnHyFPsn*WqBg6z(Hcfz2 z9&m&{Z8T_xwqj%Zy=E57RWZNS1f(kFY>-cgmYrp?D*WSLzvW8*Sw_=U%-w+4Wt56a zT&*hB2+5m20uJ$JgFCR5WzVs>v)kD>Oq!Y@LqVa0X#YxXx2KZxWp6L5tD@_5W1TDb`UI;Ls2K*cJ~x^YDXa>dSFMZ*;jrQK|5TCvaT-w zZ)Fni-?ZWyp7__n=;#y$#C)}aZ$+8(kKLwaKL*D{e%A6?7SsJ0p%VNBwc){8K@hX6 zAmg|f7W_w~X~5*O9WtCaC^OFhElInrRl2g_4I|_M|Jrm$yY_`K@cm|6CsX^c=YBCN z*oeVUeqOY;jZ zF!Kbq`Rbm9l+!MoZHy3p3;#!zy(MiEqzA$o2Dvd!vv-z^hnn%@9%vi$65C`X$t#zf zZhbt?YIfc{s&S4Gab&O?r43H^YYhGqPpBdIM;&G5!eZ6$TXh(O#JX3xUX<+xY6tdL zeO<-N-Mx`jI7yNHZUU#wNfaAl#Wae+r$dAMa+i4k=#_sFSfBQBInywB0AS zUUwHo^9l`_JJV%3ixc;|?4vAl(c@2hdSIyxaPR0YqSKqvdT>x>DNXzXloJjo8H~S( z$Gjtc(i}YdgO%B>_r_n2%xJMtD%=8{C7ISvn zk^=iia8%-Ghe{%qvaQ*dUX9*5|2C|{a4?nneJibA8d*J;u(GlBd<^i6-!x&(T=|Uh zUyF3K^M{qAnld|w`x_Ej$@C`}G?k9#nuCnq$lu~W4C?Pzn^E2|!^Edclm9H4D6esU zijE@u+>|Es+qO>zrmtkTb?wr-^Fz-m=eBI(8W5KuNIwq(9OMO4%b5XAyprxx3^HnD z+|CE?wpwVNn7G?qYm6E_Ut31aJUY_=&pVu{ZRl$pl)lH$Vsp@5LOPPJ?e7!cxZ7mY zvl8a0n8mxST;oeFuxQH}KJ|9t!BzGH$%iZCE!BeGI|aVK!3@?P)03P@DdeY)c1y`; zbbkzuWFwBy1Gta!%@kb;6AKh4DZGC%C)I#4wi?@$ga{Z&X0N^Mg}D{x2E#yB{YF_u zg5@}GBMbWBHV2RT&3g65o)*4#)7oxQpDQOP&m>EsR7?uC`t^c>oCA)^(_Rpm)=ftA z*yIU8-f&e|!K;7-CvVQ?txT8XQnBeEKqUBF7V2mhPdd51JOT1gWReicm!r*-JGa%! zvnzF^Gb=%F9f>xAj{fJwVItN4?4Q}GDNh5iD8uG%<+=SVn4 z=y(s`#ZL24Tp@84gNah%{KHdlY__eI(H#>t&q21YGK|D{m}=y zz}|5kSdO^uq=KaL(@rL8~BFeB4--)#3Gw8Y2n$@5U z-(kWhQ^}eM)XN}HGd|o$)kg(D(O_;{{K7-coh#w&<`@0_vermo_^<07(qVqd3 zYQ+GPVU|@%Z}sW%;z%Loh@Gu=CJ*P^&DaOynaU3P%uB8NX$dEW zE&Y&gm8_)kuE$b$^C=lkd9gX}1moTKiXm@vogNv=*(0p9YB|-m^*E&2bF3kDynQIc zAd)l@xSM>ONAM!GJfkEzvwkCb6HlH-6c6cfJ2o9wQG zq?qUYu2Bh=@snAuYB)mpt*|c*hvYl()N?5L|12Yt{3lh1*rW!_K zk!)Gmoycs9TF@C??WM;WDAp$VbMC<%GgZG$vmfCciekI}xo0&hq{BZC7}sO=bGz{A z0fgDl>DK9X;fX5Kd?yd%@ghCA70=-aAt|*397GR^pc0USIOQ|$1DNaw*$*L(BISOt zC))%c)5i3gM62}Fl@qZ=C>)6IA}Nw>zH_Ow)jtv{<2}sRqK&r^ zpPO0l!eLai5%lt~c6-YN2V7%MagRSW`>2TnXIVJ=1Z5b44x=p(hc<0R*b+O&D$f`n zF^lY}GEvuukQiyX%^PS)n8`uZ2-}0U*UuuzLz@oq4;m#lQdd8>n+{sTZBsM}nD4MA zc^vr^j_=61ww*bfyg9U21=JD;qNZ?4KpXQDfKA^MwV?Q^bm$av&3oN?D0sRPYG# zI7wv^p41aqc)_h>NZ!7K)>~A*Y^|;m(SnB*Fd|w~DGZhrW38}dsz3T~KSK}rP%SIw zrB20Ka;dZ=!f^tcTU<|)CQCmYYit{1(;-b!}&&SECt zb&kz`YkgkY5Y_bh$OOiWeIo|$RxqAAsbdQKcX8klfbe7u~qH7Be@zZbIp$% z;OA|nt0)3Djfv^x28$7k#eTlcIDaQ8H@TSIZX8sXool~h*g(A+>an;N5`ar^3UwyF`6*YgyMm+Z7Q~ssC9E#!lwCL6FX3A0@!MP;B)}*AadiLQ;Rc1l9 zfwhTVn>tX)^WM8qFco)&9Eff0GTt*Iq$_5UT1FiXtj@A~7jf%-W&-Xy08NW%l|wmjihwerp#9T6b=IN2nP zFdFyeuXPJVFYTn4)R=$ywLAP@6idD}AZg;PFB`4?8?ZCm*|Zm34``V_+Md^^`=FA5 zh@@#55Y;%>u~P-!J852gBWL`MIRdP{iCF^QkzLmOrg{kO+oIoUBFoYI^sCqis@UPD z<_jB|4A-xA6E_y(s7Z>O?anIjx@5Si7kdxKxuA1Vr*8X4H{>B_Kf($!&tt%bRU70S zGWP`-;YpU2bm5zA7@BiOMDmSCO^RA!>ePgzd;;(fsH=9Ax}Rw&ju4n)Wo@s@vR$>T z*M^vcS3A%v0by__0x6tj)Gmp2xgw6e{mD6tg?o(fWprPaKGJf$?^^BRNBZ0)v@?g$ z``f&mW*HWTn>pa3>ccTu(Sy!ejFWK%I{2F2ZwVaNj?XCg0*ZEmzJeV=q}v)NeDee$AcO4ewApgHszJ2817e@^hBD&(ZkdLqg|Seu*kUXr&j6_R8YYoc^~hG?K1xB;mxZ> z>g8`)(dPQGI4^~ua?UbcPtxMdECYm^7;0(xb8Dp`iSBwA19X3Nu3hBL=ro^fzj zlrSu7dAHFjn&{z&USh2M6Qnle!?PF_9nE<_Tmv>PNOw5G5=VYZ^3>el+K)AWFqF-zn>30^ z6kRo9$u2dL%+AbV2&-K62rL9kS{pe#y#BYA^_Ps zEf{bPhw*|&srx9cwHXPn*I>%H#C|_?=uGzl#mE%RzKD(EY#u<~w(gZVfLg`QqYIau zRrXE73@2__PIFxVyK^yJ@D8A`lii4$kRUiZlvJ`9LbN72~%jWooYO7cKoLhU$bKD??Q3H5tFdtUa@K6%T zBn0{hvPn&2b{&kT>SK=LS@=Koai~@(eP-^p$KEM`ZdY6nnF&`(VGt2F3@4e>%GA6Y zIho-=$L7cDqn-j#Gms0-Ra>g(Exk%PaS&Zy>o=0RG%?^kC|eUI$0HqcLBMA?>!gw>|#w_K_j{>CXWRqGc7Uk}`YBU!nWTGfOqvTUH-)FRw!GoyfBIMPSts`g{SzKFVvN7)Wj z<6gZLJ3qyjrSxEOPL&J1K?7M&qs*Q8bTmJ6 z#Ae3u0(ZA|^kAh}ZV%l$OROpKX?nnSLB6b&ijUZAcfg$p(Zj-XdmQGAW zE1?5KB`_4Z4C zF1{txg$*k|CF~0bAg}f1TUKq>z$D`~GrR|Mhe_3R-}LPm{0D$nOa37`pIzAO0v-G& zVubS(2CveGqiX@}{-;#h>qz4%x%?U~?f(tVq>CrajWBZ8z#r* zO4X`b#Qet((P!Ulb6ox{Mf#ubGq*m_fPMijU0Z+S&h|S^wgI8^>1q49H!}f7$h23X z*FoP=>%T~v+>01iH-5WW0sz;bZ;+nhqonF6!Y|b78Pm%{yHd2wau?*C-D!=FpLGQP zn!st^e-b3=U@8cR=atH^ikipS zU1j5$R+Gy?v$s|^EArNO?Fw?I;5NqR`lxj75@=Uj{U))0?g)$K?nh_~m)s#iIm?QB zc`J}yM$c)jmBY4s)ob}Q6D$f73LnTQoAEhLa`{8^G^&FnxlTU0YO^*ZOPm%>nJ{l_ z7IsuZxSm{*FZLE3sl5LyeR7R$>4j8HcvEZ-VpbC04B4;^QWb7~oYQp=ObV?V+c!!` zL#^%uOFM^KVQ6%DdW1y-YA<;HNo*wqLqhmX@@>DX#glTCRMtw$q$0yHIoX|{eCr=Z zd}oHk)Q{!mDHk#`H+wubGp$H|qsL4V95{B@p_thxdMP%>POl=G?SSmki#}_i1Ivt? zPD>fuP&cunlQSuNkIoCPz=Dz)j35TnOI@D+z~i3$@yE!f&TmVc&vUaEH8(MHFO#3d zx_QUEYE)VXhs0k*N?}a1Nns%OUbL?fDPF8BdO9GeFsR{6cIptr8!>SgDWuH>jsan< z=WE%*ehYeh$i+k?ZJ81-TQh9*nD$YRe+{U%5)wMLUT^25V%LU#Fs$S{*bw3k4r*-z z;Rd#BmqlO^cH!G5E_5A!FCx>~HSuDscS#Vh`QK4)p?HbpJP^KH;$$e5W?jGQcFr zdMoP&G_&LlqdsWv8z@uZTd4C+g6tT(e&-9>)Ly$B5S$B5WmeEf7YD@rp=izLmHG-&TH&sXGv!f)=A_PCiEo$S zBsj(MVsqrsYm)#xC?GMLz<-yAGc;pl8cva>*!Mc{4g4X)*r)JW=W13qhg-|H*?SZ; z)^-Sph9QKEFk>fPd2<)d&?$^t=zFz*Xwd4st(RM^ZwN@*ao)z1=U=uCI!~!JT3aL4 zzEiLYk$a=K7p?RPi4tj;wYU{hjf0GDL~qlVPycl9_MYv9)Z73^E00VJ2*djn4$S)^ zX;P7Q>wMU`5Z zpz4z^6a2d`=;Ij?3I4hG)u+XMOWkAnSW4wmppM@UX7+QG zJw`Z(s$<$|`MKoHv@MnjK{_k?e^A5JGuG8VO>%6X8M z<+9iU69+>&g-J^70sfloIIEkG$v{%!+fEE?F_=%fbKEP|33?=~fLNOdFL}SF@~F;@ zGB>B3Xp7owCV*nNPAv=2Noxx4zV2Z7_F2d_dI|7owQEM3XbrFJ+bvT~^3{XO->4)k zdh=>4-Dn0F*X(Wj_9WdIbH*2l$|E<87Wm{P2h>~8hCUBytx?XB@t)A+EF9wetWO?hp? zpqOwD@zKQn$h-?Jh|`ehsY&5@Lw48Y$?`V`5GgrV*)R%iYsX+zTW={O`$4$;*U1fl zMiIX59N1YRMEurpqA?m{x9i>g|RIRoydMfwE`1 z1^CAZ$LJMk>iP0w?1D%k_~{EsUypLyB!FW(b7TMrQVY(`wTW5jPmK+wEmo*Eear0S z_PVmR9M9nF_1ljj01$h_o?|j!CwbQ-@LwjhItX2)(~Yv<4yTS#Y{5eO+}h$*0x=0_ zKHbY#h7vcg9mSulMhZ$vg{s#PY@Fr@i4~EQ>f|5Or5jqjR$B7htl6zSqlKIqk^FLO z51Q5xhM5pG3cGF97x32h&xRF+e!l8<#)#HY6Z@}4C*@pUos*!%Hb#MaaiOJ752-c? zUrThAr=`lo!O686aff>9?R7OQ_Ec$+NyZ*GP`$|mtEYkK;PTBP3;v-Bd;Tt z>WT0=i47PbU9?^ao8oo%8ZP8uwawtoab=dypD?m^K-(ByuPG(34o)%tNtiosq|Y?Uk=57KYTu`4_~!SXv-POi>)U>3%h=HKMcO0Z~h?vx4IQf+Qud zJ#)uOUb6w zDW62}HB1#P70kedpCIU#W46jYiGW{5qS(f z#28X|g>LUNMz_}$`Hb+ThgsiEjf@!wf>OIHXyeewp;6Cq($)y7?GH)h>;1T3A?9>N zHUyA^vpyjJp4zct-qUKCBI~Lc>Oy8Ob zoz8eT-sC{W+lLwsZUnhd$8Dx~eh+$8Sk9MhGJE0&@yp#!PA^D`p4-IaO5&ZoJ129d zxZygy2hkyl1r2R=0+^QoY>{fv|vQb0xmWDoLSX9=C@j(5055cGP0j;l*yLc zp*3$SRz7mU9nqgKAWcvq$yYgd5yjQ+b@le({Os&E;DHI%)Qt(-eAd)4Odb8tjoO}Z ze6<0o{doknY@A*`?tY3#?s{c$f~Y;SVa{{ju4HxHi#QLH4ARgiVwjbMs&Jnr<-@*} zAP>Cu7^y<inu`%SMGhXL4TC8GbpS>u~2|X40OS6z3#+} zd9J&@EIclB9?UAx@;Eg%(zDRx+G)re#j6Db`M$D&{UK9E@}cW?~(-j2dWFVSCZ{zlT%(LOG+c1}9p?DLn^m5Y zNWOczHSi(1Qyth{2ABwdbw;0_Wb|*Z?fOQVBm$!k3~|58k7a^0Ku} zL3!~ZFqxd`g23iEmV{di=xwX_w^)FiuM07_uFER-Zq*(@$6ll!#A`c;+_hbiSb2n5 z-(c(yF=5XjOJ=I_qNcr;FDqC?66f|Zp2oyIL5sk(annZEUM-9 z_E#|Bp}ws&h|_S5^=<3g%u8G0RkrWG%Z)WD6Q-3G?{aG}Ymn!|v&2Wf1XzF;w zK2SGuxF<8sKh#lTBgn=qDnHGJWQ6dJmrS$`*k!vL&nHzER4OkPN>Zw{k@J1K>CdRR zW6jORp;N*hE0$SSSPCpa;IizjWe5I>L7lUyw2E)x_B$ z^tS3Eo0sO89RmKr4vV6VaG>w>EsaJOa=csXLf-M<=tT0{4K>w-rFt$pV>RMBVFHI* z8|t9=|ATWUX{JS3RL>ZY5tM(M{C4KTw2>UhN7Wrg^#SK7Io0Hm=p&#_KewI>P(cx8e`fy<#zp>PTv$T5hnTrJJU$XFERTRjU#NSE*hMRcmuuwF z2OT?IQgidN-Cuz?VPvFRDRhz-nKoL|eT&+kepC9y>UgS@QTOcEOB{<~wY)ZjH1jOn@VxU7(wIuDHsoG|gL|61!tJBYC+FvP9)-W8B~Fd=Jsta^ zb9E19E6xHgShlQ|)Kx4Zv| z0*>Lei`-*G2zZ?D>RnK_VJ;3w2PbyON=U4&8nZx1Tp_seYxYhH)y+hO_pjm&U(puQ zG;n+l8gehQ4X}{w3>*g9B|_#8L}+{u)W%3k4xQ9KIcX1-97tXF^^j{pc&~EZvB0ZW zqRdz7&$QglF!8q=hxxI0L(Xo+{g|Qap~!R;n~4tZG^xd=c63tNR{nLRg;KNT!hWY_ zynO<6ka99gG5?G0DX;UE=mPf24ogY?PJ}_y(9Zd#iLV&ug_tL>8ieVA_VMaKi1jW9lJ8wR)%8m!*+8aM8H zXBrL2S3d%(xIl5sU=ZT+s7F>s1syQ80`vZnD#Iaw?$9ymL0Hb6cQa`pTCgESI#k85 zF$lF{V(p2*+L&{#93w7wDxMt7aGrcNGX6wRIqN3i*q9jD6@#Wtg-4_GU{&!CG1$`+ zUq$NGp366~+$xfgVQgbW;8M-pyy5u}%Y~WxeL2yFbMyVWvV}kr5WHjCV3!N}h$U5F!tvjmv0Lu8`jl3t40`_Us9D~S$Vd-ZTCsNyL51*U% zpT7f|9$Ofm-dJ5*G_lB97H5jeveAi>mdo(Xr5{KPM;JR3rii8BA=$jzFIh# zzkWaxWuW^Ms3kK%NuI`78bhQvpaA-l9Y)CI`yzaHu#!eV)`6)LuloGW)ZX_<<%xnhz+5fczoF zZxBVJ>PS#-W4QN9j%FJ=DhC9B9HW(O%!d)q$KZKD?L|#HosIs%myQDrX5mKF-wP&1 z?COg>W?$X}5m@-qudbWTXX5~Je`Rgo)lzukLH0kQ!W)t29NNQ=<}{-hI;Wx} zsmW`_(G)_UV^~yIUl?OXcYt|22h@2fm96+H`vzQf&;IG7NWT97P+J@GH6uX82s0mx z!%N7LPHC|7W3LYWvDNVP1#4cbk^%ZC5k%u%+S*4Nk-tVFl`kl;fT&wk?P%V&1Ca|I z4g`BR;Lu$u-nSF$&{k0bN6BQS`oFj$q|Yk3-C>O&edH|zo;Mmj+}Hh<9G$Q1n&#fj zJO|?}TbCQY$%YLQk=t(1W^CL{SGyzIt@i8szbl}TJILO4!iqs1(sEB{gK~ozg)6;Z zahke#4sU;B{$K_BUlag4O{(qgdXRo{a6^wZH6+ZQE2amVmv(Ggmn&YP?+|dCO#VKw z>THm0gZ;tbg!v;yCG+DlH-??rwjWJzO^ruUycFv=dW}KEp`}9DiVF^CvmU@@WwUWwZcb=i7VZ5%Tio z4~=tz92p77suXy>b!Zm>ba^t4YF{tV0}j`)VKThdbSa?d8yKuf;li>g4^ zd)^tnP*oSSeQN{Ad*s~br>^$D`F~NFP5FN*|Gb22&VLh`(48j0O$%~DeB2;Dqq{0- zdh2&2@}nVS9$EVjaAD-{6JJdXSCA;Ng&V@KtqUyem&@!K#l$y!7@qJ1@y%*2P$QA9 z4@!xO84Vj;|4p;-TXxc1*Fk`kWBf@ps2G1!Gt3(VJAYCRi8yE`c@aH$+gVfZ^k(x7 zI;ImL>fPs&67|)@*^=6>`=S7m;IJRMfS zt==UO=B4ISv53{!*||;^0wyW0q4($8M@dTY&#o*fSr?4RYXa{rSua%_(zP^zw*Z9( zTJqqoId3TEaHYC$SVa^^qyE7yj4mW=vy<(Di}VqD8(YHhhiTG=jMAtqjMd4G#FXtw zbI|dn#Q`OdW4wpXbCs5adFUg-Pfakb2L#nX#NrMcvLqdo4^h_t0QHK_;~&Rtt7P zW|oRjkRBjIqAlg&%DWFYqo0#_Bzx|s4ld-zJhjxpPcqq%Tz3(8>2cqSl3&<5laM3* zW<||4v($^dZ>P-Q;Fwz<3d-AKP6bL&jBkz?Bq9RdTJC32@aqYw)@_F5qP9UYVEX%>YMyGaX-#ZV49q8}x>vTTjx z>VZDj32%R|d>FIPkT&<1Rcz)jtC*6u1^JhW?U)OP3~+MW9|EF)w~kX*;8NIgnCO~S z50ptBDKUn$D$gAaBHvA@Z|rEiVr(?Sw(V^XZH2sC(f;@m05wMU0*O$BX!us z^_$j%>Bemtm6oR%WPa$oDr&#?RED#FiJ$E<;YCGrE8BjZ+{+wnA66|b!K;Kp)Qfp8 zGGU!n)TuSAg1ZTw312zK&JAa~&n#~~t@zcClLcgl{R>z^*H05yg!prlKe{zt`U-+W zqXGt$vavRtxFE}a(c0c7$`}ae2G32rdcxe{ZPy>&?I#vly{o9Uvo;lO6c2B^|Fd7@ zi$uPvNC{r8v@)KpV@Az;7i=xx=`b8-3_E(Q90LRlm!M=}YV_TRWH?(lR(p7E<0uwQ zfJdAATw1lahKg_X@zALGz?Dz9^ z+T^{F`)gKH^gcry2#2zniM2oZ9yKg4wOQ09FzicBF5#czZXx&V(KoE?_x4X3h6n7G zt-rA&>d}>1dDGoLpTm1U*wegzK6Ul3Zr)67ciLUnLS=ODpB1~?;(=>*$=PE{M!LP3 zZp-&|#+4kwyYy$UE1Y?!Y%xt+Tv%@Moogm15>;RG!p(I?KVdVLVVgbQZr`2JSq*wo zIyQnz&eqk`U!EfC(ot?6>yBK$%e$Z@n8bz>BXw_M*Nh9fsa5uDxqzj$nLT$#pfp|* z%6`!|&LgFOnN98G{VOEEOimUxiUzkJU;pLTU zXCmTELt76Uo69zG5R$3TXmP&i(FRX^2Wls-)&Wy_OCM9#k1Q#q4qNr*Q@PDs-mE}pYcUs)K%`rX)GSyBS#nJb&9ad?;x{noB zo%5Na!BZ@zbQrI9ZmB93_{pB;u`It2&x=ydJ3a3zqp-MO z%TQk>*GjECW#e&+uDJqKjg9?}zf=bRBUH3HX{kpVAjA!mu>D?TwMV{%xEE3CnYp^b2Jx*rxWORdAWSEd5n_@aH4qLiPl z>C}qRPF7qmDHd)o|>bbgHtOVvFmoc3j=Msabs~`bP6#L1=z` zFYKFfCr>6M5&suZZwIVn!0Tt0>MT3fPyjFm=)8$TbdSA9q?r~G5{8Bgv%i?wbqS1E zb{?vffaAv7r>5?-2r@WhK(TBlzpVk`Fdyy23}a^>AGXC|kkq&+L(4SdRnQbtow|3$ zjFkFR-Hl!fBd7<LkADlU;lKDyrqKjdnzRJD40ptT814 z5#W4(+{dieH@w;`vX)(V`;d~_b({%@b0de_3U5Zwgdo0*g^bNzCVMi-YCziTnGMbYHS`HHuRrwO0=CNHHT&*0MuQ0<`C^0z- z_rL}{^|;7@5!$}|Db9YS^#d0~`zw&xamBG&Q%P4=Cd9OVOvLLSe((Mcx?Mq{ZHW_N zG(GxFxn&}~A)pWxzpz?gk%}o|S2on8SKnnHp7;Wjk{_5k)|4M~Cm?HHnh?=Z^unx3 zin?JU#{C!JS^Zba$fHLNPX9r8vR=3(#BkDGQ9sx5)Sump3~sWX zcgYBj^IN*4z9pGck7l9 zKz9(sgL$=%Y(_PaRLT=_OP1yFpBq!OtN-SV*Rn#&JPH&D`G=;Nv_lnA{{7G>u!|3Q zXoFo{mfQEa{dsFE-B_*+4sJD$Nz3ro3gZ{={?0MAM#g7A71<8*gOh^2i#uwL$5IhXb)5o|TBzv`xwlPNC+rM?F4+jE^!xa>K6l zw6C!6@VJusCz{^V0`#mq($%aX-df5xgcU`mgRakDc_HaIVX187Orn4d{Je%v7tJzy_f4C|H=7mCeU!?fo6>a*`9?iTk-HETjF&0E# zfRUVvNuD%}Qgov&hE<+^%(b;LdO>a3bm@=E^Xgf9Ton*CT(JgNM8hX0CVAH|-g+%I z9lxq;En?>k?~U_m+M#WQDKE%1?K)f&*7<`n!*~f*xn;O9ux+}<8LMoFG*abja{mhu z&;J_`ul^Y?`Uen~?o#~)IC$=yBp&{l)26NH53z{Wk6h$Aqq(Z8FvmKdKYvEV-x*H! ziX!rq+_u+toA9~#v^3c+Vuj22W=h0Z;TL|zn?Pwymaz>@9N9&W!d^9R*Y^8$hEqM} zB^#r5NbgzNMU%O)rJOgY%2ly)`KGw#wm33~s7vbJi5_g6Tsd|0mG{ZBhPt%Y!-jHRG(XGL-h%RFZ1RsHqN*ax}sT_F`fmXn7AYXie#BfY6t z+Lz*j?)p(W#tCCCCKv5z7YNInLQ47XlPhh4WFM&77#Hx(FkSgM%%_Y&pp%V^v@ejJ zm;cE|4=g)0%~eG$exJR|paX7vU+5;+jjbQNI)1f}>t+@m7$3?)^*NZY*1E%RI|l-C zt-|JLI;2?e(W(2<1_MNj6f38#QlaZ6&KgD$l=8*qzu8TQD?KC5NSUK_(>(!%L^XAD zu4nqoi+=7Cwd=~*8EBOCHTUe;ywD&`%X{9viA0{~TC$n`zc=s)e+#|+B}?xA;3FRE zKtlk3>4C8iOFmsI?*GBd{D?ee6VdTmCxejV!Cem;oBQ1(|A<{}kI>0AI&3ty!lMVf zE!A{lPlLdq#(&O>mtUsqU5!E_IPz(c{z46e4q6>g|n=W8EA5Nf+O_ zVVxRZ5u0Tp*^9b5<;Xz2X777wqN2OWbwN{8^gUYOi03afIVKCzvtK^o&vD*$zO6X^ zp=tLIiBZ21c5+o>Dkw*A@G@6%BtCy}?{m2Ocq|Lce{Bq%OI%RwTs>$|&qdw9tKZcC zOez?EM7Cw`SeLXvy&}psc0@=ocsVld>HNdWvuSFb4UBX8!oipan16R1|94M{lX`{_ zj}bm79+5Dr)AuprZUv3)grcwLRAN}b)`+m~8{j(|Y(Vi$93ZWwYYqeNH#CI4T3bYm zrS34B%*}}3?cZvZ8OPQ3cw#=KlQU*-IGH37(5k+j{HHo^C*!C-FVgd&8ZWYTv9|Ku zzZ7If9(nyzCuROBGXO~Ohs?jgJ7htUHb%82Ot^Gh<^3O4EmcTO+7#ZQ29}2nH7gAJ**DfNczAvJhk{y&BSb_Ad@8RjCVAuHA^L zmOdqP5!ipnQz~aZx_TEH|G&4#dmqp44u5g%KWA4JyB_i)W6cTE?D!|Z{Lhc2r~&hQ z4PYe`1||NCiTNB-9d*)kx*>`P;nYuFN;faB%z4k#EvSEbEu6j!Htz1)j<4VKeWiY_ zI1U|pF;uSRtur&W%x!Lh*_B!`&Q(WH$o;AZYb6eAR~=K&CBM1v+xtAH-if`!5$*OL4e$ddxLx0eqf6vYCvn$?aJ%zpYMpWYo5w!`g@p9h1c` zdme6^F2Kf}-V6eakXTeJXB=U9B#lx)dD zcjf0E{}tA#L7p-GG5O)jo4LxEY^aOih%y02>EMW$Z$KSxU*AGaC1V+Dk&ONRBcf}I zR3v|^38{XlYvt1}bQ1ZHC@ZD&wjnnD3^cD_6d^xi$V@Kj(NN^B0EZ}Ww63Za5Xdq| zHb?QC{4^@WzZaBwGJE(FqvFlX?8IEb22*v(6OaUk5>9V{#>gYhol16cVzg(iR8e0l zgKLIDy=@tkcLmH$(TF0=wSwVD)*i}>zkZJ5E_`VDyf2h@cSQ`j;3*3-yoBgWO`A<~ zWM{qAHzeXrBdC>J5MMufsbvQZG`-RVOOs6RJ&zd-mAiunv()#eqP)G2jDbbx=^qgC z72by-CJC>JKk)E~;=qcGuqNEotqND2*ru%Lu&_t1Nt%Cft1WMND7#| zD1#m)dW^cRSRE=o>P~8?$?y=*v^>8>$~l>?6L+4?Y@zQ@|M$1gT-+K>*1lFf zEWYu-pN2gjoA#mupIHk2r)jV67141C5g*ID+*4_w!|9rK6I^V}%Y-XDly&_l10^s3 z7JJB5`m{0ZiG_@(eYbsGnAJ9nYjBBp(is$egs1aJRt-EJytM9W%w~TxBZ``ke7!Qh z_cGTv_bPP$g$;64p5AeCzHqwy{C?uTTrfvce)3tGKz7J!^g9f22H0p8=Fhsm;b7S< zDM=WZ2$A1%_Ej8dcf|bS>?B2dn^z4YOj9I7gbwXV%u8BP0e`L1aEQ%B{bptKpd983 z`abq{_zlg{Aeq+nudFAomJU-JhGxIUq+TXkj;*{s$N7A1mkD|Mz;+{0o*C3vlTf`U zp>81LlEgiLeLGrqHdS(ji&Q;SmWFRaDYR|LkTUE z^(2a??J3gy;aci4es=AEvBTReb>a?h(1j=574?Bt^=Rn7N{bt%l&u_6`ut5Rs}x4c zPk2G?);`w& z*$hj|Y<*ejAr()#MYvk!@nBtdqOSi1t!A1+r@ib(c8Ln?tB3_M&v_tPQPXXN3xDja z_V0^d;IPf(rY_lIqvf9qg6>1nT=8_FiyGm9u^_yZ?Xx?Yihw7^bso>c)<=EGurXR- zkWJD2j=aUakM`bPTWjB$9e-VL$mtoRs>Hl9>d?wAKWIpOMZS8n^FFqIK)+RfsU&=Z zDOQ}U8UxO*3TQ>RXc(%*Du&GHs;(LjQDWG5Ww{rQ0^B%1wtqBA^={09a>Fc8sAr_q zt(=E>`IWUL9>{WRDEEq%a*sc*^*5eh3t0ocCNK!Nx8dO^gJ)>~7MT+m_`g4f)h9#t zTr~9QXi3TI|EJ9VbaZ4FJ0QqB=@ANBj zn6;@<;`Eyx5#Xn2v?^4@o7+Dv)w_0w|icdt)9L zjt&bpEhT2C@6zkRyV3`lW-(fB7a)bk0imS2%fx>b}vy)JBQchObpDw-& zd)G&Z^Bz8w%xWq{X!ja-`uypw+t)IW1n-}CpRK->#Y89sSgnNC1Oz{0si@U0&{_dEZ4A$MzLFJDn z2FV6^O6O(?@lFFIZaeYlVl#AvK;p?4^5TW1!cI#!a&lUv zdZ0sKt1400Y>cvIJ+<&=f@v4vZbsXTT{$ zy9x07+r>HGnnR;svmnXV534UU5JY&wv5>DNjq`# zrUh=tZRm}o)x`Nac41wa?ypHO#RU!oK3ou)F!|#pF;$Ar23_6{xqrq z=r$_MyxNh?t%QQ$IK6=qMn=UW&OPO>C5O90&QHDnv7EUS1E z@1@J-!z$|n2#s1!Q>izh6ti5B3A0w3mdN67LSQ6rSDZbu>I&$zBZ>3feB(eoC$9b` zeBM*b@Az!gswgGJIi4i;#w5P6pTYGd4~uW{AIXPo>XDqUlO0X+k{Q-k&G!rmi1(no zEsD_jnP($F(>yLbseI5^s4Xd1FW2yEvk;oIcx`X$G$JYnL1Gp-k>A9nPJc1_E;EWj z27xzI)pApq;-+uXP{%3a;*kGgF+Z@X>Z$%F&yg&hSRE2Q;!nZdwrz9=6O>*CSoQgy zYZR+=*%jj6GThsl7v#$09C2k8pU8n@&R~}^L8xdf;;^HWyDdGnipetD=BS_RY#kPR zo4adYC3OCZSRVE?W6mIY*4Iz<^po7fAJllRx_o7MK-jIgFj)a7{b^os{d|VrO@f^- z+-oJPVkfU!N-m=;YfPENPiQ^#6JlHA`3?ZShz53O+mEz7tSt{ocklkzP|RgN0sy@b zCD0noj!AAxzPM14o;+E(*kcpv`J~Rf?71T0qKQ3T0SxNLI$dA7X4EW5zxMAFu=O9_ z>2*pT4=7;0oI?Mf)B5pm>!w{JfFPyg(EQGSMmbRY2PFa?i+d`dN9X!v++xH0MBV$_ zY>a%Kb~?tCy%YU=bx+B=O9MySZt73zsISi}C4;r(q^M&$L0|42u!m-$ky;b(4j3~}=&w-}aThyKs=p%r zpxv~_0N=ER5kji>W9WTUQ&GhAYkT#Lcl+$$+=;sm4Pdq~pbD7>J^_Io%7P)opXF_W zIP@kKlZIwZfl$cU>&G6xn+MP1c-q#%tLrQ8uM) zuSLa$Hlb_Fb7!d^2v@aF+3zArgKXVh6#~3{UcHB`Bo~x+YSjT=V zdo4mQ76rLF+6*l2O^~;PvS$S2I zyukPM`o&Wb;!8F=T$=hX5h2sg=1K2%jv)ubFlfO=lN|i15bxQj;W`=6Ih=TBoynwU zDz!k@3K@B{(ZChE)fyrRA%?-(+%>BLUb`-Ru`StZQu#(}EHg+d^^&@jP6cjP4}w58 zFmYO@d`S-sS@C=QkosvY`Qb1Rg^_WKm6Jqi+V3Z$o0S})hwbpzWl$>(vHg?C-JSU`jeBp{-3hRkzIjD|K7LP_ds<6&|*M0 zxIVGr)U$OMpk)k=8E>(hsvmUHJHM`U~ummF-#w>1tF<)u`P#N0;)I)HV@J*gAR#*L3R8DqBx?4${iP00w|*uNl_&3 zfWJrf-W#Cr;k`@ubu(Ms=nQg}hevY_M1g1(lTtmfCfr4r8r-%q3)8HoZ*^KZ!hIWo zCeA8Ogb3V*b=9i{EuYTrcMB%mLpfAs3{(a#9a}x{5IH(<+{R*n5;Yv?mzfRD zdhX1^6Sk=51|ouA28sBk5?T~oKwgWoSUD+wl+?8#|K6kQC0z8IBROG&RcPK5^9{13 z7-yn#q-N%@w!*g3n=(sjH)&0S&R|g2L*vJ#9u6^bW6pz$l)_3lO)W{*fqRV81jK$5#v#8cWeqdIh&7!Pw{6reNZv6FgBIc-i$fjYZjXxrN zpzU3;PSkTeH>jclOms(r!qO6YveMA;-X4^p)1>Q$;Drx(M_cFiSn=-ghwNc^TSj# zm>ME^K|h^cvq9h^EX>*G0;ZDnE6DHa??*Wj+eSp|A8z^{op2HzCa8&|-f43w$;s)x zcg$BcNPbgLXgMw#DERD!+_Lhh^W;hwi+3uKCT5Q)ZuxaKhP!G?^zjN$ho?mPF3-f- z_km8cCqrj^TjJ2dUqD;plcKy6rXFQ+kza+lL__Y{Yo-s&c9lY!hDRthwl>R01 zA%o0-A3GhuosMg<-k7xE({lrM(9u9=DJtSTw0H$1TMj$i27nv&8nMq)`}H4|zD~yq zgZW>LzPXA~i8~m*;uS|@pso4^l`=&PgoZe9Y=+M@RP7_KP~Xj(*^@Nl<*-mTQ249b z9_6z30=C6;0bD}kY9H&t|FOAreh;3x_%qB7ok!Ko&`;@C@@zfZ+oa-JcHR_ zi1Ns76m*5a73fI3*AQcd;gKlGXx?7C8x(Te(a!^i93$k+`G{uQuQgsd$z z16tNX{X-7WGltMj47ck(YD(nE3x-*^e%8HJ*@(s~jTg#q)sf1E>y9sz4=dx_EXLXE z)~F*9E&q(-k0W`h|L9AT1vvNaT*^OJL%r(nBZ^bC zn80<*0d#lgUjdkK6U8b%Fz#FAIy({(R|9W5_5#mETuLoUll*dR?8o02Q`b%|E;o)C z2Q3gQN4K@)luF*tWbSQ$=4%s~Jo+@oab@I>m=~O!87JEBDK7+ITTVga)|7c#oqC(n zy_KyD2FY$aO(6docK!^7K@V)mN)Au_%%ml})L4O+j9SOe{$WJ5qc4Nwa;G2KN-gwC zRdm2AQXOu;uq!JCw8t%C?hpM>@V~a9Zgtui!qJ;5&A9E?A9Wp<6Hs+tO|%tz&cf^x z%_&U4-5^chSHna16BCofkIXEulwY>%+-D_qI*atf)8}M9Xgep1@ZVOt5UkgV##P4rVq=+$8dJI{0f3LF1fUN4zJ6Yu9QbFy|J8ZUfctd}59hLbiOgE+Jl!4%y=9>y~FU{OXw zU3m^d<1Q`OpIW}=V_C6R4xB5~uHAP}xbp{N+;0$4ILA`}m8@EPVXLVg?egP>E{4sv zjpz;8lI%+D)DtFDy1E16TVku)3INdi0x^g_7~sr zvOuggTZ=u!py-IOWouA8DKxN1TSI2;^2*;c+IqF(`DFwvz;|`|W~qM2pJwAr>z=Ji zU4GBPZjX2@lZ1aBmpQa%(kEN_i0?$32RQ`A7maIg53ENev4IMAE5n5)4&|xQs3_|l zuob?5&ie=HUklH-7fmb@3`x>>!O!%ITCsPK9#}0_aa5Pej~uK+3c zMh=Y3R4nj1&{WPRi|+pdl*2e32ZwQM1zM>9%^g406RZDt#>w}98T~OzO}^Nmf4HUw zpan^W3B<+lFg^teES{oNX-x%HI(R}GTzWp4icw|4(95ddx@P~NCoa%!ZRtSw4P3{E zW8)aZyaG(sA0w{sc-8+|pZ}iOKRbS$*^;+&jsMJSNZR^I4M6Awa!*}7`Ha`N*muXO z+{HO{*azVM)@nOchjO5=6Odca!Tc+{7DL#Kupjw9R^J-3$D2eCPtKb+6kS>O-db1- znCob@c9o7l#FGx>4$ux%Bv19RdJ`wbzM&SjCCq@hvCSFrrWI;Y3+p&BCjQCDxRv?} zQg|U`9GPXarDbI5Ez646rHO&24vJrO@1e3;r7mUi?B{9j{8#H(Cd+Mqs>^jSE~jlN z!b?BrRQb~757q0Z;7rd6_pZ+dn78N<#meQYbHDF>$^#jFc6~6h6PiDFS0LcWrxbTQBDBKjh;ZM-IsS2q%kPYZ zIQT+;Wwb?7cVi5h>)xki+0B;rs@?B8)XfbCD&SY`QpGcA`7-sjke|El+btmhoyMbY z{i-TuK+Po%DM+h;TGC$gAH81i83}xrn%AQxTfHiZcfEcrn%WlVAK7EKFWyS?0fvi5 zatqxSR;+RJD{VGn4s1D(b=TGev(vsP5%V}u-ZCuqFk6$ri4d9?Q7+$7y^%d0isKa< z(=q`XJSNGLCgcuMo+8K)w`)DRnM;e98*XLqx{_TRX*+}BBvZ^Dpz^A6E>=eMV6K$A zrl?3GJB^bNOj&r@Y8jO}V+!r$1($@lhm!(vudPDU7M=J+X?|bt&=Z4IL;*~3q`M$x z?cl@ycEjD3-cs4YILIM_@X^GKqY(^q9>XaCS?4uqT1y6$JZc!w!F07UA=V%UyjzEL zeYybJa=zR_VPu>Po7aA)E zMGI?GBc+lKz92^{jy3S~A{5(Gscg6eKk#8n9{?0y(4?V!=Y{_@&s*PooaSathu!}A zU(@{1IusC2Wwhea{1Q0dXbt8R;SJO|lu?`%&Ddwk(TrQvW}b(qh4nMub=Fk1dRr2I z)BMGF?!6!aKGhTB-);-g3C|XfYbuPc){XwfUR7kThGV_Yj>n%Y0~dN)M0GbpjwZ^_ zX`Oi3WaM3pYI?TfA+moqDyCK3(GpH8`37@feOh=H^=qTpSvGbV0ka`q4Z!45a-<~WGP-#gbuHQcugmHP%@eRZ>2)^ch#sDB%v2C`e>JloOAYVJ-EVzvZM zLKy#$9o}G7u(Nsd0>@!;bMjvv%u<8H1Nuzwgrcp(s?y0F(q?xqR<&(oaW^972oS&c zB#8ryu3zcUd}aOyF@Nquqf?IjMnNTGlr$2&X2@T=59#9|D^tO8McS2txjI+eka3Z;OkiI13tfPCzisp8y3S%)}{tG3@ptY$6*UP+vdnws9c|P1sEc5#}I73dd5az)ifqo5uXVxM{yVgQ@`L$>p|Re(C#7f z_g+7GA6GR{Oj5<({p2#x*W|mj>?pD}0ivc_7Ho|d02B{6la;hIQE_q%M|qkCj{)+k z>c|gQ^=pfi5wn+TK|r-qDn|#nB=uLK-vkRJ@^_PA9>FFHQ9%PoCgnBKG$8Snn|>2| znD)&-l*-3n_QyYxjL#~1bEE!qL7aMmm@0<=h3X|O(w2>Xx*a<-vEluCc9Zxza`)KO zdB3C1=obOPl8dXBN2Ekzl9TS@xYL^TZj-E*BbvpRu;%&@%T! z0|5%;!>w4-8Jg8*Cx$Pi^K}xV`daSsUH_8>z^Jj> zT0*=jwzf4OVW39X6KPglU_({DGY=wjwk56>6TmZ*tmbGI6{#1=^Woz6)3ZC5A8)QpQAvAIv7?Pa5)|?I5yBc)UfQXg4Clp zf@YjD;X5h2yX{C-S@$a&FIzg>xof6ZiVf%JiVHmDu&eGoA&M)1Zt}>haXHI28}|)= z6SdPLb&=LHrqjI@-p58Lm?1^+j@FY4+@vduQ?!gUVCjtmC>1m2$NQq_6t3fAhX>S) zp2(ZV;Cd2c7aJBlzW+uy+`$bbC>~wI07+A=W0UQezj$dEY_OX2>XRD2IBVK+T=~7s zSl;lzp=SVm9{hXPZa(T(@y~Q7kZ&|-rY0v=t>7cK&kzqP#%6+?6;{s}>o=R5_c_H# z8sZ9c<6pgitY!Pu#-#*Wy(q|e<%yl9)!^q9>R`dK9sCUe?TXIM^)TtPR!|PZWlH& zzE0M@LTBMwoeXN3JHr|%@_hk)6ri)^WIva=kbAFMj60KQXm5~&FznVMnlYJ;R@6y) zPH4k_6+0CqynvlXTn~U>QVhA^OiSgDbJw=qHDT@&DX7LTvhpXt8Fn6zh9(ZNJdsw9 z-9;yCh|c*!nMT#6Db#~;@sw1-nuVJoWJ-3ofKc>IeubvLAM27T!QbbR`$}*dOL_|> z1?KTGa=m_;62i$CB=2CHk@M-h z#>JYXM`H1-`N=$t68#G{c`~^imFlr>wqc#dc4m1gBNXT#GC-{gOT!2=l#UB0S+-SHZX-m}`M)nL}+FL-`o)sPA8nVz_sf>y89eqK447qQN%w9OZ%Rc@~&ko@p zyLrZk@{ygGLf^PI5rHwY&P1oa4;|Y517v#ql!iYwDGZu$^lu)hcRh<&$Srr6KrF)I zAAJw9)Nba?bfjzChnr8<4`GMeo!MIQ2MY&|wQP&-C+G~3HAsvaQIXPD<1K}|84e1n ziDFLu1;^sJ{#5S4?x8&WlN(h1UQ^N1AWO8(;U??g`+$kyi`p+H=1P1Lmm?v2t?E~* zo1{sskRO(oKT)UrUYcTU7%bMH2Xf4DE?p$lNN|P2q^6>&2$DT*jM?#5mi@%OHHG72 zY+Bmw}E0idKD(eWbz>&S{ae)gkk0c**sk0%Y7TmHSM^ zy{f?h4-6p%)WyPs*OYBexhaR_Q;>>8WBvw;t#+Ex&O|a#pe!kA)PC7fg~I1pD2OI; z^p8%B%!BS9I|vY)<9=|EUYuw0BYqPpzJjd!ld!Y@857$20qW5RH3TiFww{CDe`T0S z`Gv_jKK1A?^1?RojqoqkXP|D_Sh_gt`~V~IjV};d)_nz}w1WR3rA@P z1veV>fK`UP@T-ag*GU0ufwZ!3(?h4t(e42So!Kt z)m!=aua1k|duWZ~%f!KgrvoM9hc&QUg4wfWb0T0P`J_)Taik9+(luw2^IZ^jgmPgJ znY!=|?TH**{2YX;=9`jFGD#n%3*$-!UJbOwikf0ydA0EX`nEA7WLINbZj0Nq^tvhR^?(4fgifm$J|wGo5lwPI z>hJ3!Y%gTQ4lin9mGU`(ebVAASE8^{@r!N|5;`}GI{lD6R6%>2lkWb)y?Dr^rTZ}% zj`i=&C4+rPseHkfzLd)z6WtBD+sB@$Mv9=6a8?PBkj1Zv`p$Vpe|z+NN9@DKJE~rD zei4vZ)z~HAeW~9~FyqYJGna2=#urW=*1|BPSdE{vHG%edV9VF!6=J%P*H8^{`2b;M zcw;?@lZIQ}7m2G?#cnt~ROq919F?{o0JB-Vo zHpX@*@f%N-b&=ChcP-9tSX>a&C}9Vx1yP#&SsL;k;g-qT0&^E|96%QNIy4ARrwwav z14=QsMu7XD@uQF`Zf(S=w`se~0K7^r+PJ(yit`-~?A&IpooV=PWIKS(QjC-yUmE~} z)$)1Qudsd=DF*v+4vg@4aY|1FB3@HPn0aF+kZQ?nWB0F=XGPJ*50!^-?(_ecyl~$B z12=-uqFCUOXf8il=Ou7$>i zc0V}L)k!&=P-c#B5?I%tebTF!I3@AVF~MUJze-n#!!X1-vx1I$G%@Z%8Xp~dT3vN) zi!w*ve&Uox6jHH&?ko5zY>l;c)eS>&<+Q!ug)>Lgne+tE4U20xepTc1X9mrQsDS{7 zsx6f9NJNG)`6j1;-}{4uec^8S^b?m4!3QbG-ET7*-`+YoD$a;@!F+J0aM`2pLzvWW zinp_5_ZJfcBrrc?V(_u~Au+3N%F_b5{Qg4q01WlL9uPE;vGYgzG7*CIo|y}RqWP8H zoJ})$tUTy@J95oqUdmC0ATj!RkWG>w#Uxl9>1mZ?zLAx&>1j>9?6_U-_O5U%zDZl9 z4N4PtfUEw)?2yd6$aUa{vZW>$8%}&84f+M6U35xMC8+xM_|a+L5+A&eg(Jt2akayM zX~h|lt!Px3{hVWcM(&wtTG=J(^D^nzeRJC=quj?}e!@jZlLdL09nu;PaowD3uvUPJ z$3?iNlI0c#*~+((k?S@whZuK}=l8n%Q|iUX=t6Tq`S*N=viOsG-d+$vczmtI7qXie zCm}-ANt5Nl}y?LwYP~2|vgkLzxlhhl(xvTH_SeM$O(?)6STyr|@4q?i+FcW+Fwhd+tM%jHvgM~b?)^rNB_A%3rx z#eCc}R39@#a@VZ^Vx*50cfiNUZMJ=+GC71mUF-vFx@*WH>DDL5i>3YCMqmn8R5tm0 z>>io_0z%eK=>JPtT2Occ6KmKSaEV#_AM|dCd1rztmR0ve7gF^a(h*iTq-xd<8%Spd^3|(SQq2?u4He*w-+ry>FA}i^s1LzJ<;k{ z<`v^kM@QSy`-GjwzA+e6nRj+&(((c8RqAWmYyTi^T}~$5=cxIgIfAXC-i}%`7-nBk zREJGl6PQVR%Zf!`wL>T|C+e1Amsy+Y&<45~+_=d5mUE$XC7s}wP>xl` zfrF!fGGVu)KrSmMT(2@Ye=fv znH*9WBD>(I??qkj^h@9Fo`N_maiqlk(z)wU-k6InGiN`4mb$ZK>Xx>Di(_!=2YhK{ z2QI=fR5nCtvG}C~unBSRBwyc=A$2xytsF~cO+eS}cCP%%!f^+d+<|8QY@rOikmWTw z`>E2E!;qzbib_*&3U^qGgI`*V%YWU-tc~b_6r;(Dcxig76;P%$K*1_**#oY%#>IuT zm3sHSS12G2O1{{HQ{izgi_J>YD*%%B?PMdnGqz&m4^h`PO$SqqC2PI&?|^HeprQ@= zIY@Un2!~qjTEaeT#En`GQ`AUf|^`^nOo6yb+ZAl6muR}Z+|2_F;Q zckP63u{oyf#w>$=kh$~Ap$_mnjwB0auSqq>`MWrL^lzi@2BGR@hX|G-ULMJ`Zg~#E znWN(6-`K^;2OhmZpn^j?EhMIE;-zaHI~XU2o1NfX;co15)WkQQjjQr5?4MP!*WaAb`N7LHBkx3p zP66xPC&wmYzX+)x2*8%OQ(J^*(8yV$?v(5mW2>u+|5G?U?Z6I9o~H#ipfTw+!l~i9 z#a3nDtST5qT|NgTn)BM@u?rRv7+-5=vaM*&&twC{C1TLbI+pta_WQc3H#r&0iN*Zl zXX$_yPo*C!M z1ikx0Inv%+F6-yNQRZYqeK|gb-g?hf{+)f0*7|UzDDj#Wyi zP+fOvC1yUVlBQQwf)o@ofLZ_1N>{ixDpR?lp5OwB--V8*`e7=2?7YRKbBwM7nRjFX ztqjzjf$#fpU$2`#kNp3;WUm5g42@3lSXBpzOmqWqMW5oPv(A3udrN3ek;u<4J360G zj9FX&UmF`g@0_!8vc55vz0<}s326g)A@~w7R^_+EwK~<+%J_wWm>tcmtE-%t-V%h1 zbH{F?CdzmORz{9QbU2mysA^NM$>%MggF?%;VU-eOWptjCF}z|8Xcv2L*}s7ff=sS@ zpXdD6H%LhomW3e{<7c*OLJo_haA;%@=O>*>6wbkfLAi|kwkr$Qo8BQbA{zzw^p%je1+hqBh z_Hjl!Wxp)T9Prei5yXei+FMmkq5VQdpuf|7g!CN@m6G+1Q33KIkDOm zVj&i6$_ja2eCHq;IWi2rg(}p&We4cGT~Rb^ltMG>V}UdmQKi3{=*?lVCs+4u3AiKI zzHu!%Ls>YbnVv!T;eM+b>AZ$q?mA%&SGXWf+Z*2sc~ft{H9>@lPKy;vpR>N_S;Sst z?;KQ<$0vyz{xm)$DhoGzF}VgT>}NxP>R8u3EwNufD`qQ1XYlQo<9H7%IxtC_4dWsR zZUraFMlH{2_OA

SEA@w~Ih912-zbVqBT}VQF%0YoB|)Q~CZ{CmnIt(K&dr5%oDX-v@eAx$Y@plG?k{Q zQ}6EcX;J-%-Y^IiKq7Xh_7c9fTIEyRCAQT?x>8I8x)6kM;J!NM=@fn#+GaM>99OTE zwL5w5hRc(8HML&GJD0KSJ1wmT8tOJ7=#9Op%P*)M*m6#Z^VtxK>kPxLDcJ+75QmqU zK}AVIFP!8~o_^*s74~Jq9@I}PWvcQG%R#TR~?#+}Zl#%TeB{QK&TD(=flKnTj9PCedB zPEcKTOdOEv#K7E^Zq|IMK47FAJ~4O1>U+vam-!C-)&j7%W&E!~v*j(5!+Omws6x;I zpbr-nj$rMYQzgaau5&iC9h01=SIRCqKsx3uE%Lo0y4twRbBFg$fNkW1gpH5z;M?7A zGkJwFb;1|e5Tm+*tbuW2gZnVtBAmE7)b*wzFzyh7+_rs|hs_zm>rZtrw^B>GJ=7ecA8wqnD zcV*q{fsyQtO|&C@U=G@PAZfPo%6R-O0t@}Ck%>a?uiYd*@%MLt_N)H~@ zlmU_QGASxVC~8Ry##qg?xGkn5aYo8~+AmA(Mj&@`@503YYb{a1djSB@0Qc4>wf(b) z8xH&}5%H*a*|LYbay6b=Qkqj-WJ`2&N=JU)=ObkNjvQ+QhnoCCckItFo9IbVXsGW> zVa2{K&Y6lDLM3Y-G0XGRtwe!Cfp7xtPfLlZHwr-KYhtRbrd>DpV84m$g~)~pStjOi z?&$sjn*GKl8?tBB4Bmcqr3)H=(x$f}<5T>GijC+|#2908x8p*}CUEWL|%;pghtKU115nmQDZ3!gjevh+;VD zdUqmd z!x^2&DrZ*^NJ%)UUScZFw58qb%dVlF>nsFPMtUyK2Bv=SErax|*w&jTgA%e-O zCz`~sKQkU{Jm^U;>^V=_1MJqFwOj^jGS8DI!OeC=Rfwr4$)(Pa_~5eb6wHw6s<2J( z_CDn^GXTj`a0-l#4Ib0H;+Ju96KI_F2Q3wnh)ama?3-|@mcIHcZG3|jR{l+WcV*uX zXwy=ggpNjkhd!GbH}Y^uksQ#7!JW1@Wd&JGKiTT3n=Y%#f@eD>2{iphv@SUAHC{zz zuM`=F=)cnkbbUw zp^S#qWuHWEhLPfPhu7Hy1keNO!etu+PFExE}l z2EYPC0w5J@AfrsVIL10p<4% z3yFcys;X2U71E@JRlw$x7ltQRJ?!XAwes0-|4lc3^EcgC{w5dk58X&$zY4;{@`_EO z7gmTFmfQgDU=gt*x^Z8$uv74QJ~B@YyPb%>`!UW_()CIF=lBcO{BVJUvke9 zL%iu^-V*Vb&-?E8?!AcFNAWMkffS8c^y7fTnwR24pK2?p_o-W;Z1mHO+vP{>gEa_1 zom*@_KUcB|x~KR^%QF98Pql-1dknGiv6gSjn?d)Xbm--F_?>m4yOv)=?>`$ISt(~( zQ?%!7MvqaPzK*`=#E$$wbbV)3Q)$2NI2OiHVMbJtmQh4R)QCvviOMJtc4u!<1?WMcSWK!dOT{Wp>9OrNOOj*SAX)D2r4CC}VICv51bON^d zRZT4;O4tPH*kc6;bqMC@;5;gzq$k+TbabkCHMjnmKG1kO9WpT~1x;;e8c-6EGTBr- zPKDQW;$=vYk}fn4+F_n0g=LtdAj@5r67<~l$9fri0&1aR94E`6$+qd6evm2d;4xXI zd8PwqJF>HOX$*E0;I`-;{pl{4*<;xufbBN)tD#!J6{m$biKI>T*BC`xxvcI$Io_6> zf8fOEW2$85#M#7$liJe(n7M%MTh+Z08>g+{kL>zxz@Rz~P&kFgH?Qe0+&aF#{P*)6 z!LSl8CdKEQ|6r7pBj2X5sZo8yb$h(fW2LR4zi21=L>)=ho0YyHX&k(KWpkV**YM{# z7d9@iUTQowWc>G4o{!yL!`D(SaV|xK+sI3sJr3;gGsl#atyk}4{xWjZG8NOC5E!#8 z4>5GTox$>L`q^tz+4dD!pYedPtHx81$cUooN`?A+Rb^gVoE2aA!T0dxhg4%$efCxU zVAd($DLcYN09u3zzT*IV`$vWKv`6#$n%W>neV zemqr?71w&h8Pglr9D#nnJ=z-!s*L#@p-K$&EPX+3u*svi$vUY|hgE`)glueW2@<6! zUO3g76b2_Q4&>DXQ7B$bugZ7VADbv3-%4+8r+wbPnlN7VDJmz8IHel5!muJ}# zKiFKBPzqG%cA9~(blm2WA0o;S`Zgcm9$o6?(~^jL{Y@hC^+WZj&}BQvTDc*BwiJZM z5)7Z{o@o(j@5D4M|H74|AEK3GW$clUc?mIrulV?2}j+jDzVjhT59S(p}4U7j~fL3foo(DNTBw_``j$)nRkcgUo``ya3%a`WcYP5Llr{tq+UVR-B_G?)N zXuH|FpS`s9aPe;sU0CxOO21Yc!%n&9Hf|X{kZ#xN5egq6l_^`nTdMA5?TEWZV+8G( zld*x3PmX#~E%i-isQL$lM@x;sI|+RkSqTEk?e?tnY2z`lzF?bE5aY7~F;iHUPJ1N_ zfuIVAO7@rL`*boQyqeVz?78;Yzb5BJP3NmsBUL(71lI1t*~kW&4UftXCK?!R5Bp_P zWSpu!7xdYg24r2Wjd8%S&5W&qF~FeGQI>2n;GP^|f7uX^?uV^n`SW`&Y0op{C zdVll-uP%`dy8{S7pw2?=`erxU4^dfCaidEh0LFKwOn!KuTG>kne|yO$tJwp4D$@p+WdRK=W(=Xt%#zo4fcQpt;!poz*w-JDbh&>kvOTh05=aiWf}EQ2X)>cE0a> z9itOKf+cyRU5_b%lQ~jVtlU$HpS;ox)E7vN4_5Qrb0Il5*QV4;s-<-r{Yfvu;@g5p zx}rh#j^nBef|J^OY-+K+3zI_`KPx z>=La>eO(bh;`k%=y#(pgExF_;QY=YiC!kMvJ%d&=vn?6#1f_U&2D3Yxk`R~p1=E(S zM&DHxqH3hr_~G@Is8*TMuvsD_T)KO<`gNt_7!JREHYP%|W-dXiG)s0x9rY1e+%$(r zU_)NIv0XZ?le?tU(|nc!tNQst-eV6KT4~Mo;wuDwwJjT&0%7`SDv2Xn_xf!_^6+Wm z#x>_ynnNZC7Wy=6DAP3sdiQc-uNvP+;S8YMZmlec@oW z9(-G10o$geM9bcwz}{}4u{ANaL;y+vN@N!IE;Dcpbe8sLqEyL?7*o9C+o+BHaJMvO z8O$g)>4|m5`5Mo@rUOm$K0kR#C#84zP3@-HRUYqr3NoaicE-Y!3`VKe;$ntP^!_6y z$#gkmsU(4%HSLKw?xOu_pyUeMSZ8oRit9{XXH_gdXqTHANBRVk0iv`?eqE-Ne6jwJ zwQz9qq6tB|kP?`Oss@6*9>Kfu?_;o&xw_iC7jp&le0cuOo30l?&V>t%J5ZZ%GR#Ss z;{Os8UhoPfNGMVw9<`C+ z>wqh?`f>YV*E@CP-lq4mH&blu%I`C7W1R+?*fMPa@L;ajru@(%s|rm2Z{y(&) z?Hl>d|DZMTKa?jTKwBGF4pg0$(Amd^V;l?!?dhlPxHaa`r*Q4}*|VK7cuoQ%R}{7I z(Pw#?_tUf^wq#7zgmF6lUU!CCSwv6X+x8r)=O;}mIY17gAH*CA?kOg|ef2w%HEnN%Z)zrrCc4GxDrS>!hKK%6h&oOyO9^%Rwa+>OR<*x(Q%b#q{B=GO7D+$eZD9UBlLelFZC#M!B#GH`=!+3}UC(9{N!<^IXq z{(O{6gZgWe;Nft;d(i_XM*^UrNrQ7^N`2y=7sVLV&FC-+Gr%ME$cm&{*48id0+@ql zNmxRtzZ0NdWII#UxXUSo-98w{Z!{%ZQk4~@Rw{D@<2t|63@JkttEs*4>a<|-Jlu-s zF)`r92Di5S;J5O(X{rhkN9Uwak=5_5jl42;4YIRnYf}B3s8Oy(K2$B@dTjsbl=2;y z1Dn()$V2Oer^;|PMxYG{tvrj@CvJkrY_}cHK=k@dbqm|H?#ps_vt7a(D3j%Bvd#FA zSI_malCn-=PVd!jf?8b9KroKB!d|nst!4xf6z=B z2^Fgj-F#dqcnYhkEDChNSDkWb-wjOc-Ni2mBTa?v%`KpaCj{C}A^glcvjh0o z*ZIuy|B_i{JWqP_gHF2C=U`a!Uu!I^`Jb6Sdxd#rR&yWoTS-0}Ao`tTKS6xm$nj-W z$NTr$3;0UBX)2uGqO)KY!uIWE@6M#Muj_T4rW{(l!!EUXoUJl}L;19um27ULd#ph! zu9109R(~Hqut&`MgPHyvow1d&_M43vBiW96 zCjDbxkBI=fv-g-a|8FoxveyIJVURf@mbCs=8Rk_udmFD^7^@lG5F7-;{|fk$CJ{T) z`Q&B~Oil5|t?-zjUS+9ICFA+8Uf5$MZtHnpe523^BQ6GRezV$k)ZFJ{H}y%7F6vLA zKLON{ACy(QTFJp=;a1XcS#z=9$8UQnbgOM@q?fmI!K)ao-k`(E8FB4sMTanUdh4dr zM>Z>in{>CEE%|v;HT{Kx3BJd$hk)RZYq#>26*AqGwxfr_>QUz|8uuh`e(N-Y>ajKuiX|7?6zo6*6DUVl7~7WY>RIe zUDa%zI@oi8s-=doJ?x$c;pyz)JM0(;8}rh^4qSk zQaHvD+H?x|3pU@jt+mAV5!!u92yqWxe5?-gSG8H{y^_nh9$}2r?*86#p@I4&fV2G^ z)PdC5HbqXkqWZMFX!tAsO|3Wd^+nyp%scos*TSieDIP}nwb{rMV+8+>lciKF1CH>c z?M|Ey>5plxJ!7glK7;l?iJ+nOf$7vk64z?ifLr$sXI~Lt53&zHt=ss?E%mye+ZuP#ttu#$!Y|Lg z^(;T?1KCc+1rB_(N0Ix>Zrobi9{X024v)2*4U8x_oCG*g)!j>a4D;qEF5-BeSMlo*Y+0O&et$m~h%&K8W2gOYjd@=3i?xuytJLjiaSS^}PZGa~dMuxHkC$A!9z!hY>F19f0f5{b_f5;V8 zR7=?Z^2YZc-=M26S%HQs-_WT>0YgMU5hJ=YMP-^;rs+l;(n)KFU}q|9)QyF14OJ?C zf-^WqAznW zDV5)On!Q-2ZGs!H|H#mO1m1TK>EA3DM8=E!U?XRCp@GVVQ zivwuCRC;iX#*F~)9@zB@4v>UBX2S9dR$9}~onj31VpgM)c6#$5!=Evg6Apgg%l7nr#UZ4K!*x5i>?J@9p#?;LNc)m=M81eI{_-ZoImy zzpaU0p$ErbRftZ>d;KlwXaSbe0qNF6xZLcgH=3@EN!Z24**{!j7oz!B1fdf*yYMB2ekB>zG^sQ*?Zg6UmwGq|ad3gi zm((c*cTD_VS>k86)1oWz z{Xg-%j-cTUmlCsi3=)?Jexn$=kqTKB1UOBFBa=1Lsa#}KniBhz*K;FdrembbpKD@kEQvzTJA)fW@%cb=>; z%mVU#e&o-?E?`Xs?*Hl3+$R1=eb^!9VRc#mhUYi1Z=Y8Jq-lE`(5KUr0*KfB7Q05| zA3(SY&V@0Vq^Z-ZJ*8PL>|(VvbT79ui~VL(&_G&d9&8(V-eLn^e$Dayx<|9D)EX^yx{OzR!j5hH>vt?RM^XIFO-F#MG_=L@06I&KXE zP+3~5qA;J98Jc|PHbE@LAoOWLRDOj<1){tl+^D)wcF;3@^CNV#XH%~^R!T0ALBhAs z-m_jd7&<|j+RMd%#rgnd*}6U;N}^QTq-HCiLsOsah`?x=iGe9zlQnBRsqpn^4F}Z# z)Ko{iAfzkfO!3@|HEc535+};6;5D78h?q@tIRnvIE|nsd_!7=z1u|F}SJ&0x&>1OX z=Ue2rUDD~nzK>YZbf*;{vSQM9ZqgRxUF>yax4mHemL?1eFG_GNReNi?)^}WrH3h8p zEVm73bxdiRC{I-OdnG_(HRbjY@MbrcUa{L6mM32fhEK*AZVR_&Sl_g|E!(tB@;vjmeBTIkn zXs74VD+O{yXi#5C?<3AfO^@qHy#WZTO1#v*?yDH{sB%DUj7!|7q6<4d^4tRX?hGxb zS4qSOzOtpJxG>B6EW(feWMQgbT0a@jX^t+aCP#35*=9?ojq=^kLjY&)0cc>FD^f@6 zt1$?_-PfnN`RE{L`)|_Z-W3d^eR_D2M+3{sk%Ye8(YmsXuM^cqw{>pMjX7vh{$+^`k8NUoXRS@YOg>-~`_h+zoTjlVmD0PrJF`q$BbMt1poQbzn( ztdQb}izWWO_MqY?t~2Ijjnt;#pogNeC<;ZphD%o71rWHo;A3tB|31b4XkS$R(Y`n< z`OE!>_62Zcj)ZNoi;IyWPSUi;!HzIAuEj$Um`@;gP@{GbR;GKV=A(wHb`iw6JMF!E z9?}S0*!j{v*^bAYr~?hHdbyvKM?aU39Ze<6(1rukQ8N78XA0l*+mr5n9@{-0PVdaF z4ubgq$!hhx5D@a!Z-8EFE??brCq>Waf{Gcs`l9ZOg%{iIw9qDA|FsIqf$!MAfmx$8 zcPCv!=e6ih*S)qxj`s^&s4Wnt$Q{kh=Cy?vtsS3Pek-m}tDeZSW~#4oHEsoz7nyn{ zH#GX1k#{#aK(+oDzKa#OyYUGbn6H`g6i>c&?TGrtOdkCZiW8|1@&(?pQ#Ecg_zX4% zhGLH^7n-P1NV5<#M(t?sj`ufn`w++CqDH6Cru+5Gex5!`Chcu|+CzCp=DoU0({FY( zUV2-f^lvEp)VHuSaBPS6XfM7RM^Ku_nfK^~ns<^x`QO*k*SI!%)t0950Aj z)ewFvg)}7>ZC?oqF@gFdhWUPuo9=q96$%emW|;E5F^^57N6I4edr6SI0?8xXDQjCp2iu zCWl_52+}KcCqsmd$>3byCVr09{B482lC z-g0xoU0l@eTo-RJr(^v2J`+eLe z13}ddfoKI>!xpWS?O{7u92|B=&UTTNcOPN>PhI2NAB(7kl_Tvx7EuD=Wdn4LPGnt$ zP+kM5PS8scafTYTHN8c`jp2r!T0NbTc0A-xTq~8yKD6YkfU1Sw;toka4ST#&apE#_ zfcfYBO}2K&>yF*qypFXlMyw=J=OKXasER8gLD$8jl%E<>V<+@yb=YLS9WAwz^ijDf z0UH=K`BabZGSW}Lo74=roO?)AFst7s%MKqI?4ykLSR&ai)O)Li#rDv`-^*SGPCU9U zcM(>A!aOWzNUUnkPa4Yc8bPTzHAvu8dUt(-y)52QhghU)#E{R-$I|N%mKz(tZo0Zn zT~CiQ0A+@ZMY?#G9Eh^b&ycr&MJO3h7Hk^Jq(MthIJPE^H2S(~x@W3W1!dFEUyu|W zLIz%Gq;JO%{ijYW{AI~L)ycKYU6*z8>iKQbHL25X!B>=?k(rIWHcP-a%g%d#L3e#s~#8B_pSCyb%%MKriTaX zl-gYe6X%pGb@cVjVa%fg1^~0r031pWvNzHFpkYPlQJs+9N8r2&Ue;#MF+6QK}G9fFu+mo004RN2MyvOSE>6oRiT~3C@hRb(L0UR?+1Tf*j_xqmhS`d zfa(@8iy?4KwTjoGp0w4R zfS`gAiOl{8)VLn0GqeLmW#02w?`-mlV+Su(KLi&uH*TkR5&1lx{#enDV6%kNMZ{Bl zVqy(SjvKS5(qjzgSA7Q0`OuQ)pZK)N8)|KJXW@(&WSp!Q`hxvee@d}WHi5Zu3r-EJ z|NU%rp+^j_LU&mUNNaVe=LK|}C}xI_-cc?B-czwR6I3d!tSmgVFpR#&f@dBIho$nlTU7QEE_X{z{J~kUa z#5e75Beaza;4?|BQJt5BvyTpJUcyE206(WPt3J>ZDzt;(G|cSAqMwh*F_I8o&2Kc0 zx(4?)Jv`5Kp)cnB6L7D8iPG&5s$-k^XcQ)5Ytrh4TSPJt+f5GM5w3TJEo%bB^E*}0 zuZ=RD<*xeoDJ{VliA0g@W}}z2Xt^nhdcWXDn4s z_}Bkv*R33A|B7t`l7e8Z|9~v}jBv_@TBJqsg8|64cC;)2M|=o}v`*c?nJPTVkPU=P zxb=K)khJm)r-!#-ig! zoEz3cKdEHCHua|;3((>ZEDZ#HO$wc-PT4)uFP?rFYg)|P{18g7DIO>q9z8L|1DeN< zb>8RD8mwQr#wf$w+7{m|&e?CdeeH#bpGowU^rp>Oepw&lZMqm3@XeY_N%EeXA0>3ObXg zoOhHFhSoFh7=P87I^wusE`056nl!I{5z(l)HV|q7663d7rwRCX@j>?)`OC~&oNKPG zYEx%LG9W6KfzPm(S`_yQLK>*0Djt#k$%s(!j=0~ukSZ>jOzkHW^bn3{A{`vhP0*_| zex(^#&lO4)$4v`FS)lPWuR^^M#<&X}V~9vA2l_@& zF03T@ZRU1;uhl}^@hRe4^2x=)5EDCYc~i%_;uf#5Tc%pnBzbsEvgwB5b_fF>8ax)C z--^^JuJSDRDar^BqYbmzhe?8FhLGT$S4ZNe2_28(?me~EggOzSo3X8n(awW`5(e9G z5{8fU7V<4^+tif>pH2Hm)o@2+R%65h=5>+UBnrdJ6gfMdS`rA(c*sc7z97CC5#CCb?Y6#V)_^e(p)5OEo=r|7A^=1R+ra>7+^XQW9ui9Df~X&1waX~CE0f$ z%rJbM(Mr&GR;O&+uv!-+)T~eKC;=A5;xO{55w;*Im(*zezebw>-*FEDGQis?7@*lC zbR&DKzRmz3v*ZVvdZo7|JE~(ye%Xe%P=YG~hsInCK_HmJTYWpOYt5lveh0T%7Uy39 zApn8$Q@S-z0QFxPJwV0|>AuF;t>twY?suj_3lN#BeY2EJ6%-eny)wvm5@ZELJ!vaa z6M;@Jaer;lGx&pEu&=x}Q~ifKXYx|g;&_26kWzO&1ts)JxZ^LaUN`gXD~@t6vkS~3 zcUgzHnrJPxCHF_>LtxtmPy$#K`NBT*Y#oRz*~y7Q3HP%Czm|`lec8--9(cI`Rl?QH zuoI5%w>H8T2CIj!kT@>7PG}idE(Ufd&h`~7Hf35IoF|u3WiRFCA~zf9&@omn&?~ub z@#ezq@Xh!Y4qXQB-ukaB0I;skSh^2?f}%{5aHteO>u{mhf!MwK_F3H zH#M;vvo!FHD);D^ex3CE9<#hUEVC%BWER_@u@JcN8{H@blY$XnL?g!%0Wa46Vd`v( z1glc3cu@nI$?m~11+T)18*KNHkZWZ21F6F$eTib2*B5#uxOl%3y+}gIT^MuvR`ryp zi~`uQ5{PDLuhQ%bvGFUc2^9veRW~~Izr8BR94s?HvywxapwxQHu^Kx zTna%j@{yHCpilHz)s=sB_RL*Cu#ODw;I z@;O=jY7qka^Wrfncl-&ihO{-rXJjC?lMu@?#je){bQ(@<6>WXmJ$4?h-sR#MP>N;C zvNm=G&Y@tmb>>KW=3Q*`VHmz&8P58 zzhB;E!GoW9t$F@0on=2gr%EsLvL|r|W)Mrl1%TYBwF!G2*h(VomN2m5HIzrp0 zA3wfiJiDT_u=uzA8PKoKuf6;2%${GL!(V=}Pa!E^F?cr7ooigw4e^5iM0;2BT>q~p z``j)C8l*XT8nz_w(xuJN^JIpsDck#gp&#?H>2h)&^0zpAL(w|TQkmRc(Pfpl{(U*8 z<*Fr)-E1rix^I&<^qNjY9g*MH{Y4e?C)m5NS=dE*g#J9#XBek8&(mrvlqIX>)#X$q zJb!A)p=~2I()vrHT&EhOxqKwTkTvmp}DwC0s0YA zcIJ8oV^-@9Ccj}b9wmx-wzBsqt6(tfefZD#t9SZdlN-Y2Sy3%HKnr);WVCJC%JOw= z!hHTVC;mb+;R64R1Z@7?KoUGs@2=c@fhJ#NH;P167+CaE>YF+2LX@PIH7&NVfL;CUng7&n8Du#j&h&1?&Bd6HDhWdv(Fw(1aXFxfr}Ald9oabi2nZYQ^h{ zc7ClXtyX#Pg&6a}qsjZG2b+%16~;Os<-5p5s56(2py+-6wlL}FyZUXG-5!EEv#mCj z1La+PqPIJOY;dtY=Bl9}%QU|tS35IQi-;e5UWP)W9<9$L?6^daJ->d zIk?%_7CXV+iZ$4(;u#+7k;uLIM3E@Y6c{0G0#%yRFoR2ZrqfjmjX1SmYadMUPrJ|V zMmeK{e7~vs9sJ1Rn6~Kc)y~%$!rLAAya2v4Y^sImp}p2Kj}$y{a^fS>iTkPEF)ALi zz};lcH@2=G_t5n@;ujGvGA*UohIBnr9Whvfe=6z>EI#xr1zkM>)>GYiwEaCoE@IS) z7JEq9Ed4RA4TfF=LVo6|md&=se2FvBKS{s+u(Ogx8G5^Zidw}UnW)2WZhWqY*vfT{ z6}~IOWDM*dXz<48XRuD{;t*x&>w$*J)+8W6aqIfOk3Deu`>pq! z^`a1$l9vD9t8nds;cp~W$@M*q{fVzh%J;qwOYQMEIC>G@H9aL=3u=fs|2k<`g`1># z7~?_ORfWf~$6tlX3~7$0>b|K5nhy`{8ozaTCmUYbyvi z(kI2gQqHst%5CXlS@pX7)-LPKRt|>1I-g z!|-1z!R6t#!L|D=lzmpNl|t&5ugfz9ExJT;#$>HO-yk}vIIHnx1$wGH#*Ck>$%5x_To^uL5^LjJ5c|~q5QAc|Q<7vh#>gn8EV)~u* znf2@Tu>@iTrdEF?LJ`&S7C~jKa4AO}zu0kZ4VR^aCp{}e7ZgqS5fej zTCi zT6vbOtp)!Y9fCoTGDE;ReSybBBOi=GOUkMO6~S}pVD}UM;OkO*pQ2N3C{N*$_Na!* z`(4(=IJoc{-gKq4PZ@{#>R;cyTWD-IFQMGalZFeHz%Eq@p z|615LcqRH>%JcG^Xv;&Nj_)b+_{q$^`{06l;){1?`vS{Om=1H`x6)2t7tc^3>IXt^ z`PsKz{a$&e>_Bf`*>r$iiyrD%$f5UDAVG^>NW@X6_=)dQK=Z7ewC&lJ8f&8rOCoe; zC-TPo$Ibhk98;?;kc+N^9gwO6p=oGmv;(p%D;+wph;cyF<{;L2D*f4~pk=1_ssP}B zYFUXttL{`r2Thz=;l*pCmO}e3co$3I4}IWJbjGeyb)CuySaau`jn~(8E&P<>u)aPu z<;-No&A)3kgdVHx^y^z)ywcfp+T-j4`lH#1$3%Etm(nojE=Y$DuUmR1vFoWpSQEKsh#gHeC8z)9r(|PlGP2x%EwPKf;$(!lS(h;qsi9_;CSUiad0~u|a#Ir$8@B zL9glBd&eil)*|@kO)e zj<)g^!YmJ?jEa;v&Dpon{gH3(AbVbzuIsC?`=22PlrmnZ8oEwuClhr z7?HIJCAKYlR)e+fy+vZW%fIw^+a2^CDIdp++zT~C)HBnpUl{R%@+^dN&XQn#*RL?= zI;pwNsYPZ1=;?RE`7&rAD#+up*k*iI%=~HG#^VNxjrm03ptXX%O*fp$c^OIct(!94 zYPnXPLGDU4r0`W#$n`F70`l<{pCS%DU3gQ?*X>mPw!ZaIoR?d;cHA&_we5|f;h_Ec zcAs#TPOu%%gy?*9J9))>dvhA^5wWFeU0g=%UVR+AP^;;+=mOjEN4H-chLuer(8VEu z3&nbW2=(TK!7y^2Pu^5MHB*X9*Da3%Pj})$7wkw~WbIp4HU+T`sU85SGoS_(s?34y14VeT;JUN7BLX$Sm!@efd?yP(y5U0;kr35NTG z`=}P;3aV@l9Qzi=Y`I#JZ?D3RSIXdYZc^pI`K-0K7ijMUCn_r!jTc=xbBtS*X%8nS>Mlyj7<&IL7~@;{o2z&DC8685Yy^W} z33iqBR#WGTY2?d6a&emTl{w>WubbrqmtVXeYU{hX=!64d{CI&MBvMgF2&`hzt=mXS zQrihJ=$?=2UMIl5%<^Y?O7juFU5JX0Vm_^h3+SZ=!3i_*J%Eut5l7P z3o@gvErEh840TDx?*r1_g0D-Ya9&g^!61lwr{Zp0*wiQ%+9Ou&-MCrcM~ava@|k>tE^>>nFg zgqWb>ZeYCYSGF-LK<;B_H_*NZi6ceqLZN1f+}D>RkVrlT<%)1A#I2u=Krd7i-jcA} z%QUgj>CCFLX}>H5ElegM-6PPMpVkCikLczt1~X%Rn_3$%1SF|z(jE$Uy6dNU2Xxn? zAdLDl*c_AhLU*wuDV3z0(uv?E)u*2l5q_jbY`5j0W(-m00wAkf~BHd8Pf!_E)=OTT5%(oaYqQ?vTHLQ*ISmh(5_* z-r&6WXn<)cpa(tfP$R}1m9Lv<)tmX*0~40?7ieF87Efi#xt*J()&^G9ErC!!9Krm_ zus~ato@^PXS=eT%KF9TUf&4xi;@=6*v}+HxJU$FsmB~gOHFSP0wS$1^30|as7PQq~ z>W+U7uMvca`(3k-svZJ#ND9Np9`eG}Cd(ztFX1cf!s4sW)m_+H`9?7%u$Q=%I&%b% zd`;lf^ZDDWR!9&^`8o`HfEwVm8cx>XhpXLMFm}axZ^OUm_0(nI6rw8ZjZY_sNHk>^ za+r{LmIz)cRd9Pv@@U=)$B8SOWj>DBQg`VntEo#+(K+$c6tQk?aA~fzvtkdBhKy@f zzPhkDv^sz*{Uc!=(kt`^4T!D(g&B1-Qo0RaQF!W%P+)=PKq%jLAlp+5%VD$$ADTY= zFE)Ys@xPYdD!slR%r>7A(sO}1g< zBoXs?-_pT-GQa(GDY5Cx>#K%-A7nq8O~<>)1sMyTqK$BZcNK@Mj56Y$hLNw!nhV2q zirp-x&a|8&Zrns`?{+Z1)lr$_FPnk9q0aG_4rNSBU*`9BcwtPp%JSv!S`No z0c^=hGKgt`d2%2b*_CaU@5C_)9aPm%OPX$k>+um#~aUO z7?aB;wc_6s2j^xRHR|3Qrgf2Dsokl2l17<5wj=Ku6V0u;WAYilCU1C5Uq}gxjyUeU zP@wa=l;pnIn*q&9-!^)ai~o%BpaTCCr9Yt(I`~V0gC<3jm#@|io^jnSEecl% z{vgcLZ$>M;!LH2>Sb;(}#$x<(V#5aaVGoaOQ-#Lhy33)rx1Melp%s$w5oj_AHI8UO zEF*kCO-Bk+Ls8_892eaO#ib7k^a<18qF^_QR1m+*HI3D-Woe9BygT%>5> zoyvOS>aV!DVIr!dZT_%EEh4c7cZ# zbWMRda|eGZUrct%B=oNVl33g?uQfomQ@JXvCK7LfqE4o`G)xPH=tCVGBL^v0H*0C4|83k*-`#U z+g~nhjb)y?j=vp2NWK5Juw|FzD?;#iLaWY_hJ1EdbuobU&6Udf+obr zY(@rVGVT5HUfny9753J#>Hz4Ji@%P|YRQ{l)5ILJ`J4-Nw!^v7-MKXQ%hBDC`iKd~ zaivG!cw71U6U&D98E)7eCUpN7er`JHMD}9Kq_jXK+Gw&8$Vf^NgdC7LIQ-9sArXZtHKS7tdIYg6RAMxuPUOYXI z!EP$}uzKc3wvt2E{uch>1$Q2r&_|D#Pm$54??782$0nop5^Gm(trmn%BXXkty$iqi z5_$sIkA>IBbN_y(8~(*UiKP6F>h!zO&}v#Zku2bxH6PDjIYioJxo_XBizklU^dPOr z>x|C9i7Z`7aEB5_=behOhXpW>x)Bt9z7Zc^KHSF~zT23tWdfDGS*LNl{|FA;-)~h} z+*7(;rUyN=Y& zN?h7wTC@=>Kd+n{0|iD8=h|Kp=?2fbcBb90`q;zN?Q=;H&*N`HO1d;@JxbtU{#}lA z59Y9DU{8I>qT+VTw*u4|=_qwfVEnQf?=H3?SD)WSI8;7vyihXVvsdE!asE5w^xD!l zRp%VzE>By!RD4I>K8ANQ9?LrKH>8G1czce$U&8S(IUf~RQ3lslh_J+at75Y8(ciutP&_@Gl3=L0l)tjy&8 zq3GAnD=#>|Xd-=sK z=bYl}qMTwy)ZojhTDBk;@uA{fMUTlI+KbmiL~-DLO>nxTJbfyj{7Dd|kwPvU0k zE^q@Du2((&zqG&)c3@8V=L8Z9&TIAm*RxORzYHY+OUjo&9N<5NKa1FvZZfnRzHblh z^{8~e?Y{H7J@yUd+>|bCeGoHW_6BvnIXt#Uo$6`(hZMQ&x-KoOA}5G{KSmD=4l=Bdqbh|rAr@eTLO#K z8PlZC=Dyt0p7M)$uDKNZ*d(37vrgk&HPh`Pf0PPUbt=mp|L8vR(qpwe93yYiE+wZ}HMoi!x^zX`-81#{!X*qSH<&R3UXQS%^vuZmcYIzp*ILbA;F>=*{5nb!r z!v7#e&MkjuXj77Mrhc1`{s~sLznoXU{Q+B0C(ke<41gHXI z(7SKB_&G+8Sb^WyUq}2V?`Qlxp;|j-c(_0o)Oa-#YctVHDHoL&De2GHCR8>1eP3;f z6G-l!ZxuUgK;CHL-(smvCHbm7O4(4hp?aHEg)d}7uaw6H=3=Om-!oTul2StJ8`?qL z#F(}4T3Syw<_y>2b*6t~?KuA(kAAE?`X< zX2g$xw>W>VIjInf8XF*&gHYM>e4sMoR-|WT-T$}hhJ#e%Eq&d zX9|+vA|gcZ!Xl$9a%aPwR+O(pP%TVLR0a0|d0*Ks4`f%qhxx5e7bJGY!>DD(xaL?~YI+dVb4# zM?6T#&ZzzrgB?P_C)GrJ(l%dox8NVz>z}!2P3*@mEV1BR{;y~KMtc^j8})ZdALgH$ z+yD0AcxDawm%%S|sof}J_8zA~%+jIIpD)i`Hjl$hSKgjDC4nfQ*mJG) z?*VO_-&|7(kZ-rvr5{=)ao>IhGNM}L}P9ta#-yYVO&u1^(*s#9m3qNjTU)DQd z8B$*8+rFVg{o!45Eg!G zM?!yP8!K(1Gn$FG=m9euW}W!_wfes}{AUWZvb`W3=+oP(yl@_Z?1?Sg<#|LD~;>_e+b=%j2gfqyq9CMtWDP*l-d4!CaqASez>P)*@ zfs*OPJMPbqLd}ycM_ldg+tdxeS8PYSTtB_FqR3^*Q;#u5X0N?`k9y3(KO$JqpE4cc zMN~jX!x<(mr*~%RXBr-cdqwt_VL?`|Qyxu!hX-e2 z@}$^)ScF--;BmOoP#knzL0k0AbG$Jk@r!aqXGns^&vqaW^5!Gs{#D%-Q6C0if+wn) z(I4Pt7rkJ0j18u~y~Ny6^aT1)TOAiFxgI?!zy5z1d-HfG`+tAD5EW9mlWZ;4h)`sk zp^{`7p(I-+Atc$28A)<0A!A==2nnGqW8acp#@g6-hGAxym9c#<_xaW5?sv|4JkFo_ zqjFuZ_v`(9J(t&&zwEXX(&l)~)u!5~VB8HO!U)Wr0{nc=C|zv+r#ruz{hmAweG7=g zjN_!@JHOO|6?PV1n;GOjF5i1cPqlxCf#l!sOVPQgv%IPHbhSlWwC2t_m(s~ngJc2{ z`{FbR5}fHh1yLi2>+-;I2`U%rPF3f@6b;R`&Jax@g`y5QeSzN;iPd|AtY~CQ~l?67`y6V5s97=F@2T9Gs}D-;zG%U zyoyNVUAY#;%o@_>IbcbB)ME~UHMp~uMx4$UzL+17LMA!{mY2h>*Q;bPbLBm}YVim7 z@|E!YQXaR$)IB(oVwbJ0y=ewkCO4V(R;RrY75iZeWd#Z{ncUkJVDn0eH<5B}v#9XA ztcckJ-Ocd#gg`mPEoK~?UNz;JhBxl0IiS^bYtBR7dE_>`aP<2;j!NX@4w@|)Jt#34 zRs-btRqoCwSjXyvYmTg*ZFQTBR0-Z__NJQe#w4H3Z zaZbh!-0~6TAMl1JenJKNq_ExJ>r}$-#1lK4w(OeX?yIzBHAO3$USQ?t#e6%#PnQ>j z1LDF)+}|Y{SaoNMj&{*bP>a{6>sk36z(2!pZ}%Q~n`|@MQ(LTTXF=^va~X_`>e4IU z(KgCccn~Fu9W2Mz6<8TmZI7nLmT*TofPGemR@=^+k&&$no&q4y?WCjoJdwpMkjyl2 zP~C0NCZJhyj+!GF01v_#^%{p@PbAmY4SCX=tBHu@3I_AO-KVxw5FN0c+*Bd7?#7XM z<#X+u=YF{%{((ILd$31guJh@ylkmm!;Fxzf^riUL>r=r(=X7|*;vlQ9uZiwI8FJ3_ zR7qN_ip~jHn5+`pJ1&;TJ&|ghv;4T6eZ5R$G1i4{soh5|u$-d-r3&6$$?8;tWKZW1 zv?de%{jJuswy9X1bFQ+o4svgwo4ir!L)&-EpAe1 zaxy!S)6hgZLD85T8mL!MWgkyroONeL6Fxrr8S+`@X_5XySya&;L;Bu6?I$%v?M-`e zW&htUh=;8{hzD*Pz8@T}Cp*m=$i+Dv7a;~W+F>(`M)cL(jE}3>P4|ns`S)TiymH`| z!Z9lF`2p_woe5>h8#N`0v`1v@7ne{YkrM zZ{d;A7@j;Ehd!`(TbMgj%4oy&Y^J8V+f^)csMDj~5`S5a2iWdXShTT?eFZ>plYq?# zH9ZXjk_85*sf0#+lpn?4sB@LN6VadZ<+|eIcf&bp>ZKC$J#u8p<7yBqt6Gr_s*z2P zT*uPY?t+obgF&3IMVYMr(Q(9*! zRt#|x1O*x=);Jad5UATf&~h_Wz}6{F9MtZ?%Y-|pysCxRP^{b3no8I=Np(7&yN#pO zME#$PcId*kkOYl6byCs;lSUu&$2giY*DbPtL7hGG51;|?GB!g4htC6l_y-dC90{(L z_rPSX+68UXZqH1#@&>f(N)iusnZ!G>yB+*~BGE%w?WG3$rqW`jF|EVJstyyKt2S+;A4|uXXM%PupAoHLS8UH-h3Erub$j zc)#15EiDImT7QnX7>qE|UAOaA!rXt|*{b;65r&M6TRs_2Q4bv<5-v?HxFn))+vw9e zzf#?u<*|vB9}AbG(J{X5df0=y-OGTug{3W{%z=%%w_2&HZHj)>j8+3tS`KWXRLTwl zg){Ll%iZ0(Anr*YW9pT=VJH3)li6Y}sUwsU)NMkPfC~QzZ;@Ng7t=JutYb5`f2??) z%0D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 C3*zbk literal 0 HcmV?d00001 diff --git a/platform/docs/docs/migration-guide.md b/platform/docs/docs/migration-guide.md index c252d23c8..9ca0cf8a2 100644 --- a/platform/docs/docs/migration-guide.md +++ b/platform/docs/docs/migration-guide.md @@ -649,7 +649,6 @@ onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => { // Init tool groups (see cornerstone3D for more details) initToolGroups(extensionManager, toolGroupService, commandsManager); - toolbarService.init(extensionManager); toolbarService.addButtons(toolbarButtons); toolbarService.createButtonSection('primary', [ 'MeasurementTools', diff --git a/platform/docs/docs/platform/extensions/modules/toolbar.md b/platform/docs/docs/platform/extensions/modules/toolbar.md index bf48fda6c..1af8549c7 100644 --- a/platform/docs/docs/platform/extensions/modules/toolbar.md +++ b/platform/docs/docs/platform/extensions/modules/toolbar.md @@ -6,29 +6,24 @@ sidebar_label: Toolbar # Module: Toolbar An extension can register a Toolbar Module by defining a `getToolbarModule` -method. `OHIF-v3`'s `default` extension (`"@ohif/extension-default"`) provides 5 main -toolbar button types: +method. `OHIF-v3`'s `default` extension (`"@ohif/extension-default"`) provides the +following toolbar button `uiTypes`: -![toolbarModule](../../../assets/img/toolbar-module.png) +- `ohif.radioGroup`: which is a simple button that can be clicked +- `ohif.splitButton`: which is a button with a dropdown menu +- `ohif.divider`: which is a simple divider ## Example Toolbar Module The Toolbar Module should return an array of `objects`. There are currently a few different variations of definitions, each one is detailed further down. +There are two things that the toolbar module can provide, first +a component, and second evaluators. +### Components ```js export default function getToolbarModule({ commandsManager, servicesManager }) { return [ - { - name: 'ohif.divider', - defaultComponent: ToolbarDivider, - clickHandler: () => {}, - }, - { - name: 'ohif.action', - defaultComponent: ToolbarButton, - clickHandler: () => {}, - }, { name: 'ohif.radioGroup', defaultComponent: ToolbarButton, @@ -53,214 +48,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { } ``` -## Toolbar buttons consumed in modes - -Below we can see a simplified version of the `longitudinal` mode that shows how -a mode can add buttons to the toolbar by calling -`ToolBarService.addButtons(toolbarButtons)`. `toolbarButtons` is an array of -`toolDefinitions` which we will learn next. - -```js -function modeFactory({ modeConfiguration }) { - return { - id: 'viewer', - displayName: 'Basic Viewer', - - onModeEnter: ({ servicesManager, extensionManager }) => { - const { ToolBarService } = servicesManager.services; - - ToolBarService.init(extensionManager); - ToolBarService.addButtons(toolbarButtons); - }, - routes: [ - { - path: 'longitudinal', - layoutTemplate: ({ location, servicesManager }) => { - return { - /* */ - }; - }, - }, - ], - }; -} -``` - -## Button Definitions - -The simplest toolbarButtons definition has the following properties: - -![toolbarModule-zoom](../../../assets/img/toolbarModule-zoom.png) - -```js -{ - "id": "Zoom", - "type": "ohif.radioGroup", - "props": { - "type": "tool", - "icon": "tool-zoom", - "label": "Zoom", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "Zoom" - }, - "context": "CORNERSTONE" - } - ] - } -} -``` - -| property | description | values | -| ---------------- | ----------------------------------------------------------------- | ------------------------------------------- | -| `id` | Unique string identifier for the definition | \* | -| `type` | Used to determine the button's behaviour | "tool", "toggle", "action" | -| `icon` | A string name for an icon supported by the consuming application. | \* | -| `label` | User/display friendly to show in UI | \* | -| `commands` | (optional) The commands to run when the button is used. It include a commandName, commandOptions, and/or a context | Any command registered by a `CommandModule` | - -There are three main types of toolbar buttons: - -- `tool`: buttons that enable a tool by running the `setToolActive` command with - the `commandOptions` -- `toggle`: buttons that acts as a toggle: e.g., linking viewports -- `action`: buttons that executes an action: e.g., capture button to save - screenshot - -## Nested Buttons - -You can use the `ohif.splitButton` type to build a button with extra tools in -the dropdown. - -- First you need to give your `primary` tool definition to the split button. The primary -tool can specify a `uiType` property which can be one of the button types returned by -`getToolbarModule` that is a variation of `ToolbarButton`. If `uiType` is omitted then -`ToolbarButton` is used by default. -- The `secondary` properties can be a simple arrow down (`chevron-down` icon) -- For adding the extra tools add them to the `items` list. - -You can see below how `longitudinal` mode is using the available toolbarModule -to create `MeasurementTools` nested button - -![toolbarModule-nested-buttons](../../../assets/img/toolbarModule-nested-buttons.png) - -```js title="modes/longitudinal/src/toolbarButtons.js" -{ - "id": "MeasurementTools", - "type": "ohif.splitButton", - "props": { - "groupId": "MeasurementTools", - "isRadio": true, - "primary": { - "id": "Length", - "icon": "tool-length", - "label": "Length", - "type": "tool", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "Length" - }, - "context": "CORNERSTONE" - }, - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "SRLength", - "toolGroupId": "SRToolGroup" - }, - "context": "CORNERSTONE" - } - ], - "tooltip": "Length" - }, - "secondary": { - "icon": "chevron-down", - "label": "", - "isActive": true, - "tooltip": "More Measure Tools" - }, - "items": [ - { - "id": "Bidirectional", - "icon": "tool-bidirectional", - "label": "Bidirectional", - "type": "tool", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "Bidirectional" - }, - "context": "CORNERSTONE" - }, - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "SRBidirectional", - "toolGroupId": "SRToolGroup" - }, - "context": "CORNERSTONE" - } - ], - "tooltip": "Bidirectional Tool" - }, - { - "id": "ArrowAnnotate", - "icon": "tool-annotate", - "label": "Annotation", - "type": "tool", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "ArrowAnnotate" - }, - "context": "CORNERSTONE" - }, - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "SRArrowAnnotate", - "toolGroupId": "SRToolGroup" - }, - "context": "CORNERSTONE" - } - ], - "tooltip": "Arrow Annotate" - }, - ] - } -} -``` - -

- -## Layout Template - -Layout selector button and logic is also provided by the OHIF-v3 `default` -extension. To use it, you can just add the following definition to the list of -`toolDefinitions` - -![toolbarModule-layout](../../../assets/img/toolbarModule-layout.png) - -```js -{ - id: 'Layout', - type: 'ohif.layoutSelector', -} -``` - -
- -
- -## Custom Button +### Custom Components You can also create your own extension, and add your new custom tool appearance (e.g., split horizontally instead of vertically for split tool). Simply add @@ -283,6 +71,323 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { } ``` -## Custom tool +Check out how to assemble the toolbar in the [modes](../../modes/index.md) section. -**I want to create a new tool** + +### Evaluators +Buttons may be equipped with evaluators, which are functions invoked by the toolbarService to assess the button's status. These evaluators are expected to return an object of `{className}` and may include additional details, as elaborated in the subsequent section. + +Evaluators play a crucial role in determining the button's status based on the viewport. For example, users should be restricted from clicking on the mpr if the displaySet is not reconstructable. Additionally, certain buttons within the toolbar may be associated with specific toolGroups and should remain inactive for certain viewports. + +Let's look at one of the evaluators (for `evaluate.cornerstoneTool`) + +```js + { + name: 'evaluate.cornerstoneTool', + evaluate: ({ viewportId, button }) => { + const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); + + if (!toolGroup) { + return; + } + + const toolName = getToolNameForButton(button); + + if (!toolGroup || !toolGroup.hasTool(toolName)) { + return { + disabled: true, + className: '!text-common-bright ohif-disabled', + }; + } + + const isPrimaryActive = toolGroup.getActivePrimaryMouseButtonTool() === toolName; + + return { + disabled: false, + className: isPrimaryActive + ? '!text-black bg-primary-light' + : '!text-common-bright hover:!bg-primary-dark hover:!text-primary-light', + }; + }, +}, +``` + +as you can see the job of this evaluator is to determine if the button should be disabled or not. It does so by checking the `toolGroup` and the `toolName` and then returns an object with `disabled` and `className` properties. + +The following evaluators are provided by us: + +- `evaluate.cornerstoneTool`: If assigned to a button (see next), it will make the button react to the active viewport state based on its toolGroup. +- `evaluate.cornerstoneTool.toggle`: It is designed to consider tools with toggle behavior, such as reference lines and image overlay (either on or off). +- `evaluate.cornerstone.synchronizer`: This is designed to consider the synchronizer state of the viewport, whether it is synced or not. +- `evaluate.viewportProperties.toggle`: Some properties of the viewport are toggleable, such as invert, flip, rotate, etc. By assigning this evaluator to those buttons, they will react to the active viewport state based on its properties. This allows for dynamic buttons that change their appearance based on the active viewport state. +- `evaluate.mpr`: special evaluator for MPR since it needs to check if the displaySet is reconstructable or not. + + +Sometime you want to use the same `evaluator` for different purposes, in that case you can use an object +with `name` and `options` properties. For example, in `'evaluate.cornerstone.segmentation'` we use +this pattern, where multiple toolbar buttons are using the same evaluator but with different options ( + in this case `toolNames` +) + +```js +{ + name: 'evaluate.cornerstone.segmentation', + options: { + toolNames: ['CircleBrush' , 'SphereBrush'] + }, +}, +``` + +#### Group evaluators +Split buttons (see in [ToolbarService](../../services/data/ToolbarService.md) on how to define one) may feature a group evaluator, we provide two of them and you can write your own. + + +- `evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList`: determine the outcome of user interactions with the split buttons on what button should be promoted to the primary section. In the example above, the cornerstone tool's status is checked, and if it is not active in the list of buttons, the button is promoted to the primary section. +- `evaluate.group.promoteToPrimary`: disregarding the cornerstone tool's status and promoting the button to the primary section regardless. + +Failure to specify a group evaluator will result in no action, leaving the button in the secondary section. + +:::note +As you have learned so far, the extension modules only 'provides' the functionality +and it is the mode's job to consume it. You can next learn how to consume these components +and evaluators to build a toolbar in the +::: + + +#### Custom Evaluators +You can create your own evaluators. For instance, you have the option to design tri-state buttons, which are buttons with three states such as Show All, Show Some, or Show None of the Viewport Overlays. + + +## Toolbar buttons consumed in modes +Providing just the components is not enough. You need to add the buttons to the toolbar service and decide which ones are used for each section. + +Below we can see a simplified version of the `longitudinal` (basic viewer) mode that shows how +a mode can add buttons to the toolbar by calling +`ToolBarService.addButtons(toolbarButtons)`. `toolbarButtons` is an array of +`toolDefinitions` which we will learn next. + +```js +function modeFactory({ modeConfiguration }) { + return { + id: 'viewer', + displayName: 'Basic Viewer', + + onModeEnter: ({ servicesManager, extensionManager }) => { + const { toolBarService } = servicesManager.services; + + toolbarService.addButtons([...toolbarButtons, ...moreTools]); + toolbarService.createButtonSection('primary', [ + 'MeasurementTools', + 'Zoom', + 'info', + 'WindowLevel', + 'Pan', + 'Capture', + 'Layout', + 'MPR', + 'Crosshairs', + 'MoreTools', + ]); + }, + routes: [ + { + path: 'longitudinal', + layoutTemplate: ({ location, servicesManager }) => { + return { + /* */ + }; + }, + }, + ], + }; +} +``` + + +:::note +By default OHIF's default layout (`extensions/default/src/ViewerLayout/index.tsx`) which is used in all modes use a Toolbar component that creates a +`primary` section for tools. That is why we are creating a `primary` section in the example above. + +Layouts are also customizable, and you can create your own layout in your extensions and provide it to your modes view `getLayoutTemplateModule` module. + +By default we use `@ohif/extension-default.layoutTemplateModule.viewerLayout` to use the default layout which provides a + +- Header (with logo on left, toolbar in the middle and user menu on the right) +- Left panel +- Main viewport grid area +- Right panel +::: + + +## Alternative Toolbar sections + +In your UI component, such as panels, you have the option to include a toolbar section template. +This allows you to easily add buttons to it later on. To ensure that the buttons are added properly +to the toolbar, respond to interactions correctly, and evaluate states accurately, simply utilize the `useToolbar` hook. +This hook grants you access to the `onInteraction` function and the `toolbarButtons` array, which you can customize within your UI as needed. + +```js + +function myCustomPanel({servicesManager}){ + const { onInteraction, toolbarButtons } = useToolbar({ + servicesManager, + buttonSection: 'myCustomSectionName' + }); + + // map the buttons to the UI + return ( +
+ {toolbarButtons.map((button, index) => { + return ( + + ); + })} +
+ ); +} + +``` + +We have provided a common component for toolbar buttons called `Toolbox`. +The Toolbox component serves as a versatile and configurable container for toolbar tools within your application. +It is designed to work in conjunction with the useToolbar hook to manage tool states, handle user interactions, and memorize options +using context API. + + +The `Toolbox` can be easily integrated into your application UI, requiring only the necessary services (servicesManager, commandsManager) and configuration parameters (buttonSectionId, title). Here's a simple usage scenario: + + + +```js +function MyApplication({ servicesManager, commandsManager }) { + // Configuration for the toolbox container + const config = { + servicesManager, + commandsManager, + buttonSectionId: 'customButtonSection', + title: 'My Toolbox', + }; + + return ; +} +``` + +Then in your modes you can edit the tools in that button section. + +```js + +onModeEnter: ({ servicesManager, extensionManager }) => { + const { toolBarService } = servicesManager.services; + + toolbarService.addButtons([...toolbarButtons, ...moreTools]); + toolbarService.createButtonSection('customButtonSection', [ + 'MeasurementTools', + 'Zoom', + 'info', + ]); +}, +``` + +Another example might be you want to open a modal to show some tool options when a button is clicked. +You can use this pattern + + +```js +// ToolbarButton in mode + { + id: 'Others', + uiType: 'ohif.radioGroup', + props: { + icon: 'info-action', + label: 'Others', + commands: 'showOthersModal', + }, + }, +``` + +and inside your mode factory + +```js +// adding the 'Others' button to the primary section +toolbarService.createButtonSection('primary', [ + 'Others', // --------> this one +]); + +// adding the shapes button to the 'Other' section +toolbarService.createButtonSection('other', ['Shapes']); +``` + +here as you see we are using a command `showOthersModal` which is defined in the commands module. + +```js +// inside commandsModule of your extension + showOthersModal: () => { + const { uiModalService } = servicesManager.services; + uiModalService.show({ + content: OthersModal, + title: 'Others', + customClassName: 'w-8', + movable: true, + contentProps: { + onClose: uiModalService.hide, + servicesManager, + commandsManager, + }, + containerDimensions: 'h-[125px] w-[300px]', + contentDimensions: 'h-[125px] w-[300px]', + }); + }, +``` + +as you see it is opening a modal with `OthersModal` component (below) which contains the +`Toolbox` component. + +```js +// Others modal +import { Toolbox } from '@ohif/ui'; + +function OthersModal({ servicesManager, commandsManager }) { + return ( +
+ +
+ ); +} +``` + +The result would be a modal with a toolbox inside it when the `Others` button is clicked, and the +state will get synchronized with the toolbar service automatically. + + +![alt text](../../../assets/img/toolbox-modal.png) + + + +## Change Toolbar with hanging protocols + +If you want to change the toolbar based on the hanging protocol, you can do a pattern like this. + +```js + + const { unsubscribe } = hangingProtocolService.subscribe( + hangingProtocolService.EVENTS.PROTOCOL_CHANGED, + () => { + toolbarService.createButtonSection('primary', [ + 'MeasurementTools', + 'Zoom', + 'WindowLevel', + ]); + } +); +``` diff --git a/platform/docs/docs/platform/managers/_category_.json b/platform/docs/docs/platform/managers/_category_.json index 309407792..f2a2e07a2 100644 --- a/platform/docs/docs/platform/managers/_category_.json +++ b/platform/docs/docs/platform/managers/_category_.json @@ -1,4 +1,4 @@ { "label": "Managers", - "position": 11 + "position": 10 } diff --git a/platform/docs/docs/platform/modes/_category_.json b/platform/docs/docs/platform/modes/_category_.json index 80702b9e5..889d84503 100644 --- a/platform/docs/docs/platform/modes/_category_.json +++ b/platform/docs/docs/platform/modes/_category_.json @@ -1,4 +1,4 @@ { "label": "Modes", - "position": 10 + "position": 12 } diff --git a/platform/docs/docs/platform/modes/index.md b/platform/docs/docs/platform/modes/index.md index 35b046d67..e62c8c931 100644 --- a/platform/docs/docs/platform/modes/index.md +++ b/platform/docs/docs/platform/modes/index.md @@ -362,6 +362,11 @@ function modeFactory() { // exports ``` +### Toolbar + + + + ## Registration Similar to extension registration, `viewer` will look inside the `pluginConfig.json` to diff --git a/platform/docs/docs/platform/modes/lifecycle.md b/platform/docs/docs/platform/modes/lifecycle.md index 587fe1bbd..8c0ec41ce 100644 --- a/platform/docs/docs/platform/modes/lifecycle.md +++ b/platform/docs/docs/platform/modes/lifecycle.md @@ -56,7 +56,6 @@ function modeFactory() { // Init Default and SR ToolGroups initToolGroups(extensionManager, ToolGroupService); - ToolBarService.init(extensionManager); ToolBarService.addButtons(toolbarButtons); ToolBarService.createButtonSection('primary', [ 'MeasurementTools', diff --git a/platform/docs/docs/platform/services/_category_.json b/platform/docs/docs/platform/services/_category_.json index 8b57449b2..9a6c3ae5f 100644 --- a/platform/docs/docs/platform/services/_category_.json +++ b/platform/docs/docs/platform/services/_category_.json @@ -1,4 +1,4 @@ { "label": "Services", - "position": 12 + "position": 11 } diff --git a/platform/docs/docs/platform/services/data/SyncGroupService.md b/platform/docs/docs/platform/services/data/SyncGroupService.md new file mode 100644 index 000000000..835fd5621 --- /dev/null +++ b/platform/docs/docs/platform/services/data/SyncGroupService.md @@ -0,0 +1,147 @@ +--- +sidebar_position: 8 +sidebar_label: SyncGroup Service +--- + +# Sync Group Service + +## Overview + +The `SyncGroupService` is responsible for managing synchronization groups in the OHIF Viewer. Synchronization groups allow multiple viewports to be synchronized based on various criteria, such as camera position, window level, zoom/pan, and image slice position. This service provides a centralized way to create, update, and manage synchronization groups. + +Right now, synchronization groups can be defined in the hanging protocols or manually assigning buttons. + + + + +## API + +- `getSyncCreatorForType(type)`: Returns the synchronizer creator function for the specified type. +- `addSynchronizerType(type, creator)`: Adds a new synchronizer type with a custom creator function. +- `getSynchronizer(id)`: Retrieves a synchronizer by its ID. +- `getSynchronizersOfType(type)`: Retrieves an array of synchronizers of the specified type. +- `addViewportToSyncGroup(viewportId, renderingEngineId, syncGroups)`: Adds a viewport to one or more synchronization groups. +- `destroy()`: Destroys all synchronizers. +- `getSynchronizersForViewport(viewportId)`: Retrieves an array of synchronizers associated with the specified viewport. +- `removeViewportFromSyncGroup(viewportId, renderingEngineId, syncGroupId?)`: Removes a viewport from a specific synchronization group or all synchronization groups if no group ID is provided. + +## Usage +### Via hanging protocols +You can set up different types of synchronization groups for your viewports. For example, in the TMTV hanging protocol (`extensions/tmtv/src/getHangingProtocolModule.js`), we can see how different synchronization groups are defined for various viewports: + +```javascript +const ptAXIAL = { + viewportOptions: { + // ... + syncGroups: [ + { + type: 'cameraPosition', + id: 'axialSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptWLSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptFusionWLSync', + source: true, + target: false, + options: { + syncInvertState: false, + }, + }, + ], + }, + // ... +}; +``` + + + +In this example, the `ptAXIAL` viewport is part of three synchronization groups: + +1. `cameraPosition` group with the ID `'axialSync'`: This group synchronizes the camera position across viewports that are both source and target. +2. `voi` (Window Level) group with the ID `'ptWLSync'`: This group synchronizes the window level settings across viewports that are both source and target. +3. `voi` group with the ID `'ptFusionWLSync'`: This group synchronizes the window level settings, but the `ptAXIAL` viewport is only a source, not a target. + + +:::tip +You can control the state of the synchronizer via a toolbar button after you define the synchronization group in the hanging protocol. + +```js +{ + id: 'SyncToggle', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-info', + label: 'toggle', + commands: { + commandName: 'toggleSynchronizer', + commandOptions: { + syncId: 'axialSync' + } + } + }, +}, +``` + +as you can see by using the `toggleSynchronizer` command you can toggle the state of the synchronizer for the specified syncId. + +::: + +### Manually through a button +You can create a button on the toolbar that you provice the synchronization group type, +and it applys it to all viewports. + +:::note +Currently we don't have a proper way to select viewports to apply the synchronization group to. It is applied to all applicable viewports +::: + +For instance look at `imageSliceSync` button in the longitudinal mode (`modes/longitudinal/src/moreTools.ts`) and how it runs a command + +```js +ToolbarService.createButton({ + id: 'ImageSliceSync', + icon: 'link', + label: 'Image Slice Sync', + tooltip: 'Enable position synchronization on stack viewports', + commands: [ + { + commandName: 'toggleSynchronizer', + commandOptions: { + type: 'imageSlice', + }, + }, + ], +}) +``` + +You can create another button to toggle 'voi' synchronization. Currently we group +viewports by modality and apply the voi synchronization to all viewports of the same modality. + +```js +ToolbarService.createButton({ + id: 'VoiSync', + icon: 'link', + label: 'VOI Sync', + tooltip: 'Enable VOI synchronization on viewports', + commands: [ + { + commandName: 'toggleSynchronizer', + commandOptions: { + type: 'voi', + }, + }, + ], +}) +``` + +:::tip +For your custom synchronization groups, you can create a new synchronizer type and follow the +same pattern as the existing synchronizers. +::: diff --git a/platform/docs/docs/platform/services/data/ToolGroupService.md b/platform/docs/docs/platform/services/data/ToolGroupService.md new file mode 100644 index 000000000..0d7a04cf0 --- /dev/null +++ b/platform/docs/docs/platform/services/data/ToolGroupService.md @@ -0,0 +1,89 @@ +--- +sidebar_position: 7 +sidebar_label: ToolGroup Service +--- + +# Tool Group Service + +## Overview + +The `ToolGroupService` is responsible for managing tool groups in the OHIF Viewer. + +:::tip +Read more about toolGroups [here](https://www.cornerstonejs.org/docs/concepts/cornerstone-tools/toolGroups) +::: + +It allows you to create, update, and manage tool groups and the tools associated with them. Tool groups are used to organize and control the behavior of various tools in the viewer, such as window level, pan, zoom, measurements, and annotations. + +## Events + +The `ToolGroupService` emits the following events: + +| Event | Description | +| ---------------------------------- | ----------------------------------------------- | +| `VIEWPORT_ADDED` | Fires when a viewport is added to a tool group | +| `TOOLGROUP_CREATED` | Fires when a new tool group is created | + +## API + +- `getToolGroup(toolGroupId?)`: Retrieves a tool group by its ID. If no ID is provided, it returns the tool group for the active viewport. +- `getToolGroupIds()`: Returns an array of all tool group IDs. +- `getToolGroupForViewport(viewportId)`: Returns the tool group associated with the specified viewport. +- `getActiveToolForViewport(viewportId)`: Returns the active tool for the specified viewport. +- `destroy()`: Destroys all tool groups. +- `destroyToolGroup(toolGroupId)`: Destroys the specified tool group. +- `removeViewportFromToolGroup(viewportId, renderingEngineId, deleteToolGroupIfEmpty?)`: Removes a viewport from a tool group. If `deleteToolGroupIfEmpty` is true and the tool group becomes empty after removing the viewport, it will be destroyed. +- `addViewportToToolGroup(viewportId, renderingEngineId, toolGroupId?)`: Adds a viewport to a tool group. If `toolGroupId` is not provided, the viewport will be added to all tool groups. +- `createToolGroup(toolGroupId)`: Creates a new tool group with the specified ID. +- `addToolsToToolGroup(toolGroupId, tools, configs?)`: Adds tools to the specified tool group with optional configurations. +- `createToolGroupAndAddTools(toolGroupId, tools)`: Creates a new tool group and adds the specified tools to it. +- `getToolConfiguration(toolGroupId, toolName)`: Retrieves the configuration for the specified tool in the given tool group. +- `setToolConfiguration(toolGroupId, toolName, config)`: Sets the configuration for the specified tool in the given tool group. + +## Usage + +Here's an example of how to create a new tool group and add tools to it in our basic viewer mode (modes/longitudinal/src/initToolGroups.js) + +```js +import { initToolGroups } from '@ohif/extension-cornerstone'; +import { ToolGroupService } from '@ohif/core'; + +const toolGroupService = new ToolGroupService(); + +// Create a new tool group +const defaultToolGroup = toolGroupService.createToolGroup('default'); + +// Define tools for the tool group +const tools = { + active: [ + { toolName: 'WindowLevel', bindings: [{ mouseButton: 1 }] }, + { toolName: 'Pan', bindings: [{ mouseButton: 2 }] }, + { toolName: 'Zoom', bindings: [{ mouseButton: 3 }] }, + ], + passive: [ + { toolName: 'Length' }, + { toolName: 'ArrowAnnotate' }, + { toolName: 'Bidirectional' }, + ], +}; + +// Add tools to the tool group +toolGroupService.addToolsToToolGroup('default', tools); +``` + +In this example, we create a new `ToolGroupService` instance and use it to create a new tool group with the ID `'default'`. We then define an object `tools` that contains the active and passive tools we want to add to the tool group. Finally, we call the `addToolsToToolGroup` method to add the tools to the newly created tool group. + +:::tip +You can begin the viewer with certain toggle tools already active. For example, if you have your 'referencelines' tool enabled, it will be active when the viewer starts, and the icon state will be correctly set to active as well. +::: + +```js +const tools = { + // the reset + // enabled + enabled: [{ toolName: toolNames.ImageOverlayViewer }, { toolName: toolNames.ReferenceLines }], + }; +``` + + +![alt text](../../../assets/img/reference-lines-from-start.png) diff --git a/platform/docs/docs/platform/services/data/ToolbarService.md b/platform/docs/docs/platform/services/data/ToolbarService.md index 3acfb3e2d..5a0a15964 100644 --- a/platform/docs/docs/platform/services/data/ToolbarService.md +++ b/platform/docs/docs/platform/services/data/ToolbarService.md @@ -3,16 +3,15 @@ sidebar_position: 5 sidebar_label: Toolbar Service --- -# Toolbar Service +# Toolbar **Service** ## Overview -`ToolBarService` handles the toolbar section buttons, and what happens when a -button is clicked by the user. +The `ToolBarService` is a straightforward service designed to handle the toolbar. Its main tasks include adding buttons, configuring them, and organizing button sections. When a button is clicked, it executes the designated commands. In the past, this service was more intricate, managing button states and logic. However, all that functionality has now been transferred to the `ToolBarModule` and evaluators. -
- -
+ ## Events @@ -23,20 +22,7 @@ button is clicked by the user. ## API -- `recordInteraction(interaction)`: executes the provided interaction which is - an object providing the following properties to the ToolBarService: - - - `interactionType`: can be `tool`, `toggle` and `action`. We will discuss - more each type below. - - `itemId`: tool name - - `groupId`: the Id for the tool button group; e.g., `Wwwc` which holds - presets. - - `commandName`: if tool has a command attached to run - - `commandOptions`: arguments for the command. - - `setActive`: Sets a given tool active (not as primary but as secondary) - -- `reset`: reset the state of the toolbarService, set the primary tool to be - `Wwwc` and unsubscribe tools that have registered their functions. +- `createButtonSection(key, buttons)` : creates a section of buttons in the toolbar with the given key and button Ids - `addButtons`: add the button definition to the service. [See below for button definition](#button-definitions). @@ -44,86 +30,26 @@ button is clicked by the user. - `setButtons`: sets the buttons defined in the service. It overrides all the previous buttons -- `getActiveTools`: returns the active tool + all the toggled-on tools -- `setDefaultTool`: sets the default tool that will be activated whenever the primary tool is deactivated without activating another/different tool -## State - -ToolBarService has an internal state that gets updated per tool interaction and -tracks the active toolId, state of the buttons that have toggled state, and the -group buttons and which tool in each group is active. - -```js -state = { - primaryToolId: 'Wwwc', - toggles: { - /* id: true/false */ - }, - groups: { - /* track most recent click per group...*/ - }, -}; -``` - -## Interaction type - -There are three main types that a tool can have which is defined in the -interaction object. - -- `tool`: setting a tool to be active; e.g., measurement tools -- `toggle`: toggling state of a tool; e.g., viewport link (sync) -- `action`: performs a registered action outside of the ToolBarService; e.g., - capture - -A _simplified_ implementation of the ToolBarService is: - -```js -export default class ToolBarService { - /** ... **/ - recordInteraction(interaction) { - /** ... **/ - switch (interactionType) { - case 'action': { - break; - } - case 'tool': { - this.state.primaryToolId = itemId; - - commandsManager.runCommand('setToolActive', interaction.commandOptions); - break; - } - case 'toggle': { - this.state.toggles[itemId] = - this.state.toggles[itemId] === undefined - ? true - : !this.state.toggles[itemId]; - interaction.commandOptions.toggledState = this.state.toggles[itemId]; - break; - } - default: - throw new Error(`Invalid interaction type: ${interactionType}`); - } - /** ... **/ - } - /** ... **/ -} -``` ## Button Definitions + +### Basic + The simplest toolbarButtons definition has the following properties: ![toolbarModule-zoom](../../../assets/img/toolbarModule-zoom.png) + ```js { - "id": "Zoom", - "type": "ohif.radioGroup", - "props": { - "type": "tool", - "icon": "tool-zoom", - "label": "Zoom", + id: 'Zoom', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-zoom', + label: 'Zoom', "commands": [ { "commandName": "setToolActive", @@ -133,27 +59,20 @@ The simplest toolbarButtons definition has the following properties: "context": "CORNERSTONE" } ] - } -} + evaluate: 'evaluate.cornerstoneTool', + }, +}, ``` | property | description | values | | ---------------- | ----------------------------------------------------------------- | ------------------------------------------- | | `id` | Unique string identifier for the definition | \* | -| `type` | Used to determine the button's behaviour | "tool", "toggle", "action" | | `icon` | A string name for an icon supported by the consuming application. | \* | | `label` | User/display friendly to show in UI | \* | | `commands` | (optional) The commands to run when the button is used. It include a commandName, commandOptions, and/or a context | Any command registered by a `CommandModule` | -There are three main types of toolbar buttons: -- `tool`: buttons that enable a tool by running the `setToolActive` command with - the `commandOptions` -- `toggle`: buttons that acts as a toggle: e.g., linking viewports -- `action`: buttons that executes an action: e.g., capture button to save - screenshot - -## Nested Buttons +### Nested (dropdown) You can use the `ohif.splitButton` type to build a button with extra tools in the dropdown. @@ -169,91 +88,178 @@ to create `MeasurementTools` nested button ```js title="modes/longitudinal/src/toolbarButtons.js" { - "id": "MeasurementTools", - "type": "ohif.splitButton", - "props": { - "groupId": "MeasurementTools", - "isRadio": true, - "primary": { - "id": "Length", - "icon": "tool-length", - "label": "Length", - "type": "tool", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "Length" - }, - "context": "CORNERSTONE" - }, - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "SRLength", - "toolGroupId": "SRToolGroup" - }, - "context": "CORNERSTONE" - } + id: 'MeasurementTools', + uiType: 'ohif.splitButton', + props: { + groupId: 'MeasurementToolsGroupId', + // group evaluate to determine which item should move to the top + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: ToolbarService.createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: _createSetToolActiveCommands('Length'), + evaluate: 'evaluate.cornerstoneTool', + }), + secondary: { + icon: 'chevron-down', + tooltip: 'More Measure Tools', + }, + items: [ + ToolbarService.createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Length', + }, + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'SRLength', + toolGroupId: 'SRToolGroup', + }, + // we can use the setToolActive command for this from Cornerstone commandsModule + context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.cornerstoneTool', + }), + ToolbarService.createButton({ + id: 'Bidirectional', + icon: 'tool-bidirectional', + label: 'Bidirectional', + tooltip: 'Bidirectional Tool', + commands: [ + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'Bidirectional', + }, + context: 'CORNERSTONE', + }, + { + commandName: 'setToolActive', + commandOptions: { + toolName: 'SRBidirectional', + toolGroupId: 'SRToolGroup', + }, + context: 'CORNERSTONE', + }, + ], + evaluate: 'evaluate.cornerstoneTool', + }), ], - "tooltip": "Length" }, - "secondary": { - "icon": "chevron-down", - "label": "", - "isActive": true, - "tooltip": "More Measure Tools" - }, - "items": [ - { - "id": "Bidirectional", - "icon": "tool-bidirectional", - "label": "Bidirectional", - "type": "tool", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "Bidirectional" - }, - "context": "CORNERSTONE" - }, - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "SRBidirectional", - "toolGroupId": "SRToolGroup" - }, - "context": "CORNERSTONE" - } - ], - "tooltip": "Bidirectional Tool" - }, - { - "id": "ArrowAnnotate", - "icon": "tool-annotate", - "label": "Annotation", - "type": "tool", - "commands": [ - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "ArrowAnnotate" - }, - "context": "CORNERSTONE" - }, - { - "commandName": "setToolActive", - "commandOptions": { - "toolName": "SRArrowAnnotate", - "toolGroupId": "SRToolGroup" - }, - "context": "CORNERSTONE" - } - ], - "tooltip": "Arrow Annotate" - }, - ] - } -} + }, ``` + +:::tip +split buttons can have a group evaluator (in the above example `evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList`) which can decide what happens +when the user interacts with the buttons. In the above example, we are promoting the button to the primary section if the cornerstone tool is not active in the list of buttons. + +There are other evaluators for instance `evaluate.group.promoteToPrimary` +which does not care about the cornerstone tool and promotes the button to the primary section anyway +::: + +:::tip +If you don't provide a group evaluator nothing would happen and the button will stay in the secondary section. +::: + +## Listeners +Sometimes you need a tool to listen to specific events in order to react properly. +You can add `listeners` for this purpose. We use this pattern for referencelineTools +which should set its source of reference upon active viewport change + +Currently you can subscribe to the following events: +- `ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED`: when the active viewport changes +- `ViewportGridService.EVENTS.VIEWPORTS_READY`: when the viewports are ready in the grid + + +```js + +const ReferenceLinesListeners: RunCommand = [ + { + commandName: 'setSourceViewportForReferenceLinesTool', + context: 'CORNERSTONE', + }, +]; + +ToolbarService.createButton({ + id: 'ReferenceLines', + icon: 'tool-referenceLines', + label: 'Reference Lines', + tooltip: 'Show Reference Lines', + commands: [ + { + commandName: 'setToolEnabled', + commandOptions: { + toolName: 'ReferenceLines', + toggle: true, + }, + context: 'CORNERSTONE', + }, + ], + listeners: { + [ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners, + [ViewportGridService.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners, + }, + evaluate: 'evaluate.cornerstoneTool.toggle', +}), + +``` + + + +## Button Sections +In order to organize the buttons, you can create button sections in the toolbar. And +assign buttons to each section separately. + +OHIF provides a `primary` section by default. You can add more sections as needed in your UI +and use toolbarService to create and manage them. (You can look at the toolBox implementation +which take advantage of having a dedicated section for the tools with advanced options, +we use that in the segmentation mode). + + +## Example + +For instance in `longitudinal` mode we are using the `onModeEnter` hook to +add the buttons to the toolbarService and assign them to the primary section. + +```js title="modes/longitudinal/src/index.js" +toolbarService.addButtons([...toolbarButtons, ...moreTools]); +toolbarService.createButtonSection('primary', [ + 'MeasurementTools', + 'Zoom', + 'info', + 'WindowLevel', + 'Pan', + 'Capture', + 'Layout', + 'MPR', + 'Crosshairs', + 'MoreTools', +]); +``` + +as you see we creating the button section and assigning buttons based on their Ids. + +:::tip +You can even duplicate the same button in different sections and the button will be +in sync in all sections (thanks to the evaluation system). +::: + +:::tip +we will add more section in the toolbar (other than primary) in the future. +::: + +:::note +Don't forget to set up your toolGroups to ensure that your buttons function correctly. Buttons serve as a visual interface. When you interact with them, they execute their commands, and evaluators determine their state post-interaction. +::: diff --git a/platform/docs/docs/platform/services/ui/viewport-grid-service.md b/platform/docs/docs/platform/services/ui/viewport-grid-service.md index 6f8435905..186afc419 100644 --- a/platform/docs/docs/platform/services/ui/viewport-grid-service.md +++ b/platform/docs/docs/platform/services/ui/viewport-grid-service.md @@ -18,6 +18,8 @@ There are seven events that get publish in `ViewportGridService `: | ACTIVE_VIEWPORT_ID_CHANGED | Fires the Id of the active viewport is changed | | LAYOUT_CHANGED | Fires the layout is changed | | GRID_STATE_CHANGED | Fires when the entire grid state is changed | +| VIEWPORTS_READY | Fires when the viewports are ready in the grid | + ## Interface For a more detailed look on the options and return values each of these methods diff --git a/platform/ui/.storybook/main.ts b/platform/ui/.storybook/main.ts index 54b817b1a..62612396a 100644 --- a/platform/ui/.storybook/main.ts +++ b/platform/ui/.storybook/main.ts @@ -85,6 +85,14 @@ const config: StorybookConfig = { include: path.resolve(__dirname, '../'), }); + // ignore the file @icr/polyseg-wasm during the build as it is a wasm file and + // we don't need that for ui + config.module.rules.push({ + test: /@icr\/polyseg-wasm/, + type: 'javascript/auto', + loader: 'file-loader', + }); + // Return the altered config return config; }, diff --git a/platform/ui/src/assets/icons/icon-tool-brush.svg b/platform/ui/src/assets/icons/icon-tool-brush.svg index 7f78d720a..2258260d9 100644 --- a/platform/ui/src/assets/icons/icon-tool-brush.svg +++ b/platform/ui/src/assets/icons/icon-tool-brush.svg @@ -1,13 +1,9 @@ - - icon-tool-brush - - - - - - - - + + tool-seg-brush + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-tool-eraser.svg b/platform/ui/src/assets/icons/icon-tool-eraser.svg index 5c72e4c37..a1f78fed4 100644 --- a/platform/ui/src/assets/icons/icon-tool-eraser.svg +++ b/platform/ui/src/assets/icons/icon-tool-eraser.svg @@ -1,14 +1,10 @@ - - icon-tool-eraser - - - - - - - - - + + tool-seg-eraser + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-tool-shape.svg b/platform/ui/src/assets/icons/icon-tool-shape.svg index 132f7b58a..290d156e6 100644 --- a/platform/ui/src/assets/icons/icon-tool-shape.svg +++ b/platform/ui/src/assets/icons/icon-tool-shape.svg @@ -1,13 +1,9 @@ - - icon-tool-shape - - - - - - - - + + tool-seg-shape + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-tool-threshold.svg b/platform/ui/src/assets/icons/icon-tool-threshold.svg index d1bcaa76e..4870fa5a4 100644 --- a/platform/ui/src/assets/icons/icon-tool-threshold.svg +++ b/platform/ui/src/assets/icons/icon-tool-threshold.svg @@ -1,17 +1,17 @@ - - icon-tool-threshold - - - - - - - - - - - + + tool-seg-threshold + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-elipse.svg b/platform/ui/src/assets/icons/tool-ellipse.svg similarity index 100% rename from platform/ui/src/assets/icons/tool-elipse.svg rename to platform/ui/src/assets/icons/tool-ellipse.svg diff --git a/platform/ui/src/components/AdvancedToolbox/AdvancedToolbox.tsx b/platform/ui/src/components/AdvancedToolbox/AdvancedToolbox.tsx index 690ce3570..2748e522b 100644 --- a/platform/ui/src/components/AdvancedToolbox/AdvancedToolbox.tsx +++ b/platform/ui/src/components/AdvancedToolbox/AdvancedToolbox.tsx @@ -3,6 +3,10 @@ import classnames from 'classnames'; import { PanelSection, Icon, Tooltip } from '../../components'; import ToolSettings from './ToolSettings'; +/** + * Use Toolbox component instead of this although it doesn't have "Advanced" in its name + * it is better to use it instead of this one + */ const AdvancedToolbox = ({ title, items }) => { const [activeItemName, setActiveItemName] = useState(null); diff --git a/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx b/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx index 75eae9129..fc587157e 100644 --- a/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx +++ b/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx @@ -1,10 +1,11 @@ import React from 'react'; -import { ButtonGroup, InputRange, ButtonEnums } from '../../components'; +import { ButtonGroup, InputDoubleRange, InputRange } from '../../components'; const SETTING_TYPES = { RANGE: 'range', RADIO: 'radio', CUSTOM: 'custom', + DOUBLE_RANGE: 'double-range', }; function ToolSettings({ options }) { @@ -12,73 +13,111 @@ function ToolSettings({ options }) { return null; } - const getButtons = option => { - const buttons = []; - - option.values?.map(({ label, value: optionValue }, index) => { - buttons.push({ - children: label, - onClick: () => option.onChange(optionValue), - key: `button-${option.id}-${index}`, // A unique key - }); - }); - - return buttons; - }; - return (
{options?.map(option => { - if (option.type === SETTING_TYPES.RANGE) { - return ( -
-
{option.name}
-
- option.onChange(e)} - allowNumberEdit={true} - showAdjustmentArrows={false} - inputClassName="ml-1 w-4/5 cursor-pointer" - /> -
-
- ); + if (option.condition && option.condition?.({ options }) === false) { + return null; } - if (option.type === SETTING_TYPES.RADIO) { - return ( -
- {option.name} -
- -
-
- ); - } - if (option.type === SETTING_TYPES.CUSTOM) { - return ( -
- {typeof option.children === 'function' ? option.children() : option.children} -
- ); + switch (option.type) { + case SETTING_TYPES.RANGE: + return renderRangeSetting(option); + case SETTING_TYPES.RADIO: + return renderRadioSetting(option); + case SETTING_TYPES.DOUBLE_RANGE: + return renderDoubleRangeSetting(option); + case SETTING_TYPES.CUSTOM: + return renderCustomSetting(option); + default: + return null; } })}
); } +const renderRangeSetting = option => { + return ( +
+
{option.name}
+
+ option.commands?.(value)} + allowNumberEdit={true} + showAdjustmentArrows={false} + inputClassName="ml-1 w-4/5 cursor-pointer" + /> +
+
+ ); +}; + +const renderRadioSetting = option => { + const renderButtons = option => { + return option.values?.map(({ label, value: optionValue }, index) => ( + + )); + }; + + return ( +
+ {option.name} +
+ value === option.value) || 0} + > + {renderButtons(option)} + +
+
+ ); +}; + +const renderDoubleRangeSetting = option => { + return ( +
+ +
+ ); +}; + +const renderCustomSetting = option => { + return ( +
+ {typeof option.children === 'function' ? option.children() : option.children} +
+ ); +}; + export default ToolSettings; diff --git a/platform/ui/src/components/AdvancedToolbox/index.js b/platform/ui/src/components/AdvancedToolbox/index.js index 5adfdbc9a..450d4f541 100644 --- a/platform/ui/src/components/AdvancedToolbox/index.js +++ b/platform/ui/src/components/AdvancedToolbox/index.js @@ -1,2 +1,4 @@ import AdvancedToolbox from './AdvancedToolbox'; +import ToolSettings from './ToolSettings'; export default AdvancedToolbox; +export { ToolSettings }; diff --git a/platform/ui/src/components/Button/Button.tsx b/platform/ui/src/components/Button/Button.tsx index b1e750c5c..788eb4a50 100644 --- a/platform/ui/src/components/Button/Button.tsx +++ b/platform/ui/src/components/Button/Button.tsx @@ -67,9 +67,12 @@ const Button = ({ name, className, onClick, + dataCY, startIconTooltip = null, endIconTooltip = null, }) => { + dataCY = dataCY || `${name}-btn`; + const startIcon = startIconProp && ( <> {React.cloneElement(startIconProp, { @@ -109,7 +112,7 @@ const Button = ({ disabled={disabled} ref={buttonElement} onClick={handleOnClick} - data-cy={`${name}-btn`} + data-cy={dataCY} > {startIconTooltip ? {startIcon} : startIcon} {children} @@ -148,6 +151,8 @@ Button.propTypes = { startIconTooltip: PropTypes.node, /** Tooltip for the end icon */ endIconTooltip: PropTypes.node, + /** Data attribute for testing */ + dataCY: PropTypes.string, }; export default Button; diff --git a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx index 4d56ddec5..d47288bf2 100644 --- a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx +++ b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx @@ -1,21 +1,25 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect, cloneElement, Children } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { ButtonEnums } from '../../components'; const ButtonGroup = ({ - buttons, - onActiveIndexChange, + children, className, orientation = ButtonEnums.orientation.horizontal, - defaultActiveIndex = 0, + activeIndex: defaultActiveIndex = 0, + onActiveIndexChange, + disabled = false, }) => { const [activeIndex, setActiveIndex] = useState(defaultActiveIndex); - const handleButtonClick = (e, index) => { + useEffect(() => { + setActiveIndex(defaultActiveIndex); + }, [defaultActiveIndex]); + + const handleButtonClick = index => { setActiveIndex(index); onActiveIndexChange && onActiveIndexChange(index); - buttons[index].onClick && buttons[index].onClick(e); }; const orientationClasses = { @@ -29,35 +33,40 @@ const ButtonGroup = ({
- {buttons.map((buttonProps, index) => { - const isActive = index === activeIndex; - return ( -
); }; ButtonGroup.propTypes = { - buttons: PropTypes.arrayOf(PropTypes.object).isRequired, + children: PropTypes.node.isRequired, orientation: PropTypes.oneOf(Object.values(ButtonEnums.orientation)), - type: PropTypes.oneOf(Object.values(ButtonEnums.type)), - size: PropTypes.oneOf(Object.values(ButtonEnums.size)), - defaultActiveIndex: PropTypes.number, + activeIndex: PropTypes.number, onActiveIndexChange: PropTypes.func, className: PropTypes.string, + disabled: PropTypes.bool, }; export default ButtonGroup; diff --git a/platform/ui/src/components/ButtonGroup/__stories__/buttonGroup.stories.mdx b/platform/ui/src/components/ButtonGroup/__stories__/buttonGroup.stories.mdx index aa15fb5e1..cb5f00ddf 100644 --- a/platform/ui/src/components/ButtonGroup/__stories__/buttonGroup.stories.mdx +++ b/platform/ui/src/components/ButtonGroup/__stories__/buttonGroup.stories.mdx @@ -16,10 +16,6 @@ export const argTypes = { component={ButtonGroup} /> -export const buttonGroupTemplate = args => { - return ; -}; - { ButtonGroup is a container for a group of buttons. - console.log('Button 1 clicked'), - }, - { - children: 'Button 2', - onClick: () => console.log('Button 2 clicked'), - }, - { - children: 'Button 3', - onClick: () => console.log('Button 3 clicked'), - }, - ], - activeIndex: 0, - onActiveIndexChange: index => console.log(index), - }} - > - {buttonGroupTemplate.bind({})} + + console.log(index)} + > + + + + diff --git a/platform/ui/src/components/Header/Header.tsx b/platform/ui/src/components/Header/Header.tsx index 18fdbabc4..99b97b527 100644 --- a/platform/ui/src/components/Header/Header.tsx +++ b/platform/ui/src/components/Header/Header.tsx @@ -30,13 +30,11 @@ function Header({ return ( -
-
- {/* // TODO: Should preserve filter/sort - // Either injected service? Or context (like react router's `useLocation`?) */} +
+
-
{children}
-
+ {/*
{future left component}
*/} +
+
{children}
+
+
{ const buttonElement = useRef(null); @@ -118,7 +92,7 @@ const IconButton = ({ onClick(e); }; - const bgColorToUse = bgColor ? bgColor : backgroundClasses[variant][color]; + const padding = size === 'toolbar' ? '8px' : size === 'toolbox' ? '4px' : null; return ( +
+ +
+ ); +} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingQuality.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingQuality.tsx new file mode 100644 index 000000000..d1940a196 --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingQuality.tsx @@ -0,0 +1,69 @@ +import React, { ReactElement, useCallback, useState, useEffect } from 'react'; +import { VolumeRenderingQualityProps } from '../../types/ViewportPresets'; + +export function VolumeRenderingQuality({ + volumeRenderingQualityRange, + commandsManager, + serviceManager, + viewportId, +}: VolumeRenderingQualityProps): ReactElement { + const { cornerstoneViewportService } = serviceManager.services; + const { min, max, step } = volumeRenderingQualityRange; + const [quality, setQuality] = useState(null); + + const onChange = useCallback( + (value: number) => { + commandsManager.runCommand('setVolumeRenderingQulaity', { + viewportId, + volumeQuality: value, + }); + setQuality(value); + }, + [commandsManager, viewportId] + ); + + const calculateBackground = value => { + const percentage = ((value - 0) / (1 - 0)) * 100; + return `linear-gradient(to right, #5acce6 0%, #5acce6 ${percentage}%, #3a3f99 ${percentage}%, #3a3f99 100%)`; + }; + + useEffect(() => { + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + const { actor } = viewport.getActors()[0]; + const mapper = actor.getMapper(); + const image = mapper.getInputData(); + const spacing = image.getSpacing(); + const sampleDistance = mapper.getSampleDistance(); + const averageSpacing = spacing.reduce((a, b) => a + b) / 3.0; + if (sampleDistance === averageSpacing) { + setQuality(1); + } else { + setQuality(Math.sqrt(averageSpacing / (sampleDistance * 0.5))); + } + }, [cornerstoneViewportService, viewportId]); + return ( + <> +
+ + {quality !== null && ( + onChange(parseInt(e.target.value, 10))} + style={{ background: calculateBackground((quality - min) / (max - min)) }} + /> + )} +
+ + ); +} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShade.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShade.tsx new file mode 100644 index 000000000..319158dab --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShade.tsx @@ -0,0 +1,39 @@ +import React, { ReactElement, useCallback, useEffect, useState } from 'react'; +import { SwitchButton } from '@ohif/ui'; +import { VolumeShadeProps } from '../../types/ViewportPresets'; + +export function VolumeShade({ + commandsManager, + viewportId, + serviceManager, +}: VolumeShadeProps): ReactElement { + const { cornerstoneViewportService } = serviceManager.services; + const [shade, setShade] = useState(true); + const [key, setKey] = useState(0); + + const onShadeChange = useCallback( + (checked: boolean) => { + commandsManager.runCommand('setVolumeLighting', { viewportId, options: { shade: checked } }); + }, + [commandsManager, viewportId] + ); + useEffect(() => { + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + const { actor } = viewport.getActors()[0]; + const shade = actor.getProperty().getShade(); + setShade(shade); + setKey(key + 1); + }, [viewportId, cornerstoneViewportService]); + + return ( + { + setShade(!shade); + onShadeChange(!shade); + }} + /> + ); +} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx new file mode 100644 index 000000000..6ad9eb9d3 --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx @@ -0,0 +1,91 @@ +import React, { ReactElement, useCallback, useEffect, useState, useRef } from 'react'; +import { VolumeShiftProps } from '../../types/ViewportPresets'; + +export function VolumeShift({ + viewportId, + commandsManager, + serviceManager, +}: VolumeShiftProps): ReactElement { + const { cornerstoneViewportService } = serviceManager.services; + const [minShift, setMinShift] = useState(null); + const [maxShift, setMaxShift] = useState(null); + const [shift, setShift] = useState( + cornerstoneViewportService.getCornerstoneViewport(viewportId)?.shiftedBy || 0 + ); + const [step, setStep] = useState(null); + const [isBlocking, setIsBlocking] = useState(false); + + const prevShiftRef = useRef(shift); + + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + const { actor } = viewport.getActors()[0]; + const ofun = actor.getProperty().getScalarOpacity(0); + + useEffect(() => { + if (isBlocking) { + return; + } + const range = ofun.getRange(); + + const transferFunctionWidth = range[1] - range[0]; + + const minShift = -transferFunctionWidth; + const maxShift = transferFunctionWidth; + + setMinShift(minShift); + setMaxShift(maxShift); + setStep(Math.pow(10, Math.floor(Math.log10(transferFunctionWidth / 500)))); + }, [cornerstoneViewportService, viewportId, actor, ofun, isBlocking]); + + const onChangeRange = useCallback( + newShift => { + const shiftDifference = newShift - prevShiftRef.current; + prevShiftRef.current = newShift; + viewport.shiftedBy = newShift; + commandsManager.runCommand('shiftVolumeOpacityPoints', { + viewportId, + shift: shiftDifference, + }); + }, + [commandsManager, viewportId, viewport] + ); + + const calculateBackground = value => { + const percentage = ((value - 0) / (1 - 0)) * 100; + return `linear-gradient(to right, #5acce6 0%, #5acce6 ${percentage}%, #3a3f99 ${percentage}%, #3a3f99 100%)`; + }; + + return ( + <> +
+ + {step !== null && ( + { + const shiftValue = parseInt(e.target.value, 10); + setShift(shiftValue); + onChangeRange(shiftValue); + }} + id="shift" + onMouseDown={() => setIsBlocking(true)} + onMouseUp={() => setIsBlocking(false)} + max={maxShift} + min={minShift} + type="range" + step={step} + style={{ + background: calculateBackground((shift - minShift) / (maxShift - minShift)), + }} + /> + )} +
+ + ); +} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx new file mode 100644 index 000000000..44b75bf93 --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx @@ -0,0 +1,48 @@ +import React, { ReactElement, useCallback } from 'react'; +import { AllInOneMenu } from '@ohif/ui'; +import { WindowLevelPreset } from '../../types/WindowLevel'; +import { CommandsManager } from '@ohif/core'; +import { useTranslation } from 'react-i18next'; + +export type WindowLevelProps = { + viewportId: string; + presets: Record>; + commandsManager: CommandsManager; +}; + +export function WindowLevel({ + viewportId, + commandsManager, + presets, +}: WindowLevelProps): ReactElement { + const { t } = useTranslation('WindowLevelActionMenu'); + + const onSetWindowLevel = useCallback( + props => { + commandsManager.run({ + commandName: 'setViewportWindowLevel', + commandOptions: { + ...props, + }, + context: 'CORNERSTONE', + }); + }, + [commandsManager] + ); + + return ( + + + {t('Modality Presets', { modality: Object.keys(presets)[0] })} + + {Object.values(presets)[0].map((preset, index) => ( + onSetWindowLevel({ ...preset, viewportId })} + > + ))} + + ); +} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx new file mode 100644 index 000000000..b4db9fd21 --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx @@ -0,0 +1,205 @@ +import React, { ReactElement, useCallback, useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import classNames from 'classnames'; +import { AllInOneMenu, useViewportGrid } from '@ohif/ui'; +import { CommandsManager, ServicesManager } from '@ohif/core'; +import { Colormap } from './Colormap'; +import { Colorbar } from './Colorbar'; +import { setViewportColorbar } from './Colorbar'; +import { WindowLevelPreset } from '../../types/WindowLevel'; +import { ColorbarProperties } from '../../types/Colorbar'; +import { VolumeRenderingQualityRange } from '../../types/ViewportPresets'; +import { WindowLevel } from './WindowLevel'; +import { VolumeRenderingPresets } from './VolumeRenderingPresets'; +import { VolumeRenderingOptions } from './VolumeRenderingOptions'; +import { ViewportPreset } from '../../types/ViewportPresets'; +import { VolumeViewport3D } from '@cornerstonejs/core'; +import { utilities } from '@cornerstonejs/core'; + +export type WindowLevelActionMenuProps = { + viewportId: string; + element: HTMLElement; + presets: Record>; + verticalDirection: AllInOneMenu.VerticalDirection; + horizontalDirection: AllInOneMenu.HorizontalDirection; + commandsManager: CommandsManager; + serviceManager: ServicesManager; + colorbarProperties: ColorbarProperties; + displaySets: Array; + volumeRenderingPresets: Array; + volumeRenderingQualityRange: VolumeRenderingQualityRange; +}; + +export function WindowLevelActionMenu({ + viewportId, + element, + presets, + verticalDirection, + horizontalDirection, + commandsManager, + serviceManager, + colorbarProperties, + displaySets, + volumeRenderingPresets, + volumeRenderingQualityRange, +}: WindowLevelActionMenuProps): ReactElement { + const { + colormaps, + colorbarContainerPosition, + colorbarInitialColormap, + colorbarTickPosition, + width: colorbarWidth, + } = colorbarProperties; + const { colorbarService, cornerstoneViewportService } = serviceManager.services; + const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId); + const backgroundColor = viewportInfo.getViewportOptions().background; + const isLight = backgroundColor ? utilities.isEqual(backgroundColor, [1, 1, 1]) : false; + + const nonImageModalities = ['SR', 'SEG', 'SM', 'RTSTRUCT', 'RTPLAN', 'RTDOSE']; + + const { t } = useTranslation('WindowLevelActionMenu'); + + const [viewportGrid] = useViewportGrid(); + const { activeViewportId } = viewportGrid; + + const [vpHeight, setVpHeight] = useState(element?.clientHeight); + const [menuKey, setMenuKey] = useState(0); + const [is3DVolume, setIs3DVolume] = useState(false); + + const onSetColorbar = useCallback(() => { + setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, { + colormaps, + ticks: { + position: colorbarTickPosition, + }, + width: colorbarWidth, + position: colorbarContainerPosition, + activeColormapName: colorbarInitialColormap, + }); + }, [commandsManager]); + + useEffect(() => { + const newVpHeight = element?.clientHeight; + if (vpHeight !== newVpHeight) { + setVpHeight(newVpHeight); + } + }, [element, vpHeight]); + + useEffect(() => { + if (!colorbarService.hasColorbar(viewportId)) { + return; + } + window.setTimeout(() => { + colorbarService.removeColorbar(viewportId); + onSetColorbar(); + }, 0); + }, [viewportId]); + + useEffect(() => { + if (colorbarService.hasColorbar(viewportId)) { + colorbarService.removeColorbar(viewportId); + } + }, [displaySets]); + + useEffect(() => { + setMenuKey(menuKey + 1); + const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + if (viewport instanceof VolumeViewport3D) { + setIs3DVolume(true); + } else { + setIs3DVolume(false); + } + }, [ + displaySets, + viewportId, + presets, + volumeRenderingQualityRange, + volumeRenderingPresets, + colorbarProperties, + activeViewportId, + viewportGrid, + ]); + + return ( + { + setVpHeight(element.clientHeight); + }} + menuKey={menuKey} + > + + {!is3DVolume && ( + !nonImageModalities.includes(ds.Modality))} + commandsManager={commandsManager} + serviceManager={serviceManager} + colorbarProperties={colorbarProperties} + /> + )} + + {colormaps && !is3DVolume && ( + + !nonImageModalities.includes(ds.Modality))} + commandsManager={commandsManager} + serviceManager={serviceManager} + /> + + )} + + {presets && !is3DVolume && ( + + + + )} + + {volumeRenderingPresets && is3DVolume && ( + + )} + + {volumeRenderingQualityRange && is3DVolume && ( + + + + )} + + + ); +} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/defaultWindowLevelPresets.ts b/extensions/cornerstone/src/components/WindowLevelActionMenu/defaultWindowLevelPresets.ts new file mode 100644 index 000000000..f12a7530b --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/defaultWindowLevelPresets.ts @@ -0,0 +1,23 @@ +// The following are the default window level presets and can be further +// configured via the customization service. +const defaultWindowLevelPresets = { + CT: [ + { description: 'Soft tissue', window: '400', level: '40' }, + { description: 'Lung', window: '1500', level: '-600' }, + { description: 'Liver', window: '150', level: '90' }, + { description: 'Bone', window: '2500', level: '480' }, + { description: 'Brain', window: '80', level: '40' }, + ], + + PT: [ + { description: 'Default', window: '5', level: '2.5' }, + { description: 'SUV', window: '0', level: '3' }, + { description: 'SUV', window: '0', level: '5' }, + { description: 'SUV', window: '0', level: '7' }, + { description: 'SUV', window: '0', level: '8' }, + { description: 'SUV', window: '0', level: '10' }, + { description: 'SUV', window: '0', level: '15' }, + ], +}; + +export default defaultWindowLevelPresets; diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/getWindowLevelActionMenu.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/getWindowLevelActionMenu.tsx new file mode 100644 index 000000000..7a31c5a7a --- /dev/null +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/getWindowLevelActionMenu.tsx @@ -0,0 +1,44 @@ +import React, { ReactNode } from 'react'; +import { WindowLevelActionMenu } from './WindowLevelActionMenu'; + +export function getWindowLevelActionMenu({ + viewportId, + element, + displaySets, + servicesManager, + commandsManager, + verticalDirection, + horizontalDirection, +}): ReactNode { + const { customizationService } = servicesManager.services; + + const { presets } = customizationService.get('cornerstone.windowLevelPresets'); + const colorbarProperties = customizationService.get('cornerstone.colorbar'); + const { volumeRenderingPresets, volumeRenderingQualityRange } = customizationService.get( + 'cornerstone.3dVolumeRendering' + ); + + const displaySetPresets = displaySets + .filter(displaySet => presets[displaySet.Modality]) + .map(displaySet => { + return { [displaySet.Modality]: presets[displaySet.Modality] }; + }); + + const hasMenu = displaySetPresets.length > 0; + + return hasMenu ? ( + + ) : null; +} diff --git a/extensions/cornerstone/src/contextProviders/ViewportActionCornersProvider.tsx b/extensions/cornerstone/src/contextProviders/ViewportActionCornersProvider.tsx new file mode 100644 index 000000000..37dab07e6 --- /dev/null +++ b/extensions/cornerstone/src/contextProviders/ViewportActionCornersProvider.tsx @@ -0,0 +1,159 @@ +import React, { + createContext, + useCallback, + useContext, + useEffect, + useMemo, + useReducer, +} from 'react'; +import PropTypes from 'prop-types'; + +import { Types, ViewportActionCornersLocations } from '@ohif/ui'; +import ViewportActionCornersService, { + ActionComponentInfo, +} from '../services/ViewportActionCornersService/ViewportActionCornersService'; + +interface StateComponentInfo extends Types.ViewportActionCornersComponentInfo { + indexPriority: number; +} + +type State = Record>>; + +const DEFAULT_STATE: State = { + // default here is the viewportId of the default viewport + default: { + [ViewportActionCornersLocations.topLeft]: [], + [ViewportActionCornersLocations.topRight]: [], + [ViewportActionCornersLocations.bottomLeft]: [], + [ViewportActionCornersLocations.bottomRight]: [], + }, + // [anotherViewportId]: { ..... } +}; + +export const ViewportActionCornersContext = createContext(DEFAULT_STATE); + +export function ViewportActionCornersProvider({ children, service }) { + const viewportActionCornersReducer = (state, action) => { + switch (action.type) { + case 'SET_ACTION_COMPONENT': { + const { viewportId, id, component, location, indexPriority = 0 } = action.payload; + // Get the components at the specified location of the specified viewport. + let locationComponents = state?.[viewportId]?.[location] + ? [...state[viewportId][location]] + : []; + + // If the component (id) already exists at the location specified in the payload, + // then it must be replaced with the component in the payload so first + // remove it from that location. + const deletionIndex = locationComponents.findIndex(component => component.id === id); + if (deletionIndex !== -1) { + locationComponents = [ + ...locationComponents.slice(0, deletionIndex), + ...locationComponents.slice(deletionIndex + 1), + ]; + } + + // Insert the component from the payload but + // do not insert an undefined or null component. + if (component) { + const insertionIndex = locationComponents.findIndex( + component => indexPriority <= component.indexPriority + ); + locationComponents = [ + ...locationComponents.slice(0, insertionIndex), + { + id, + component, + indexPriority, + }, + ...locationComponents.slice(insertionIndex + 1), + ]; + } + + return { + ...state, + ...{ + [viewportId]: { + ...state[viewportId], + [location]: locationComponents, + }, + }, + }; + } + case 'CLEAR_ACTION_COMPONENTS': { + const viewportId = action.payload; + const nextState = { ...state }; + delete nextState[viewportId]; + return nextState; + } + default: + return { ...state }; + } + }; + + const [viewportActionCornersState, dispatch] = useReducer( + viewportActionCornersReducer, + DEFAULT_STATE + ); + + const getState = useCallback(() => { + return viewportActionCornersState; + }, [viewportActionCornersState]); + + const setComponent = useCallback( + (actionComponentInfo: ActionComponentInfo) => { + dispatch({ type: 'SET_ACTION_COMPONENT', payload: actionComponentInfo }); + }, + [dispatch] + ); + + const setComponents = useCallback( + (actionComponentInfos: Array) => { + actionComponentInfos.forEach(actionComponentInfo => + dispatch({ type: 'SET_ACTION_COMPONENT', payload: actionComponentInfo }) + ); + }, + [dispatch] + ); + + const clear = useCallback( + (viewportId: string) => dispatch({ type: 'CLEAR_ACTION_COMPONENTS', payload: viewportId }), + [dispatch] + ); + useEffect(() => { + if (service) { + service.setServiceImplementation({ + getState, + setComponent, + setComponents, + clear, + }); + } + }, [getState, service, setComponent, setComponents]); + + // run many of the calls through the service itself since we want to publish events + const api = { + getState, + setComponent: props => service.setComponent(props), + setComponents: props => service.setComponents(props), + clear: props => service.clear(props), + }; + + const contextValue = useMemo( + () => [viewportActionCornersState, api], + [viewportActionCornersState, api] + ); + + return ( + + {children} + + ); +} + +ViewportActionCornersProvider.propTypes = { + children: PropTypes.node, + service: PropTypes.instanceOf(ViewportActionCornersService).isRequired, +}; + +export const useViewportActionCornersContext = () => useContext(ViewportActionCornersContext); diff --git a/extensions/cornerstone/src/getCustomizationModule.ts b/extensions/cornerstone/src/getCustomizationModule.ts index acb064244..90bf67f6c 100644 --- a/extensions/cornerstone/src/getCustomizationModule.ts +++ b/extensions/cornerstone/src/getCustomizationModule.ts @@ -1,6 +1,12 @@ import { Enums } from '@cornerstonejs/tools'; import { toolNames } from './initCornerstoneTools'; import DicomUpload from './components/DicomUpload/DicomUpload'; +import defaultWindowLevelPresets from './components/WindowLevelActionMenu/defaultWindowLevelPresets'; +import { colormaps } from './utils/colormaps'; +import { CONSTANTS } from '@cornerstonejs/core'; + +const DefaultColormap = 'Grayscale'; +const { VIEWPORT_PRESETS } = CONSTANTS; const tools = { active: [ @@ -37,6 +43,27 @@ function getCustomizationModule() { id: 'cornerstone.overlayViewportTools', tools, }, + { + id: 'cornerstone.windowLevelPresets', + presets: defaultWindowLevelPresets, + }, + { + id: 'cornerstone.colorbar', + width: '16px', + colorbarTickPosition: 'left', + colormaps, + colorbarContainerPosition: 'right', + colorbarInitialColormap: DefaultColormap, + }, + { + id: 'cornerstone.3dVolumeRendering', + volumeRenderingPresets: VIEWPORT_PRESETS, + volumeRenderingQualityRange: { + min: 1, + max: 4, + step: 1, + }, + }, ], }, ]; diff --git a/extensions/cornerstone/src/hps/fourUp.ts b/extensions/cornerstone/src/hps/fourUp.ts index ac7435fb8..69305e6c1 100644 --- a/extensions/cornerstone/src/hps/fourUp.ts +++ b/extensions/cornerstone/src/hps/fourUp.ts @@ -52,6 +52,9 @@ export const fourUp = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -94,6 +97,9 @@ export const fourUp = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -117,6 +123,9 @@ export const fourUp = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, diff --git a/extensions/cornerstone/src/hps/main3D.ts b/extensions/cornerstone/src/hps/main3D.ts index e59437cb3..a00ccc4a7 100644 --- a/extensions/cornerstone/src/hps/main3D.ts +++ b/extensions/cornerstone/src/hps/main3D.ts @@ -97,6 +97,9 @@ export const main3D = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -120,6 +123,9 @@ export const main3D = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -143,6 +149,9 @@ export const main3D = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, diff --git a/extensions/cornerstone/src/hps/mpr.ts b/extensions/cornerstone/src/hps/mpr.ts index 5927af785..ea2219163 100644 --- a/extensions/cornerstone/src/hps/mpr.ts +++ b/extensions/cornerstone/src/hps/mpr.ts @@ -87,6 +87,9 @@ export const mpr: Types.HangingProtocol.Protocol = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -111,6 +114,9 @@ export const mpr: Types.HangingProtocol.Protocol = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -135,6 +141,9 @@ export const mpr: Types.HangingProtocol.Protocol = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, diff --git a/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts b/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts index 120f6fb7e..759ce1849 100644 --- a/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts +++ b/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts @@ -59,6 +59,9 @@ export const mprAnd3DVolumeViewport = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -100,6 +103,9 @@ export const mprAnd3DVolumeViewport = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -123,6 +129,9 @@ export const mprAnd3DVolumeViewport = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, diff --git a/extensions/cornerstone/src/hps/primary3D.ts b/extensions/cornerstone/src/hps/primary3D.ts index 8d92943ae..11054d106 100644 --- a/extensions/cornerstone/src/hps/primary3D.ts +++ b/extensions/cornerstone/src/hps/primary3D.ts @@ -97,6 +97,9 @@ export const primary3D = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -120,6 +123,9 @@ export const primary3D = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -143,6 +149,9 @@ export const primary3D = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, diff --git a/extensions/cornerstone/src/hps/primaryAxial.ts b/extensions/cornerstone/src/hps/primaryAxial.ts index f42b919fa..430dcbf16 100644 --- a/extensions/cornerstone/src/hps/primaryAxial.ts +++ b/extensions/cornerstone/src/hps/primaryAxial.ts @@ -72,6 +72,9 @@ export const primaryAxial = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -95,6 +98,9 @@ export const primaryAxial = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -118,6 +124,9 @@ export const primaryAxial = { id: 'mpr', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, diff --git a/extensions/cornerstone/src/index.tsx b/extensions/cornerstone/src/index.tsx index 808f63afa..6a4fdffc1 100644 --- a/extensions/cornerstone/src/index.tsx +++ b/extensions/cornerstone/src/index.tsx @@ -19,6 +19,7 @@ import SyncGroupService from './services/SyncGroupService'; import SegmentationService from './services/SegmentationService'; import CornerstoneCacheService from './services/CornerstoneCacheService'; import CornerstoneViewportService from './services/ViewportService/CornerstoneViewportService'; +import ColorbarService from './services/ColorbarService'; import * as CornerstoneExtensionTypes from './types'; import { toolNames } from './initCornerstoneTools'; @@ -30,6 +31,8 @@ import { id } from './id'; import { measurementMappingUtils } from './utils/measurementServiceMappings'; import type { PublicViewportOptions } from './services/ViewportService/Viewport'; import ImageOverlayViewerTool from './tools/ImageOverlayViewerTool'; +import ViewportActionCornersService from './services/ViewportActionCornersService/ViewportActionCornersService'; +import { ViewportActionCornersProvider } from './contextProviders/ViewportActionCornersProvider'; const Component = React.lazy(() => { return import(/* webpackPrefetch: true */ './Viewport/OHIFCornerstoneViewport'); @@ -69,13 +72,19 @@ const cornerstoneExtension: Types.Extensions.Extension = { * @param configuration.csToolsConfig - Passed directly to `initCornerstoneTools` */ preRegistration: function (props: Types.Extensions.ExtensionParams): Promise { - const { servicesManager } = props; + const { servicesManager, serviceProvidersManager } = props; servicesManager.registerService(CornerstoneViewportService.REGISTRATION); servicesManager.registerService(ToolGroupService.REGISTRATION); servicesManager.registerService(SyncGroupService.REGISTRATION); servicesManager.registerService(SegmentationService.REGISTRATION); servicesManager.registerService(CornerstoneCacheService.REGISTRATION); + servicesManager.registerService(ViewportActionCornersService.REGISTRATION); + servicesManager.registerService(ColorbarService.REGISTRATION); + serviceProvidersManager.registerProvider( + ViewportActionCornersService.REGISTRATION.name, + ViewportActionCornersProvider + ); return init.call(this, props); }, diff --git a/extensions/cornerstone/src/init.tsx b/extensions/cornerstone/src/init.tsx index 6d7f3ef7a..2ddd64a33 100644 --- a/extensions/cornerstone/src/init.tsx +++ b/extensions/cornerstone/src/init.tsx @@ -29,6 +29,10 @@ import initContextMenu from './initContextMenu'; import initDoubleClick from './initDoubleClick'; import { CornerstoneServices } from './types'; import initViewTiming from './utils/initViewTiming'; +import { utilities } from '@cornerstonejs/core'; +import { colormaps } from './utils/colormaps'; + +const { registerColormap } = utilities.colormap; // TODO: Cypress tests are currently grabbing this from the window? window.cornerstone = cornerstone; @@ -282,10 +286,7 @@ export default async function init({ eventTarget.addEventListener(EVENTS.ELEMENT_DISABLED, elementDisabledHandler.bind(null)); - // viewportGridService.subscribe( - // viewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED, - // activeViewportEventListener - // ); + colormaps.forEach(registerColormap); } function CPUModal() { diff --git a/extensions/cornerstone/src/services/ColorbarService/ColorbarService.ts b/extensions/cornerstone/src/services/ColorbarService/ColorbarService.ts new file mode 100644 index 000000000..688abce65 --- /dev/null +++ b/extensions/cornerstone/src/services/ColorbarService/ColorbarService.ts @@ -0,0 +1,267 @@ +import { PubSubService } from '@ohif/core'; +import { RENDERING_ENGINE_ID } from '../ViewportService/constants'; +import { StackViewport, VolumeViewport, getRenderingEngine } from '@cornerstonejs/core'; +import { utilities } from '@cornerstonejs/tools'; +import { ColorbarOptions, ChangeTypes } from '../../types/Colorbar'; +const { ViewportColorbar } = utilities.voi.colorbar; + +export default class ColorbarService extends PubSubService { + static EVENTS = { + STATE_CHANGED: 'event::ColorbarService:stateChanged', + }; + + static defaultStyles = { + position: 'absolute', + boxSizing: 'border-box', + border: 'solid 1px #555', + cursor: 'initial', + }; + + static positionStyles = { + left: { left: '5%' }, + right: { right: '5%' }, + top: { top: '5%' }, + bottom: { bottom: '5%' }, + }; + + static defaultTickStyles = { + position: 'left', + style: { + font: '12px Arial', + color: '#fff', + maxNumTicks: 8, + tickSize: 5, + tickWidth: 1, + labelMargin: 3, + }, + }; + + public static REGISTRATION = { + name: 'colorbarService', + create: () => { + return new ColorbarService(); + }, + }; + colorbars = {}; + + constructor() { + super(ColorbarService.EVENTS); + } + + /** + * Adds a colorbar to a specific viewport identified by `viewportId`, using the provided `displaySetInstanceUIDs` and `options`. + * This method sets up the colorbar, associates it with the viewport, and applies initial configurations based on the provided options. + * + * @param viewportId The identifier for the viewport where the colorbar will be added. + * @param displaySetInstanceUIDs An array of display set instance UIDs to associate with the colorbar. + * @param options Configuration options for the colorbar, including position, colormaps, active colormap name, ticks, and width. + */ + public addColorbar(viewportId, displaySetInstanceUIDs, options = {} as ColorbarOptions) { + const renderingEngine = getRenderingEngine(RENDERING_ENGINE_ID); + const viewport = renderingEngine.getViewport(viewportId); + const { element } = viewport; + const actorEntries = viewport.getActors(); + const { position, width: thickness, activeColormapName, colormaps } = options; + + const numContainers = displaySetInstanceUIDs.length; + + const containers = this.createContainers( + numContainers, + element, + position, + thickness, + viewportId + ); + + displaySetInstanceUIDs.forEach((displaySetInstanceUID, index) => { + const actorEntry = actorEntries.find(entry => entry.uid.includes(displaySetInstanceUID)); + if (!actorEntry) { + return; + } + const { uid: volumeId } = actorEntry; + const properties = viewport?.getProperties(volumeId); + const colormap = properties?.colormap; + // if there's an initial colormap set, and no colormap on the viewport, set it + if (activeColormapName && !colormap) { + this.setViewportColormap( + viewportId, + displaySetInstanceUID, + colormaps[activeColormapName], + true + ); + } + + const colorbarContainer = containers[index]; + + const colorbar = new ViewportColorbar({ + id: `ctColorbar-${viewportId}-${index}`, + element, + colormaps: options.colormaps || {}, + // if there's an existing colormap set, we use it, otherwise we use the activeColormapName, otherwise, grayscale + activeColormapName: colormap?.name || options?.activeColormapName || 'Grayscale', + container: colorbarContainer, + ticks: { + ...ColorbarService.defaultTickStyles, + ...options.ticks, + }, + volumeId: viewport instanceof VolumeViewport ? volumeId : undefined, + }); + if (this.colorbars[viewportId]) { + this.colorbars[viewportId].push({ colorbar, container: colorbarContainer }); + } else { + this.colorbars[viewportId] = [{ colorbar, container: colorbarContainer }]; + } + }); + + this._broadcastEvent(ColorbarService.EVENTS.STATE_CHANGED, { + viewportId, + changeType: ChangeTypes.Added, + }); + } + + /** + * Removes the colorbar associated with a given viewport ID. This involves cleaning up any created DOM elements and internal references. + * + * @param viewportId The identifier for the viewport from which the colorbar will be removed. + */ + public removeColorbar(viewportId) { + const colorbarInfo = this.colorbars[viewportId]; + if (!colorbarInfo) { + return; + } + + colorbarInfo.forEach(({ colorbar, container }) => { + container.parentNode.removeChild(container); + }); + + delete this.colorbars[viewportId]; + + this._broadcastEvent(ColorbarService.EVENTS.STATE_CHANGED, { + viewportId, + changeType: ChangeTypes.Removed, + }); + } + + /** + * Checks whether a colorbar is associated with a given viewport ID. + * + * @param viewportId The identifier for the viewport to check. + * @returns `true` if a colorbar exists for the specified viewport, otherwise `false`. + */ + public hasColorbar(viewportId) { + return this.colorbars[viewportId] ? true : false; + } + + /** + * Retrieves the current state of colorbars, including all active colorbars and their configurations. + * + * @returns An object representing the current state of all colorbars managed by this service. + */ + public getState() { + return this.colorbars; + } + + /** + * Retrieves colorbar information for a specific viewport ID. + * + * @param viewportId The identifier for the viewport to retrieve colorbar information for. + * @returns The colorbar information associated with the specified viewport, if available. + */ + public getViewportColorbar(viewportId) { + return this.colorbars[viewportId]; + } + + /** + * Handles the cleanup and removal of all colorbars from the viewports. This is typically called + * when exiting the mode or context in which the colorbars are used, ensuring that no DOM + * elements or references are left behind. + */ + public onModeExit() { + const viewportIds = Object.keys(this.colorbars); + viewportIds.forEach(viewportId => { + this.removeColorbar(viewportId); + }); + } + + /** + * Sets the colormap for a viewport. This function is used internally to update the colormap the viewport + * + * @param viewportId The identifier of the viewport to update. + * @param displaySetInstanceUID The display set instance UID associated with the viewport. + * @param colormap The colormap object to set on the viewport. + * @param immediate A boolean indicating whether the viewport should be re-rendered immediately after setting the colormap. + */ + private setViewportColormap(viewportId, displaySetInstanceUID, colormap, immediate = false) { + const renderingEngine = getRenderingEngine(RENDERING_ENGINE_ID); + const viewport = renderingEngine.getViewport(viewportId); + const actorEntries = viewport.getActors(); + + const setViewportProperties = (viewport, uid) => { + const actorEntry = actorEntries.find(entry => entry.uid.includes(uid)); + const { actor: volumeActor, uid: volumeId } = actorEntry; + viewport.setProperties({ colormap, volumeActor }, volumeId); + }; + + if (viewport instanceof StackViewport) { + setViewportProperties(viewport, viewportId); + } + + if (viewport instanceof VolumeViewport) { + setViewportProperties(viewport, displaySetInstanceUID); + } + + if (immediate) { + viewport.render(); + } + } + + /** + * Creates the container elements for colorbars based on the specified parameters. This function dynamically + * generates and styles DOM elements to host the colorbars, positioning them according to the specified options. + * + * @param numContainers The number of containers to create, typically corresponding to the number of colorbars. + * @param element The DOM element within which the colorbar containers will be placed. + * @param position The position of the colorbar containers (e.g., 'top', 'bottom', 'left', 'right'). + * @param thickness The thickness of the colorbar containers, affecting their width or height depending on their position. + * @param viewportId The identifier of the viewport for which the containers are being created. + * @returns An array of the created container DOM elements. + */ + private createContainers(numContainers, element, position, thickness, viewportId) { + const containers = []; + const dimensions = { + 1: 50, + 2: 33, + }; + const dimension = dimensions[numContainers] || 50 / numContainers; + + Array.from({ length: numContainers }).forEach((_, i) => { + const colorbarContainer = document.createElement('div'); + colorbarContainer.id = `ctColorbarContainer-${viewportId}-${i + 1}`; + + Object.assign(colorbarContainer.style, ColorbarService.defaultStyles); + + if (['top', 'bottom'].includes(position)) { + Object.assign(colorbarContainer.style, { + width: `${dimension}%`, + height: thickness || '2.5%', + left: `${(i + 1) * dimension}%`, + transform: 'translateX(-50%)', + ...ColorbarService.positionStyles[position], + }); + } else if (['left', 'right'].includes(position)) { + Object.assign(colorbarContainer.style, { + height: `${dimension}%`, + width: thickness || '2.5%', + top: `${(i + 1) * dimension}%`, + transform: 'translateY(-50%)', + ...ColorbarService.positionStyles[position], + }); + } + + element.appendChild(colorbarContainer); + containers.push(colorbarContainer); + }); + + return containers; + } +} diff --git a/extensions/cornerstone/src/services/ColorbarService/index.ts b/extensions/cornerstone/src/services/ColorbarService/index.ts new file mode 100644 index 000000000..32bd65056 --- /dev/null +++ b/extensions/cornerstone/src/services/ColorbarService/index.ts @@ -0,0 +1,2 @@ +import ColorbarService from './ColorbarService'; +export default ColorbarService; diff --git a/extensions/cornerstone/src/services/ViewportActionCornersService/ViewportActionCornersService.ts b/extensions/cornerstone/src/services/ViewportActionCornersService/ViewportActionCornersService.ts new file mode 100644 index 000000000..baf155764 --- /dev/null +++ b/extensions/cornerstone/src/services/ViewportActionCornersService/ViewportActionCornersService.ts @@ -0,0 +1,71 @@ +import { PubSubService } from '@ohif/core'; +import { ViewportActionCornersLocations } from '@ohif/ui'; +import { ReactNode } from 'react'; + +export type ActionComponentInfo = { + viewportId: string; + id: string; + component: ReactNode; + location: ViewportActionCornersLocations; + indexPriority: number; +}; + +class ViewportActionCornersService extends PubSubService { + public static readonly EVENTS = {}; + public static readonly LOCATIONS = ViewportActionCornersLocations; + + public static REGISTRATION = { + name: 'viewportActionCornersService', + altName: 'ViewportActionCornersService', + create: ({ configuration = {} }) => { + return new ViewportActionCornersService(); + }, + }; + + serviceImplementation = {}; + + public LOCATIONS = ViewportActionCornersService.LOCATIONS; + + constructor() { + super(ViewportActionCornersService.EVENTS); + this.serviceImplementation = {}; + } + + public setServiceImplementation({ + getState: getStateImplementation, + setComponent: setComponentImplementation, + setComponents: setComponentsImplementation, + clear: clearImplementation, + }): void { + if (getStateImplementation) { + this.serviceImplementation._getState = getStateImplementation; + } + if (setComponentImplementation) { + this.serviceImplementation._setComponent = setComponentImplementation; + } + if (setComponentsImplementation) { + this.serviceImplementation._setComponents = setComponentsImplementation; + } + if (clearImplementation) { + this.serviceImplementation._clear = clearImplementation; + } + } + + public getState() { + return this.serviceImplementation._getState(); + } + + public setComponent(component: ActionComponentInfo) { + this.serviceImplementation._setComponent(component); + } + + public setComponents(components: Array) { + this.serviceImplementation._setComponents(components); + } + + public clear(viewportId: string) { + this.serviceImplementation._clear(viewportId); + } +} + +export default ViewportActionCornersService; diff --git a/extensions/cornerstone/src/types/Colorbar.ts b/extensions/cornerstone/src/types/Colorbar.ts new file mode 100644 index 000000000..79beb199f --- /dev/null +++ b/extensions/cornerstone/src/types/Colorbar.ts @@ -0,0 +1,32 @@ +import { ColorMapPreset } from './Colormap'; +import { CommandsManager, ServicesManager } from '@ohif/core'; + +export type ColorbarOptions = { + position: string; + colormaps: Array; + activeColormapName: string; + ticks: object; + width: string; +}; + +export type ColorbarProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; + displaySets: Array; + colorbarProperties: ColorbarProperties; +}; + +export type ColorbarProperties = { + width: string; + colorbarTickPosition: string; + colorbarContainerPosition: string; + colormaps: Array; + colorbarInitialColormap: string; +}; + +export enum ChangeTypes { + Removed = 'removed', + Added = 'added', + Modified = 'modified', +} diff --git a/extensions/cornerstone/src/types/Colormap.ts b/extensions/cornerstone/src/types/Colormap.ts new file mode 100644 index 000000000..d0cf1b22a --- /dev/null +++ b/extensions/cornerstone/src/types/Colormap.ts @@ -0,0 +1,16 @@ +import { CommandsManager, ServicesManager } from '@ohif/core'; + +export type ColorMapPreset = { + ColorSpace; + description: string; + RGBPoints; + Name; +}; + +export type ColormapProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; + colormaps: Array; + displaySets: Array; +}; diff --git a/extensions/cornerstone/src/types/CornerstoneServices.ts b/extensions/cornerstone/src/types/CornerstoneServices.ts index b7b791ae6..a55b4ab47 100644 --- a/extensions/cornerstone/src/types/CornerstoneServices.ts +++ b/extensions/cornerstone/src/types/CornerstoneServices.ts @@ -4,6 +4,7 @@ import SyncGroupService from '../services/SyncGroupService'; import SegmentationService from '../services/SegmentationService'; import CornerstoneCacheService from '../services/CornerstoneCacheService'; import CornerstoneViewportService from '../services/ViewportService/CornerstoneViewportService'; +import ViewportActionCornersService from '../services/ViewportActionCornersService/ViewportActionCornersService'; interface CornerstoneServices extends Types.Services { cornerstoneViewportService: CornerstoneViewportService; @@ -11,6 +12,7 @@ interface CornerstoneServices extends Types.Services { syncGroupService: SyncGroupService; segmentationService: SegmentationService; cornerstoneCacheService: CornerstoneCacheService; + viewportActionCornersService: ViewportActionCornersService; } export default CornerstoneServices; diff --git a/extensions/cornerstone/src/types/ViewportPresets.ts b/extensions/cornerstone/src/types/ViewportPresets.ts new file mode 100644 index 000000000..070a6bbde --- /dev/null +++ b/extensions/cornerstone/src/types/ViewportPresets.ts @@ -0,0 +1,66 @@ +import { ServicesManager, CommandsManager } from '@ohif/core'; + +export type ViewportPreset = { + name: string; + gradientOpacity: string; + specularPower: string; + scalarOpacity: string; + specular: string; + shade: string; + ambient: string; + colorTransfer: string; + diffuse: string; + interpolation: string; +}; + +export type VolumeRenderingPresetsProps = { + viewportId: string; + serviceManager: ServicesManager; + commandsManager: CommandsManager; + volumeRenderingPresets: ViewportPreset[]; +}; + +export type VolumeRenderingPresetsContentProps = { + presets: ViewportPreset[]; + onClose: () => void; + viewportId: string; + commandsManager: CommandsManager; +}; + +export type VolumeRenderingOptionsProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; + volumeRenderingQualityRange: VolumeRenderingQualityRange; +}; + +export type VolumeRenderingQualityRange = { + min: number; + max: number; + step: number; +}; + +export type VolumeRenderingQualityProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; + volumeRenderingQualityRange: VolumeRenderingQualityRange; +}; + +export type VolumeShiftProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; +}; + +export type VolumeShadeProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; +}; + +export type VolumeLightingProps = { + viewportId: string; + commandsManager: CommandsManager; + serviceManager: ServicesManager; +}; diff --git a/extensions/cornerstone/src/types/WindowLevel.ts b/extensions/cornerstone/src/types/WindowLevel.ts new file mode 100644 index 000000000..556d0cad2 --- /dev/null +++ b/extensions/cornerstone/src/types/WindowLevel.ts @@ -0,0 +1,5 @@ +export type WindowLevelPreset = { + description: string; + window: string; + level: string; +}; diff --git a/extensions/cornerstone/src/utils/colormaps.js b/extensions/cornerstone/src/utils/colormaps.js new file mode 100644 index 000000000..85946725c --- /dev/null +++ b/extensions/cornerstone/src/utils/colormaps.js @@ -0,0 +1,1600 @@ +const colormaps = [ + { + ColorSpace: 'RGB', + Name: 'hsv', + name: 'hsv', + RGBPoints: [ + -1, 1, 0, 0, -0.666666, 1, 0, 1, -0.333333, 0, 0, 1, 0, 0, 1, 1, 0.33333, 0, 1, 0, 0.66666, 1, + 1, 0, 1, 1, 0, 0, + ], + description: 'HSV', + }, + { + ColorSpace: 'RGB', + Name: 'hot_iron', + name: 'hot_iron', + RGBPoints: [ + 0.0, 0.0039215686, 0.0039215686, 0.0156862745, 0.00392156862745098, 0.0039215686, + 0.0039215686, 0.0156862745, 0.00784313725490196, 0.0039215686, 0.0039215686, 0.031372549, + 0.011764705882352941, 0.0039215686, 0.0039215686, 0.0470588235, 0.01568627450980392, + 0.0039215686, 0.0039215686, 0.062745098, 0.0196078431372549, 0.0039215686, 0.0039215686, + 0.0784313725, 0.023529411764705882, 0.0039215686, 0.0039215686, 0.0941176471, + 0.027450980392156862, 0.0039215686, 0.0039215686, 0.1098039216, 0.03137254901960784, + 0.0039215686, 0.0039215686, 0.1254901961, 0.03529411764705882, 0.0039215686, 0.0039215686, + 0.1411764706, 0.0392156862745098, 0.0039215686, 0.0039215686, 0.1568627451, + 0.043137254901960784, 0.0039215686, 0.0039215686, 0.1725490196, 0.047058823529411764, + 0.0039215686, 0.0039215686, 0.1882352941, 0.050980392156862744, 0.0039215686, 0.0039215686, + 0.2039215686, 0.054901960784313725, 0.0039215686, 0.0039215686, 0.2196078431, + 0.05882352941176471, 0.0039215686, 0.0039215686, 0.2352941176, 0.06274509803921569, + 0.0039215686, 0.0039215686, 0.2509803922, 0.06666666666666667, 0.0039215686, 0.0039215686, + 0.262745098, 0.07058823529411765, 0.0039215686, 0.0039215686, 0.2784313725, + 0.07450980392156863, 0.0039215686, 0.0039215686, 0.2941176471, 0.0784313725490196, + 0.0039215686, 0.0039215686, 0.3098039216, 0.08235294117647059, 0.0039215686, 0.0039215686, + 0.3254901961, 0.08627450980392157, 0.0039215686, 0.0039215686, 0.3411764706, + 0.09019607843137255, 0.0039215686, 0.0039215686, 0.3568627451, 0.09411764705882353, + 0.0039215686, 0.0039215686, 0.3725490196, 0.09803921568627451, 0.0039215686, 0.0039215686, + 0.3882352941, 0.10196078431372549, 0.0039215686, 0.0039215686, 0.4039215686, + 0.10588235294117647, 0.0039215686, 0.0039215686, 0.4196078431, 0.10980392156862745, + 0.0039215686, 0.0039215686, 0.4352941176, 0.11372549019607843, 0.0039215686, 0.0039215686, + 0.4509803922, 0.11764705882352942, 0.0039215686, 0.0039215686, 0.4666666667, + 0.12156862745098039, 0.0039215686, 0.0039215686, 0.4823529412, 0.12549019607843137, + 0.0039215686, 0.0039215686, 0.4980392157, 0.12941176470588237, 0.0039215686, 0.0039215686, + 0.5137254902, 0.13333333333333333, 0.0039215686, 0.0039215686, 0.5294117647, + 0.13725490196078433, 0.0039215686, 0.0039215686, 0.5450980392, 0.1411764705882353, + 0.0039215686, 0.0039215686, 0.5607843137, 0.1450980392156863, 0.0039215686, 0.0039215686, + 0.5764705882, 0.14901960784313725, 0.0039215686, 0.0039215686, 0.5921568627, + 0.15294117647058825, 0.0039215686, 0.0039215686, 0.6078431373, 0.1568627450980392, + 0.0039215686, 0.0039215686, 0.6235294118, 0.1607843137254902, 0.0039215686, 0.0039215686, + 0.6392156863, 0.16470588235294117, 0.0039215686, 0.0039215686, 0.6549019608, + 0.16862745098039217, 0.0039215686, 0.0039215686, 0.6705882353, 0.17254901960784313, + 0.0039215686, 0.0039215686, 0.6862745098, 0.17647058823529413, 0.0039215686, 0.0039215686, + 0.7019607843, 0.1803921568627451, 0.0039215686, 0.0039215686, 0.7176470588, + 0.1843137254901961, 0.0039215686, 0.0039215686, 0.7333333333, 0.18823529411764706, + 0.0039215686, 0.0039215686, 0.7490196078, 0.19215686274509805, 0.0039215686, 0.0039215686, + 0.7607843137, 0.19607843137254902, 0.0039215686, 0.0039215686, 0.7764705882, 0.2, + 0.0039215686, 0.0039215686, 0.7921568627, 0.20392156862745098, 0.0039215686, 0.0039215686, + 0.8078431373, 0.20784313725490197, 0.0039215686, 0.0039215686, 0.8235294118, + 0.21176470588235294, 0.0039215686, 0.0039215686, 0.8392156863, 0.21568627450980393, + 0.0039215686, 0.0039215686, 0.8549019608, 0.2196078431372549, 0.0039215686, 0.0039215686, + 0.8705882353, 0.2235294117647059, 0.0039215686, 0.0039215686, 0.8862745098, + 0.22745098039215686, 0.0039215686, 0.0039215686, 0.9019607843, 0.23137254901960785, + 0.0039215686, 0.0039215686, 0.9176470588, 0.23529411764705885, 0.0039215686, 0.0039215686, + 0.9333333333, 0.23921568627450984, 0.0039215686, 0.0039215686, 0.9490196078, + 0.24313725490196078, 0.0039215686, 0.0039215686, 0.9647058824, 0.24705882352941178, + 0.0039215686, 0.0039215686, 0.9803921569, 0.25098039215686274, 0.0039215686, 0.0039215686, + 0.9960784314, 0.2549019607843137, 0.0039215686, 0.0039215686, 0.9960784314, + 0.25882352941176473, 0.0156862745, 0.0039215686, 0.9803921569, 0.2627450980392157, + 0.031372549, 0.0039215686, 0.9647058824, 0.26666666666666666, 0.0470588235, 0.0039215686, + 0.9490196078, 0.27058823529411763, 0.062745098, 0.0039215686, 0.9333333333, + 0.27450980392156865, 0.0784313725, 0.0039215686, 0.9176470588, 0.2784313725490196, + 0.0941176471, 0.0039215686, 0.9019607843, 0.2823529411764706, 0.1098039216, 0.0039215686, + 0.8862745098, 0.28627450980392155, 0.1254901961, 0.0039215686, 0.8705882353, + 0.2901960784313726, 0.1411764706, 0.0039215686, 0.8549019608, 0.29411764705882354, + 0.1568627451, 0.0039215686, 0.8392156863, 0.2980392156862745, 0.1725490196, 0.0039215686, + 0.8235294118, 0.30196078431372547, 0.1882352941, 0.0039215686, 0.8078431373, + 0.3058823529411765, 0.2039215686, 0.0039215686, 0.7921568627, 0.30980392156862746, + 0.2196078431, 0.0039215686, 0.7764705882, 0.3137254901960784, 0.2352941176, 0.0039215686, + 0.7607843137, 0.3176470588235294, 0.2509803922, 0.0039215686, 0.7490196078, + 0.3215686274509804, 0.262745098, 0.0039215686, 0.7333333333, 0.3254901960784314, 0.2784313725, + 0.0039215686, 0.7176470588, 0.32941176470588235, 0.2941176471, 0.0039215686, 0.7019607843, + 0.3333333333333333, 0.3098039216, 0.0039215686, 0.6862745098, 0.33725490196078434, + 0.3254901961, 0.0039215686, 0.6705882353, 0.3411764705882353, 0.3411764706, 0.0039215686, + 0.6549019608, 0.34509803921568627, 0.3568627451, 0.0039215686, 0.6392156863, + 0.34901960784313724, 0.3725490196, 0.0039215686, 0.6235294118, 0.35294117647058826, + 0.3882352941, 0.0039215686, 0.6078431373, 0.3568627450980392, 0.4039215686, 0.0039215686, + 0.5921568627, 0.3607843137254902, 0.4196078431, 0.0039215686, 0.5764705882, + 0.36470588235294116, 0.4352941176, 0.0039215686, 0.5607843137, 0.3686274509803922, + 0.4509803922, 0.0039215686, 0.5450980392, 0.37254901960784315, 0.4666666667, 0.0039215686, + 0.5294117647, 0.3764705882352941, 0.4823529412, 0.0039215686, 0.5137254902, + 0.3803921568627451, 0.4980392157, 0.0039215686, 0.4980392157, 0.3843137254901961, + 0.5137254902, 0.0039215686, 0.4823529412, 0.38823529411764707, 0.5294117647, 0.0039215686, + 0.4666666667, 0.39215686274509803, 0.5450980392, 0.0039215686, 0.4509803922, + 0.396078431372549, 0.5607843137, 0.0039215686, 0.4352941176, 0.4, 0.5764705882, 0.0039215686, + 0.4196078431, 0.403921568627451, 0.5921568627, 0.0039215686, 0.4039215686, + 0.40784313725490196, 0.6078431373, 0.0039215686, 0.3882352941, 0.4117647058823529, + 0.6235294118, 0.0039215686, 0.3725490196, 0.41568627450980394, 0.6392156863, 0.0039215686, + 0.3568627451, 0.4196078431372549, 0.6549019608, 0.0039215686, 0.3411764706, + 0.4235294117647059, 0.6705882353, 0.0039215686, 0.3254901961, 0.42745098039215684, + 0.6862745098, 0.0039215686, 0.3098039216, 0.43137254901960786, 0.7019607843, 0.0039215686, + 0.2941176471, 0.43529411764705883, 0.7176470588, 0.0039215686, 0.2784313725, + 0.4392156862745098, 0.7333333333, 0.0039215686, 0.262745098, 0.44313725490196076, + 0.7490196078, 0.0039215686, 0.2509803922, 0.4470588235294118, 0.7607843137, 0.0039215686, + 0.2352941176, 0.45098039215686275, 0.7764705882, 0.0039215686, 0.2196078431, + 0.4549019607843137, 0.7921568627, 0.0039215686, 0.2039215686, 0.4588235294117647, + 0.8078431373, 0.0039215686, 0.1882352941, 0.4627450980392157, 0.8235294118, 0.0039215686, + 0.1725490196, 0.4666666666666667, 0.8392156863, 0.0039215686, 0.1568627451, + 0.4705882352941177, 0.8549019608, 0.0039215686, 0.1411764706, 0.4745098039215686, + 0.8705882353, 0.0039215686, 0.1254901961, 0.4784313725490197, 0.8862745098, 0.0039215686, + 0.1098039216, 0.48235294117647065, 0.9019607843, 0.0039215686, 0.0941176471, + 0.48627450980392156, 0.9176470588, 0.0039215686, 0.0784313725, 0.49019607843137253, + 0.9333333333, 0.0039215686, 0.062745098, 0.49411764705882355, 0.9490196078, 0.0039215686, + 0.0470588235, 0.4980392156862745, 0.9647058824, 0.0039215686, 0.031372549, 0.5019607843137255, + 0.9803921569, 0.0039215686, 0.0156862745, 0.5058823529411764, 0.9960784314, 0.0039215686, + 0.0039215686, 0.5098039215686274, 0.9960784314, 0.0156862745, 0.0039215686, + 0.5137254901960784, 0.9960784314, 0.031372549, 0.0039215686, 0.5176470588235295, 0.9960784314, + 0.0470588235, 0.0039215686, 0.5215686274509804, 0.9960784314, 0.062745098, 0.0039215686, + 0.5254901960784314, 0.9960784314, 0.0784313725, 0.0039215686, 0.5294117647058824, + 0.9960784314, 0.0941176471, 0.0039215686, 0.5333333333333333, 0.9960784314, 0.1098039216, + 0.0039215686, 0.5372549019607843, 0.9960784314, 0.1254901961, 0.0039215686, + 0.5411764705882353, 0.9960784314, 0.1411764706, 0.0039215686, 0.5450980392156862, + 0.9960784314, 0.1568627451, 0.0039215686, 0.5490196078431373, 0.9960784314, 0.1725490196, + 0.0039215686, 0.5529411764705883, 0.9960784314, 0.1882352941, 0.0039215686, + 0.5568627450980392, 0.9960784314, 0.2039215686, 0.0039215686, 0.5607843137254902, + 0.9960784314, 0.2196078431, 0.0039215686, 0.5647058823529412, 0.9960784314, 0.2352941176, + 0.0039215686, 0.5686274509803921, 0.9960784314, 0.2509803922, 0.0039215686, + 0.5725490196078431, 0.9960784314, 0.262745098, 0.0039215686, 0.5764705882352941, 0.9960784314, + 0.2784313725, 0.0039215686, 0.5803921568627451, 0.9960784314, 0.2941176471, 0.0039215686, + 0.5843137254901961, 0.9960784314, 0.3098039216, 0.0039215686, 0.5882352941176471, + 0.9960784314, 0.3254901961, 0.0039215686, 0.592156862745098, 0.9960784314, 0.3411764706, + 0.0039215686, 0.596078431372549, 0.9960784314, 0.3568627451, 0.0039215686, 0.6, 0.9960784314, + 0.3725490196, 0.0039215686, 0.6039215686274509, 0.9960784314, 0.3882352941, 0.0039215686, + 0.6078431372549019, 0.9960784314, 0.4039215686, 0.0039215686, 0.611764705882353, 0.9960784314, + 0.4196078431, 0.0039215686, 0.615686274509804, 0.9960784314, 0.4352941176, 0.0039215686, + 0.6196078431372549, 0.9960784314, 0.4509803922, 0.0039215686, 0.6235294117647059, + 0.9960784314, 0.4666666667, 0.0039215686, 0.6274509803921569, 0.9960784314, 0.4823529412, + 0.0039215686, 0.6313725490196078, 0.9960784314, 0.4980392157, 0.0039215686, + 0.6352941176470588, 0.9960784314, 0.5137254902, 0.0039215686, 0.6392156862745098, + 0.9960784314, 0.5294117647, 0.0039215686, 0.6431372549019608, 0.9960784314, 0.5450980392, + 0.0039215686, 0.6470588235294118, 0.9960784314, 0.5607843137, 0.0039215686, + 0.6509803921568628, 0.9960784314, 0.5764705882, 0.0039215686, 0.6549019607843137, + 0.9960784314, 0.5921568627, 0.0039215686, 0.6588235294117647, 0.9960784314, 0.6078431373, + 0.0039215686, 0.6627450980392157, 0.9960784314, 0.6235294118, 0.0039215686, + 0.6666666666666666, 0.9960784314, 0.6392156863, 0.0039215686, 0.6705882352941176, + 0.9960784314, 0.6549019608, 0.0039215686, 0.6745098039215687, 0.9960784314, 0.6705882353, + 0.0039215686, 0.6784313725490196, 0.9960784314, 0.6862745098, 0.0039215686, + 0.6823529411764706, 0.9960784314, 0.7019607843, 0.0039215686, 0.6862745098039216, + 0.9960784314, 0.7176470588, 0.0039215686, 0.6901960784313725, 0.9960784314, 0.7333333333, + 0.0039215686, 0.6941176470588235, 0.9960784314, 0.7490196078, 0.0039215686, + 0.6980392156862745, 0.9960784314, 0.7607843137, 0.0039215686, 0.7019607843137254, + 0.9960784314, 0.7764705882, 0.0039215686, 0.7058823529411765, 0.9960784314, 0.7921568627, + 0.0039215686, 0.7098039215686275, 0.9960784314, 0.8078431373, 0.0039215686, + 0.7137254901960784, 0.9960784314, 0.8235294118, 0.0039215686, 0.7176470588235294, + 0.9960784314, 0.8392156863, 0.0039215686, 0.7215686274509804, 0.9960784314, 0.8549019608, + 0.0039215686, 0.7254901960784313, 0.9960784314, 0.8705882353, 0.0039215686, + 0.7294117647058823, 0.9960784314, 0.8862745098, 0.0039215686, 0.7333333333333333, + 0.9960784314, 0.9019607843, 0.0039215686, 0.7372549019607844, 0.9960784314, 0.9176470588, + 0.0039215686, 0.7411764705882353, 0.9960784314, 0.9333333333, 0.0039215686, + 0.7450980392156863, 0.9960784314, 0.9490196078, 0.0039215686, 0.7490196078431373, + 0.9960784314, 0.9647058824, 0.0039215686, 0.7529411764705882, 0.9960784314, 0.9803921569, + 0.0039215686, 0.7568627450980392, 0.9960784314, 0.9960784314, 0.0039215686, + 0.7607843137254902, 0.9960784314, 0.9960784314, 0.0196078431, 0.7647058823529411, + 0.9960784314, 0.9960784314, 0.0352941176, 0.7686274509803922, 0.9960784314, 0.9960784314, + 0.0509803922, 0.7725490196078432, 0.9960784314, 0.9960784314, 0.0666666667, + 0.7764705882352941, 0.9960784314, 0.9960784314, 0.0823529412, 0.7803921568627451, + 0.9960784314, 0.9960784314, 0.0980392157, 0.7843137254901961, 0.9960784314, 0.9960784314, + 0.1137254902, 0.788235294117647, 0.9960784314, 0.9960784314, 0.1294117647, 0.792156862745098, + 0.9960784314, 0.9960784314, 0.1450980392, 0.796078431372549, 0.9960784314, 0.9960784314, + 0.1607843137, 0.8, 0.9960784314, 0.9960784314, 0.1764705882, 0.803921568627451, 0.9960784314, + 0.9960784314, 0.1921568627, 0.807843137254902, 0.9960784314, 0.9960784314, 0.2078431373, + 0.8117647058823529, 0.9960784314, 0.9960784314, 0.2235294118, 0.8156862745098039, + 0.9960784314, 0.9960784314, 0.2392156863, 0.8196078431372549, 0.9960784314, 0.9960784314, + 0.2509803922, 0.8235294117647058, 0.9960784314, 0.9960784314, 0.2666666667, + 0.8274509803921568, 0.9960784314, 0.9960784314, 0.2823529412, 0.8313725490196079, + 0.9960784314, 0.9960784314, 0.2980392157, 0.8352941176470589, 0.9960784314, 0.9960784314, + 0.3137254902, 0.8392156862745098, 0.9960784314, 0.9960784314, 0.3333333333, + 0.8431372549019608, 0.9960784314, 0.9960784314, 0.3490196078, 0.8470588235294118, + 0.9960784314, 0.9960784314, 0.3647058824, 0.8509803921568627, 0.9960784314, 0.9960784314, + 0.3803921569, 0.8549019607843137, 0.9960784314, 0.9960784314, 0.3960784314, + 0.8588235294117647, 0.9960784314, 0.9960784314, 0.4117647059, 0.8627450980392157, + 0.9960784314, 0.9960784314, 0.4274509804, 0.8666666666666667, 0.9960784314, 0.9960784314, + 0.4431372549, 0.8705882352941177, 0.9960784314, 0.9960784314, 0.4588235294, + 0.8745098039215686, 0.9960784314, 0.9960784314, 0.4745098039, 0.8784313725490196, + 0.9960784314, 0.9960784314, 0.4901960784, 0.8823529411764706, 0.9960784314, 0.9960784314, + 0.5058823529, 0.8862745098039215, 0.9960784314, 0.9960784314, 0.5215686275, + 0.8901960784313725, 0.9960784314, 0.9960784314, 0.537254902, 0.8941176470588236, 0.9960784314, + 0.9960784314, 0.5529411765, 0.8980392156862745, 0.9960784314, 0.9960784314, 0.568627451, + 0.9019607843137255, 0.9960784314, 0.9960784314, 0.5843137255, 0.9058823529411765, + 0.9960784314, 0.9960784314, 0.6, 0.9098039215686274, 0.9960784314, 0.9960784314, 0.6156862745, + 0.9137254901960784, 0.9960784314, 0.9960784314, 0.631372549, 0.9176470588235294, 0.9960784314, + 0.9960784314, 0.6470588235, 0.9215686274509803, 0.9960784314, 0.9960784314, 0.6666666667, + 0.9254901960784314, 0.9960784314, 0.9960784314, 0.6823529412, 0.9294117647058824, + 0.9960784314, 0.9960784314, 0.6980392157, 0.9333333333333333, 0.9960784314, 0.9960784314, + 0.7137254902, 0.9372549019607843, 0.9960784314, 0.9960784314, 0.7294117647, + 0.9411764705882354, 0.9960784314, 0.9960784314, 0.7450980392, 0.9450980392156864, + 0.9960784314, 0.9960784314, 0.7568627451, 0.9490196078431372, 0.9960784314, 0.9960784314, + 0.7725490196, 0.9529411764705882, 0.9960784314, 0.9960784314, 0.7882352941, + 0.9568627450980394, 0.9960784314, 0.9960784314, 0.8039215686, 0.9607843137254903, + 0.9960784314, 0.9960784314, 0.8196078431, 0.9647058823529413, 0.9960784314, 0.9960784314, + 0.8352941176, 0.9686274509803922, 0.9960784314, 0.9960784314, 0.8509803922, + 0.9725490196078431, 0.9960784314, 0.9960784314, 0.8666666667, 0.9764705882352941, + 0.9960784314, 0.9960784314, 0.8823529412, 0.9803921568627451, 0.9960784314, 0.9960784314, + 0.8980392157, 0.984313725490196, 0.9960784314, 0.9960784314, 0.9137254902, 0.9882352941176471, + 0.9960784314, 0.9960784314, 0.9294117647, 0.9921568627450981, 0.9960784314, 0.9960784314, + 0.9450980392, 0.996078431372549, 0.9960784314, 0.9960784314, 0.9607843137, 1.0, 0.9960784314, + 0.9960784314, 0.9607843137, + ], + description: 'Hot Iron', + }, + { + ColorSpace: 'RGB', + Name: 'red_hot', + name: 'red_hot', + RGBPoints: [ + 0.0, 0.0, 0.0, 0.0, 0.00392156862745098, 0.0, 0.0, 0.0, 0.00784313725490196, 0.0, 0.0, 0.0, + 0.011764705882352941, 0.0, 0.0, 0.0, 0.01568627450980392, 0.0039215686, 0.0039215686, + 0.0039215686, 0.0196078431372549, 0.0039215686, 0.0039215686, 0.0039215686, + 0.023529411764705882, 0.0039215686, 0.0039215686, 0.0039215686, 0.027450980392156862, + 0.0039215686, 0.0039215686, 0.0039215686, 0.03137254901960784, 0.0039215686, 0.0039215686, + 0.0039215686, 0.03529411764705882, 0.0156862745, 0.0, 0.0, 0.0392156862745098, 0.0274509804, + 0.0, 0.0, 0.043137254901960784, 0.0392156863, 0.0, 0.0, 0.047058823529411764, 0.0509803922, + 0.0, 0.0, 0.050980392156862744, 0.062745098, 0.0, 0.0, 0.054901960784313725, 0.0784313725, + 0.0, 0.0, 0.05882352941176471, 0.0901960784, 0.0, 0.0, 0.06274509803921569, 0.1058823529, 0.0, + 0.0, 0.06666666666666667, 0.1176470588, 0.0, 0.0, 0.07058823529411765, 0.1294117647, 0.0, 0.0, + 0.07450980392156863, 0.1411764706, 0.0, 0.0, 0.0784313725490196, 0.1529411765, 0.0, 0.0, + 0.08235294117647059, 0.1647058824, 0.0, 0.0, 0.08627450980392157, 0.1764705882, 0.0, 0.0, + 0.09019607843137255, 0.1882352941, 0.0, 0.0, 0.09411764705882353, 0.2039215686, 0.0, 0.0, + 0.09803921568627451, 0.2156862745, 0.0, 0.0, 0.10196078431372549, 0.2274509804, 0.0, 0.0, + 0.10588235294117647, 0.2392156863, 0.0, 0.0, 0.10980392156862745, 0.2549019608, 0.0, 0.0, + 0.11372549019607843, 0.2666666667, 0.0, 0.0, 0.11764705882352942, 0.2784313725, 0.0, 0.0, + 0.12156862745098039, 0.2901960784, 0.0, 0.0, 0.12549019607843137, 0.3058823529, 0.0, 0.0, + 0.12941176470588237, 0.3176470588, 0.0, 0.0, 0.13333333333333333, 0.3294117647, 0.0, 0.0, + 0.13725490196078433, 0.3411764706, 0.0, 0.0, 0.1411764705882353, 0.3529411765, 0.0, 0.0, + 0.1450980392156863, 0.3647058824, 0.0, 0.0, 0.14901960784313725, 0.3764705882, 0.0, 0.0, + 0.15294117647058825, 0.3882352941, 0.0, 0.0, 0.1568627450980392, 0.4039215686, 0.0, 0.0, + 0.1607843137254902, 0.4156862745, 0.0, 0.0, 0.16470588235294117, 0.431372549, 0.0, 0.0, + 0.16862745098039217, 0.4431372549, 0.0, 0.0, 0.17254901960784313, 0.4588235294, 0.0, 0.0, + 0.17647058823529413, 0.4705882353, 0.0, 0.0, 0.1803921568627451, 0.4823529412, 0.0, 0.0, + 0.1843137254901961, 0.4941176471, 0.0, 0.0, 0.18823529411764706, 0.5098039216, 0.0, 0.0, + 0.19215686274509805, 0.5215686275, 0.0, 0.0, 0.19607843137254902, 0.5333333333, 0.0, 0.0, 0.2, + 0.5450980392, 0.0, 0.0, 0.20392156862745098, 0.5568627451, 0.0, 0.0, 0.20784313725490197, + 0.568627451, 0.0, 0.0, 0.21176470588235294, 0.5803921569, 0.0, 0.0, 0.21568627450980393, + 0.5921568627, 0.0, 0.0, 0.2196078431372549, 0.6078431373, 0.0, 0.0, 0.2235294117647059, + 0.6196078431, 0.0, 0.0, 0.22745098039215686, 0.631372549, 0.0, 0.0, 0.23137254901960785, + 0.6431372549, 0.0, 0.0, 0.23529411764705885, 0.6588235294, 0.0, 0.0, 0.23921568627450984, + 0.6705882353, 0.0, 0.0, 0.24313725490196078, 0.6823529412, 0.0, 0.0, 0.24705882352941178, + 0.6941176471, 0.0, 0.0, 0.25098039215686274, 0.7098039216, 0.0, 0.0, 0.2549019607843137, + 0.7215686275, 0.0, 0.0, 0.25882352941176473, 0.7333333333, 0.0, 0.0, 0.2627450980392157, + 0.7450980392, 0.0, 0.0, 0.26666666666666666, 0.7568627451, 0.0, 0.0, 0.27058823529411763, + 0.768627451, 0.0, 0.0, 0.27450980392156865, 0.7843137255, 0.0, 0.0, 0.2784313725490196, + 0.7960784314, 0.0, 0.0, 0.2823529411764706, 0.8117647059, 0.0, 0.0, 0.28627450980392155, + 0.8235294118, 0.0, 0.0, 0.2901960784313726, 0.8352941176, 0.0, 0.0, 0.29411764705882354, + 0.8470588235, 0.0, 0.0, 0.2980392156862745, 0.862745098, 0.0, 0.0, 0.30196078431372547, + 0.8745098039, 0.0, 0.0, 0.3058823529411765, 0.8862745098, 0.0, 0.0, 0.30980392156862746, + 0.8980392157, 0.0, 0.0, 0.3137254901960784, 0.9137254902, 0.0, 0.0, 0.3176470588235294, + 0.9254901961, 0.0, 0.0, 0.3215686274509804, 0.937254902, 0.0, 0.0, 0.3254901960784314, + 0.9490196078, 0.0, 0.0, 0.32941176470588235, 0.9607843137, 0.0, 0.0, 0.3333333333333333, + 0.968627451, 0.0, 0.0, 0.33725490196078434, 0.9803921569, 0.0039215686, 0.0, + 0.3411764705882353, 0.9882352941, 0.0078431373, 0.0, 0.34509803921568627, 1.0, 0.0117647059, + 0.0, 0.34901960784313724, 1.0, 0.0235294118, 0.0, 0.35294117647058826, 1.0, 0.0352941176, 0.0, + 0.3568627450980392, 1.0, 0.0470588235, 0.0, 0.3607843137254902, 1.0, 0.062745098, 0.0, + 0.36470588235294116, 1.0, 0.0745098039, 0.0, 0.3686274509803922, 1.0, 0.0862745098, 0.0, + 0.37254901960784315, 1.0, 0.0980392157, 0.0, 0.3764705882352941, 1.0, 0.1137254902, 0.0, + 0.3803921568627451, 1.0, 0.1254901961, 0.0, 0.3843137254901961, 1.0, 0.137254902, 0.0, + 0.38823529411764707, 1.0, 0.1490196078, 0.0, 0.39215686274509803, 1.0, 0.1647058824, 0.0, + 0.396078431372549, 1.0, 0.1764705882, 0.0, 0.4, 1.0, 0.1882352941, 0.0, 0.403921568627451, + 1.0, 0.2, 0.0, 0.40784313725490196, 1.0, 0.2156862745, 0.0, 0.4117647058823529, 1.0, + 0.2274509804, 0.0, 0.41568627450980394, 1.0, 0.2392156863, 0.0, 0.4196078431372549, 1.0, + 0.2509803922, 0.0, 0.4235294117647059, 1.0, 0.2666666667, 0.0, 0.42745098039215684, 1.0, + 0.2784313725, 0.0, 0.43137254901960786, 1.0, 0.2901960784, 0.0, 0.43529411764705883, 1.0, + 0.3019607843, 0.0, 0.4392156862745098, 1.0, 0.3176470588, 0.0, 0.44313725490196076, 1.0, + 0.3294117647, 0.0, 0.4470588235294118, 1.0, 0.3411764706, 0.0, 0.45098039215686275, 1.0, + 0.3529411765, 0.0, 0.4549019607843137, 1.0, 0.368627451, 0.0, 0.4588235294117647, 1.0, + 0.3803921569, 0.0, 0.4627450980392157, 1.0, 0.3921568627, 0.0, 0.4666666666666667, 1.0, + 0.4039215686, 0.0, 0.4705882352941177, 1.0, 0.4156862745, 0.0, 0.4745098039215686, 1.0, + 0.4274509804, 0.0, 0.4784313725490197, 1.0, 0.4392156863, 0.0, 0.48235294117647065, 1.0, + 0.4509803922, 0.0, 0.48627450980392156, 1.0, 0.4666666667, 0.0, 0.49019607843137253, 1.0, + 0.4784313725, 0.0, 0.49411764705882355, 1.0, 0.4941176471, 0.0, 0.4980392156862745, 1.0, + 0.5058823529, 0.0, 0.5019607843137255, 1.0, 0.5215686275, 0.0, 0.5058823529411764, 1.0, + 0.5333333333, 0.0, 0.5098039215686274, 1.0, 0.5450980392, 0.0, 0.5137254901960784, 1.0, + 0.5568627451, 0.0, 0.5176470588235295, 1.0, 0.568627451, 0.0, 0.5215686274509804, 1.0, + 0.5803921569, 0.0, 0.5254901960784314, 1.0, 0.5921568627, 0.0, 0.5294117647058824, 1.0, + 0.6039215686, 0.0, 0.5333333333333333, 1.0, 0.6196078431, 0.0, 0.5372549019607843, 1.0, + 0.631372549, 0.0, 0.5411764705882353, 1.0, 0.6431372549, 0.0, 0.5450980392156862, 1.0, + 0.6549019608, 0.0, 0.5490196078431373, 1.0, 0.6705882353, 0.0, 0.5529411764705883, 1.0, + 0.6823529412, 0.0, 0.5568627450980392, 1.0, 0.6941176471, 0.0, 0.5607843137254902, 1.0, + 0.7058823529, 0.0, 0.5647058823529412, 1.0, 0.7215686275, 0.0, 0.5686274509803921, 1.0, + 0.7333333333, 0.0, 0.5725490196078431, 1.0, 0.7450980392, 0.0, 0.5764705882352941, 1.0, + 0.7568627451, 0.0, 0.5803921568627451, 1.0, 0.7725490196, 0.0, 0.5843137254901961, 1.0, + 0.7843137255, 0.0, 0.5882352941176471, 1.0, 0.7960784314, 0.0, 0.592156862745098, 1.0, + 0.8078431373, 0.0, 0.596078431372549, 1.0, 0.8196078431, 0.0, 0.6, 1.0, 0.831372549, 0.0, + 0.6039215686274509, 1.0, 0.8470588235, 0.0, 0.6078431372549019, 1.0, 0.8588235294, 0.0, + 0.611764705882353, 1.0, 0.8745098039, 0.0, 0.615686274509804, 1.0, 0.8862745098, 0.0, + 0.6196078431372549, 1.0, 0.8980392157, 0.0, 0.6235294117647059, 1.0, 0.9098039216, 0.0, + 0.6274509803921569, 1.0, 0.9254901961, 0.0, 0.6313725490196078, 1.0, 0.937254902, 0.0, + 0.6352941176470588, 1.0, 0.9490196078, 0.0, 0.6392156862745098, 1.0, 0.9607843137, 0.0, + 0.6431372549019608, 1.0, 0.9764705882, 0.0, 0.6470588235294118, 1.0, 0.9803921569, + 0.0039215686, 0.6509803921568628, 1.0, 0.9882352941, 0.0117647059, 0.6549019607843137, 1.0, + 0.9921568627, 0.0156862745, 0.6588235294117647, 1.0, 1.0, 0.0235294118, 0.6627450980392157, + 1.0, 1.0, 0.0352941176, 0.6666666666666666, 1.0, 1.0, 0.0470588235, 0.6705882352941176, 1.0, + 1.0, 0.0588235294, 0.6745098039215687, 1.0, 1.0, 0.0745098039, 0.6784313725490196, 1.0, 1.0, + 0.0862745098, 0.6823529411764706, 1.0, 1.0, 0.0980392157, 0.6862745098039216, 1.0, 1.0, + 0.1098039216, 0.6901960784313725, 1.0, 1.0, 0.1254901961, 0.6941176470588235, 1.0, 1.0, + 0.137254902, 0.6980392156862745, 1.0, 1.0, 0.1490196078, 0.7019607843137254, 1.0, 1.0, + 0.1607843137, 0.7058823529411765, 1.0, 1.0, 0.1764705882, 0.7098039215686275, 1.0, 1.0, + 0.1882352941, 0.7137254901960784, 1.0, 1.0, 0.2, 0.7176470588235294, 1.0, 1.0, 0.2117647059, + 0.7215686274509804, 1.0, 1.0, 0.2274509804, 0.7254901960784313, 1.0, 1.0, 0.2392156863, + 0.7294117647058823, 1.0, 1.0, 0.2509803922, 0.7333333333333333, 1.0, 1.0, 0.262745098, + 0.7372549019607844, 1.0, 1.0, 0.2784313725, 0.7411764705882353, 1.0, 1.0, 0.2901960784, + 0.7450980392156863, 1.0, 1.0, 0.3019607843, 0.7490196078431373, 1.0, 1.0, 0.3137254902, + 0.7529411764705882, 1.0, 1.0, 0.3294117647, 0.7568627450980392, 1.0, 1.0, 0.3411764706, + 0.7607843137254902, 1.0, 1.0, 0.3529411765, 0.7647058823529411, 1.0, 1.0, 0.3647058824, + 0.7686274509803922, 1.0, 1.0, 0.3803921569, 0.7725490196078432, 1.0, 1.0, 0.3921568627, + 0.7764705882352941, 1.0, 1.0, 0.4039215686, 0.7803921568627451, 1.0, 1.0, 0.4156862745, + 0.7843137254901961, 1.0, 1.0, 0.431372549, 0.788235294117647, 1.0, 1.0, 0.4431372549, + 0.792156862745098, 1.0, 1.0, 0.4549019608, 0.796078431372549, 1.0, 1.0, 0.4666666667, 0.8, + 1.0, 1.0, 0.4784313725, 0.803921568627451, 1.0, 1.0, 0.4901960784, 0.807843137254902, 1.0, + 1.0, 0.5019607843, 0.8117647058823529, 1.0, 1.0, 0.5137254902, 0.8156862745098039, 1.0, 1.0, + 0.5294117647, 0.8196078431372549, 1.0, 1.0, 0.5411764706, 0.8235294117647058, 1.0, 1.0, + 0.5568627451, 0.8274509803921568, 1.0, 1.0, 0.568627451, 0.8313725490196079, 1.0, 1.0, + 0.5843137255, 0.8352941176470589, 1.0, 1.0, 0.5960784314, 0.8392156862745098, 1.0, 1.0, + 0.6078431373, 0.8431372549019608, 1.0, 1.0, 0.6196078431, 0.8470588235294118, 1.0, 1.0, + 0.631372549, 0.8509803921568627, 1.0, 1.0, 0.6431372549, 0.8549019607843137, 1.0, 1.0, + 0.6549019608, 0.8588235294117647, 1.0, 1.0, 0.6666666667, 0.8627450980392157, 1.0, 1.0, + 0.6823529412, 0.8666666666666667, 1.0, 1.0, 0.6941176471, 0.8705882352941177, 1.0, 1.0, + 0.7058823529, 0.8745098039215686, 1.0, 1.0, 0.7176470588, 0.8784313725490196, 1.0, 1.0, + 0.7333333333, 0.8823529411764706, 1.0, 1.0, 0.7450980392, 0.8862745098039215, 1.0, 1.0, + 0.7568627451, 0.8901960784313725, 1.0, 1.0, 0.768627451, 0.8941176470588236, 1.0, 1.0, + 0.7843137255, 0.8980392156862745, 1.0, 1.0, 0.7960784314, 0.9019607843137255, 1.0, 1.0, + 0.8078431373, 0.9058823529411765, 1.0, 1.0, 0.8196078431, 0.9098039215686274, 1.0, 1.0, + 0.8352941176, 0.9137254901960784, 1.0, 1.0, 0.8470588235, 0.9176470588235294, 1.0, 1.0, + 0.8588235294, 0.9215686274509803, 1.0, 1.0, 0.8705882353, 0.9254901960784314, 1.0, 1.0, + 0.8823529412, 0.9294117647058824, 1.0, 1.0, 0.8941176471, 0.9333333333333333, 1.0, 1.0, + 0.9098039216, 0.9372549019607843, 1.0, 1.0, 0.9215686275, 0.9411764705882354, 1.0, 1.0, + 0.937254902, 0.9450980392156864, 1.0, 1.0, 0.9490196078, 0.9490196078431372, 1.0, 1.0, + 0.9607843137, 0.9529411764705882, 1.0, 1.0, 0.9725490196, 0.9568627450980394, 1.0, 1.0, + 0.9882352941, 0.9607843137254903, 1.0, 1.0, 0.9882352941, 0.9647058823529413, 1.0, 1.0, + 0.9921568627, 0.9686274509803922, 1.0, 1.0, 0.9960784314, 0.9725490196078431, 1.0, 1.0, 1.0, + 0.9764705882352941, 1.0, 1.0, 1.0, 0.9803921568627451, 1.0, 1.0, 1.0, 0.984313725490196, 1.0, + 1.0, 1.0, 0.9882352941176471, 1.0, 1.0, 1.0, 0.9921568627450981, 1.0, 1.0, 1.0, + 0.996078431372549, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + ], + description: 'Red Hot', + }, + { + ColorSpace: 'RGB', + Name: 's_pet', + name: 's_pet', + RGBPoints: [ + 0.0, 0.0156862745, 0.0039215686, 0.0156862745, 0.00392156862745098, 0.0156862745, + 0.0039215686, 0.0156862745, 0.00784313725490196, 0.0274509804, 0.0039215686, 0.031372549, + 0.011764705882352941, 0.0352941176, 0.0039215686, 0.0509803922, 0.01568627450980392, + 0.0392156863, 0.0039215686, 0.0666666667, 0.0196078431372549, 0.0509803922, 0.0039215686, + 0.0823529412, 0.023529411764705882, 0.062745098, 0.0039215686, 0.0980392157, + 0.027450980392156862, 0.0705882353, 0.0039215686, 0.1176470588, 0.03137254901960784, + 0.0745098039, 0.0039215686, 0.1333333333, 0.03529411764705882, 0.0862745098, 0.0039215686, + 0.1490196078, 0.0392156862745098, 0.0980392157, 0.0039215686, 0.1647058824, + 0.043137254901960784, 0.1058823529, 0.0039215686, 0.1843137255, 0.047058823529411764, + 0.1098039216, 0.0039215686, 0.2, 0.050980392156862744, 0.1215686275, 0.0039215686, + 0.2156862745, 0.054901960784313725, 0.1333333333, 0.0039215686, 0.231372549, + 0.05882352941176471, 0.137254902, 0.0039215686, 0.2509803922, 0.06274509803921569, + 0.1490196078, 0.0039215686, 0.262745098, 0.06666666666666667, 0.1607843137, 0.0039215686, + 0.2784313725, 0.07058823529411765, 0.168627451, 0.0039215686, 0.2941176471, + 0.07450980392156863, 0.1725490196, 0.0039215686, 0.3137254902, 0.0784313725490196, + 0.1843137255, 0.0039215686, 0.3294117647, 0.08235294117647059, 0.1960784314, 0.0039215686, + 0.3450980392, 0.08627450980392157, 0.2039215686, 0.0039215686, 0.3607843137, + 0.09019607843137255, 0.2078431373, 0.0039215686, 0.3803921569, 0.09411764705882353, + 0.2196078431, 0.0039215686, 0.3960784314, 0.09803921568627451, 0.231372549, 0.0039215686, + 0.4117647059, 0.10196078431372549, 0.2392156863, 0.0039215686, 0.4274509804, + 0.10588235294117647, 0.2431372549, 0.0039215686, 0.4470588235, 0.10980392156862745, + 0.2509803922, 0.0039215686, 0.462745098, 0.11372549019607843, 0.262745098, 0.0039215686, + 0.4784313725, 0.11764705882352942, 0.2666666667, 0.0039215686, 0.4980392157, + 0.12156862745098039, 0.2666666667, 0.0039215686, 0.4980392157, 0.12549019607843137, + 0.262745098, 0.0039215686, 0.5137254902, 0.12941176470588237, 0.2509803922, 0.0039215686, + 0.5294117647, 0.13333333333333333, 0.2431372549, 0.0039215686, 0.5450980392, + 0.13725490196078433, 0.2392156863, 0.0039215686, 0.5607843137, 0.1411764705882353, + 0.231372549, 0.0039215686, 0.5764705882, 0.1450980392156863, 0.2196078431, 0.0039215686, + 0.5921568627, 0.14901960784313725, 0.2078431373, 0.0039215686, 0.6078431373, + 0.15294117647058825, 0.2039215686, 0.0039215686, 0.6235294118, 0.1568627450980392, + 0.1960784314, 0.0039215686, 0.6392156863, 0.1607843137254902, 0.1843137255, 0.0039215686, + 0.6549019608, 0.16470588235294117, 0.1725490196, 0.0039215686, 0.6705882353, + 0.16862745098039217, 0.168627451, 0.0039215686, 0.6862745098, 0.17254901960784313, + 0.1607843137, 0.0039215686, 0.7019607843, 0.17647058823529413, 0.1490196078, 0.0039215686, + 0.7176470588, 0.1803921568627451, 0.137254902, 0.0039215686, 0.7333333333, 0.1843137254901961, + 0.1333333333, 0.0039215686, 0.7490196078, 0.18823529411764706, 0.1215686275, 0.0039215686, + 0.7607843137, 0.19215686274509805, 0.1098039216, 0.0039215686, 0.7764705882, + 0.19607843137254902, 0.1058823529, 0.0039215686, 0.7921568627, 0.2, 0.0980392157, + 0.0039215686, 0.8078431373, 0.20392156862745098, 0.0862745098, 0.0039215686, 0.8235294118, + 0.20784313725490197, 0.0745098039, 0.0039215686, 0.8392156863, 0.21176470588235294, + 0.0705882353, 0.0039215686, 0.8549019608, 0.21568627450980393, 0.062745098, 0.0039215686, + 0.8705882353, 0.2196078431372549, 0.0509803922, 0.0039215686, 0.8862745098, + 0.2235294117647059, 0.0392156863, 0.0039215686, 0.9019607843, 0.22745098039215686, + 0.0352941176, 0.0039215686, 0.9176470588, 0.23137254901960785, 0.0274509804, 0.0039215686, + 0.9333333333, 0.23529411764705885, 0.0156862745, 0.0039215686, 0.9490196078, + 0.23921568627450984, 0.0078431373, 0.0039215686, 0.9647058824, 0.24313725490196078, + 0.0039215686, 0.0039215686, 0.9960784314, 0.24705882352941178, 0.0039215686, 0.0039215686, + 0.9960784314, 0.25098039215686274, 0.0039215686, 0.0196078431, 0.9647058824, + 0.2549019607843137, 0.0039215686, 0.0392156863, 0.9490196078, 0.25882352941176473, + 0.0039215686, 0.0549019608, 0.9333333333, 0.2627450980392157, 0.0039215686, 0.0745098039, + 0.9176470588, 0.26666666666666666, 0.0039215686, 0.0901960784, 0.9019607843, + 0.27058823529411763, 0.0039215686, 0.1098039216, 0.8862745098, 0.27450980392156865, + 0.0039215686, 0.1254901961, 0.8705882353, 0.2784313725490196, 0.0039215686, 0.1450980392, + 0.8549019608, 0.2823529411764706, 0.0039215686, 0.1607843137, 0.8392156863, + 0.28627450980392155, 0.0039215686, 0.1803921569, 0.8235294118, 0.2901960784313726, + 0.0039215686, 0.1960784314, 0.8078431373, 0.29411764705882354, 0.0039215686, 0.2156862745, + 0.7921568627, 0.2980392156862745, 0.0039215686, 0.231372549, 0.7764705882, + 0.30196078431372547, 0.0039215686, 0.2509803922, 0.7607843137, 0.3058823529411765, + 0.0039215686, 0.262745098, 0.7490196078, 0.30980392156862746, 0.0039215686, 0.2823529412, + 0.7333333333, 0.3137254901960784, 0.0039215686, 0.2980392157, 0.7176470588, + 0.3176470588235294, 0.0039215686, 0.3176470588, 0.7019607843, 0.3215686274509804, + 0.0039215686, 0.3333333333, 0.6862745098, 0.3254901960784314, 0.0039215686, 0.3529411765, + 0.6705882353, 0.32941176470588235, 0.0039215686, 0.368627451, 0.6549019608, + 0.3333333333333333, 0.0039215686, 0.3882352941, 0.6392156863, 0.33725490196078434, + 0.0039215686, 0.4039215686, 0.6235294118, 0.3411764705882353, 0.0039215686, 0.4235294118, + 0.6078431373, 0.34509803921568627, 0.0039215686, 0.4392156863, 0.5921568627, + 0.34901960784313724, 0.0039215686, 0.4588235294, 0.5764705882, 0.35294117647058826, + 0.0039215686, 0.4745098039, 0.5607843137, 0.3568627450980392, 0.0039215686, 0.4941176471, + 0.5450980392, 0.3607843137254902, 0.0039215686, 0.5098039216, 0.5294117647, + 0.36470588235294116, 0.0039215686, 0.5294117647, 0.5137254902, 0.3686274509803922, + 0.0039215686, 0.5450980392, 0.4980392157, 0.37254901960784315, 0.0039215686, 0.5647058824, + 0.4784313725, 0.3764705882352941, 0.0039215686, 0.5803921569, 0.462745098, 0.3803921568627451, + 0.0039215686, 0.6, 0.4470588235, 0.3843137254901961, 0.0039215686, 0.6156862745, 0.4274509804, + 0.38823529411764707, 0.0039215686, 0.6352941176, 0.4117647059, 0.39215686274509803, + 0.0039215686, 0.6509803922, 0.3960784314, 0.396078431372549, 0.0039215686, 0.6705882353, + 0.3803921569, 0.4, 0.0039215686, 0.6862745098, 0.3607843137, 0.403921568627451, 0.0039215686, + 0.7058823529, 0.3450980392, 0.40784313725490196, 0.0039215686, 0.7215686275, 0.3294117647, + 0.4117647058823529, 0.0039215686, 0.7411764706, 0.3137254902, 0.41568627450980394, + 0.0039215686, 0.7529411765, 0.2941176471, 0.4196078431372549, 0.0039215686, 0.7960784314, + 0.2784313725, 0.4235294117647059, 0.0039215686, 0.7960784314, 0.262745098, + 0.42745098039215684, 0.0392156863, 0.8039215686, 0.2509803922, 0.43137254901960786, + 0.0745098039, 0.8117647059, 0.231372549, 0.43529411764705883, 0.1098039216, 0.8196078431, + 0.2156862745, 0.4392156862745098, 0.1450980392, 0.8274509804, 0.2, 0.44313725490196076, + 0.1803921569, 0.8352941176, 0.1843137255, 0.4470588235294118, 0.2156862745, 0.8431372549, + 0.1647058824, 0.45098039215686275, 0.2509803922, 0.8509803922, 0.1490196078, + 0.4549019607843137, 0.2823529412, 0.8588235294, 0.1333333333, 0.4588235294117647, + 0.3176470588, 0.8666666667, 0.1176470588, 0.4627450980392157, 0.3529411765, 0.8745098039, + 0.0980392157, 0.4666666666666667, 0.3882352941, 0.8823529412, 0.0823529412, + 0.4705882352941177, 0.4235294118, 0.8901960784, 0.0666666667, 0.4745098039215686, + 0.4588235294, 0.8980392157, 0.0509803922, 0.4784313725490197, 0.4941176471, 0.9058823529, + 0.0431372549, 0.48235294117647065, 0.5294117647, 0.9137254902, 0.031372549, + 0.48627450980392156, 0.5647058824, 0.9215686275, 0.0196078431, 0.49019607843137253, 0.6, + 0.9294117647, 0.0078431373, 0.49411764705882355, 0.6352941176, 0.937254902, 0.0039215686, + 0.4980392156862745, 0.6705882353, 0.9450980392, 0.0039215686, 0.5019607843137255, + 0.7058823529, 0.9490196078, 0.0039215686, 0.5058823529411764, 0.7411764706, 0.9568627451, + 0.0039215686, 0.5098039215686274, 0.7725490196, 0.9607843137, 0.0039215686, + 0.5137254901960784, 0.8078431373, 0.968627451, 0.0039215686, 0.5176470588235295, 0.8431372549, + 0.9725490196, 0.0039215686, 0.5215686274509804, 0.8784313725, 0.9803921569, 0.0039215686, + 0.5254901960784314, 0.9137254902, 0.9843137255, 0.0039215686, 0.5294117647058824, + 0.9490196078, 0.9921568627, 0.0039215686, 0.5333333333333333, 0.9960784314, 0.9960784314, + 0.0039215686, 0.5372549019607843, 0.9960784314, 0.9960784314, 0.0039215686, + 0.5411764705882353, 0.9960784314, 0.9921568627, 0.0039215686, 0.5450980392156862, + 0.9960784314, 0.9843137255, 0.0039215686, 0.5490196078431373, 0.9960784314, 0.9764705882, + 0.0039215686, 0.5529411764705883, 0.9960784314, 0.968627451, 0.0039215686, 0.5568627450980392, + 0.9960784314, 0.9607843137, 0.0039215686, 0.5607843137254902, 0.9960784314, 0.9529411765, + 0.0039215686, 0.5647058823529412, 0.9960784314, 0.9450980392, 0.0039215686, + 0.5686274509803921, 0.9960784314, 0.937254902, 0.0039215686, 0.5725490196078431, 0.9960784314, + 0.9294117647, 0.0039215686, 0.5764705882352941, 0.9960784314, 0.9215686275, 0.0039215686, + 0.5803921568627451, 0.9960784314, 0.9137254902, 0.0039215686, 0.5843137254901961, + 0.9960784314, 0.9058823529, 0.0039215686, 0.5882352941176471, 0.9960784314, 0.8980392157, + 0.0039215686, 0.592156862745098, 0.9960784314, 0.8901960784, 0.0039215686, 0.596078431372549, + 0.9960784314, 0.8823529412, 0.0039215686, 0.6, 0.9960784314, 0.8745098039, 0.0039215686, + 0.6039215686274509, 0.9960784314, 0.8666666667, 0.0039215686, 0.6078431372549019, + 0.9960784314, 0.8588235294, 0.0039215686, 0.611764705882353, 0.9960784314, 0.8509803922, + 0.0039215686, 0.615686274509804, 0.9960784314, 0.8431372549, 0.0039215686, 0.6196078431372549, + 0.9960784314, 0.8352941176, 0.0039215686, 0.6235294117647059, 0.9960784314, 0.8274509804, + 0.0039215686, 0.6274509803921569, 0.9960784314, 0.8196078431, 0.0039215686, + 0.6313725490196078, 0.9960784314, 0.8117647059, 0.0039215686, 0.6352941176470588, + 0.9960784314, 0.8039215686, 0.0039215686, 0.6392156862745098, 0.9960784314, 0.7960784314, + 0.0039215686, 0.6431372549019608, 0.9960784314, 0.7882352941, 0.0039215686, + 0.6470588235294118, 0.9960784314, 0.7803921569, 0.0039215686, 0.6509803921568628, + 0.9960784314, 0.7725490196, 0.0039215686, 0.6549019607843137, 0.9960784314, 0.7647058824, + 0.0039215686, 0.6588235294117647, 0.9960784314, 0.7568627451, 0.0039215686, + 0.6627450980392157, 0.9960784314, 0.7490196078, 0.0039215686, 0.6666666666666666, + 0.9960784314, 0.7450980392, 0.0039215686, 0.6705882352941176, 0.9960784314, 0.737254902, + 0.0039215686, 0.6745098039215687, 0.9960784314, 0.7294117647, 0.0039215686, + 0.6784313725490196, 0.9960784314, 0.7215686275, 0.0039215686, 0.6823529411764706, + 0.9960784314, 0.7137254902, 0.0039215686, 0.6862745098039216, 0.9960784314, 0.7058823529, + 0.0039215686, 0.6901960784313725, 0.9960784314, 0.6980392157, 0.0039215686, + 0.6941176470588235, 0.9960784314, 0.6901960784, 0.0039215686, 0.6980392156862745, + 0.9960784314, 0.6823529412, 0.0039215686, 0.7019607843137254, 0.9960784314, 0.6745098039, + 0.0039215686, 0.7058823529411765, 0.9960784314, 0.6666666667, 0.0039215686, + 0.7098039215686275, 0.9960784314, 0.6588235294, 0.0039215686, 0.7137254901960784, + 0.9960784314, 0.6509803922, 0.0039215686, 0.7176470588235294, 0.9960784314, 0.6431372549, + 0.0039215686, 0.7215686274509804, 0.9960784314, 0.6352941176, 0.0039215686, + 0.7254901960784313, 0.9960784314, 0.6274509804, 0.0039215686, 0.7294117647058823, + 0.9960784314, 0.6196078431, 0.0039215686, 0.7333333333333333, 0.9960784314, 0.6117647059, + 0.0039215686, 0.7372549019607844, 0.9960784314, 0.6039215686, 0.0039215686, + 0.7411764705882353, 0.9960784314, 0.5960784314, 0.0039215686, 0.7450980392156863, + 0.9960784314, 0.5882352941, 0.0039215686, 0.7490196078431373, 0.9960784314, 0.5803921569, + 0.0039215686, 0.7529411764705882, 0.9960784314, 0.5725490196, 0.0039215686, + 0.7568627450980392, 0.9960784314, 0.5647058824, 0.0039215686, 0.7607843137254902, + 0.9960784314, 0.5568627451, 0.0039215686, 0.7647058823529411, 0.9960784314, 0.5490196078, + 0.0039215686, 0.7686274509803922, 0.9960784314, 0.5411764706, 0.0039215686, + 0.7725490196078432, 0.9960784314, 0.5333333333, 0.0039215686, 0.7764705882352941, + 0.9960784314, 0.5254901961, 0.0039215686, 0.7803921568627451, 0.9960784314, 0.5176470588, + 0.0039215686, 0.7843137254901961, 0.9960784314, 0.5098039216, 0.0039215686, 0.788235294117647, + 0.9960784314, 0.5019607843, 0.0039215686, 0.792156862745098, 0.9960784314, 0.4941176471, + 0.0039215686, 0.796078431372549, 0.9960784314, 0.4862745098, 0.0039215686, 0.8, 0.9960784314, + 0.4784313725, 0.0039215686, 0.803921568627451, 0.9960784314, 0.4705882353, 0.0039215686, + 0.807843137254902, 0.9960784314, 0.462745098, 0.0039215686, 0.8117647058823529, 0.9960784314, + 0.4549019608, 0.0039215686, 0.8156862745098039, 0.9960784314, 0.4470588235, 0.0039215686, + 0.8196078431372549, 0.9960784314, 0.4392156863, 0.0039215686, 0.8235294117647058, + 0.9960784314, 0.431372549, 0.0039215686, 0.8274509803921568, 0.9960784314, 0.4235294118, + 0.0039215686, 0.8313725490196079, 0.9960784314, 0.4156862745, 0.0039215686, + 0.8352941176470589, 0.9960784314, 0.4078431373, 0.0039215686, 0.8392156862745098, + 0.9960784314, 0.4, 0.0039215686, 0.8431372549019608, 0.9960784314, 0.3921568627, 0.0039215686, + 0.8470588235294118, 0.9960784314, 0.3843137255, 0.0039215686, 0.8509803921568627, + 0.9960784314, 0.3764705882, 0.0039215686, 0.8549019607843137, 0.9960784314, 0.368627451, + 0.0039215686, 0.8588235294117647, 0.9960784314, 0.3607843137, 0.0039215686, + 0.8627450980392157, 0.9960784314, 0.3529411765, 0.0039215686, 0.8666666666666667, + 0.9960784314, 0.3450980392, 0.0039215686, 0.8705882352941177, 0.9960784314, 0.337254902, + 0.0039215686, 0.8745098039215686, 0.9960784314, 0.3294117647, 0.0039215686, + 0.8784313725490196, 0.9960784314, 0.3215686275, 0.0039215686, 0.8823529411764706, + 0.9960784314, 0.3137254902, 0.0039215686, 0.8862745098039215, 0.9960784314, 0.3058823529, + 0.0039215686, 0.8901960784313725, 0.9960784314, 0.2980392157, 0.0039215686, + 0.8941176470588236, 0.9960784314, 0.2901960784, 0.0039215686, 0.8980392156862745, + 0.9960784314, 0.2823529412, 0.0039215686, 0.9019607843137255, 0.9960784314, 0.2705882353, + 0.0039215686, 0.9058823529411765, 0.9960784314, 0.2588235294, 0.0039215686, + 0.9098039215686274, 0.9960784314, 0.2509803922, 0.0039215686, 0.9137254901960784, + 0.9960784314, 0.2431372549, 0.0039215686, 0.9176470588235294, 0.9960784314, 0.231372549, + 0.0039215686, 0.9215686274509803, 0.9960784314, 0.2196078431, 0.0039215686, + 0.9254901960784314, 0.9960784314, 0.2117647059, 0.0039215686, 0.9294117647058824, + 0.9960784314, 0.2, 0.0039215686, 0.9333333333333333, 0.9960784314, 0.1882352941, 0.0039215686, + 0.9372549019607843, 0.9960784314, 0.1764705882, 0.0039215686, 0.9411764705882354, + 0.9960784314, 0.168627451, 0.0039215686, 0.9450980392156864, 0.9960784314, 0.1568627451, + 0.0039215686, 0.9490196078431372, 0.9960784314, 0.1450980392, 0.0039215686, + 0.9529411764705882, 0.9960784314, 0.1333333333, 0.0039215686, 0.9568627450980394, + 0.9960784314, 0.1254901961, 0.0039215686, 0.9607843137254903, 0.9960784314, 0.1137254902, + 0.0039215686, 0.9647058823529413, 0.9960784314, 0.1019607843, 0.0039215686, + 0.9686274509803922, 0.9960784314, 0.0901960784, 0.0039215686, 0.9725490196078431, + 0.9960784314, 0.0823529412, 0.0039215686, 0.9764705882352941, 0.9960784314, 0.0705882353, + 0.0039215686, 0.9803921568627451, 0.9960784314, 0.0588235294, 0.0039215686, 0.984313725490196, + 0.9960784314, 0.0470588235, 0.0039215686, 0.9882352941176471, 0.9960784314, 0.0392156863, + 0.0039215686, 0.9921568627450981, 0.9960784314, 0.0274509804, 0.0039215686, 0.996078431372549, + 0.9960784314, 0.0156862745, 0.0039215686, 1.0, 0.9960784314, 0.0156862745, 0.0039215686, + ], + description: 'S PET', + }, + { + ColorSpace: 'RGB', + Name: 'perfusion', + name: 'perfusion', + RGBPoints: [ + 0.0, 0.0, 0.0, 0.0, 0.00392156862745098, 0.0078431373, 0.0235294118, 0.0235294118, + 0.00784313725490196, 0.0078431373, 0.031372549, 0.0470588235, 0.011764705882352941, + 0.0078431373, 0.0392156863, 0.062745098, 0.01568627450980392, 0.0078431373, 0.0470588235, + 0.0862745098, 0.0196078431372549, 0.0078431373, 0.0549019608, 0.1019607843, + 0.023529411764705882, 0.0078431373, 0.0549019608, 0.1254901961, 0.027450980392156862, + 0.0078431373, 0.062745098, 0.1411764706, 0.03137254901960784, 0.0078431373, 0.0705882353, + 0.1647058824, 0.03529411764705882, 0.0078431373, 0.0784313725, 0.1803921569, + 0.0392156862745098, 0.0078431373, 0.0862745098, 0.2039215686, 0.043137254901960784, + 0.0078431373, 0.0862745098, 0.2196078431, 0.047058823529411764, 0.0078431373, 0.0941176471, + 0.2431372549, 0.050980392156862744, 0.0078431373, 0.1019607843, 0.2666666667, + 0.054901960784313725, 0.0078431373, 0.1098039216, 0.2823529412, 0.05882352941176471, + 0.0078431373, 0.1176470588, 0.3058823529, 0.06274509803921569, 0.0078431373, 0.1176470588, + 0.3215686275, 0.06666666666666667, 0.0078431373, 0.1254901961, 0.3450980392, + 0.07058823529411765, 0.0078431373, 0.1333333333, 0.3607843137, 0.07450980392156863, + 0.0078431373, 0.1411764706, 0.3843137255, 0.0784313725490196, 0.0078431373, 0.1490196078, 0.4, + 0.08235294117647059, 0.0078431373, 0.1490196078, 0.4235294118, 0.08627450980392157, + 0.0078431373, 0.1568627451, 0.4392156863, 0.09019607843137255, 0.0078431373, 0.1647058824, + 0.462745098, 0.09411764705882353, 0.0078431373, 0.1725490196, 0.4784313725, + 0.09803921568627451, 0.0078431373, 0.1803921569, 0.5019607843, 0.10196078431372549, + 0.0078431373, 0.1803921569, 0.5254901961, 0.10588235294117647, 0.0078431373, 0.1882352941, + 0.5411764706, 0.10980392156862745, 0.0078431373, 0.1960784314, 0.5647058824, + 0.11372549019607843, 0.0078431373, 0.2039215686, 0.5803921569, 0.11764705882352942, + 0.0078431373, 0.2117647059, 0.6039215686, 0.12156862745098039, 0.0078431373, 0.2117647059, + 0.6196078431, 0.12549019607843137, 0.0078431373, 0.2196078431, 0.6431372549, + 0.12941176470588237, 0.0078431373, 0.2274509804, 0.6588235294, 0.13333333333333333, + 0.0078431373, 0.2352941176, 0.6823529412, 0.13725490196078433, 0.0078431373, 0.2431372549, + 0.6980392157, 0.1411764705882353, 0.0078431373, 0.2431372549, 0.7215686275, + 0.1450980392156863, 0.0078431373, 0.2509803922, 0.737254902, 0.14901960784313725, + 0.0078431373, 0.2588235294, 0.7607843137, 0.15294117647058825, 0.0078431373, 0.2666666667, + 0.7843137255, 0.1568627450980392, 0.0078431373, 0.2745098039, 0.8, 0.1607843137254902, + 0.0078431373, 0.2745098039, 0.8235294118, 0.16470588235294117, 0.0078431373, 0.2823529412, + 0.8392156863, 0.16862745098039217, 0.0078431373, 0.2901960784, 0.862745098, + 0.17254901960784313, 0.0078431373, 0.2980392157, 0.8784313725, 0.17647058823529413, + 0.0078431373, 0.3058823529, 0.9019607843, 0.1803921568627451, 0.0078431373, 0.3058823529, + 0.9176470588, 0.1843137254901961, 0.0078431373, 0.2980392157, 0.9411764706, + 0.18823529411764706, 0.0078431373, 0.3058823529, 0.9568627451, 0.19215686274509805, + 0.0078431373, 0.2980392157, 0.9803921569, 0.19607843137254902, 0.0078431373, 0.2980392157, + 0.9882352941, 0.2, 0.0078431373, 0.2901960784, 0.9803921569, 0.20392156862745098, + 0.0078431373, 0.2901960784, 0.9647058824, 0.20784313725490197, 0.0078431373, 0.2823529412, + 0.9568627451, 0.21176470588235294, 0.0078431373, 0.2823529412, 0.9411764706, + 0.21568627450980393, 0.0078431373, 0.2745098039, 0.9333333333, 0.2196078431372549, + 0.0078431373, 0.2666666667, 0.9176470588, 0.2235294117647059, 0.0078431373, 0.2666666667, + 0.9098039216, 0.22745098039215686, 0.0078431373, 0.2588235294, 0.9019607843, + 0.23137254901960785, 0.0078431373, 0.2588235294, 0.8862745098, 0.23529411764705885, + 0.0078431373, 0.2509803922, 0.8784313725, 0.23921568627450984, 0.0078431373, 0.2509803922, + 0.862745098, 0.24313725490196078, 0.0078431373, 0.2431372549, 0.8549019608, + 0.24705882352941178, 0.0078431373, 0.2352941176, 0.8392156863, 0.25098039215686274, + 0.0078431373, 0.2352941176, 0.831372549, 0.2549019607843137, 0.0078431373, 0.2274509804, + 0.8235294118, 0.25882352941176473, 0.0078431373, 0.2274509804, 0.8078431373, + 0.2627450980392157, 0.0078431373, 0.2196078431, 0.8, 0.26666666666666666, 0.0078431373, + 0.2196078431, 0.7843137255, 0.27058823529411763, 0.0078431373, 0.2117647059, 0.7764705882, + 0.27450980392156865, 0.0078431373, 0.2039215686, 0.7607843137, 0.2784313725490196, + 0.0078431373, 0.2039215686, 0.7529411765, 0.2823529411764706, 0.0078431373, 0.1960784314, + 0.7450980392, 0.28627450980392155, 0.0078431373, 0.1960784314, 0.7294117647, + 0.2901960784313726, 0.0078431373, 0.1882352941, 0.7215686275, 0.29411764705882354, + 0.0078431373, 0.1882352941, 0.7058823529, 0.2980392156862745, 0.0078431373, 0.1803921569, + 0.6980392157, 0.30196078431372547, 0.0078431373, 0.1803921569, 0.6823529412, + 0.3058823529411765, 0.0078431373, 0.1725490196, 0.6745098039, 0.30980392156862746, + 0.0078431373, 0.1647058824, 0.6666666667, 0.3137254901960784, 0.0078431373, 0.1647058824, + 0.6509803922, 0.3176470588235294, 0.0078431373, 0.1568627451, 0.6431372549, + 0.3215686274509804, 0.0078431373, 0.1568627451, 0.6274509804, 0.3254901960784314, + 0.0078431373, 0.1490196078, 0.6196078431, 0.32941176470588235, 0.0078431373, 0.1490196078, + 0.6039215686, 0.3333333333333333, 0.0078431373, 0.1411764706, 0.5960784314, + 0.33725490196078434, 0.0078431373, 0.1333333333, 0.5882352941, 0.3411764705882353, + 0.0078431373, 0.1333333333, 0.5725490196, 0.34509803921568627, 0.0078431373, 0.1254901961, + 0.5647058824, 0.34901960784313724, 0.0078431373, 0.1254901961, 0.5490196078, + 0.35294117647058826, 0.0078431373, 0.1176470588, 0.5411764706, 0.3568627450980392, + 0.0078431373, 0.1176470588, 0.5254901961, 0.3607843137254902, 0.0078431373, 0.1098039216, + 0.5176470588, 0.36470588235294116, 0.0078431373, 0.1019607843, 0.5098039216, + 0.3686274509803922, 0.0078431373, 0.1019607843, 0.4941176471, 0.37254901960784315, + 0.0078431373, 0.0941176471, 0.4862745098, 0.3764705882352941, 0.0078431373, 0.0941176471, + 0.4705882353, 0.3803921568627451, 0.0078431373, 0.0862745098, 0.462745098, 0.3843137254901961, + 0.0078431373, 0.0862745098, 0.4470588235, 0.38823529411764707, 0.0078431373, 0.0784313725, + 0.4392156863, 0.39215686274509803, 0.0078431373, 0.0705882353, 0.431372549, 0.396078431372549, + 0.0078431373, 0.0705882353, 0.4156862745, 0.4, 0.0078431373, 0.062745098, 0.4078431373, + 0.403921568627451, 0.0078431373, 0.062745098, 0.3921568627, 0.40784313725490196, 0.0078431373, + 0.0549019608, 0.3843137255, 0.4117647058823529, 0.0078431373, 0.0549019608, 0.368627451, + 0.41568627450980394, 0.0078431373, 0.0470588235, 0.3607843137, 0.4196078431372549, + 0.0078431373, 0.0470588235, 0.3529411765, 0.4235294117647059, 0.0078431373, 0.0392156863, + 0.337254902, 0.42745098039215684, 0.0078431373, 0.031372549, 0.3294117647, + 0.43137254901960786, 0.0078431373, 0.031372549, 0.3137254902, 0.43529411764705883, + 0.0078431373, 0.0235294118, 0.3058823529, 0.4392156862745098, 0.0078431373, 0.0235294118, + 0.2901960784, 0.44313725490196076, 0.0078431373, 0.0156862745, 0.2823529412, + 0.4470588235294118, 0.0078431373, 0.0156862745, 0.2745098039, 0.45098039215686275, + 0.0078431373, 0.0078431373, 0.2588235294, 0.4549019607843137, 0.0235294118, 0.0078431373, + 0.2509803922, 0.4588235294117647, 0.0078431373, 0.0078431373, 0.2352941176, + 0.4627450980392157, 0.0078431373, 0.0078431373, 0.2274509804, 0.4666666666666667, + 0.0078431373, 0.0078431373, 0.2117647059, 0.4705882352941177, 0.0078431373, 0.0078431373, + 0.2039215686, 0.4745098039215686, 0.0078431373, 0.0078431373, 0.1960784314, + 0.4784313725490197, 0.0078431373, 0.0078431373, 0.1803921569, 0.48235294117647065, + 0.0078431373, 0.0078431373, 0.1725490196, 0.48627450980392156, 0.0078431373, 0.0078431373, + 0.1568627451, 0.49019607843137253, 0.0078431373, 0.0078431373, 0.1490196078, + 0.49411764705882355, 0.0078431373, 0.0078431373, 0.1333333333, 0.4980392156862745, + 0.0078431373, 0.0078431373, 0.1254901961, 0.5019607843137255, 0.0078431373, 0.0078431373, + 0.1176470588, 0.5058823529411764, 0.0078431373, 0.0078431373, 0.1019607843, + 0.5098039215686274, 0.0078431373, 0.0078431373, 0.0941176471, 0.5137254901960784, + 0.0078431373, 0.0078431373, 0.0784313725, 0.5176470588235295, 0.0078431373, 0.0078431373, + 0.0705882353, 0.5215686274509804, 0.0078431373, 0.0078431373, 0.0549019608, + 0.5254901960784314, 0.0078431373, 0.0078431373, 0.0470588235, 0.5294117647058824, + 0.0235294118, 0.0078431373, 0.0392156863, 0.5333333333333333, 0.031372549, 0.0078431373, + 0.0235294118, 0.5372549019607843, 0.0392156863, 0.0078431373, 0.0156862745, + 0.5411764705882353, 0.0549019608, 0.0078431373, 0.0, 0.5450980392156862, 0.062745098, + 0.0078431373, 0.0, 0.5490196078431373, 0.0705882353, 0.0078431373, 0.0, 0.5529411764705883, + 0.0862745098, 0.0078431373, 0.0, 0.5568627450980392, 0.0941176471, 0.0078431373, 0.0, + 0.5607843137254902, 0.1019607843, 0.0078431373, 0.0, 0.5647058823529412, 0.1098039216, + 0.0078431373, 0.0, 0.5686274509803921, 0.1254901961, 0.0078431373, 0.0, 0.5725490196078431, + 0.1333333333, 0.0078431373, 0.0, 0.5764705882352941, 0.1411764706, 0.0078431373, 0.0, + 0.5803921568627451, 0.1568627451, 0.0078431373, 0.0, 0.5843137254901961, 0.1647058824, + 0.0078431373, 0.0, 0.5882352941176471, 0.1725490196, 0.0078431373, 0.0, 0.592156862745098, + 0.1882352941, 0.0078431373, 0.0, 0.596078431372549, 0.1960784314, 0.0078431373, 0.0, 0.6, + 0.2039215686, 0.0078431373, 0.0, 0.6039215686274509, 0.2117647059, 0.0078431373, 0.0, + 0.6078431372549019, 0.2274509804, 0.0078431373, 0.0, 0.611764705882353, 0.2352941176, + 0.0078431373, 0.0, 0.615686274509804, 0.2431372549, 0.0078431373, 0.0, 0.6196078431372549, + 0.2588235294, 0.0078431373, 0.0, 0.6235294117647059, 0.2666666667, 0.0078431373, 0.0, + 0.6274509803921569, 0.2745098039, 0.0, 0.0, 0.6313725490196078, 0.2901960784, 0.0156862745, + 0.0, 0.6352941176470588, 0.2980392157, 0.0235294118, 0.0, 0.6392156862745098, 0.3058823529, + 0.0392156863, 0.0, 0.6431372549019608, 0.3137254902, 0.0470588235, 0.0, 0.6470588235294118, + 0.3294117647, 0.0549019608, 0.0, 0.6509803921568628, 0.337254902, 0.0705882353, 0.0, + 0.6549019607843137, 0.3450980392, 0.0784313725, 0.0, 0.6588235294117647, 0.3607843137, + 0.0862745098, 0.0, 0.6627450980392157, 0.368627451, 0.1019607843, 0.0, 0.6666666666666666, + 0.3764705882, 0.1098039216, 0.0, 0.6705882352941176, 0.3843137255, 0.1176470588, 0.0, + 0.6745098039215687, 0.4, 0.1333333333, 0.0, 0.6784313725490196, 0.4078431373, 0.1411764706, + 0.0, 0.6823529411764706, 0.4156862745, 0.1490196078, 0.0, 0.6862745098039216, 0.431372549, + 0.1647058824, 0.0, 0.6901960784313725, 0.4392156863, 0.1725490196, 0.0, 0.6941176470588235, + 0.4470588235, 0.1803921569, 0.0, 0.6980392156862745, 0.462745098, 0.1960784314, 0.0, + 0.7019607843137254, 0.4705882353, 0.2039215686, 0.0, 0.7058823529411765, 0.4784313725, + 0.2117647059, 0.0, 0.7098039215686275, 0.4862745098, 0.2274509804, 0.0, 0.7137254901960784, + 0.5019607843, 0.2352941176, 0.0, 0.7176470588235294, 0.5098039216, 0.2431372549, 0.0, + 0.7215686274509804, 0.5176470588, 0.2588235294, 0.0, 0.7254901960784313, 0.5333333333, + 0.2666666667, 0.0, 0.7294117647058823, 0.5411764706, 0.2745098039, 0.0, 0.7333333333333333, + 0.5490196078, 0.2901960784, 0.0, 0.7372549019607844, 0.5647058824, 0.2980392157, 0.0, + 0.7411764705882353, 0.5725490196, 0.3058823529, 0.0, 0.7450980392156863, 0.5803921569, + 0.3215686275, 0.0, 0.7490196078431373, 0.5882352941, 0.3294117647, 0.0, 0.7529411764705882, + 0.6039215686, 0.337254902, 0.0, 0.7568627450980392, 0.6117647059, 0.3529411765, 0.0, + 0.7607843137254902, 0.6196078431, 0.3607843137, 0.0, 0.7647058823529411, 0.6352941176, + 0.368627451, 0.0, 0.7686274509803922, 0.6431372549, 0.3843137255, 0.0, 0.7725490196078432, + 0.6509803922, 0.3921568627, 0.0, 0.7764705882352941, 0.6588235294, 0.4, 0.0, + 0.7803921568627451, 0.6745098039, 0.4156862745, 0.0, 0.7843137254901961, 0.6823529412, + 0.4235294118, 0.0, 0.788235294117647, 0.6901960784, 0.431372549, 0.0, 0.792156862745098, + 0.7058823529, 0.4470588235, 0.0, 0.796078431372549, 0.7137254902, 0.4549019608, 0.0, 0.8, + 0.7215686275, 0.462745098, 0.0, 0.803921568627451, 0.737254902, 0.4784313725, 0.0, + 0.807843137254902, 0.7450980392, 0.4862745098, 0.0, 0.8117647058823529, 0.7529411765, + 0.4941176471, 0.0, 0.8156862745098039, 0.7607843137, 0.5098039216, 0.0, 0.8196078431372549, + 0.7764705882, 0.5176470588, 0.0, 0.8235294117647058, 0.7843137255, 0.5254901961, 0.0, + 0.8274509803921568, 0.7921568627, 0.5411764706, 0.0, 0.8313725490196079, 0.8078431373, + 0.5490196078, 0.0, 0.8352941176470589, 0.8156862745, 0.5568627451, 0.0, 0.8392156862745098, + 0.8235294118, 0.5725490196, 0.0, 0.8431372549019608, 0.8392156863, 0.5803921569, 0.0, + 0.8470588235294118, 0.8470588235, 0.5882352941, 0.0, 0.8509803921568627, 0.8549019608, + 0.6039215686, 0.0, 0.8549019607843137, 0.862745098, 0.6117647059, 0.0, 0.8588235294117647, + 0.8784313725, 0.6196078431, 0.0, 0.8627450980392157, 0.8862745098, 0.6352941176, 0.0, + 0.8666666666666667, 0.8941176471, 0.6431372549, 0.0, 0.8705882352941177, 0.9098039216, + 0.6509803922, 0.0, 0.8745098039215686, 0.9176470588, 0.6666666667, 0.0, 0.8784313725490196, + 0.9254901961, 0.6745098039, 0.0, 0.8823529411764706, 0.9411764706, 0.6823529412, 0.0, + 0.8862745098039215, 0.9490196078, 0.6980392157, 0.0, 0.8901960784313725, 0.9568627451, + 0.7058823529, 0.0, 0.8941176470588236, 0.9647058824, 0.7137254902, 0.0, 0.8980392156862745, + 0.9803921569, 0.7294117647, 0.0, 0.9019607843137255, 0.9882352941, 0.737254902, 0.0, + 0.9058823529411765, 0.9960784314, 0.7450980392, 0.0, 0.9098039215686274, 0.9960784314, + 0.7607843137, 0.0, 0.9137254901960784, 0.9960784314, 0.768627451, 0.0, 0.9176470588235294, + 0.9960784314, 0.7764705882, 0.0, 0.9215686274509803, 0.9960784314, 0.7921568627, 0.0, + 0.9254901960784314, 0.9960784314, 0.8, 0.0, 0.9294117647058824, 0.9960784314, 0.8078431373, + 0.0, 0.9333333333333333, 0.9960784314, 0.8235294118, 0.0, 0.9372549019607843, 0.9960784314, + 0.831372549, 0.0, 0.9411764705882354, 0.9960784314, 0.8392156863, 0.0, 0.9450980392156864, + 0.9960784314, 0.8549019608, 0.0, 0.9490196078431372, 0.9960784314, 0.862745098, 0.0549019608, + 0.9529411764705882, 0.9960784314, 0.8705882353, 0.1098039216, 0.9568627450980394, + 0.9960784314, 0.8862745098, 0.1647058824, 0.9607843137254903, 0.9960784314, 0.8941176471, + 0.2196078431, 0.9647058823529413, 0.9960784314, 0.9019607843, 0.2666666667, + 0.9686274509803922, 0.9960784314, 0.9176470588, 0.3215686275, 0.9725490196078431, + 0.9960784314, 0.9254901961, 0.3764705882, 0.9764705882352941, 0.9960784314, 0.9333333333, + 0.431372549, 0.9803921568627451, 0.9960784314, 0.9490196078, 0.4862745098, 0.984313725490196, + 0.9960784314, 0.9568627451, 0.5333333333, 0.9882352941176471, 0.9960784314, 0.9647058824, + 0.5882352941, 0.9921568627450981, 0.9960784314, 0.9803921569, 0.6431372549, 0.996078431372549, + 0.9960784314, 0.9882352941, 0.6980392157, 1.0, 0.9960784314, 0.9960784314, 0.7450980392, + ], + description: 'Perfusion', + }, + { + ColorSpace: 'RGB', + Name: 'rainbow_2', + name: 'rainbow_2', + RGBPoints: [ + 0.0, 0.0, 0.0, 0.0, 0.00392156862745098, 0.0156862745, 0.0, 0.0117647059, 0.00784313725490196, + 0.0352941176, 0.0, 0.0274509804, 0.011764705882352941, 0.0509803922, 0.0, 0.0392156863, + 0.01568627450980392, 0.0705882353, 0.0, 0.0549019608, 0.0196078431372549, 0.0862745098, 0.0, + 0.0745098039, 0.023529411764705882, 0.1058823529, 0.0, 0.0901960784, 0.027450980392156862, + 0.1215686275, 0.0, 0.1098039216, 0.03137254901960784, 0.1411764706, 0.0, 0.1254901961, + 0.03529411764705882, 0.1568627451, 0.0, 0.1490196078, 0.0392156862745098, 0.1764705882, 0.0, + 0.168627451, 0.043137254901960784, 0.1960784314, 0.0, 0.1882352941, 0.047058823529411764, + 0.2117647059, 0.0, 0.2078431373, 0.050980392156862744, 0.2274509804, 0.0, 0.231372549, + 0.054901960784313725, 0.2392156863, 0.0, 0.2470588235, 0.05882352941176471, 0.2509803922, 0.0, + 0.2666666667, 0.06274509803921569, 0.2666666667, 0.0, 0.2823529412, 0.06666666666666667, + 0.2705882353, 0.0, 0.3019607843, 0.07058823529411765, 0.2823529412, 0.0, 0.3176470588, + 0.07450980392156863, 0.2901960784, 0.0, 0.337254902, 0.0784313725490196, 0.3019607843, 0.0, + 0.3568627451, 0.08235294117647059, 0.3098039216, 0.0, 0.3725490196, 0.08627450980392157, + 0.3137254902, 0.0, 0.3921568627, 0.09019607843137255, 0.3215686275, 0.0, 0.4078431373, + 0.09411764705882353, 0.3254901961, 0.0, 0.4274509804, 0.09803921568627451, 0.3333333333, 0.0, + 0.4431372549, 0.10196078431372549, 0.3294117647, 0.0, 0.462745098, 0.10588235294117647, + 0.337254902, 0.0, 0.4784313725, 0.10980392156862745, 0.3411764706, 0.0, 0.4980392157, + 0.11372549019607843, 0.3450980392, 0.0, 0.5176470588, 0.11764705882352942, 0.337254902, 0.0, + 0.5333333333, 0.12156862745098039, 0.3411764706, 0.0, 0.5529411765, 0.12549019607843137, + 0.3411764706, 0.0, 0.568627451, 0.12941176470588237, 0.3411764706, 0.0, 0.5882352941, + 0.13333333333333333, 0.3333333333, 0.0, 0.6039215686, 0.13725490196078433, 0.3294117647, 0.0, + 0.6235294118, 0.1411764705882353, 0.3294117647, 0.0, 0.6392156863, 0.1450980392156863, + 0.3294117647, 0.0, 0.6588235294, 0.14901960784313725, 0.3254901961, 0.0, 0.6784313725, + 0.15294117647058825, 0.3098039216, 0.0, 0.6941176471, 0.1568627450980392, 0.3058823529, 0.0, + 0.7137254902, 0.1607843137254902, 0.3019607843, 0.0, 0.7294117647, 0.16470588235294117, + 0.2980392157, 0.0, 0.7490196078, 0.16862745098039217, 0.2784313725, 0.0, 0.7647058824, + 0.17254901960784313, 0.2745098039, 0.0, 0.7843137255, 0.17647058823529413, 0.2666666667, 0.0, + 0.8, 0.1803921568627451, 0.2588235294, 0.0, 0.8196078431, 0.1843137254901961, 0.2352941176, + 0.0, 0.8392156863, 0.18823529411764706, 0.2274509804, 0.0, 0.8549019608, 0.19215686274509805, + 0.2156862745, 0.0, 0.8745098039, 0.19607843137254902, 0.2078431373, 0.0, 0.8901960784, 0.2, + 0.1803921569, 0.0, 0.9098039216, 0.20392156862745098, 0.168627451, 0.0, 0.9254901961, + 0.20784313725490197, 0.1568627451, 0.0, 0.9450980392, 0.21176470588235294, 0.1411764706, 0.0, + 0.9607843137, 0.21568627450980393, 0.1294117647, 0.0, 0.9803921569, 0.2196078431372549, + 0.0980392157, 0.0, 1.0, 0.2235294117647059, 0.0823529412, 0.0, 1.0, 0.22745098039215686, + 0.062745098, 0.0, 1.0, 0.23137254901960785, 0.0470588235, 0.0, 1.0, 0.23529411764705885, + 0.0156862745, 0.0, 1.0, 0.23921568627450984, 0.0, 0.0, 1.0, 0.24313725490196078, 0.0, + 0.0156862745, 1.0, 0.24705882352941178, 0.0, 0.031372549, 1.0, 0.25098039215686274, 0.0, + 0.062745098, 1.0, 0.2549019607843137, 0.0, 0.0823529412, 1.0, 0.25882352941176473, 0.0, + 0.0980392157, 1.0, 0.2627450980392157, 0.0, 0.1137254902, 1.0, 0.26666666666666666, 0.0, + 0.1490196078, 1.0, 0.27058823529411763, 0.0, 0.1647058824, 1.0, 0.27450980392156865, 0.0, + 0.1803921569, 1.0, 0.2784313725490196, 0.0, 0.2, 1.0, 0.2823529411764706, 0.0, 0.2156862745, + 1.0, 0.28627450980392155, 0.0, 0.2470588235, 1.0, 0.2901960784313726, 0.0, 0.262745098, 1.0, + 0.29411764705882354, 0.0, 0.2823529412, 1.0, 0.2980392156862745, 0.0, 0.2980392157, 1.0, + 0.30196078431372547, 0.0, 0.3294117647, 1.0, 0.3058823529411765, 0.0, 0.3490196078, 1.0, + 0.30980392156862746, 0.0, 0.3647058824, 1.0, 0.3137254901960784, 0.0, 0.3803921569, 1.0, + 0.3176470588235294, 0.0, 0.4156862745, 1.0, 0.3215686274509804, 0.0, 0.431372549, 1.0, + 0.3254901960784314, 0.0, 0.4470588235, 1.0, 0.32941176470588235, 0.0, 0.4666666667, 1.0, + 0.3333333333333333, 0.0, 0.4980392157, 1.0, 0.33725490196078434, 0.0, 0.5137254902, 1.0, + 0.3411764705882353, 0.0, 0.5294117647, 1.0, 0.34509803921568627, 0.0, 0.5490196078, 1.0, + 0.34901960784313724, 0.0, 0.5647058824, 1.0, 0.35294117647058826, 0.0, 0.5960784314, 1.0, + 0.3568627450980392, 0.0, 0.6156862745, 1.0, 0.3607843137254902, 0.0, 0.631372549, 1.0, + 0.36470588235294116, 0.0, 0.6470588235, 1.0, 0.3686274509803922, 0.0, 0.6823529412, 1.0, + 0.37254901960784315, 0.0, 0.6980392157, 1.0, 0.3764705882352941, 0.0, 0.7137254902, 1.0, + 0.3803921568627451, 0.0, 0.7333333333, 1.0, 0.3843137254901961, 0.0, 0.7647058824, 1.0, + 0.38823529411764707, 0.0, 0.7803921569, 1.0, 0.39215686274509803, 0.0, 0.7960784314, 1.0, + 0.396078431372549, 0.0, 0.8156862745, 1.0, 0.4, 0.0, 0.8470588235, 1.0, 0.403921568627451, + 0.0, 0.862745098, 1.0, 0.40784313725490196, 0.0, 0.8823529412, 1.0, 0.4117647058823529, 0.0, + 0.8980392157, 1.0, 0.41568627450980394, 0.0, 0.9137254902, 1.0, 0.4196078431372549, 0.0, + 0.9490196078, 1.0, 0.4235294117647059, 0.0, 0.9647058824, 1.0, 0.42745098039215684, 0.0, + 0.9803921569, 1.0, 0.43137254901960786, 0.0, 1.0, 1.0, 0.43529411764705883, 0.0, 1.0, + 0.9647058824, 0.4392156862745098, 0.0, 1.0, 0.9490196078, 0.44313725490196076, 0.0, 1.0, + 0.9333333333, 0.4470588235294118, 0.0, 1.0, 0.9137254902, 0.45098039215686275, 0.0, 1.0, + 0.8823529412, 0.4549019607843137, 0.0, 1.0, 0.862745098, 0.4588235294117647, 0.0, 1.0, + 0.8470588235, 0.4627450980392157, 0.0, 1.0, 0.831372549, 0.4666666666666667, 0.0, 1.0, + 0.7960784314, 0.4705882352941177, 0.0, 1.0, 0.7803921569, 0.4745098039215686, 0.0, 1.0, + 0.7647058824, 0.4784313725490197, 0.0, 1.0, 0.7490196078, 0.48235294117647065, 0.0, 1.0, + 0.7333333333, 0.48627450980392156, 0.0, 1.0, 0.6980392157, 0.49019607843137253, 0.0, 1.0, + 0.6823529412, 0.49411764705882355, 0.0, 1.0, 0.6666666667, 0.4980392156862745, 0.0, 1.0, + 0.6470588235, 0.5019607843137255, 0.0, 1.0, 0.6156862745, 0.5058823529411764, 0.0, 1.0, + 0.5960784314, 0.5098039215686274, 0.0, 1.0, 0.5803921569, 0.5137254901960784, 0.0, 1.0, + 0.5647058824, 0.5176470588235295, 0.0, 1.0, 0.5294117647, 0.5215686274509804, 0.0, 1.0, + 0.5137254902, 0.5254901960784314, 0.0, 1.0, 0.4980392157, 0.5294117647058824, 0.0, 1.0, + 0.4823529412, 0.5333333333333333, 0.0, 1.0, 0.4470588235, 0.5372549019607843, 0.0, 1.0, + 0.431372549, 0.5411764705882353, 0.0, 1.0, 0.4156862745, 0.5450980392156862, 0.0, 1.0, 0.4, + 0.5490196078431373, 0.0, 1.0, 0.3803921569, 0.5529411764705883, 0.0, 1.0, 0.3490196078, + 0.5568627450980392, 0.0, 1.0, 0.3294117647, 0.5607843137254902, 0.0, 1.0, 0.3137254902, + 0.5647058823529412, 0.0, 1.0, 0.2980392157, 0.5686274509803921, 0.0, 1.0, 0.262745098, + 0.5725490196078431, 0.0, 1.0, 0.2470588235, 0.5764705882352941, 0.0, 1.0, 0.231372549, + 0.5803921568627451, 0.0, 1.0, 0.2156862745, 0.5843137254901961, 0.0, 1.0, 0.1803921569, + 0.5882352941176471, 0.0, 1.0, 0.1647058824, 0.592156862745098, 0.0, 1.0, 0.1490196078, + 0.596078431372549, 0.0, 1.0, 0.1333333333, 0.6, 0.0, 1.0, 0.0980392157, 0.6039215686274509, + 0.0, 1.0, 0.0823529412, 0.6078431372549019, 0.0, 1.0, 0.062745098, 0.611764705882353, 0.0, + 1.0, 0.0470588235, 0.615686274509804, 0.0, 1.0, 0.031372549, 0.6196078431372549, 0.0, 1.0, + 0.0, 0.6235294117647059, 0.0156862745, 1.0, 0.0, 0.6274509803921569, 0.031372549, 1.0, 0.0, + 0.6313725490196078, 0.0470588235, 1.0, 0.0, 0.6352941176470588, 0.0823529412, 1.0, 0.0, + 0.6392156862745098, 0.0980392157, 1.0, 0.0, 0.6431372549019608, 0.1137254902, 1.0, 0.0, + 0.6470588235294118, 0.1294117647, 1.0, 0.0, 0.6509803921568628, 0.1647058824, 1.0, 0.0, + 0.6549019607843137, 0.1803921569, 1.0, 0.0, 0.6588235294117647, 0.2, 1.0, 0.0, + 0.6627450980392157, 0.2156862745, 1.0, 0.0, 0.6666666666666666, 0.2470588235, 1.0, 0.0, + 0.6705882352941176, 0.262745098, 1.0, 0.0, 0.6745098039215687, 0.2823529412, 1.0, 0.0, + 0.6784313725490196, 0.2980392157, 1.0, 0.0, 0.6823529411764706, 0.3137254902, 1.0, 0.0, + 0.6862745098039216, 0.3490196078, 1.0, 0.0, 0.6901960784313725, 0.3647058824, 1.0, 0.0, + 0.6941176470588235, 0.3803921569, 1.0, 0.0, 0.6980392156862745, 0.3960784314, 1.0, 0.0, + 0.7019607843137254, 0.431372549, 1.0, 0.0, 0.7058823529411765, 0.4470588235, 1.0, 0.0, + 0.7098039215686275, 0.4666666667, 1.0, 0.0, 0.7137254901960784, 0.4823529412, 1.0, 0.0, + 0.7176470588235294, 0.5137254902, 1.0, 0.0, 0.7215686274509804, 0.5294117647, 1.0, 0.0, + 0.7254901960784313, 0.5490196078, 1.0, 0.0, 0.7294117647058823, 0.5647058824, 1.0, 0.0, + 0.7333333333333333, 0.6, 1.0, 0.0, 0.7372549019607844, 0.6156862745, 1.0, 0.0, + 0.7411764705882353, 0.631372549, 1.0, 0.0, 0.7450980392156863, 0.6470588235, 1.0, 0.0, + 0.7490196078431373, 0.662745098, 1.0, 0.0, 0.7529411764705882, 0.6980392157, 1.0, 0.0, + 0.7568627450980392, 0.7137254902, 1.0, 0.0, 0.7607843137254902, 0.7333333333, 1.0, 0.0, + 0.7647058823529411, 0.7490196078, 1.0, 0.0, 0.7686274509803922, 0.7803921569, 1.0, 0.0, + 0.7725490196078432, 0.7960784314, 1.0, 0.0, 0.7764705882352941, 0.8156862745, 1.0, 0.0, + 0.7803921568627451, 0.831372549, 1.0, 0.0, 0.7843137254901961, 0.8666666667, 1.0, 0.0, + 0.788235294117647, 0.8823529412, 1.0, 0.0, 0.792156862745098, 0.8980392157, 1.0, 0.0, + 0.796078431372549, 0.9137254902, 1.0, 0.0, 0.8, 0.9490196078, 1.0, 0.0, 0.803921568627451, + 0.9647058824, 1.0, 0.0, 0.807843137254902, 0.9803921569, 1.0, 0.0, 0.8117647058823529, 1.0, + 1.0, 0.0, 0.8156862745098039, 1.0, 0.9803921569, 0.0, 0.8196078431372549, 1.0, 0.9490196078, + 0.0, 0.8235294117647058, 1.0, 0.9333333333, 0.0, 0.8274509803921568, 1.0, 0.9137254902, 0.0, + 0.8313725490196079, 1.0, 0.8980392157, 0.0, 0.8352941176470589, 1.0, 0.8666666667, 0.0, + 0.8392156862745098, 1.0, 0.8470588235, 0.0, 0.8431372549019608, 1.0, 0.831372549, 0.0, + 0.8470588235294118, 1.0, 0.8156862745, 0.0, 0.8509803921568627, 1.0, 0.7803921569, 0.0, + 0.8549019607843137, 1.0, 0.7647058824, 0.0, 0.8588235294117647, 1.0, 0.7490196078, 0.0, + 0.8627450980392157, 1.0, 0.7333333333, 0.0, 0.8666666666666667, 1.0, 0.6980392157, 0.0, + 0.8705882352941177, 1.0, 0.6823529412, 0.0, 0.8745098039215686, 1.0, 0.6666666667, 0.0, + 0.8784313725490196, 1.0, 0.6470588235, 0.0, 0.8823529411764706, 1.0, 0.631372549, 0.0, + 0.8862745098039215, 1.0, 0.6, 0.0, 0.8901960784313725, 1.0, 0.5803921569, 0.0, + 0.8941176470588236, 1.0, 0.5647058824, 0.0, 0.8980392156862745, 1.0, 0.5490196078, 0.0, + 0.9019607843137255, 1.0, 0.5137254902, 0.0, 0.9058823529411765, 1.0, 0.4980392157, 0.0, + 0.9098039215686274, 1.0, 0.4823529412, 0.0, 0.9137254901960784, 1.0, 0.4666666667, 0.0, + 0.9176470588235294, 1.0, 0.431372549, 0.0, 0.9215686274509803, 1.0, 0.4156862745, 0.0, + 0.9254901960784314, 1.0, 0.4, 0.0, 0.9294117647058824, 1.0, 0.3803921569, 0.0, + 0.9333333333333333, 1.0, 0.3490196078, 0.0, 0.9372549019607843, 1.0, 0.3333333333, 0.0, + 0.9411764705882354, 1.0, 0.3137254902, 0.0, 0.9450980392156864, 1.0, 0.2980392157, 0.0, + 0.9490196078431372, 1.0, 0.2823529412, 0.0, 0.9529411764705882, 1.0, 0.2470588235, 0.0, + 0.9568627450980394, 1.0, 0.231372549, 0.0, 0.9607843137254903, 1.0, 0.2156862745, 0.0, + 0.9647058823529413, 1.0, 0.2, 0.0, 0.9686274509803922, 1.0, 0.1647058824, 0.0, + 0.9725490196078431, 1.0, 0.1490196078, 0.0, 0.9764705882352941, 1.0, 0.1333333333, 0.0, + 0.9803921568627451, 1.0, 0.1137254902, 0.0, 0.984313725490196, 1.0, 0.0823529412, 0.0, + 0.9882352941176471, 1.0, 0.0666666667, 0.0, 0.9921568627450981, 1.0, 0.0470588235, 0.0, + 0.996078431372549, 1.0, 0.031372549, 0.0, 1.0, 1.0, 0.0, 0.0, + ], + description: 'Rainbow', + }, + { + ColorSpace: 'RGB', + Name: 'suv', + name: 'suv', + RGBPoints: [ + 0.0, 1.0, 1.0, 1.0, 0.00392156862745098, 1.0, 1.0, 1.0, 0.00784313725490196, 1.0, 1.0, 1.0, + 0.011764705882352941, 1.0, 1.0, 1.0, 0.01568627450980392, 1.0, 1.0, 1.0, 0.0196078431372549, + 1.0, 1.0, 1.0, 0.023529411764705882, 1.0, 1.0, 1.0, 0.027450980392156862, 1.0, 1.0, 1.0, + 0.03137254901960784, 1.0, 1.0, 1.0, 0.03529411764705882, 1.0, 1.0, 1.0, 0.0392156862745098, + 1.0, 1.0, 1.0, 0.043137254901960784, 1.0, 1.0, 1.0, 0.047058823529411764, 1.0, 1.0, 1.0, + 0.050980392156862744, 1.0, 1.0, 1.0, 0.054901960784313725, 1.0, 1.0, 1.0, 0.05882352941176471, + 1.0, 1.0, 1.0, 0.06274509803921569, 1.0, 1.0, 1.0, 0.06666666666666667, 1.0, 1.0, 1.0, + 0.07058823529411765, 1.0, 1.0, 1.0, 0.07450980392156863, 1.0, 1.0, 1.0, 0.0784313725490196, + 1.0, 1.0, 1.0, 0.08235294117647059, 1.0, 1.0, 1.0, 0.08627450980392157, 1.0, 1.0, 1.0, + 0.09019607843137255, 1.0, 1.0, 1.0, 0.09411764705882353, 1.0, 1.0, 1.0, 0.09803921568627451, + 1.0, 1.0, 1.0, 0.10196078431372549, 0.737254902, 0.737254902, 0.737254902, + 0.10588235294117647, 0.737254902, 0.737254902, 0.737254902, 0.10980392156862745, 0.737254902, + 0.737254902, 0.737254902, 0.11372549019607843, 0.737254902, 0.737254902, 0.737254902, + 0.11764705882352942, 0.737254902, 0.737254902, 0.737254902, 0.12156862745098039, 0.737254902, + 0.737254902, 0.737254902, 0.12549019607843137, 0.737254902, 0.737254902, 0.737254902, + 0.12941176470588237, 0.737254902, 0.737254902, 0.737254902, 0.13333333333333333, 0.737254902, + 0.737254902, 0.737254902, 0.13725490196078433, 0.737254902, 0.737254902, 0.737254902, + 0.1411764705882353, 0.737254902, 0.737254902, 0.737254902, 0.1450980392156863, 0.737254902, + 0.737254902, 0.737254902, 0.14901960784313725, 0.737254902, 0.737254902, 0.737254902, + 0.15294117647058825, 0.737254902, 0.737254902, 0.737254902, 0.1568627450980392, 0.737254902, + 0.737254902, 0.737254902, 0.1607843137254902, 0.737254902, 0.737254902, 0.737254902, + 0.16470588235294117, 0.737254902, 0.737254902, 0.737254902, 0.16862745098039217, 0.737254902, + 0.737254902, 0.737254902, 0.17254901960784313, 0.737254902, 0.737254902, 0.737254902, + 0.17647058823529413, 0.737254902, 0.737254902, 0.737254902, 0.1803921568627451, 0.737254902, + 0.737254902, 0.737254902, 0.1843137254901961, 0.737254902, 0.737254902, 0.737254902, + 0.18823529411764706, 0.737254902, 0.737254902, 0.737254902, 0.19215686274509805, 0.737254902, + 0.737254902, 0.737254902, 0.19607843137254902, 0.737254902, 0.737254902, 0.737254902, 0.2, + 0.737254902, 0.737254902, 0.737254902, 0.20392156862745098, 0.431372549, 0.0, 0.568627451, + 0.20784313725490197, 0.431372549, 0.0, 0.568627451, 0.21176470588235294, 0.431372549, 0.0, + 0.568627451, 0.21568627450980393, 0.431372549, 0.0, 0.568627451, 0.2196078431372549, + 0.431372549, 0.0, 0.568627451, 0.2235294117647059, 0.431372549, 0.0, 0.568627451, + 0.22745098039215686, 0.431372549, 0.0, 0.568627451, 0.23137254901960785, 0.431372549, 0.0, + 0.568627451, 0.23529411764705885, 0.431372549, 0.0, 0.568627451, 0.23921568627450984, + 0.431372549, 0.0, 0.568627451, 0.24313725490196078, 0.431372549, 0.0, 0.568627451, + 0.24705882352941178, 0.431372549, 0.0, 0.568627451, 0.25098039215686274, 0.431372549, 0.0, + 0.568627451, 0.2549019607843137, 0.431372549, 0.0, 0.568627451, 0.25882352941176473, + 0.431372549, 0.0, 0.568627451, 0.2627450980392157, 0.431372549, 0.0, 0.568627451, + 0.26666666666666666, 0.431372549, 0.0, 0.568627451, 0.27058823529411763, 0.431372549, 0.0, + 0.568627451, 0.27450980392156865, 0.431372549, 0.0, 0.568627451, 0.2784313725490196, + 0.431372549, 0.0, 0.568627451, 0.2823529411764706, 0.431372549, 0.0, 0.568627451, + 0.28627450980392155, 0.431372549, 0.0, 0.568627451, 0.2901960784313726, 0.431372549, 0.0, + 0.568627451, 0.29411764705882354, 0.431372549, 0.0, 0.568627451, 0.2980392156862745, + 0.431372549, 0.0, 0.568627451, 0.30196078431372547, 0.431372549, 0.0, 0.568627451, + 0.3058823529411765, 0.2509803922, 0.3333333333, 0.6509803922, 0.30980392156862746, + 0.2509803922, 0.3333333333, 0.6509803922, 0.3137254901960784, 0.2509803922, 0.3333333333, + 0.6509803922, 0.3176470588235294, 0.2509803922, 0.3333333333, 0.6509803922, + 0.3215686274509804, 0.2509803922, 0.3333333333, 0.6509803922, 0.3254901960784314, + 0.2509803922, 0.3333333333, 0.6509803922, 0.32941176470588235, 0.2509803922, 0.3333333333, + 0.6509803922, 0.3333333333333333, 0.2509803922, 0.3333333333, 0.6509803922, + 0.33725490196078434, 0.2509803922, 0.3333333333, 0.6509803922, 0.3411764705882353, + 0.2509803922, 0.3333333333, 0.6509803922, 0.34509803921568627, 0.2509803922, 0.3333333333, + 0.6509803922, 0.34901960784313724, 0.2509803922, 0.3333333333, 0.6509803922, + 0.35294117647058826, 0.2509803922, 0.3333333333, 0.6509803922, 0.3568627450980392, + 0.2509803922, 0.3333333333, 0.6509803922, 0.3607843137254902, 0.2509803922, 0.3333333333, + 0.6509803922, 0.36470588235294116, 0.2509803922, 0.3333333333, 0.6509803922, + 0.3686274509803922, 0.2509803922, 0.3333333333, 0.6509803922, 0.37254901960784315, + 0.2509803922, 0.3333333333, 0.6509803922, 0.3764705882352941, 0.2509803922, 0.3333333333, + 0.6509803922, 0.3803921568627451, 0.2509803922, 0.3333333333, 0.6509803922, + 0.3843137254901961, 0.2509803922, 0.3333333333, 0.6509803922, 0.38823529411764707, + 0.2509803922, 0.3333333333, 0.6509803922, 0.39215686274509803, 0.2509803922, 0.3333333333, + 0.6509803922, 0.396078431372549, 0.2509803922, 0.3333333333, 0.6509803922, 0.4, 0.2509803922, + 0.3333333333, 0.6509803922, 0.403921568627451, 0.2509803922, 0.3333333333, 0.6509803922, + 0.40784313725490196, 0.0, 0.8, 1.0, 0.4117647058823529, 0.0, 0.8, 1.0, 0.41568627450980394, + 0.0, 0.8, 1.0, 0.4196078431372549, 0.0, 0.8, 1.0, 0.4235294117647059, 0.0, 0.8, 1.0, + 0.42745098039215684, 0.0, 0.8, 1.0, 0.43137254901960786, 0.0, 0.8, 1.0, 0.43529411764705883, + 0.0, 0.8, 1.0, 0.4392156862745098, 0.0, 0.8, 1.0, 0.44313725490196076, 0.0, 0.8, 1.0, + 0.4470588235294118, 0.0, 0.8, 1.0, 0.45098039215686275, 0.0, 0.8, 1.0, 0.4549019607843137, + 0.0, 0.8, 1.0, 0.4588235294117647, 0.0, 0.8, 1.0, 0.4627450980392157, 0.0, 0.8, 1.0, + 0.4666666666666667, 0.0, 0.8, 1.0, 0.4705882352941177, 0.0, 0.8, 1.0, 0.4745098039215686, 0.0, + 0.8, 1.0, 0.4784313725490197, 0.0, 0.8, 1.0, 0.48235294117647065, 0.0, 0.8, 1.0, + 0.48627450980392156, 0.0, 0.8, 1.0, 0.49019607843137253, 0.0, 0.8, 1.0, 0.49411764705882355, + 0.0, 0.8, 1.0, 0.4980392156862745, 0.0, 0.8, 1.0, 0.5019607843137255, 0.0, 0.8, 1.0, + 0.5058823529411764, 0.0, 0.6666666667, 0.5333333333, 0.5098039215686274, 0.0, 0.6666666667, + 0.5333333333, 0.5137254901960784, 0.0, 0.6666666667, 0.5333333333, 0.5176470588235295, 0.0, + 0.6666666667, 0.5333333333, 0.5215686274509804, 0.0, 0.6666666667, 0.5333333333, + 0.5254901960784314, 0.0, 0.6666666667, 0.5333333333, 0.5294117647058824, 0.0, 0.6666666667, + 0.5333333333, 0.5333333333333333, 0.0, 0.6666666667, 0.5333333333, 0.5372549019607843, 0.0, + 0.6666666667, 0.5333333333, 0.5411764705882353, 0.0, 0.6666666667, 0.5333333333, + 0.5450980392156862, 0.0, 0.6666666667, 0.5333333333, 0.5490196078431373, 0.0, 0.6666666667, + 0.5333333333, 0.5529411764705883, 0.0, 0.6666666667, 0.5333333333, 0.5568627450980392, 0.0, + 0.6666666667, 0.5333333333, 0.5607843137254902, 0.0, 0.6666666667, 0.5333333333, + 0.5647058823529412, 0.0, 0.6666666667, 0.5333333333, 0.5686274509803921, 0.0, 0.6666666667, + 0.5333333333, 0.5725490196078431, 0.0, 0.6666666667, 0.5333333333, 0.5764705882352941, 0.0, + 0.6666666667, 0.5333333333, 0.5803921568627451, 0.0, 0.6666666667, 0.5333333333, + 0.5843137254901961, 0.0, 0.6666666667, 0.5333333333, 0.5882352941176471, 0.0, 0.6666666667, + 0.5333333333, 0.592156862745098, 0.0, 0.6666666667, 0.5333333333, 0.596078431372549, 0.0, + 0.6666666667, 0.5333333333, 0.6, 0.0, 0.6666666667, 0.5333333333, 0.6039215686274509, 0.0, + 0.6666666667, 0.5333333333, 0.6078431372549019, 0.4, 1.0, 0.4, 0.611764705882353, 0.4, 1.0, + 0.4, 0.615686274509804, 0.4, 1.0, 0.4, 0.6196078431372549, 0.4, 1.0, 0.4, 0.6235294117647059, + 0.4, 1.0, 0.4, 0.6274509803921569, 0.4, 1.0, 0.4, 0.6313725490196078, 0.4, 1.0, 0.4, + 0.6352941176470588, 0.4, 1.0, 0.4, 0.6392156862745098, 0.4, 1.0, 0.4, 0.6431372549019608, 0.4, + 1.0, 0.4, 0.6470588235294118, 0.4, 1.0, 0.4, 0.6509803921568628, 0.4, 1.0, 0.4, + 0.6549019607843137, 0.4, 1.0, 0.4, 0.6588235294117647, 0.4, 1.0, 0.4, 0.6627450980392157, 0.4, + 1.0, 0.4, 0.6666666666666666, 0.4, 1.0, 0.4, 0.6705882352941176, 0.4, 1.0, 0.4, + 0.6745098039215687, 0.4, 1.0, 0.4, 0.6784313725490196, 0.4, 1.0, 0.4, 0.6823529411764706, 0.4, + 1.0, 0.4, 0.6862745098039216, 0.4, 1.0, 0.4, 0.6901960784313725, 0.4, 1.0, 0.4, + 0.6941176470588235, 0.4, 1.0, 0.4, 0.6980392156862745, 0.4, 1.0, 0.4, 0.7019607843137254, 0.4, + 1.0, 0.4, 0.7058823529411765, 1.0, 0.9490196078, 0.0, 0.7098039215686275, 1.0, 0.9490196078, + 0.0, 0.7137254901960784, 1.0, 0.9490196078, 0.0, 0.7176470588235294, 1.0, 0.9490196078, 0.0, + 0.7215686274509804, 1.0, 0.9490196078, 0.0, 0.7254901960784313, 1.0, 0.9490196078, 0.0, + 0.7294117647058823, 1.0, 0.9490196078, 0.0, 0.7333333333333333, 1.0, 0.9490196078, 0.0, + 0.7372549019607844, 1.0, 0.9490196078, 0.0, 0.7411764705882353, 1.0, 0.9490196078, 0.0, + 0.7450980392156863, 1.0, 0.9490196078, 0.0, 0.7490196078431373, 1.0, 0.9490196078, 0.0, + 0.7529411764705882, 1.0, 0.9490196078, 0.0, 0.7568627450980392, 1.0, 0.9490196078, 0.0, + 0.7607843137254902, 1.0, 0.9490196078, 0.0, 0.7647058823529411, 1.0, 0.9490196078, 0.0, + 0.7686274509803922, 1.0, 0.9490196078, 0.0, 0.7725490196078432, 1.0, 0.9490196078, 0.0, + 0.7764705882352941, 1.0, 0.9490196078, 0.0, 0.7803921568627451, 1.0, 0.9490196078, 0.0, + 0.7843137254901961, 1.0, 0.9490196078, 0.0, 0.788235294117647, 1.0, 0.9490196078, 0.0, + 0.792156862745098, 1.0, 0.9490196078, 0.0, 0.796078431372549, 1.0, 0.9490196078, 0.0, 0.8, + 1.0, 0.9490196078, 0.0, 0.803921568627451, 1.0, 0.9490196078, 0.0, 0.807843137254902, + 0.9490196078, 0.6509803922, 0.2509803922, 0.8117647058823529, 0.9490196078, 0.6509803922, + 0.2509803922, 0.8156862745098039, 0.9490196078, 0.6509803922, 0.2509803922, + 0.8196078431372549, 0.9490196078, 0.6509803922, 0.2509803922, 0.8235294117647058, + 0.9490196078, 0.6509803922, 0.2509803922, 0.8274509803921568, 0.9490196078, 0.6509803922, + 0.2509803922, 0.8313725490196079, 0.9490196078, 0.6509803922, 0.2509803922, + 0.8352941176470589, 0.9490196078, 0.6509803922, 0.2509803922, 0.8392156862745098, + 0.9490196078, 0.6509803922, 0.2509803922, 0.8431372549019608, 0.9490196078, 0.6509803922, + 0.2509803922, 0.8470588235294118, 0.9490196078, 0.6509803922, 0.2509803922, + 0.8509803921568627, 0.9490196078, 0.6509803922, 0.2509803922, 0.8549019607843137, + 0.9490196078, 0.6509803922, 0.2509803922, 0.8588235294117647, 0.9490196078, 0.6509803922, + 0.2509803922, 0.8627450980392157, 0.9490196078, 0.6509803922, 0.2509803922, + 0.8666666666666667, 0.9490196078, 0.6509803922, 0.2509803922, 0.8705882352941177, + 0.9490196078, 0.6509803922, 0.2509803922, 0.8745098039215686, 0.9490196078, 0.6509803922, + 0.2509803922, 0.8784313725490196, 0.9490196078, 0.6509803922, 0.2509803922, + 0.8823529411764706, 0.9490196078, 0.6509803922, 0.2509803922, 0.8862745098039215, + 0.9490196078, 0.6509803922, 0.2509803922, 0.8901960784313725, 0.9490196078, 0.6509803922, + 0.2509803922, 0.8941176470588236, 0.9490196078, 0.6509803922, 0.2509803922, + 0.8980392156862745, 0.9490196078, 0.6509803922, 0.2509803922, 0.9019607843137255, + 0.9490196078, 0.6509803922, 0.2509803922, 0.9058823529411765, 0.9490196078, 0.6509803922, + 0.2509803922, 0.9098039215686274, 1.0, 0.0, 0.0, 0.9137254901960784, 1.0, 0.0, 0.0, + 0.9176470588235294, 1.0, 0.0, 0.0, 0.9215686274509803, 1.0, 0.0, 0.0, 0.9254901960784314, 1.0, + 0.0, 0.0, 0.9294117647058824, 1.0, 0.0, 0.0, 0.9333333333333333, 1.0, 0.0, 0.0, + 0.9372549019607843, 1.0, 0.0, 0.0, 0.9411764705882354, 1.0, 0.0, 0.0, 0.9450980392156864, 1.0, + 0.0, 0.0, 0.9490196078431372, 1.0, 0.0, 0.0, 0.9529411764705882, 1.0, 0.0, 0.0, + 0.9568627450980394, 1.0, 0.0, 0.0, 0.9607843137254903, 1.0, 0.0, 0.0, 0.9647058823529413, 1.0, + 0.0, 0.0, 0.9686274509803922, 1.0, 0.0, 0.0, 0.9725490196078431, 1.0, 0.0, 0.0, + 0.9764705882352941, 1.0, 0.0, 0.0, 0.9803921568627451, 1.0, 0.0, 0.0, 0.984313725490196, 1.0, + 0.0, 0.0, 0.9882352941176471, 1.0, 0.0, 0.0, 0.9921568627450981, 1.0, 0.0, 0.0, + 0.996078431372549, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, + ], + description: 'SUV', + }, + { + ColorSpace: 'RGB', + Name: 'ge_256', + name: 'ge_256', + RGBPoints: [ + 0.0, 0.0039215686, 0.0078431373, 0.0078431373, 0.00392156862745098, 0.0039215686, + 0.0078431373, 0.0078431373, 0.00784313725490196, 0.0039215686, 0.0078431373, 0.0117647059, + 0.011764705882352941, 0.0039215686, 0.0117647059, 0.0156862745, 0.01568627450980392, + 0.0039215686, 0.0117647059, 0.0196078431, 0.0196078431372549, 0.0039215686, 0.0156862745, + 0.0235294118, 0.023529411764705882, 0.0039215686, 0.0156862745, 0.0274509804, + 0.027450980392156862, 0.0039215686, 0.0196078431, 0.031372549, 0.03137254901960784, + 0.0039215686, 0.0196078431, 0.0352941176, 0.03529411764705882, 0.0039215686, 0.0235294118, + 0.0392156863, 0.0392156862745098, 0.0039215686, 0.0235294118, 0.0431372549, + 0.043137254901960784, 0.0039215686, 0.0274509804, 0.0470588235, 0.047058823529411764, + 0.0039215686, 0.0274509804, 0.0509803922, 0.050980392156862744, 0.0039215686, 0.031372549, + 0.0549019608, 0.054901960784313725, 0.0039215686, 0.031372549, 0.0588235294, + 0.05882352941176471, 0.0039215686, 0.0352941176, 0.062745098, 0.06274509803921569, + 0.0039215686, 0.0352941176, 0.0666666667, 0.06666666666666667, 0.0039215686, 0.0392156863, + 0.0705882353, 0.07058823529411765, 0.0039215686, 0.0392156863, 0.0745098039, + 0.07450980392156863, 0.0039215686, 0.0431372549, 0.0784313725, 0.0784313725490196, + 0.0039215686, 0.0431372549, 0.0823529412, 0.08235294117647059, 0.0039215686, 0.0470588235, + 0.0862745098, 0.08627450980392157, 0.0039215686, 0.0470588235, 0.0901960784, + 0.09019607843137255, 0.0039215686, 0.0509803922, 0.0941176471, 0.09411764705882353, + 0.0039215686, 0.0509803922, 0.0980392157, 0.09803921568627451, 0.0039215686, 0.0549019608, + 0.1019607843, 0.10196078431372549, 0.0039215686, 0.0549019608, 0.1058823529, + 0.10588235294117647, 0.0039215686, 0.0588235294, 0.1098039216, 0.10980392156862745, + 0.0039215686, 0.0588235294, 0.1137254902, 0.11372549019607843, 0.0039215686, 0.062745098, + 0.1176470588, 0.11764705882352942, 0.0039215686, 0.062745098, 0.1215686275, + 0.12156862745098039, 0.0039215686, 0.0666666667, 0.1254901961, 0.12549019607843137, + 0.0039215686, 0.0666666667, 0.1294117647, 0.12941176470588237, 0.0039215686, 0.0705882353, + 0.1333333333, 0.13333333333333333, 0.0039215686, 0.0705882353, 0.137254902, + 0.13725490196078433, 0.0039215686, 0.0745098039, 0.1411764706, 0.1411764705882353, + 0.0039215686, 0.0745098039, 0.1450980392, 0.1450980392156863, 0.0039215686, 0.0784313725, + 0.1490196078, 0.14901960784313725, 0.0039215686, 0.0784313725, 0.1529411765, + 0.15294117647058825, 0.0039215686, 0.0823529412, 0.1568627451, 0.1568627450980392, + 0.0039215686, 0.0823529412, 0.1607843137, 0.1607843137254902, 0.0039215686, 0.0862745098, + 0.1647058824, 0.16470588235294117, 0.0039215686, 0.0862745098, 0.168627451, + 0.16862745098039217, 0.0039215686, 0.0901960784, 0.1725490196, 0.17254901960784313, + 0.0039215686, 0.0901960784, 0.1764705882, 0.17647058823529413, 0.0039215686, 0.0941176471, + 0.1803921569, 0.1803921568627451, 0.0039215686, 0.0941176471, 0.1843137255, + 0.1843137254901961, 0.0039215686, 0.0980392157, 0.1882352941, 0.18823529411764706, + 0.0039215686, 0.0980392157, 0.1921568627, 0.19215686274509805, 0.0039215686, 0.1019607843, + 0.1960784314, 0.19607843137254902, 0.0039215686, 0.1019607843, 0.2, 0.2, 0.0039215686, + 0.1058823529, 0.2039215686, 0.20392156862745098, 0.0039215686, 0.1058823529, 0.2078431373, + 0.20784313725490197, 0.0039215686, 0.1098039216, 0.2117647059, 0.21176470588235294, + 0.0039215686, 0.1098039216, 0.2156862745, 0.21568627450980393, 0.0039215686, 0.1137254902, + 0.2196078431, 0.2196078431372549, 0.0039215686, 0.1137254902, 0.2235294118, + 0.2235294117647059, 0.0039215686, 0.1176470588, 0.2274509804, 0.22745098039215686, + 0.0039215686, 0.1176470588, 0.231372549, 0.23137254901960785, 0.0039215686, 0.1215686275, + 0.2352941176, 0.23529411764705885, 0.0039215686, 0.1215686275, 0.2392156863, + 0.23921568627450984, 0.0039215686, 0.1254901961, 0.2431372549, 0.24313725490196078, + 0.0039215686, 0.1254901961, 0.2470588235, 0.24705882352941178, 0.0039215686, 0.1294117647, + 0.2509803922, 0.25098039215686274, 0.0039215686, 0.1294117647, 0.2509803922, + 0.2549019607843137, 0.0078431373, 0.1254901961, 0.2549019608, 0.25882352941176473, + 0.0156862745, 0.1254901961, 0.2588235294, 0.2627450980392157, 0.0235294118, 0.1215686275, + 0.262745098, 0.26666666666666666, 0.031372549, 0.1215686275, 0.2666666667, + 0.27058823529411763, 0.0392156863, 0.1176470588, 0.2705882353, 0.27450980392156865, + 0.0470588235, 0.1176470588, 0.2745098039, 0.2784313725490196, 0.0549019608, 0.1137254902, + 0.2784313725, 0.2823529411764706, 0.062745098, 0.1137254902, 0.2823529412, + 0.28627450980392155, 0.0705882353, 0.1098039216, 0.2862745098, 0.2901960784313726, + 0.0784313725, 0.1098039216, 0.2901960784, 0.29411764705882354, 0.0862745098, 0.1058823529, + 0.2941176471, 0.2980392156862745, 0.0941176471, 0.1058823529, 0.2980392157, + 0.30196078431372547, 0.1019607843, 0.1019607843, 0.3019607843, 0.3058823529411765, + 0.1098039216, 0.1019607843, 0.3058823529, 0.30980392156862746, 0.1176470588, 0.0980392157, + 0.3098039216, 0.3137254901960784, 0.1254901961, 0.0980392157, 0.3137254902, + 0.3176470588235294, 0.1333333333, 0.0941176471, 0.3176470588, 0.3215686274509804, + 0.1411764706, 0.0941176471, 0.3215686275, 0.3254901960784314, 0.1490196078, 0.0901960784, + 0.3254901961, 0.32941176470588235, 0.1568627451, 0.0901960784, 0.3294117647, + 0.3333333333333333, 0.1647058824, 0.0862745098, 0.3333333333, 0.33725490196078434, + 0.1725490196, 0.0862745098, 0.337254902, 0.3411764705882353, 0.1803921569, 0.0823529412, + 0.3411764706, 0.34509803921568627, 0.1882352941, 0.0823529412, 0.3450980392, + 0.34901960784313724, 0.1960784314, 0.0784313725, 0.3490196078, 0.35294117647058826, + 0.2039215686, 0.0784313725, 0.3529411765, 0.3568627450980392, 0.2117647059, 0.0745098039, + 0.3568627451, 0.3607843137254902, 0.2196078431, 0.0745098039, 0.3607843137, + 0.36470588235294116, 0.2274509804, 0.0705882353, 0.3647058824, 0.3686274509803922, + 0.2352941176, 0.0705882353, 0.368627451, 0.37254901960784315, 0.2431372549, 0.0666666667, + 0.3725490196, 0.3764705882352941, 0.2509803922, 0.0666666667, 0.3764705882, + 0.3803921568627451, 0.2549019608, 0.062745098, 0.3803921569, 0.3843137254901961, 0.262745098, + 0.062745098, 0.3843137255, 0.38823529411764707, 0.2705882353, 0.0588235294, 0.3882352941, + 0.39215686274509803, 0.2784313725, 0.0588235294, 0.3921568627, 0.396078431372549, + 0.2862745098, 0.0549019608, 0.3960784314, 0.4, 0.2941176471, 0.0549019608, 0.4, + 0.403921568627451, 0.3019607843, 0.0509803922, 0.4039215686, 0.40784313725490196, + 0.3098039216, 0.0509803922, 0.4078431373, 0.4117647058823529, 0.3176470588, 0.0470588235, + 0.4117647059, 0.41568627450980394, 0.3254901961, 0.0470588235, 0.4156862745, + 0.4196078431372549, 0.3333333333, 0.0431372549, 0.4196078431, 0.4235294117647059, + 0.3411764706, 0.0431372549, 0.4235294118, 0.42745098039215684, 0.3490196078, 0.0392156863, + 0.4274509804, 0.43137254901960786, 0.3568627451, 0.0392156863, 0.431372549, + 0.43529411764705883, 0.3647058824, 0.0352941176, 0.4352941176, 0.4392156862745098, + 0.3725490196, 0.0352941176, 0.4392156863, 0.44313725490196076, 0.3803921569, 0.031372549, + 0.4431372549, 0.4470588235294118, 0.3882352941, 0.031372549, 0.4470588235, + 0.45098039215686275, 0.3960784314, 0.0274509804, 0.4509803922, 0.4549019607843137, + 0.4039215686, 0.0274509804, 0.4549019608, 0.4588235294117647, 0.4117647059, 0.0235294118, + 0.4588235294, 0.4627450980392157, 0.4196078431, 0.0235294118, 0.462745098, 0.4666666666666667, + 0.4274509804, 0.0196078431, 0.4666666667, 0.4705882352941177, 0.4352941176, 0.0196078431, + 0.4705882353, 0.4745098039215686, 0.4431372549, 0.0156862745, 0.4745098039, + 0.4784313725490197, 0.4509803922, 0.0156862745, 0.4784313725, 0.48235294117647065, + 0.4588235294, 0.0117647059, 0.4823529412, 0.48627450980392156, 0.4666666667, 0.0117647059, + 0.4862745098, 0.49019607843137253, 0.4745098039, 0.0078431373, 0.4901960784, + 0.49411764705882355, 0.4823529412, 0.0078431373, 0.4941176471, 0.4980392156862745, + 0.4901960784, 0.0039215686, 0.4980392157, 0.5019607843137255, 0.4980392157, 0.0117647059, + 0.4980392157, 0.5058823529411764, 0.5058823529, 0.0156862745, 0.4901960784, + 0.5098039215686274, 0.5137254902, 0.0235294118, 0.4823529412, 0.5137254901960784, + 0.5215686275, 0.0274509804, 0.4745098039, 0.5176470588235295, 0.5294117647, 0.0352941176, + 0.4666666667, 0.5215686274509804, 0.537254902, 0.0392156863, 0.4588235294, 0.5254901960784314, + 0.5450980392, 0.0470588235, 0.4509803922, 0.5294117647058824, 0.5529411765, 0.0509803922, + 0.4431372549, 0.5333333333333333, 0.5607843137, 0.0588235294, 0.4352941176, + 0.5372549019607843, 0.568627451, 0.062745098, 0.4274509804, 0.5411764705882353, 0.5764705882, + 0.0705882353, 0.4196078431, 0.5450980392156862, 0.5843137255, 0.0745098039, 0.4117647059, + 0.5490196078431373, 0.5921568627, 0.0823529412, 0.4039215686, 0.5529411764705883, 0.6, + 0.0862745098, 0.3960784314, 0.5568627450980392, 0.6078431373, 0.0941176471, 0.3882352941, + 0.5607843137254902, 0.6156862745, 0.0980392157, 0.3803921569, 0.5647058823529412, + 0.6235294118, 0.1058823529, 0.3725490196, 0.5686274509803921, 0.631372549, 0.1098039216, + 0.3647058824, 0.5725490196078431, 0.6392156863, 0.1176470588, 0.3568627451, + 0.5764705882352941, 0.6470588235, 0.1215686275, 0.3490196078, 0.5803921568627451, + 0.6549019608, 0.1294117647, 0.3411764706, 0.5843137254901961, 0.662745098, 0.1333333333, + 0.3333333333, 0.5882352941176471, 0.6705882353, 0.1411764706, 0.3254901961, 0.592156862745098, + 0.6784313725, 0.1450980392, 0.3176470588, 0.596078431372549, 0.6862745098, 0.1529411765, + 0.3098039216, 0.6, 0.6941176471, 0.1568627451, 0.3019607843, 0.6039215686274509, 0.7019607843, + 0.1647058824, 0.2941176471, 0.6078431372549019, 0.7098039216, 0.168627451, 0.2862745098, + 0.611764705882353, 0.7176470588, 0.1764705882, 0.2784313725, 0.615686274509804, 0.7254901961, + 0.1803921569, 0.2705882353, 0.6196078431372549, 0.7333333333, 0.1882352941, 0.262745098, + 0.6235294117647059, 0.7411764706, 0.1921568627, 0.2549019608, 0.6274509803921569, + 0.7490196078, 0.2, 0.2509803922, 0.6313725490196078, 0.7529411765, 0.2039215686, 0.2431372549, + 0.6352941176470588, 0.7607843137, 0.2117647059, 0.2352941176, 0.6392156862745098, 0.768627451, + 0.2156862745, 0.2274509804, 0.6431372549019608, 0.7764705882, 0.2235294118, 0.2196078431, + 0.6470588235294118, 0.7843137255, 0.2274509804, 0.2117647059, 0.6509803921568628, + 0.7921568627, 0.2352941176, 0.2039215686, 0.6549019607843137, 0.8, 0.2392156863, 0.1960784314, + 0.6588235294117647, 0.8078431373, 0.2470588235, 0.1882352941, 0.6627450980392157, + 0.8156862745, 0.2509803922, 0.1803921569, 0.6666666666666666, 0.8235294118, 0.2549019608, + 0.1725490196, 0.6705882352941176, 0.831372549, 0.2588235294, 0.1647058824, 0.6745098039215687, + 0.8392156863, 0.2666666667, 0.1568627451, 0.6784313725490196, 0.8470588235, 0.2705882353, + 0.1490196078, 0.6823529411764706, 0.8549019608, 0.2784313725, 0.1411764706, + 0.6862745098039216, 0.862745098, 0.2823529412, 0.1333333333, 0.6901960784313725, 0.8705882353, + 0.2901960784, 0.1254901961, 0.6941176470588235, 0.8784313725, 0.2941176471, 0.1176470588, + 0.6980392156862745, 0.8862745098, 0.3019607843, 0.1098039216, 0.7019607843137254, + 0.8941176471, 0.3058823529, 0.1019607843, 0.7058823529411765, 0.9019607843, 0.3137254902, + 0.0941176471, 0.7098039215686275, 0.9098039216, 0.3176470588, 0.0862745098, + 0.7137254901960784, 0.9176470588, 0.3254901961, 0.0784313725, 0.7176470588235294, + 0.9254901961, 0.3294117647, 0.0705882353, 0.7215686274509804, 0.9333333333, 0.337254902, + 0.062745098, 0.7254901960784313, 0.9411764706, 0.3411764706, 0.0549019608, 0.7294117647058823, + 0.9490196078, 0.3490196078, 0.0470588235, 0.7333333333333333, 0.9568627451, 0.3529411765, + 0.0392156863, 0.7372549019607844, 0.9647058824, 0.3607843137, 0.031372549, 0.7411764705882353, + 0.9725490196, 0.3647058824, 0.0235294118, 0.7450980392156863, 0.9803921569, 0.3725490196, + 0.0156862745, 0.7490196078431373, 0.9882352941, 0.3725490196, 0.0039215686, + 0.7529411764705882, 0.9960784314, 0.3843137255, 0.0156862745, 0.7568627450980392, + 0.9960784314, 0.3921568627, 0.031372549, 0.7607843137254902, 0.9960784314, 0.4039215686, + 0.0470588235, 0.7647058823529411, 0.9960784314, 0.4117647059, 0.062745098, 0.7686274509803922, + 0.9960784314, 0.4235294118, 0.0784313725, 0.7725490196078432, 0.9960784314, 0.431372549, + 0.0941176471, 0.7764705882352941, 0.9960784314, 0.4431372549, 0.1098039216, + 0.7803921568627451, 0.9960784314, 0.4509803922, 0.1254901961, 0.7843137254901961, + 0.9960784314, 0.462745098, 0.1411764706, 0.788235294117647, 0.9960784314, 0.4705882353, + 0.1568627451, 0.792156862745098, 0.9960784314, 0.4823529412, 0.1725490196, 0.796078431372549, + 0.9960784314, 0.4901960784, 0.1882352941, 0.8, 0.9960784314, 0.5019607843, 0.2039215686, + 0.803921568627451, 0.9960784314, 0.5098039216, 0.2196078431, 0.807843137254902, 0.9960784314, + 0.5215686275, 0.2352941176, 0.8117647058823529, 0.9960784314, 0.5294117647, 0.2509803922, + 0.8156862745098039, 0.9960784314, 0.5411764706, 0.262745098, 0.8196078431372549, 0.9960784314, + 0.5490196078, 0.2784313725, 0.8235294117647058, 0.9960784314, 0.5607843137, 0.2941176471, + 0.8274509803921568, 0.9960784314, 0.568627451, 0.3098039216, 0.8313725490196079, 0.9960784314, + 0.5803921569, 0.3254901961, 0.8352941176470589, 0.9960784314, 0.5882352941, 0.3411764706, + 0.8392156862745098, 0.9960784314, 0.6, 0.3568627451, 0.8431372549019608, 0.9960784314, + 0.6078431373, 0.3725490196, 0.8470588235294118, 0.9960784314, 0.6196078431, 0.3882352941, + 0.8509803921568627, 0.9960784314, 0.6274509804, 0.4039215686, 0.8549019607843137, + 0.9960784314, 0.6392156863, 0.4196078431, 0.8588235294117647, 0.9960784314, 0.6470588235, + 0.4352941176, 0.8627450980392157, 0.9960784314, 0.6588235294, 0.4509803922, + 0.8666666666666667, 0.9960784314, 0.6666666667, 0.4666666667, 0.8705882352941177, + 0.9960784314, 0.6784313725, 0.4823529412, 0.8745098039215686, 0.9960784314, 0.6862745098, + 0.4980392157, 0.8784313725490196, 0.9960784314, 0.6980392157, 0.5137254902, + 0.8823529411764706, 0.9960784314, 0.7058823529, 0.5294117647, 0.8862745098039215, + 0.9960784314, 0.7176470588, 0.5450980392, 0.8901960784313725, 0.9960784314, 0.7254901961, + 0.5607843137, 0.8941176470588236, 0.9960784314, 0.737254902, 0.5764705882, 0.8980392156862745, + 0.9960784314, 0.7450980392, 0.5921568627, 0.9019607843137255, 0.9960784314, 0.7529411765, + 0.6078431373, 0.9058823529411765, 0.9960784314, 0.7607843137, 0.6235294118, + 0.9098039215686274, 0.9960784314, 0.7725490196, 0.6392156863, 0.9137254901960784, + 0.9960784314, 0.7803921569, 0.6549019608, 0.9176470588235294, 0.9960784314, 0.7921568627, + 0.6705882353, 0.9215686274509803, 0.9960784314, 0.8, 0.6862745098, 0.9254901960784314, + 0.9960784314, 0.8117647059, 0.7019607843, 0.9294117647058824, 0.9960784314, 0.8196078431, + 0.7176470588, 0.9333333333333333, 0.9960784314, 0.831372549, 0.7333333333, 0.9372549019607843, + 0.9960784314, 0.8392156863, 0.7490196078, 0.9411764705882354, 0.9960784314, 0.8509803922, + 0.7607843137, 0.9450980392156864, 0.9960784314, 0.8588235294, 0.7764705882, + 0.9490196078431372, 0.9960784314, 0.8705882353, 0.7921568627, 0.9529411764705882, + 0.9960784314, 0.8784313725, 0.8078431373, 0.9568627450980394, 0.9960784314, 0.8901960784, + 0.8235294118, 0.9607843137254903, 0.9960784314, 0.8980392157, 0.8392156863, + 0.9647058823529413, 0.9960784314, 0.9098039216, 0.8549019608, 0.9686274509803922, + 0.9960784314, 0.9176470588, 0.8705882353, 0.9725490196078431, 0.9960784314, 0.9294117647, + 0.8862745098, 0.9764705882352941, 0.9960784314, 0.937254902, 0.9019607843, 0.9803921568627451, + 0.9960784314, 0.9490196078, 0.9176470588, 0.984313725490196, 0.9960784314, 0.9568627451, + 0.9333333333, 0.9882352941176471, 0.9960784314, 0.968627451, 0.9490196078, 0.9921568627450981, + 0.9960784314, 0.9764705882, 0.9647058824, 0.996078431372549, 0.9960784314, 0.9882352941, + 0.9803921569, 1.0, 0.9960784314, 0.9882352941, 0.9803921569, + ], + description: 'GE 256', + }, + { + ColorSpace: 'RGB', + Name: 'ge', + name: 'ge', + RGBPoints: [ + 0.0, 0.0078431373, 0.0078431373, 0.0078431373, 0.00392156862745098, 0.0078431373, + 0.0078431373, 0.0078431373, 0.00784313725490196, 0.0078431373, 0.0078431373, 0.0078431373, + 0.011764705882352941, 0.0078431373, 0.0078431373, 0.0078431373, 0.01568627450980392, + 0.0078431373, 0.0078431373, 0.0078431373, 0.0196078431372549, 0.0078431373, 0.0078431373, + 0.0078431373, 0.023529411764705882, 0.0078431373, 0.0078431373, 0.0078431373, + 0.027450980392156862, 0.0078431373, 0.0078431373, 0.0078431373, 0.03137254901960784, + 0.0078431373, 0.0078431373, 0.0078431373, 0.03529411764705882, 0.0078431373, 0.0078431373, + 0.0078431373, 0.0392156862745098, 0.0078431373, 0.0078431373, 0.0078431373, + 0.043137254901960784, 0.0078431373, 0.0078431373, 0.0078431373, 0.047058823529411764, + 0.0078431373, 0.0078431373, 0.0078431373, 0.050980392156862744, 0.0078431373, 0.0078431373, + 0.0078431373, 0.054901960784313725, 0.0078431373, 0.0078431373, 0.0078431373, + 0.05882352941176471, 0.0117647059, 0.0078431373, 0.0078431373, 0.06274509803921569, + 0.0078431373, 0.0156862745, 0.0156862745, 0.06666666666666667, 0.0078431373, 0.0235294118, + 0.0235294118, 0.07058823529411765, 0.0078431373, 0.031372549, 0.031372549, + 0.07450980392156863, 0.0078431373, 0.0392156863, 0.0392156863, 0.0784313725490196, + 0.0078431373, 0.0470588235, 0.0470588235, 0.08235294117647059, 0.0078431373, 0.0549019608, + 0.0549019608, 0.08627450980392157, 0.0078431373, 0.062745098, 0.062745098, + 0.09019607843137255, 0.0078431373, 0.0705882353, 0.0705882353, 0.09411764705882353, + 0.0078431373, 0.0784313725, 0.0784313725, 0.09803921568627451, 0.0078431373, 0.0901960784, + 0.0862745098, 0.10196078431372549, 0.0078431373, 0.0980392157, 0.0941176471, + 0.10588235294117647, 0.0078431373, 0.1058823529, 0.1019607843, 0.10980392156862745, + 0.0078431373, 0.1137254902, 0.1098039216, 0.11372549019607843, 0.0078431373, 0.1215686275, + 0.1176470588, 0.11764705882352942, 0.0078431373, 0.1294117647, 0.1254901961, + 0.12156862745098039, 0.0078431373, 0.137254902, 0.1333333333, 0.12549019607843137, + 0.0078431373, 0.1450980392, 0.1411764706, 0.12941176470588237, 0.0078431373, 0.1529411765, + 0.1490196078, 0.13333333333333333, 0.0078431373, 0.1647058824, 0.1568627451, + 0.13725490196078433, 0.0078431373, 0.1725490196, 0.1647058824, 0.1411764705882353, + 0.0078431373, 0.1803921569, 0.1725490196, 0.1450980392156863, 0.0078431373, 0.1882352941, + 0.1803921569, 0.14901960784313725, 0.0078431373, 0.1960784314, 0.1882352941, + 0.15294117647058825, 0.0078431373, 0.2039215686, 0.1960784314, 0.1568627450980392, + 0.0078431373, 0.2117647059, 0.2039215686, 0.1607843137254902, 0.0078431373, 0.2196078431, + 0.2117647059, 0.16470588235294117, 0.0078431373, 0.2274509804, 0.2196078431, + 0.16862745098039217, 0.0078431373, 0.2352941176, 0.2274509804, 0.17254901960784313, + 0.0078431373, 0.2470588235, 0.2352941176, 0.17647058823529413, 0.0078431373, 0.2509803922, + 0.2431372549, 0.1803921568627451, 0.0078431373, 0.2549019608, 0.2509803922, + 0.1843137254901961, 0.0078431373, 0.262745098, 0.2509803922, 0.18823529411764706, + 0.0078431373, 0.2705882353, 0.2588235294, 0.19215686274509805, 0.0078431373, 0.2784313725, + 0.2666666667, 0.19607843137254902, 0.0078431373, 0.2862745098, 0.2745098039, 0.2, + 0.0078431373, 0.2941176471, 0.2823529412, 0.20392156862745098, 0.0078431373, 0.3019607843, + 0.2901960784, 0.20784313725490197, 0.0078431373, 0.3137254902, 0.2980392157, + 0.21176470588235294, 0.0078431373, 0.3215686275, 0.3058823529, 0.21568627450980393, + 0.0078431373, 0.3294117647, 0.3137254902, 0.2196078431372549, 0.0078431373, 0.337254902, + 0.3215686275, 0.2235294117647059, 0.0078431373, 0.3450980392, 0.3294117647, + 0.22745098039215686, 0.0078431373, 0.3529411765, 0.337254902, 0.23137254901960785, + 0.0078431373, 0.3607843137, 0.3450980392, 0.23529411764705885, 0.0078431373, 0.368627451, + 0.3529411765, 0.23921568627450984, 0.0078431373, 0.3764705882, 0.3607843137, + 0.24313725490196078, 0.0078431373, 0.3843137255, 0.368627451, 0.24705882352941178, + 0.0078431373, 0.3960784314, 0.3764705882, 0.25098039215686274, 0.0078431373, 0.4039215686, + 0.3843137255, 0.2549019607843137, 0.0078431373, 0.4117647059, 0.3921568627, + 0.25882352941176473, 0.0078431373, 0.4196078431, 0.4, 0.2627450980392157, 0.0078431373, + 0.4274509804, 0.4078431373, 0.26666666666666666, 0.0078431373, 0.4352941176, 0.4156862745, + 0.27058823529411763, 0.0078431373, 0.4431372549, 0.4235294118, 0.27450980392156865, + 0.0078431373, 0.4509803922, 0.431372549, 0.2784313725490196, 0.0078431373, 0.4588235294, + 0.4392156863, 0.2823529411764706, 0.0078431373, 0.4705882353, 0.4470588235, + 0.28627450980392155, 0.0078431373, 0.4784313725, 0.4549019608, 0.2901960784313726, + 0.0078431373, 0.4862745098, 0.462745098, 0.29411764705882354, 0.0078431373, 0.4941176471, + 0.4705882353, 0.2980392156862745, 0.0078431373, 0.5019607843, 0.4784313725, + 0.30196078431372547, 0.0117647059, 0.5098039216, 0.4862745098, 0.3058823529411765, + 0.0196078431, 0.5019607843, 0.4941176471, 0.30980392156862746, 0.0274509804, 0.4941176471, + 0.5058823529, 0.3137254901960784, 0.0352941176, 0.4862745098, 0.5137254902, + 0.3176470588235294, 0.0431372549, 0.4784313725, 0.5215686275, 0.3215686274509804, + 0.0509803922, 0.4705882353, 0.5294117647, 0.3254901960784314, 0.0588235294, 0.462745098, + 0.537254902, 0.32941176470588235, 0.0666666667, 0.4549019608, 0.5450980392, + 0.3333333333333333, 0.0745098039, 0.4470588235, 0.5529411765, 0.33725490196078434, + 0.0823529412, 0.4392156863, 0.5607843137, 0.3411764705882353, 0.0901960784, 0.431372549, + 0.568627451, 0.34509803921568627, 0.0980392157, 0.4235294118, 0.5764705882, + 0.34901960784313724, 0.1058823529, 0.4156862745, 0.5843137255, 0.35294117647058826, + 0.1137254902, 0.4078431373, 0.5921568627, 0.3568627450980392, 0.1215686275, 0.4, 0.6, + 0.3607843137254902, 0.1294117647, 0.3921568627, 0.6078431373, 0.36470588235294116, + 0.137254902, 0.3843137255, 0.6156862745, 0.3686274509803922, 0.1450980392, 0.3764705882, + 0.6235294118, 0.37254901960784315, 0.1529411765, 0.368627451, 0.631372549, 0.3764705882352941, + 0.1607843137, 0.3607843137, 0.6392156863, 0.3803921568627451, 0.168627451, 0.3529411765, + 0.6470588235, 0.3843137254901961, 0.1764705882, 0.3450980392, 0.6549019608, + 0.38823529411764707, 0.1843137255, 0.337254902, 0.662745098, 0.39215686274509803, + 0.1921568627, 0.3294117647, 0.6705882353, 0.396078431372549, 0.2, 0.3215686275, 0.6784313725, + 0.4, 0.2078431373, 0.3137254902, 0.6862745098, 0.403921568627451, 0.2156862745, 0.3058823529, + 0.6941176471, 0.40784313725490196, 0.2235294118, 0.2980392157, 0.7019607843, + 0.4117647058823529, 0.231372549, 0.2901960784, 0.7098039216, 0.41568627450980394, + 0.2392156863, 0.2823529412, 0.7176470588, 0.4196078431372549, 0.2470588235, 0.2745098039, + 0.7254901961, 0.4235294117647059, 0.2509803922, 0.2666666667, 0.7333333333, + 0.42745098039215684, 0.2509803922, 0.2588235294, 0.7411764706, 0.43137254901960786, + 0.2588235294, 0.2509803922, 0.7490196078, 0.43529411764705883, 0.2666666667, 0.2509803922, + 0.7490196078, 0.4392156862745098, 0.2745098039, 0.2431372549, 0.7568627451, + 0.44313725490196076, 0.2823529412, 0.2352941176, 0.7647058824, 0.4470588235294118, + 0.2901960784, 0.2274509804, 0.7725490196, 0.45098039215686275, 0.2980392157, 0.2196078431, + 0.7803921569, 0.4549019607843137, 0.3058823529, 0.2117647059, 0.7882352941, + 0.4588235294117647, 0.3137254902, 0.2039215686, 0.7960784314, 0.4627450980392157, + 0.3215686275, 0.1960784314, 0.8039215686, 0.4666666666666667, 0.3294117647, 0.1882352941, + 0.8117647059, 0.4705882352941177, 0.337254902, 0.1803921569, 0.8196078431, 0.4745098039215686, + 0.3450980392, 0.1725490196, 0.8274509804, 0.4784313725490197, 0.3529411765, 0.1647058824, + 0.8352941176, 0.48235294117647065, 0.3607843137, 0.1568627451, 0.8431372549, + 0.48627450980392156, 0.368627451, 0.1490196078, 0.8509803922, 0.49019607843137253, + 0.3764705882, 0.1411764706, 0.8588235294, 0.49411764705882355, 0.3843137255, 0.1333333333, + 0.8666666667, 0.4980392156862745, 0.3921568627, 0.1254901961, 0.8745098039, + 0.5019607843137255, 0.4, 0.1176470588, 0.8823529412, 0.5058823529411764, 0.4078431373, + 0.1098039216, 0.8901960784, 0.5098039215686274, 0.4156862745, 0.1019607843, 0.8980392157, + 0.5137254901960784, 0.4235294118, 0.0941176471, 0.9058823529, 0.5176470588235295, 0.431372549, + 0.0862745098, 0.9137254902, 0.5215686274509804, 0.4392156863, 0.0784313725, 0.9215686275, + 0.5254901960784314, 0.4470588235, 0.0705882353, 0.9294117647, 0.5294117647058824, + 0.4549019608, 0.062745098, 0.937254902, 0.5333333333333333, 0.462745098, 0.0549019608, + 0.9450980392, 0.5372549019607843, 0.4705882353, 0.0470588235, 0.9529411765, + 0.5411764705882353, 0.4784313725, 0.0392156863, 0.9607843137, 0.5450980392156862, + 0.4862745098, 0.031372549, 0.968627451, 0.5490196078431373, 0.4941176471, 0.0235294118, + 0.9764705882, 0.5529411764705883, 0.4980392157, 0.0156862745, 0.9843137255, + 0.5568627450980392, 0.5058823529, 0.0078431373, 0.9921568627, 0.5607843137254902, + 0.5137254902, 0.0156862745, 0.9803921569, 0.5647058823529412, 0.5215686275, 0.0235294118, + 0.9647058824, 0.5686274509803921, 0.5294117647, 0.0352941176, 0.9490196078, + 0.5725490196078431, 0.537254902, 0.0431372549, 0.9333333333, 0.5764705882352941, 0.5450980392, + 0.0509803922, 0.9176470588, 0.5803921568627451, 0.5529411765, 0.062745098, 0.9019607843, + 0.5843137254901961, 0.5607843137, 0.0705882353, 0.8862745098, 0.5882352941176471, 0.568627451, + 0.0784313725, 0.8705882353, 0.592156862745098, 0.5764705882, 0.0901960784, 0.8549019608, + 0.596078431372549, 0.5843137255, 0.0980392157, 0.8392156863, 0.6, 0.5921568627, 0.1098039216, + 0.8235294118, 0.6039215686274509, 0.6, 0.1176470588, 0.8078431373, 0.6078431372549019, + 0.6078431373, 0.1254901961, 0.7921568627, 0.611764705882353, 0.6156862745, 0.137254902, + 0.7764705882, 0.615686274509804, 0.6235294118, 0.1450980392, 0.7607843137, 0.6196078431372549, + 0.631372549, 0.1529411765, 0.7490196078, 0.6235294117647059, 0.6392156863, 0.1647058824, + 0.737254902, 0.6274509803921569, 0.6470588235, 0.1725490196, 0.7215686275, 0.6313725490196078, + 0.6549019608, 0.1843137255, 0.7058823529, 0.6352941176470588, 0.662745098, 0.1921568627, + 0.6901960784, 0.6392156862745098, 0.6705882353, 0.2, 0.6745098039, 0.6431372549019608, + 0.6784313725, 0.2117647059, 0.6588235294, 0.6470588235294118, 0.6862745098, 0.2196078431, + 0.6431372549, 0.6509803921568628, 0.6941176471, 0.2274509804, 0.6274509804, + 0.6549019607843137, 0.7019607843, 0.2392156863, 0.6117647059, 0.6588235294117647, + 0.7098039216, 0.2470588235, 0.5960784314, 0.6627450980392157, 0.7176470588, 0.2509803922, + 0.5803921569, 0.6666666666666666, 0.7254901961, 0.2588235294, 0.5647058824, + 0.6705882352941176, 0.7333333333, 0.2666666667, 0.5490196078, 0.6745098039215687, + 0.7411764706, 0.2784313725, 0.5333333333, 0.6784313725490196, 0.7490196078, 0.2862745098, + 0.5176470588, 0.6823529411764706, 0.7490196078, 0.2941176471, 0.5019607843, + 0.6862745098039216, 0.7529411765, 0.3058823529, 0.4862745098, 0.6901960784313725, + 0.7607843137, 0.3137254902, 0.4705882353, 0.6941176470588235, 0.768627451, 0.3215686275, + 0.4549019608, 0.6980392156862745, 0.7764705882, 0.3333333333, 0.4392156863, + 0.7019607843137254, 0.7843137255, 0.3411764706, 0.4235294118, 0.7058823529411765, + 0.7921568627, 0.3529411765, 0.4078431373, 0.7098039215686275, 0.8, 0.3607843137, 0.3921568627, + 0.7137254901960784, 0.8078431373, 0.368627451, 0.3764705882, 0.7176470588235294, 0.8156862745, + 0.3803921569, 0.3607843137, 0.7215686274509804, 0.8235294118, 0.3882352941, 0.3450980392, + 0.7254901960784313, 0.831372549, 0.3960784314, 0.3294117647, 0.7294117647058823, 0.8392156863, + 0.4078431373, 0.3137254902, 0.7333333333333333, 0.8470588235, 0.4156862745, 0.2980392157, + 0.7372549019607844, 0.8549019608, 0.4274509804, 0.2823529412, 0.7411764705882353, 0.862745098, + 0.4352941176, 0.2666666667, 0.7450980392156863, 0.8705882353, 0.4431372549, 0.2509803922, + 0.7490196078431373, 0.8784313725, 0.4549019608, 0.2431372549, 0.7529411764705882, + 0.8862745098, 0.462745098, 0.2274509804, 0.7568627450980392, 0.8941176471, 0.4705882353, + 0.2117647059, 0.7607843137254902, 0.9019607843, 0.4823529412, 0.1960784314, + 0.7647058823529411, 0.9098039216, 0.4901960784, 0.1803921569, 0.7686274509803922, + 0.9176470588, 0.4980392157, 0.1647058824, 0.7725490196078432, 0.9254901961, 0.5098039216, + 0.1490196078, 0.7764705882352941, 0.9333333333, 0.5176470588, 0.1333333333, + 0.7803921568627451, 0.9411764706, 0.5294117647, 0.1176470588, 0.7843137254901961, + 0.9490196078, 0.537254902, 0.1019607843, 0.788235294117647, 0.9568627451, 0.5450980392, + 0.0862745098, 0.792156862745098, 0.9647058824, 0.5568627451, 0.0705882353, 0.796078431372549, + 0.9725490196, 0.5647058824, 0.0549019608, 0.8, 0.9803921569, 0.5725490196, 0.0392156863, + 0.803921568627451, 0.9882352941, 0.5843137255, 0.0235294118, 0.807843137254902, 0.9921568627, + 0.5921568627, 0.0078431373, 0.8117647058823529, 0.9921568627, 0.6039215686, 0.0274509804, + 0.8156862745098039, 0.9921568627, 0.6117647059, 0.0509803922, 0.8196078431372549, + 0.9921568627, 0.6196078431, 0.0745098039, 0.8235294117647058, 0.9921568627, 0.631372549, + 0.0980392157, 0.8274509803921568, 0.9921568627, 0.6392156863, 0.1215686275, + 0.8313725490196079, 0.9921568627, 0.6470588235, 0.1411764706, 0.8352941176470589, + 0.9921568627, 0.6588235294, 0.1647058824, 0.8392156862745098, 0.9921568627, 0.6666666667, + 0.1882352941, 0.8431372549019608, 0.9921568627, 0.6784313725, 0.2117647059, + 0.8470588235294118, 0.9921568627, 0.6862745098, 0.2352941176, 0.8509803921568627, + 0.9921568627, 0.6941176471, 0.2509803922, 0.8549019607843137, 0.9921568627, 0.7058823529, + 0.2705882353, 0.8588235294117647, 0.9921568627, 0.7137254902, 0.2941176471, + 0.8627450980392157, 0.9921568627, 0.7215686275, 0.3176470588, 0.8666666666666667, + 0.9921568627, 0.7333333333, 0.3411764706, 0.8705882352941177, 0.9921568627, 0.7411764706, + 0.3647058824, 0.8745098039215686, 0.9921568627, 0.7490196078, 0.3843137255, + 0.8784313725490196, 0.9921568627, 0.7529411765, 0.4078431373, 0.8823529411764706, + 0.9921568627, 0.7607843137, 0.431372549, 0.8862745098039215, 0.9921568627, 0.7725490196, + 0.4549019608, 0.8901960784313725, 0.9921568627, 0.7803921569, 0.4784313725, + 0.8941176470588236, 0.9921568627, 0.7882352941, 0.4980392157, 0.8980392156862745, + 0.9921568627, 0.8, 0.5215686275, 0.9019607843137255, 0.9921568627, 0.8078431373, 0.5450980392, + 0.9058823529411765, 0.9921568627, 0.8156862745, 0.568627451, 0.9098039215686274, 0.9921568627, + 0.8274509804, 0.5921568627, 0.9137254901960784, 0.9921568627, 0.8352941176, 0.6156862745, + 0.9176470588235294, 0.9921568627, 0.8470588235, 0.6352941176, 0.9215686274509803, + 0.9921568627, 0.8549019608, 0.6588235294, 0.9254901960784314, 0.9921568627, 0.862745098, + 0.6823529412, 0.9294117647058824, 0.9921568627, 0.8745098039, 0.7058823529, + 0.9333333333333333, 0.9921568627, 0.8823529412, 0.7294117647, 0.9372549019607843, + 0.9921568627, 0.8901960784, 0.7490196078, 0.9411764705882354, 0.9921568627, 0.9019607843, + 0.7647058824, 0.9450980392156864, 0.9921568627, 0.9098039216, 0.7882352941, + 0.9490196078431372, 0.9921568627, 0.9215686275, 0.8117647059, 0.9529411764705882, + 0.9921568627, 0.9294117647, 0.8352941176, 0.9568627450980394, 0.9921568627, 0.937254902, + 0.8588235294, 0.9607843137254903, 0.9921568627, 0.9490196078, 0.8784313725, + 0.9647058823529413, 0.9921568627, 0.9568627451, 0.9019607843, 0.9686274509803922, + 0.9921568627, 0.9647058824, 0.9254901961, 0.9725490196078431, 0.9921568627, 0.9764705882, + 0.9490196078, 0.9764705882352941, 0.9921568627, 0.9843137255, 0.9725490196, + 0.9803921568627451, 0.9921568627, 0.9921568627, 0.9921568627, 0.984313725490196, 0.9921568627, + 0.9921568627, 0.9921568627, 0.9882352941176471, 0.9921568627, 0.9921568627, 0.9921568627, + 0.9921568627450981, 0.9921568627, 0.9921568627, 0.9921568627, 0.996078431372549, 0.9921568627, + 0.9921568627, 0.9921568627, 1.0, 0.9921568627, 0.9921568627, 0.9921568627, + ], + description: 'GE', + }, + { + ColorSpace: 'RGB', + Name: 'siemens', + name: 'siemens', + RGBPoints: [ + 0.0, 0.0078431373, 0.0039215686, 0.1254901961, 0.00392156862745098, 0.0078431373, + 0.0039215686, 0.1254901961, 0.00784313725490196, 0.0078431373, 0.0039215686, 0.1882352941, + 0.011764705882352941, 0.0117647059, 0.0039215686, 0.2509803922, 0.01568627450980392, + 0.0117647059, 0.0039215686, 0.3098039216, 0.0196078431372549, 0.0156862745, 0.0039215686, + 0.3725490196, 0.023529411764705882, 0.0156862745, 0.0039215686, 0.3725490196, + 0.027450980392156862, 0.0156862745, 0.0039215686, 0.3725490196, 0.03137254901960784, + 0.0156862745, 0.0039215686, 0.3725490196, 0.03529411764705882, 0.0156862745, 0.0039215686, + 0.3725490196, 0.0392156862745098, 0.0156862745, 0.0039215686, 0.3725490196, + 0.043137254901960784, 0.0156862745, 0.0039215686, 0.3725490196, 0.047058823529411764, + 0.0156862745, 0.0039215686, 0.3725490196, 0.050980392156862744, 0.0156862745, 0.0039215686, + 0.3725490196, 0.054901960784313725, 0.0156862745, 0.0039215686, 0.3725490196, + 0.05882352941176471, 0.0156862745, 0.0039215686, 0.3725490196, 0.06274509803921569, + 0.0156862745, 0.0039215686, 0.3882352941, 0.06666666666666667, 0.0156862745, 0.0039215686, + 0.4078431373, 0.07058823529411765, 0.0156862745, 0.0039215686, 0.4235294118, + 0.07450980392156863, 0.0156862745, 0.0039215686, 0.4431372549, 0.0784313725490196, + 0.0156862745, 0.0039215686, 0.462745098, 0.08235294117647059, 0.0156862745, 0.0039215686, + 0.4784313725, 0.08627450980392157, 0.0156862745, 0.0039215686, 0.4980392157, + 0.09019607843137255, 0.0196078431, 0.0039215686, 0.5137254902, 0.09411764705882353, + 0.0196078431, 0.0039215686, 0.5333333333, 0.09803921568627451, 0.0196078431, 0.0039215686, + 0.5529411765, 0.10196078431372549, 0.0196078431, 0.0039215686, 0.568627451, + 0.10588235294117647, 0.0196078431, 0.0039215686, 0.5882352941, 0.10980392156862745, + 0.0196078431, 0.0039215686, 0.6039215686, 0.11372549019607843, 0.0196078431, 0.0039215686, + 0.6235294118, 0.11764705882352942, 0.0196078431, 0.0039215686, 0.6431372549, + 0.12156862745098039, 0.0235294118, 0.0039215686, 0.6588235294, 0.12549019607843137, + 0.0235294118, 0.0039215686, 0.6784313725, 0.12941176470588237, 0.0235294118, 0.0039215686, + 0.6980392157, 0.13333333333333333, 0.0235294118, 0.0039215686, 0.7137254902, + 0.13725490196078433, 0.0235294118, 0.0039215686, 0.7333333333, 0.1411764705882353, + 0.0235294118, 0.0039215686, 0.7490196078, 0.1450980392156863, 0.0235294118, 0.0039215686, + 0.7647058824, 0.14901960784313725, 0.0235294118, 0.0039215686, 0.7843137255, + 0.15294117647058825, 0.0274509804, 0.0039215686, 0.8, 0.1568627450980392, 0.0274509804, + 0.0039215686, 0.8196078431, 0.1607843137254902, 0.0274509804, 0.0039215686, 0.8352941176, + 0.16470588235294117, 0.0274509804, 0.0039215686, 0.8549019608, 0.16862745098039217, + 0.0274509804, 0.0039215686, 0.8745098039, 0.17254901960784313, 0.0274509804, 0.0039215686, + 0.8901960784, 0.17647058823529413, 0.0274509804, 0.0039215686, 0.9098039216, + 0.1803921568627451, 0.031372549, 0.0039215686, 0.9294117647, 0.1843137254901961, 0.031372549, + 0.0039215686, 0.9254901961, 0.18823529411764706, 0.0509803922, 0.0039215686, 0.9098039216, + 0.19215686274509805, 0.0705882353, 0.0039215686, 0.8901960784, 0.19607843137254902, + 0.0901960784, 0.0039215686, 0.8705882353, 0.2, 0.1137254902, 0.0039215686, 0.8509803922, + 0.20392156862745098, 0.1333333333, 0.0039215686, 0.831372549, 0.20784313725490197, + 0.1529411765, 0.0039215686, 0.8117647059, 0.21176470588235294, 0.1725490196, 0.0039215686, + 0.7921568627, 0.21568627450980393, 0.1960784314, 0.0039215686, 0.7725490196, + 0.2196078431372549, 0.2156862745, 0.0039215686, 0.7529411765, 0.2235294117647059, + 0.2352941176, 0.0039215686, 0.737254902, 0.22745098039215686, 0.2509803922, 0.0039215686, + 0.7176470588, 0.23137254901960785, 0.2745098039, 0.0039215686, 0.6980392157, + 0.23529411764705885, 0.2941176471, 0.0039215686, 0.6784313725, 0.23921568627450984, + 0.3137254902, 0.0039215686, 0.6588235294, 0.24313725490196078, 0.3333333333, 0.0039215686, + 0.6392156863, 0.24705882352941178, 0.3568627451, 0.0039215686, 0.6196078431, + 0.25098039215686274, 0.3764705882, 0.0039215686, 0.6, 0.2549019607843137, 0.3960784314, + 0.0039215686, 0.5803921569, 0.25882352941176473, 0.4156862745, 0.0039215686, 0.5607843137, + 0.2627450980392157, 0.4392156863, 0.0039215686, 0.5411764706, 0.26666666666666666, + 0.4588235294, 0.0039215686, 0.5215686275, 0.27058823529411763, 0.4784313725, 0.0039215686, + 0.5019607843, 0.27450980392156865, 0.4980392157, 0.0039215686, 0.4823529412, + 0.2784313725490196, 0.5215686275, 0.0039215686, 0.4666666667, 0.2823529411764706, + 0.5411764706, 0.0039215686, 0.4470588235, 0.28627450980392155, 0.5607843137, 0.0039215686, + 0.4274509804, 0.2901960784313726, 0.5803921569, 0.0039215686, 0.4078431373, + 0.29411764705882354, 0.6039215686, 0.0039215686, 0.3882352941, 0.2980392156862745, + 0.6235294118, 0.0039215686, 0.368627451, 0.30196078431372547, 0.6431372549, 0.0039215686, + 0.3490196078, 0.3058823529411765, 0.662745098, 0.0039215686, 0.3294117647, + 0.30980392156862746, 0.6862745098, 0.0039215686, 0.3098039216, 0.3137254901960784, + 0.7058823529, 0.0039215686, 0.2901960784, 0.3176470588235294, 0.7254901961, 0.0039215686, + 0.2705882353, 0.3215686274509804, 0.7450980392, 0.0039215686, 0.2509803922, + 0.3254901960784314, 0.7647058824, 0.0039215686, 0.2352941176, 0.32941176470588235, + 0.7843137255, 0.0039215686, 0.2156862745, 0.3333333333333333, 0.8039215686, 0.0039215686, + 0.1960784314, 0.33725490196078434, 0.8235294118, 0.0039215686, 0.1764705882, + 0.3411764705882353, 0.8470588235, 0.0039215686, 0.1568627451, 0.34509803921568627, + 0.8666666667, 0.0039215686, 0.137254902, 0.34901960784313724, 0.8862745098, 0.0039215686, + 0.1176470588, 0.35294117647058826, 0.9058823529, 0.0039215686, 0.0980392157, + 0.3568627450980392, 0.9294117647, 0.0039215686, 0.0784313725, 0.3607843137254902, + 0.9490196078, 0.0039215686, 0.0588235294, 0.36470588235294116, 0.968627451, 0.0039215686, + 0.0392156863, 0.3686274509803922, 0.9921568627, 0.0039215686, 0.0235294118, + 0.37254901960784315, 0.9529411765, 0.0039215686, 0.0588235294, 0.3764705882352941, + 0.9529411765, 0.0078431373, 0.0549019608, 0.3803921568627451, 0.9529411765, 0.0156862745, + 0.0549019608, 0.3843137254901961, 0.9529411765, 0.0235294118, 0.0549019608, + 0.38823529411764707, 0.9529411765, 0.031372549, 0.0549019608, 0.39215686274509803, + 0.9529411765, 0.0352941176, 0.0549019608, 0.396078431372549, 0.9529411765, 0.0431372549, + 0.0549019608, 0.4, 0.9529411765, 0.0509803922, 0.0549019608, 0.403921568627451, 0.9529411765, + 0.0588235294, 0.0549019608, 0.40784313725490196, 0.9529411765, 0.062745098, 0.0549019608, + 0.4117647058823529, 0.9529411765, 0.0705882353, 0.0549019608, 0.41568627450980394, + 0.9529411765, 0.0784313725, 0.0509803922, 0.4196078431372549, 0.9529411765, 0.0862745098, + 0.0509803922, 0.4235294117647059, 0.9568627451, 0.0941176471, 0.0509803922, + 0.42745098039215684, 0.9568627451, 0.0980392157, 0.0509803922, 0.43137254901960786, + 0.9568627451, 0.1058823529, 0.0509803922, 0.43529411764705883, 0.9568627451, 0.1137254902, + 0.0509803922, 0.4392156862745098, 0.9568627451, 0.1215686275, 0.0509803922, + 0.44313725490196076, 0.9568627451, 0.1254901961, 0.0509803922, 0.4470588235294118, + 0.9568627451, 0.1333333333, 0.0509803922, 0.45098039215686275, 0.9568627451, 0.1411764706, + 0.0509803922, 0.4549019607843137, 0.9568627451, 0.1490196078, 0.0470588235, + 0.4588235294117647, 0.9568627451, 0.1568627451, 0.0470588235, 0.4627450980392157, + 0.9568627451, 0.1607843137, 0.0470588235, 0.4666666666666667, 0.9568627451, 0.168627451, + 0.0470588235, 0.4705882352941177, 0.9607843137, 0.1764705882, 0.0470588235, + 0.4745098039215686, 0.9607843137, 0.1843137255, 0.0470588235, 0.4784313725490197, + 0.9607843137, 0.1882352941, 0.0470588235, 0.48235294117647065, 0.9607843137, 0.1960784314, + 0.0470588235, 0.48627450980392156, 0.9607843137, 0.2039215686, 0.0470588235, + 0.49019607843137253, 0.9607843137, 0.2117647059, 0.0470588235, 0.49411764705882355, + 0.9607843137, 0.2196078431, 0.0431372549, 0.4980392156862745, 0.9607843137, 0.2235294118, + 0.0431372549, 0.5019607843137255, 0.9607843137, 0.231372549, 0.0431372549, 0.5058823529411764, + 0.9607843137, 0.2392156863, 0.0431372549, 0.5098039215686274, 0.9607843137, 0.2470588235, + 0.0431372549, 0.5137254901960784, 0.9607843137, 0.2509803922, 0.0431372549, + 0.5176470588235295, 0.9647058824, 0.2549019608, 0.0431372549, 0.5215686274509804, + 0.9647058824, 0.262745098, 0.0431372549, 0.5254901960784314, 0.9647058824, 0.2705882353, + 0.0431372549, 0.5294117647058824, 0.9647058824, 0.2745098039, 0.0431372549, + 0.5333333333333333, 0.9647058824, 0.2823529412, 0.0392156863, 0.5372549019607843, + 0.9647058824, 0.2901960784, 0.0392156863, 0.5411764705882353, 0.9647058824, 0.2980392157, + 0.0392156863, 0.5450980392156862, 0.9647058824, 0.3058823529, 0.0392156863, + 0.5490196078431373, 0.9647058824, 0.3098039216, 0.0392156863, 0.5529411764705883, + 0.9647058824, 0.3176470588, 0.0392156863, 0.5568627450980392, 0.9647058824, 0.3254901961, + 0.0392156863, 0.5607843137254902, 0.9647058824, 0.3333333333, 0.0392156863, + 0.5647058823529412, 0.9647058824, 0.337254902, 0.0392156863, 0.5686274509803921, 0.968627451, + 0.3450980392, 0.0392156863, 0.5725490196078431, 0.968627451, 0.3529411765, 0.0352941176, + 0.5764705882352941, 0.968627451, 0.3607843137, 0.0352941176, 0.5803921568627451, 0.968627451, + 0.368627451, 0.0352941176, 0.5843137254901961, 0.968627451, 0.3725490196, 0.0352941176, + 0.5882352941176471, 0.968627451, 0.3803921569, 0.0352941176, 0.592156862745098, 0.968627451, + 0.3882352941, 0.0352941176, 0.596078431372549, 0.968627451, 0.3960784314, 0.0352941176, 0.6, + 0.968627451, 0.4, 0.0352941176, 0.6039215686274509, 0.968627451, 0.4078431373, 0.0352941176, + 0.6078431372549019, 0.968627451, 0.4156862745, 0.0352941176, 0.611764705882353, 0.968627451, + 0.4235294118, 0.031372549, 0.615686274509804, 0.9725490196, 0.431372549, 0.031372549, + 0.6196078431372549, 0.9725490196, 0.4352941176, 0.031372549, 0.6235294117647059, 0.9725490196, + 0.4431372549, 0.031372549, 0.6274509803921569, 0.9725490196, 0.4509803922, 0.031372549, + 0.6313725490196078, 0.9725490196, 0.4588235294, 0.031372549, 0.6352941176470588, 0.9725490196, + 0.462745098, 0.031372549, 0.6392156862745098, 0.9725490196, 0.4705882353, 0.031372549, + 0.6431372549019608, 0.9725490196, 0.4784313725, 0.031372549, 0.6470588235294118, 0.9725490196, + 0.4862745098, 0.031372549, 0.6509803921568628, 0.9725490196, 0.4941176471, 0.0274509804, + 0.6549019607843137, 0.9725490196, 0.4980392157, 0.0274509804, 0.6588235294117647, + 0.9725490196, 0.5058823529, 0.0274509804, 0.6627450980392157, 0.9764705882, 0.5137254902, + 0.0274509804, 0.6666666666666666, 0.9764705882, 0.5215686275, 0.0274509804, + 0.6705882352941176, 0.9764705882, 0.5254901961, 0.0274509804, 0.6745098039215687, + 0.9764705882, 0.5333333333, 0.0274509804, 0.6784313725490196, 0.9764705882, 0.5411764706, + 0.0274509804, 0.6823529411764706, 0.9764705882, 0.5490196078, 0.0274509804, + 0.6862745098039216, 0.9764705882, 0.5529411765, 0.0274509804, 0.6901960784313725, + 0.9764705882, 0.5607843137, 0.0235294118, 0.6941176470588235, 0.9764705882, 0.568627451, + 0.0235294118, 0.6980392156862745, 0.9764705882, 0.5764705882, 0.0235294118, + 0.7019607843137254, 0.9764705882, 0.5843137255, 0.0235294118, 0.7058823529411765, + 0.9764705882, 0.5882352941, 0.0235294118, 0.7098039215686275, 0.9764705882, 0.5960784314, + 0.0235294118, 0.7137254901960784, 0.9803921569, 0.6039215686, 0.0235294118, + 0.7176470588235294, 0.9803921569, 0.6117647059, 0.0235294118, 0.7215686274509804, + 0.9803921569, 0.6156862745, 0.0235294118, 0.7254901960784313, 0.9803921569, 0.6235294118, + 0.0235294118, 0.7294117647058823, 0.9803921569, 0.631372549, 0.0196078431, 0.7333333333333333, + 0.9803921569, 0.6392156863, 0.0196078431, 0.7372549019607844, 0.9803921569, 0.6470588235, + 0.0196078431, 0.7411764705882353, 0.9803921569, 0.6509803922, 0.0196078431, + 0.7450980392156863, 0.9803921569, 0.6588235294, 0.0196078431, 0.7490196078431373, + 0.9803921569, 0.6666666667, 0.0196078431, 0.7529411764705882, 0.9803921569, 0.6745098039, + 0.0196078431, 0.7568627450980392, 0.9803921569, 0.6784313725, 0.0196078431, + 0.7607843137254902, 0.9843137255, 0.6862745098, 0.0196078431, 0.7647058823529411, + 0.9843137255, 0.6941176471, 0.0196078431, 0.7686274509803922, 0.9843137255, 0.7019607843, + 0.0156862745, 0.7725490196078432, 0.9843137255, 0.7098039216, 0.0156862745, + 0.7764705882352941, 0.9843137255, 0.7137254902, 0.0156862745, 0.7803921568627451, + 0.9843137255, 0.7215686275, 0.0156862745, 0.7843137254901961, 0.9843137255, 0.7294117647, + 0.0156862745, 0.788235294117647, 0.9843137255, 0.737254902, 0.0156862745, 0.792156862745098, + 0.9843137255, 0.7411764706, 0.0156862745, 0.796078431372549, 0.9843137255, 0.7490196078, + 0.0156862745, 0.8, 0.9843137255, 0.7529411765, 0.0156862745, 0.803921568627451, 0.9843137255, + 0.7607843137, 0.0156862745, 0.807843137254902, 0.9882352941, 0.768627451, 0.0156862745, + 0.8117647058823529, 0.9882352941, 0.768627451, 0.0156862745, 0.8156862745098039, 0.9843137255, + 0.7843137255, 0.0117647059, 0.8196078431372549, 0.9843137255, 0.8, 0.0117647059, + 0.8235294117647058, 0.9843137255, 0.8156862745, 0.0117647059, 0.8274509803921568, + 0.9803921569, 0.831372549, 0.0117647059, 0.8313725490196079, 0.9803921569, 0.8431372549, + 0.0117647059, 0.8352941176470589, 0.9803921569, 0.8588235294, 0.0078431373, + 0.8392156862745098, 0.9803921569, 0.8745098039, 0.0078431373, 0.8431372549019608, + 0.9764705882, 0.8901960784, 0.0078431373, 0.8470588235294118, 0.9764705882, 0.9058823529, + 0.0078431373, 0.8509803921568627, 0.9764705882, 0.9176470588, 0.0078431373, + 0.8549019607843137, 0.9764705882, 0.9333333333, 0.0039215686, 0.8588235294117647, + 0.9725490196, 0.9490196078, 0.0039215686, 0.8627450980392157, 0.9725490196, 0.9647058824, + 0.0039215686, 0.8666666666666667, 0.9725490196, 0.9803921569, 0.0039215686, + 0.8705882352941177, 0.9725490196, 0.9960784314, 0.0039215686, 0.8745098039215686, + 0.9725490196, 0.9960784314, 0.0039215686, 0.8784313725490196, 0.9725490196, 0.9960784314, + 0.0352941176, 0.8823529411764706, 0.9725490196, 0.9960784314, 0.0666666667, + 0.8862745098039215, 0.9725490196, 0.9960784314, 0.0980392157, 0.8901960784313725, + 0.9725490196, 0.9960784314, 0.1294117647, 0.8941176470588236, 0.9725490196, 0.9960784314, + 0.1647058824, 0.8980392156862745, 0.9764705882, 0.9960784314, 0.1960784314, + 0.9019607843137255, 0.9764705882, 0.9960784314, 0.2274509804, 0.9058823529411765, + 0.9764705882, 0.9960784314, 0.2549019608, 0.9098039215686274, 0.9764705882, 0.9960784314, + 0.2901960784, 0.9137254901960784, 0.9764705882, 0.9960784314, 0.3215686275, + 0.9176470588235294, 0.9803921569, 0.9960784314, 0.3529411765, 0.9215686274509803, + 0.9803921569, 0.9960784314, 0.3843137255, 0.9254901960784314, 0.9803921569, 0.9960784314, + 0.4156862745, 0.9294117647058824, 0.9803921569, 0.9960784314, 0.4509803922, + 0.9333333333333333, 0.9803921569, 0.9960784314, 0.4823529412, 0.9372549019607843, + 0.9843137255, 0.9960784314, 0.5137254902, 0.9411764705882354, 0.9843137255, 0.9960784314, + 0.5450980392, 0.9450980392156864, 0.9843137255, 0.9960784314, 0.5803921569, + 0.9490196078431372, 0.9843137255, 0.9960784314, 0.6117647059, 0.9529411764705882, + 0.9843137255, 0.9960784314, 0.6431372549, 0.9568627450980394, 0.9882352941, 0.9960784314, + 0.6745098039, 0.9607843137254903, 0.9882352941, 0.9960784314, 0.7058823529, + 0.9647058823529413, 0.9882352941, 0.9960784314, 0.7411764706, 0.9686274509803922, + 0.9882352941, 0.9960784314, 0.768627451, 0.9725490196078431, 0.9882352941, 0.9960784314, 0.8, + 0.9764705882352941, 0.9921568627, 0.9960784314, 0.831372549, 0.9803921568627451, 0.9921568627, + 0.9960784314, 0.8666666667, 0.984313725490196, 0.9921568627, 0.9960784314, 0.8980392157, + 0.9882352941176471, 0.9921568627, 0.9960784314, 0.9294117647, 0.9921568627450981, + 0.9921568627, 0.9960784314, 0.9607843137, 0.996078431372549, 0.9960784314, 0.9960784314, + 0.9607843137, 1.0, 0.9960784314, 0.9960784314, 0.9607843137, + ], + description: 'Siemens', + }, + { + ColorSpace: 'RGB', + Name: 'X Ray', + name: 'X Ray', + NanColor: [1, 0, 0], + RGBPoints: [0, 1, 1, 1, 1, 0, 0, 0], + description: 'X Ray', + }, + { + ColorSpace: 'RGB', + Name: 'Grayscale', + name: 'Grayscale', + NanColor: [1, 0, 0], + RGBPoints: [0, 0, 0, 0, 1, 1, 1, 1], + description: 'Grayscale', + }, +]; + +export { colormaps }; diff --git a/extensions/default/src/ViewerLayout/ViewerHeader.tsx b/extensions/default/src/ViewerLayout/ViewerHeader.tsx index c47ce1ec6..71897a5fb 100644 --- a/extensions/default/src/ViewerLayout/ViewerHeader.tsx +++ b/extensions/default/src/ViewerLayout/ViewerHeader.tsx @@ -105,6 +105,8 @@ function ViewerHeader({ hotkeysManager, extensionManager, servicesManager }) { isReturnEnabled={!!appConfig.showStudyList} onClickReturnButton={onClickReturnButton} WhiteLabeling={appConfig.whiteLabeling} + showPatientInfo={appConfig.showPatientInfo} + servicesManager={servicesManager} >
diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx index f9715783e..ddf3a6d15 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx @@ -401,15 +401,6 @@ function _mapDisplaySets( const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID]; const componentType = _getComponentType(ds); const numPanes = viewportGridService.getNumViewportPanes(); - const viewportIdentificator = []; - - if (numPanes !== 1) { - viewports.forEach(viewportData => { - if (viewportData?.displaySetInstanceUIDs?.includes(ds.displaySetInstanceUID)) { - viewportIdentificator.push(viewportData.viewportLabel); - } - }); - } const array = componentType === 'thumbnailTracked' ? thumbnailDisplaySets : thumbnailNoImageDisplaySets; @@ -435,7 +426,6 @@ function _mapDisplaySets( }, isTracked: trackedSeriesInstanceUIDs.includes(ds.SeriesInstanceUID), isHydratedForDerivedDisplaySet: ds.isHydrated, - viewportIdentificator, }; if (componentType === 'thumbnailNoImage') { diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx index a2026edab..e8400d4a9 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx @@ -1,27 +1,29 @@ import React, { useState, useEffect, useCallback } from 'react'; import PropTypes from 'prop-types'; -import OHIF, { utils } from '@ohif/core'; -import { ViewportActionBar, Tooltip, Icon } from '@ohif/ui'; - -import { useTranslation } from 'react-i18next'; +import { Tooltip, Icon, ViewportActionArrows, useViewportGrid } from '@ohif/ui'; import { annotation } from '@cornerstonejs/tools'; import { useTrackedMeasurements } from './../getContextModule'; import { BaseVolumeViewport, Enums } from '@cornerstonejs/core'; - -const { formatDate } = utils; +import { useTranslation } from 'react-i18next'; function TrackedCornerstoneViewport(props) { - const { displaySets, viewportId, viewportLabel, servicesManager, extensionManager } = props; + const { displaySets, viewportId, servicesManager, extensionManager } = props; - const { t } = useTranslation('Common'); - - const { measurementService, cornerstoneViewportService, viewportGridService } = - servicesManager.services; + const { + measurementService, + cornerstoneViewportService, + viewportGridService, + viewportActionCornersService, + } = servicesManager.services; // Todo: handling more than one displaySet on the same viewport const displaySet = displaySets[0]; + const { t } = useTranslation('Common'); + + const [viewportGrid] = useViewportGrid(); + const { activeViewportId } = viewportGrid; const [trackedMeasurements, sendTrackedMeasurementsEvent] = useTrackedMeasurements(); @@ -31,18 +33,7 @@ function TrackedCornerstoneViewport(props) { const { trackedSeries } = trackedMeasurements.context; - const { SeriesDate, SeriesDescription, SeriesInstanceUID, SeriesNumber } = displaySet; - - const { - PatientID, - PatientName, - PatientSex, - PatientAge, - SliceThickness, - SpacingBetweenSlices, - StudyDate, - ManufacturerModelName, - } = displaySet.images[0]; + const { SeriesInstanceUID } = displaySet; const updateIsTracked = useCallback(() => { const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); @@ -170,22 +161,51 @@ function TrackedCornerstoneViewport(props) { }; }, [measurementService, sendTrackedMeasurementsEvent, viewportId, viewportGridService]); - function switchMeasurement(direction) { - const newTrackedMeasurementUID = _getNextMeasurementUID( - direction, - servicesManager, - trackedMeasurementUID, - trackedMeasurements + const switchMeasurement = useCallback( + direction => { + const newTrackedMeasurementUID = _getNextMeasurementUID( + direction, + servicesManager, + trackedMeasurementUID, + trackedMeasurements + ); + + if (!newTrackedMeasurementUID) { + return; + } + + setTrackedMeasurementUID(newTrackedMeasurementUID); + + measurementService.jumpToMeasurement(viewportId, newTrackedMeasurementUID); + }, + [measurementService, servicesManager, trackedMeasurementUID, trackedMeasurements, viewportId] + ); + + useEffect(() => { + const statusComponent = _getStatusComponent(isTracked, t); + const arrowsComponent = _getArrowsComponent( + isTracked, + switchMeasurement, + viewportId === activeViewportId ); - if (!newTrackedMeasurementUID) { - return; - } - - setTrackedMeasurementUID(newTrackedMeasurementUID); - - measurementService.jumpToMeasurement(viewportId, newTrackedMeasurementUID); - } + viewportActionCornersService.setComponents([ + { + viewportId, + id: 'viewportStatusComponent', + component: statusComponent, + indexPriority: -100, + location: viewportActionCornersService.LOCATIONS.topLeft, + }, + { + viewportId, + id: 'viewportActionArrowsComponent', + component: arrowsComponent, + indexPriority: 0, + location: viewportActionCornersService.LOCATIONS.topRight, + }, + ]); + }, [activeViewportId, isTracked, switchMeasurement, viewportActionCornersService, viewportId]); const getCornerstoneViewport = () => { const { component: Component } = extensionManager.getModuleEntry( @@ -203,35 +223,6 @@ function TrackedCornerstoneViewport(props) { return ( <> - { - evt.stopPropagation(); - evt.preventDefault(); - }} - useAltStyling={isTracked} - onArrowsClick={direction => switchMeasurement(direction)} - getStatusComponent={() => _getStatusComponent(isTracked)} - studyData={{ - label: viewportLabel, - studyDate: formatDate(SeriesDate) || formatDate(StudyDate) || t('NoStudyDate'), - currentSeries: SeriesNumber, // TODO - switch entire currentSeries to be UID based or actual position based - seriesDescription: SeriesDescription, - patientInformation: { - patientName: PatientName ? OHIF.utils.formatPN(PatientName) : '', - patientSex: PatientSex || '', - patientAge: PatientAge || '', - MRN: PatientID || '', - thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}` : '', - thicknessUnits: t('mm'), - spacing: - SpacingBetweenSlices !== undefined - ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}${t('mm')}` - : '', - scanner: ManufacturerModelName || '', - }, - }} - /> - {/* TODO: Viewport interface to accept stack or layers of content like this? */}
{getCornerstoneViewport()}
@@ -291,18 +282,11 @@ function _getNextMeasurementUID( // Not tracking a measurement, or previous measurement now deleted, revert to 0. measurementIndex = 0; } else { - if (direction === 'left') { - measurementIndex--; - - if (measurementIndex < 0) { - measurementIndex = measurementCount - 1; - } - } else if (direction === 'right') { - measurementIndex++; - - if (measurementIndex === measurementCount) { - measurementIndex = 0; - } + measurementIndex += direction; + if (measurementIndex < 0) { + measurementIndex = measurementCount - 1; + } else if (measurementIndex === measurementCount) { + measurementIndex = 0; } } @@ -311,9 +295,23 @@ function _getNextMeasurementUID( return newTrackedMeasurementId; } -function _getStatusComponent(isTracked) { - const { t } = useTranslation('TrackedCornerstoneViewport'); - const trackedIcon = isTracked ? 'status-tracked' : 'status-untracked'; +const _getArrowsComponent = (isTracked, switchMeasurement, isActiveViewport) => { + if (!isTracked) { + return null; + } + + return ( + switchMeasurement(direction)} + className={isActiveViewport ? 'visible' : 'invisible group-hover:visible'} + > + ); +}; + +function _getStatusComponent(isTracked, t) { + if (!isTracked) { + return null; + } return (
@@ -344,7 +342,7 @@ function _getStatusComponent(isTracked) { } > diff --git a/extensions/tmtv/src/commandsModule.js b/extensions/tmtv/src/commandsModule.js index 32b368b8e..d00b33c89 100644 --- a/extensions/tmtv/src/commandsModule.js +++ b/extensions/tmtv/src/commandsModule.js @@ -508,13 +508,6 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) displaySetInstanceUID: ptDisplaySet.displaySetInstanceUID, colormap: { name: colormap, - // TODO: This opacity mapping matches that in hpViewports, but - // ideally making this editable in a side panel would be useful - opacity: [ - { value: 0, opacity: 0 }, - { value: 0.1, opacity: 0.9 }, - { value: 1, opacity: 0.95 }, - ], }, }); diff --git a/extensions/tmtv/src/init.js b/extensions/tmtv/src/init.js index 99d4135b6..eaa461533 100644 --- a/extensions/tmtv/src/init.js +++ b/extensions/tmtv/src/init.js @@ -1,10 +1,6 @@ import { addTool, RectangleROIStartEndThresholdTool } from '@cornerstonejs/tools'; -import { utilities } from '@cornerstonejs/core'; import measurementServiceMappingsFactory from './utils/measurementServiceMappings/measurementServiceMappingsFactory'; -import colormaps from './utils/colormaps'; - -const { registerColormap } = utilities.colormap; const CORNERSTONE_3D_TOOLS_SOURCE_NAME = 'Cornerstone3DTools'; const CORNERSTONE_3D_TOOLS_SOURCE_VERSION = '0.1'; @@ -38,5 +34,4 @@ export default function init({ servicesManager }) { RectangleROIStartEndThreshold.toAnnotation, RectangleROIStartEndThreshold.toMeasurement ); - colormaps.forEach(registerColormap); } diff --git a/extensions/tmtv/src/utils/hpViewports.ts b/extensions/tmtv/src/utils/hpViewports.ts index b716a9ef1..a93392170 100644 --- a/extensions/tmtv/src/utils/hpViewports.ts +++ b/extensions/tmtv/src/utils/hpViewports.ts @@ -20,6 +20,9 @@ const ctAXIAL = { id: 'ctWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -48,6 +51,9 @@ const ctSAGITTAL = { id: 'ctWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -75,6 +81,9 @@ const ctCORONAL = { id: 'ctWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, ], }, @@ -108,6 +117,9 @@ const ptAXIAL = { id: 'ptWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', @@ -152,6 +164,9 @@ const ptSAGITTAL = { id: 'ptWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', @@ -196,6 +211,9 @@ const ptCORONAL = { id: 'ptWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', @@ -249,6 +267,9 @@ const fusionAXIAL = { id: 'fusionWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', @@ -312,6 +333,9 @@ const fusionSAGITTAL = { id: 'fusionWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', @@ -375,6 +399,9 @@ const fusionCORONAL = { id: 'fusionWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', @@ -423,6 +450,9 @@ const mipSAGITTAL = { id: 'ptWLSync', source: true, target: true, + options: { + syncColormap: true, + }, }, { type: 'voi', diff --git a/modes/basic-test-mode/src/toolbarButtons.ts b/modes/basic-test-mode/src/toolbarButtons.ts index 81a0ceb57..988e639f7 100644 --- a/modes/basic-test-mode/src/toolbarButtons.ts +++ b/modes/basic-test-mode/src/toolbarButtons.ts @@ -114,7 +114,7 @@ const toolbarButtons: Button[] = [ evaluate: 'evaluate.cornerstoneTool', }, }, - // Window Level + Presets... + // Window Level { id: 'WindowLevel', uiType: 'ohif.splitButton', diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index 55d63b470..bce66af83 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -7,29 +7,6 @@ import type { Button } from '@ohif/core/types'; const { windowLevelPresets } = defaults; const { createButton } = ToolbarService; -/** - * - * @param {*} preset - preset number (from above import) - * @param {*} title - * @param {*} subtitle - */ -function _createWwwcPreset(preset, title, subtitle) { - return { - id: preset.toString(), - title, - subtitle, - commands: [ - { - commandName: 'setWindowLevel', - commandOptions: { - ...windowLevelPresets[preset], - }, - context: 'CORNERSTONE', - }, - ], - }; -} - export const setToolActiveToolbar = { commandName: 'setToolActiveToolbar', commandOptions: { @@ -111,33 +88,15 @@ const toolbarButtons: Button[] = [ evaluate: 'evaluate.cornerstoneTool', }, }, - // Window Level + Presets... + // Window Level { id: 'WindowLevel', - uiType: 'ohif.splitButton', + uiType: 'ohif.radioGroup', props: { - groupId: 'WindowLevel', - primary: createButton({ - id: 'WindowLevel', - icon: 'tool-window-level', - label: 'Window Level', - tooltip: 'Window Level', - commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', - }), - secondary: { - icon: 'chevron-down', - label: 'W/L Manual', - tooltip: 'W/L Presets', - }, - renderer: WindowLevelMenuItem, - items: [ - _createWwwcPreset(1, 'Soft tissue', '400 / 40'), - _createWwwcPreset(2, 'Lung', '1500 / -600'), - _createWwwcPreset(3, 'Liver', '150 / 90'), - _createWwwcPreset(4, 'Bone', '2500 / 480'), - _createWwwcPreset(5, 'Brain', '80 / 40'), - ], + icon: 'tool-window-level', + label: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, // Pan... diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index 4d2dacd06..3255570d1 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -49,29 +49,12 @@ const toolbarButtons: Button[] = [ }, { id: 'WindowLevel', - uiType: 'ohif.splitButton', + uiType: 'ohif.radioGroup', props: { - groupId: 'WindowLevel', - primary: createButton({ - id: 'WindowLevel', - icon: 'tool-window-level', - label: 'Window Level', - tooltip: 'Window Level', - commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', - }), - secondary: { - icon: 'chevron-down', - tooltip: 'W/L Presets', - }, - renderer: WindowLevelMenuItem, - items: [ - _createWwwcPreset(1, 'Soft tissue', '400 / 40'), - _createWwwcPreset(2, 'Lung', '1500 / -600'), - _createWwwcPreset(3, 'Liver', '150 / 90'), - _createWwwcPreset(4, 'Bone', '2500 / 480'), - _createWwwcPreset(5, 'Brain', '80 / 40'), - ], + icon: 'tool-window-level', + label: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, { diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index 92ccb893e..9643fa971 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -90,7 +90,6 @@ function modeFactory({ modeConfiguration }) { 'Pan', 'SyncToggle', 'RectangleROIStartEndThreshold', - 'fusionPTColormap', ]); // For the hanging protocol we need to decide on the window level diff --git a/modes/tmtv/src/toolbarButtons.js b/modes/tmtv/src/toolbarButtons.js index 5beaac21f..c605b4966 100644 --- a/modes/tmtv/src/toolbarButtons.js +++ b/modes/tmtv/src/toolbarButtons.js @@ -103,29 +103,12 @@ const toolbarButtons = [ // Window Level + Presets { id: 'WindowLevel', - uiType: 'ohif.splitButton', + uiType: 'ohif.radioGroup', props: { - groupId: 'WindowLevel', - primary: ToolbarService.createButton({ - id: 'WindowLevel', - icon: 'tool-window-level', - label: 'Window Level', - tooltip: 'Window Level', - commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', - }), - secondary: { - icon: 'chevron-down', - tooltip: 'W/L Presets', - }, - renderer: WindowLevelMenuItem, - items: [ - _createWwwcPreset(1, 'Soft tissue', '400 / 40'), - _createWwwcPreset(2, 'Lung', '1500 / -600'), - _createWwwcPreset(3, 'Liver', '150 / 90'), - _createWwwcPreset(4, 'Bone', '2500 / 480'), - _createWwwcPreset(5, 'Brain', '80 / 40'), - ], + icon: 'tool-window-level', + label: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', }, }, // Crosshairs Button @@ -161,38 +144,6 @@ const toolbarButtons = [ evaluate: 'evaluate.cornerstoneTool', }, }, - // Fusion PT Colormap Button - { - id: 'fusionPTColormap', - uiType: 'ohif.splitButton', - props: { - groupId: 'fusionPTColormap', - primary: ToolbarService.createButton({ - id: 'fusionPTColormap', - icon: 'tool-fusion-color', - label: 'Fusion PT Colormap', - tooltip: 'Fusion PT Colormap', - commands: [], - evaluate: 'evaluate.action', - }), - secondary: { - icon: 'chevron-down', - tooltip: 'PET Image Colormap', - }, - items: [ - _createColormap('HSV', 'hsv'), - _createColormap('Hot Iron', 'hot_iron'), - _createColormap('S PET', 's_pet'), - _createColormap('Red Hot', 'red_hot'), - _createColormap('Perfusion', 'perfusion'), - _createColormap('Rainbow', 'rainbow_2'), - _createColormap('SUV', 'suv'), - _createColormap('GE 256', 'ge_256'), - _createColormap('GE', 'ge'), - _createColormap('Siemens', 'siemens'), - ], - }, - }, ]; export default toolbarButtons; diff --git a/platform/app/cypress/integration/MultiStudy.spec.js b/platform/app/cypress/integration/MultiStudy.spec.js index 43fec70cf..3c7da1b37 100644 --- a/platform/app/cypress/integration/MultiStudy.spec.js +++ b/platform/app/cypress/integration/MultiStudy.spec.js @@ -15,7 +15,7 @@ describe('OHIF Multi Study', () => { cy.get('[data-cy="viewport-pane"]').as('viewportPane'); cy.get('@viewportPane').its('length').should('be.eq', 4); - cy.get('[data-cy="studyDate"]').as('studyDate'); + cy.get('[data-cy="viewport-overlay-top-left"] [title="Study date"]').as('studyDate'); cy.get('@studyDate').should(studyDate => { expect(studyDate.length).to.be.eq(4); diff --git a/platform/app/cypress/integration/customization/HangingProtocol.spec.js b/platform/app/cypress/integration/customization/HangingProtocol.spec.js index 4f55e620b..a30064acf 100644 --- a/platform/app/cypress/integration/customization/HangingProtocol.spec.js +++ b/platform/app/cypress/integration/customization/HangingProtocol.spec.js @@ -36,6 +36,6 @@ describe('OHIF HP', () => { cy.initCommonElementsAliases(); // The specified series/sop UID's are index 101, so ensure that image is displayed - cy.get('@viewportInfoTopRight').should('contains.text', 'I:6'); + cy.get('@viewportInfoBottomRight').should('contains.text', 'I:6'); }); }); diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js index 984b038bc..b0d2f0bd7 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneHotkeys.spec.js @@ -29,10 +29,10 @@ describe('OHIF Cornerstone Hotkeys', () => { it('checks if hotkeys "ArrowUp" and "ArrowDown" can navigate in the stack', () => { // Hotkey ArrowDown cy.get('body').type('{downarrow}'); - cy.get('@viewportInfoTopRight').should('contains.text', 'I:2 (2/26)'); + cy.get('@viewportInfoBottomRight').should('contains.text', 'I:2 (2/26)'); // Hotkey ArrowUp cy.get('body').type('{uparrow}'); - cy.get('@viewportInfoTopRight').should('contains.text', 'I:1 (1/26)'); + cy.get('@viewportInfoBottomRight').should('contains.text', 'I:1 (1/26)'); }); it('checks if hotkeys "V" and "H" can flip the image', () => { diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index 45a60fa52..595cfd3dd 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -83,7 +83,7 @@ describe('OHIF Cornerstone Toolbar', () => { .trigger('mouseup', { buttons: 1 }); // The exact text is slightly dependent on the viewport resolution, so leave a range - cy.get('@viewportInfoTopLeft').should($txt => { + cy.get('@viewportInfoBottomLeft').should($txt => { const text = $txt.text(); expect(text).to.include('W:118').include('L:479'); }); @@ -143,7 +143,7 @@ describe('OHIF Cornerstone Toolbar', () => { cy.resetViewport(); const expectedText = 'W:958L:479'; - cy.get('@viewportInfoTopLeft').should('have.text', expectedText); + cy.get('@viewportInfoBottomLeft').should('have.text', expectedText); }); /*it('checks if CINE tool will prompt a modal with working controls', () => { diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js index f23b2186e..c31a2b76f 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFGeneralViewer.spec.js @@ -8,7 +8,7 @@ describe('OHIF General Viewer', function () { it('scrolls series stack using scrollbar', function () { cy.scrollToIndex(13); - cy.get('@viewportInfoTopRight').should('contains.text', '14'); + cy.get('@viewportInfoBottomRight').should('contains.text', '14'); }); it('performs right click to zoom', function () { @@ -32,7 +32,7 @@ describe('OHIF General Viewer', function () { .trigger('mouseup'); // make sure the new zoom level is less than the initial - cy.get('@viewportInfoTopLeft').then($viewportInfo => { + cy.get('@viewportInfoBottomLeft').then($viewportInfo => { const zoomLevelFinal = $viewportInfo.text().substring(6, 9); expect(zoomLevelFinal < zoomLevelInitial).to.eq(true); }); diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js index 435915edf..944f562a6 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFMeasurementPanel.spec.js @@ -51,13 +51,13 @@ describe('OHIF Measurement Panel', function () { // Reset to default tool so that the new add length works cy.addLengthMeasurement([100, 100], [200, 200]); //Adding measurement in the viewport - cy.get('@viewportInfoTopRight').should('contains.text', '(14/'); + cy.get('@viewportInfoBottomRight').should('contains.text', '(14/'); // Click on first measurement item cy.get('[data-cy="measurement-item"]').eq(0).click(); - cy.get('@viewportInfoTopRight').should('contains.text', '(1/'); - cy.get('@viewportInfoTopRight').should('not.contains.text', '(14/'); + cy.get('@viewportInfoBottomRight').should('contains.text', '(1/'); + cy.get('@viewportInfoBottomRight').should('not.contains.text', '(14/'); }); /* diff --git a/platform/app/cypress/integration/volume/MPR.spec.js b/platform/app/cypress/integration/volume/MPR.spec.js index 0d15e75e4..2ef026ec9 100644 --- a/platform/app/cypress/integration/volume/MPR.spec.js +++ b/platform/app/cypress/integration/volume/MPR.spec.js @@ -31,31 +31,8 @@ describe('OHIF MPR', () => { cy.wait(250); cy.get('[data-cy="MPR"]').click(); - cy.get('[data-cy="thumbnail-viewport-labels"]').should('have.length', 3); - cy.get('.cornerstone-canvas').should('have.length', 3); - cy.get('[data-cy="thumbnail-viewport-labels"]') - .eq(2) - .find('div') - .should('have.length', 3) - .each(($div, index) => { - const text = $div.text(); - switch (index) { - case 0: - expect(text).to.equal('A'); - break; - case 1: - expect(text).to.equal('B'); - break; - case 2: - expect(text).to.equal('C'); - break; - default: - throw new Error(`Unexpected div found with text: ${text}`); - } - }); - // check cornerstone to see if each has images // we can later do visual testing to match the images with a baseline cy.window() @@ -81,9 +58,6 @@ describe('OHIF MPR', () => { cy.get('[data-cy="MPR"]').click(); cy.get('.cornerstone-canvas').should('have.length', 1); - - // should not have any div under it - cy.get('[data-cy="thumbnail-viewport-labels"]').eq(2).find('div').should('have.length', 0); }); it('should correctly render Crosshairs for MPR', () => { diff --git a/platform/app/src/App.tsx b/platform/app/src/App.tsx index 23b18b2ed..ec170ab40 100644 --- a/platform/app/src/App.tsx +++ b/platform/app/src/App.tsx @@ -5,7 +5,13 @@ import i18n from '@ohif/i18n'; import { I18nextProvider } from 'react-i18next'; import { BrowserRouter } from 'react-router-dom'; import Compose from './routes/Mode/Compose'; -import { ServicesManager, ExtensionManager, CommandsManager, HotkeysManager } from '@ohif/core'; +import { + ServicesManager, + ExtensionManager, + CommandsManager, + HotkeysManager, + ServiceProvidersManager, +} from '@ohif/core'; import { DialogProvider, Modal, @@ -28,6 +34,7 @@ import OpenIdConnectRoutes from './utils/OpenIdConnectRoutes'; let commandsManager: CommandsManager, extensionManager: ExtensionManager, servicesManager: ServicesManager, + serviceProvidersManager: ServiceProvidersManager, hotkeysManager: HotkeysManager; function App({ config, defaultExtensions, defaultModes }) { @@ -48,6 +55,7 @@ function App({ config, defaultExtensions, defaultModes }) { commandsManager = init.commandsManager; extensionManager = init.extensionManager; servicesManager = init.servicesManager; + serviceProvidersManager = init.serviceProvidersManager; hotkeysManager = init.hotkeysManager; // Set appConfig @@ -78,6 +86,15 @@ function App({ config, defaultExtensions, defaultModes }) { [DialogProvider, { service: uiDialogService }], [ModalProvider, { service: uiModalService, modal: Modal }], ]; + + // Loop through and register each of the service providers registered with the ServiceProvidersManager. + const providersFromManager = Object.entries(serviceProvidersManager.providers); + if (providersFromManager.length > 0) { + providersFromManager.forEach(([serviceName, provider]) => { + providers.push([provider, { service: servicesManager.services[serviceName] }]); + }); + } + const CombinedProviders = ({ children }) => Compose({ components: providers, children }); let authRoutes = null; diff --git a/platform/app/src/appInit.js b/platform/app/src/appInit.js index 0d93ae639..867534bd2 100644 --- a/platform/app/src/appInit.js +++ b/platform/app/src/appInit.js @@ -2,6 +2,7 @@ import { CommandsManager, ExtensionManager, ServicesManager, + ServiceProvidersManager, HotkeysManager, UINotificationService, UIModalService, @@ -34,6 +35,7 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) { const commandsManager = new CommandsManager(commandsManagerConfig); const servicesManager = new ServicesManager(commandsManager); + const serviceProvidersManager = new ServiceProvidersManager(); const hotkeysManager = new HotkeysManager(commandsManager, servicesManager); const appConfig = { @@ -45,6 +47,7 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) { const extensionManager = new ExtensionManager({ commandsManager, servicesManager, + serviceProvidersManager, hotkeysManager, appConfig, }); @@ -130,6 +133,7 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) { commandsManager, extensionManager, servicesManager, + serviceProvidersManager, hotkeysManager, }; } diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index c4c9c6b83..bfa4ecd70 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -32,8 +32,12 @@ import { ButtonEnums, } from '@ohif/ui'; +import { Types } from '@ohif/ui'; + import i18n from '@ohif/i18n'; +const PatientInfoVisibility = Types.PatientInfoVisibility; + const { sortBySeriesDate } = utils; const { availableLanguages, defaultLanguage, currentLanguage } = i18n; @@ -527,6 +531,7 @@ function WorkList({ menuOptions={menuOptions} isReturnEnabled={false} WhiteLabeling={appConfig.whiteLabeling} + showPatientInfo={PatientInfoVisibility.DISABLED} />
diff --git a/platform/core/src/extensions/ExtensionManager.ts b/platform/core/src/extensions/ExtensionManager.ts index 7f6138344..ed4a9c4c5 100644 --- a/platform/core/src/extensions/ExtensionManager.ts +++ b/platform/core/src/extensions/ExtensionManager.ts @@ -1,7 +1,7 @@ import MODULE_TYPES from './MODULE_TYPES'; import log from '../log'; import { AppConfig } from '../types/AppConfig'; -import { PubSubService, ServicesManager } from '../services'; +import { PubSubService, ServiceProvidersManager, ServicesManager } from '../services'; import { HotkeysManager, CommandsManager } from '../classes'; import { DataSourceDefinition } from '../types'; @@ -10,6 +10,7 @@ import { DataSourceDefinition } from '../types'; */ export interface ExtensionConstructor { servicesManager: ServicesManager; + serviceProvidersManager: ServiceProvidersManager; commandsManager: CommandsManager; hotkeysManager: HotkeysManager; appConfig: AppConfig; @@ -28,6 +29,7 @@ export type ExtensionConfiguration = Record; export interface ExtensionParams extends ExtensionConstructor { extensionManager: ExtensionManager; servicesManager: ServicesManager; + serviceProvidersManager: ServiceProvidersManager; configuration?: ExtensionConfiguration; } @@ -71,6 +73,7 @@ export default class ExtensionManager extends PubSubService { private _commandsManager: CommandsManager; private _servicesManager: ServicesManager; private _hotkeysManager: HotkeysManager; + private _serviceProvidersManager: ServiceProvidersManager; private modulesMap: Record; private modules: Record; private registeredExtensionIds: string[]; @@ -88,6 +91,7 @@ export default class ExtensionManager extends PubSubService { constructor({ commandsManager, servicesManager, + serviceProvidersManager, hotkeysManager, appConfig = {}, }: ExtensionConstructor) { @@ -98,6 +102,7 @@ export default class ExtensionManager extends PubSubService { // this._commandsManager = commandsManager; this._servicesManager = servicesManager; + this._serviceProvidersManager = serviceProvidersManager; this._hotkeysManager = hotkeysManager; this._appConfig = appConfig; @@ -256,6 +261,7 @@ export default class ExtensionManager extends PubSubService { if (extension.preRegistration) { await extension.preRegistration({ servicesManager: this._servicesManager, + serviceProvidersManager: this._serviceProvidersManager, commandsManager: this._commandsManager, hotkeysManager: this._hotkeysManager, extensionManager: this, diff --git a/platform/core/src/index.test.js b/platform/core/src/index.test.js index 3c0922200..6b2f6efae 100644 --- a/platform/core/src/index.test.js +++ b/platform/core/src/index.test.js @@ -9,6 +9,7 @@ describe('Top level exports', () => { 'ExtensionManager', 'HotkeysManager', 'ServicesManager', + 'ServiceProvidersManager', // 'defaults', 'utils', diff --git a/platform/core/src/index.ts b/platform/core/src/index.ts index 13612d775..a04b6569f 100644 --- a/platform/core/src/index.ts +++ b/platform/core/src/index.ts @@ -1,5 +1,5 @@ import { ExtensionManager, MODULE_TYPES } from './extensions'; -import { ServicesManager } from './services'; +import { ServiceProvidersManager, ServicesManager } from './services'; import classes, { CommandsManager, HotkeysManager } from './classes'; import DICOMWeb from './DICOMWeb'; @@ -51,6 +51,7 @@ const OHIF = { ExtensionManager, HotkeysManager, ServicesManager, + ServiceProvidersManager, // defaults, utils, @@ -92,6 +93,7 @@ export { ExtensionManager, HotkeysManager, ServicesManager, + ServiceProvidersManager, // defaults, utils, diff --git a/platform/core/src/services/ServiceProvidersManager.ts b/platform/core/src/services/ServiceProvidersManager.ts new file mode 100644 index 000000000..ce2150b6e --- /dev/null +++ b/platform/core/src/services/ServiceProvidersManager.ts @@ -0,0 +1,31 @@ +import log from './../log.js'; + +/** + * The ServiceProvidersManager allows for a React context provider class to be registered + * for a particular service. This allows for extensions to register services + * with context providers and the providers will be instantiated and added to the + * DOM dynamically. + */ +export default class ServiceProvidersManager { + public providers = {}; + + public constructor() { + this.providers = {}; + } + + registerProvider(serviceName, provider) { + if (!serviceName) { + log.warn( + 'Attempting to register a provider to a null/undefined service name. Exiting early.' + ); + return; + } + + if (!provider) { + log.warn('Attempting to register a null/undefined provider. Exiting early.'); + return; + } + + this.providers[serviceName] = provider; + } +} diff --git a/platform/core/src/services/UIModalService/index.ts b/platform/core/src/services/UIModalService/index.ts index 865a2f4b4..eb56bb7ee 100644 --- a/platform/core/src/services/UIModalService/index.ts +++ b/platform/core/src/services/UIModalService/index.ts @@ -42,6 +42,9 @@ class UIModalService { closeButton = true, title = null, customClassName = null, + movable = false, + containerDimensions = null, + contentDimensions = null, }) { return serviceImplementation._show({ content, @@ -51,6 +54,9 @@ class UIModalService { closeButton, title, customClassName, + movable, + containerDimensions, + contentDimensions, }); } diff --git a/platform/core/src/services/index.ts b/platform/core/src/services/index.ts index 3921c7873..bee9afd54 100644 --- a/platform/core/src/services/index.ts +++ b/platform/core/src/services/index.ts @@ -1,5 +1,6 @@ import MeasurementService from './MeasurementService'; import ServicesManager from './ServicesManager'; +import ServiceProvidersManager from './ServiceProvidersManager'; import UIDialogService from './UIDialogService'; import UIModalService from './UIModalService'; import UINotificationService from './UINotificationService'; @@ -22,6 +23,7 @@ export { Services, MeasurementService, ServicesManager, + ServiceProvidersManager, CustomizationService, StateSyncService, UIDialogService, diff --git a/platform/core/src/types/HangingProtocol.ts b/platform/core/src/types/HangingProtocol.ts index 0c0efa512..5fabe5417 100644 --- a/platform/core/src/types/HangingProtocol.ts +++ b/platform/core/src/types/HangingProtocol.ts @@ -133,6 +133,7 @@ export type SyncGroup = { id: string; source?: boolean; target?: boolean; + options?: object; }; /** Declares a custom option, that is a computed type value */ diff --git a/platform/core/src/types/Services.ts b/platform/core/src/types/Services.ts index ece05c32a..bf5d78591 100644 --- a/platform/core/src/types/Services.ts +++ b/platform/core/src/types/Services.ts @@ -33,4 +33,5 @@ export default interface Services { cornerstoneCacheService?: unknown; segmentationService?: unknown; panelService?: unknown; + colorbarService?: unknown; } diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index 959e8d5ae..8182f0c27 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -189,6 +189,7 @@ if auth headers are used, a preflight request is required. - `allowMultiSelectExport`: (default to false), if set to true, the user will be able to select the datasource to export the report to. - `activateViewportBeforeInteraction`: (default to true), if set to false, tools can be used directly without the need to click and activate the viewport. - `autoPlayCine`: (default to false), if set to true, data sets with the DICOM frame time tag (i.e. (0018,1063)) will auto play when displayed +- `addWindowLevelActionMenu`: (default to true), if set to false, the window level action menu item is NOT added to the viewport action corners - `dangerouslyUseDynamicConfig`: Dynamic config allows user to pass `configUrl` query string. This allows to load config without recompiling application. If the `configUrl` query string is passed, the worklist and modes will load from the referenced json rather than the default .env config. If there is no `configUrl` path provided, the default behaviour is used and there should not be any deviation from current user experience.
Points to consider while using `dangerouslyUseDynamicConfig`:
- User have to enable this feature by setting `dangerouslyUseDynamicConfig.enabled:true`. By default it is `false`. diff --git a/platform/i18n/src/locales/en-US/Common.json b/platform/i18n/src/locales/en-US/Common.json index 2cbb92cd3..a0b5ce3b4 100644 --- a/platform/i18n/src/locales/en-US/Common.json +++ b/platform/i18n/src/locales/en-US/Common.json @@ -1,4 +1,5 @@ { + "Back to": "Back to {{location}}", "Close": "Close", "Image": "Image", "Layout": "Layout", diff --git a/platform/i18n/src/locales/en-US/WindowLevelActionMenu.json b/platform/i18n/src/locales/en-US/WindowLevelActionMenu.json new file mode 100644 index 000000000..9eba89b7e --- /dev/null +++ b/platform/i18n/src/locales/en-US/WindowLevelActionMenu.json @@ -0,0 +1,5 @@ +{ + "Back to Display Options": "Back to Display Options", + "Modality Presets": "{{modality}} Presets", + "Modality Window Presets": "{{modality}} Window Presets" +} diff --git a/platform/i18n/src/locales/en-US/index.js b/platform/i18n/src/locales/en-US/index.js index eb3d442ba..6004ac655 100644 --- a/platform/i18n/src/locales/en-US/index.js +++ b/platform/i18n/src/locales/en-US/index.js @@ -20,6 +20,7 @@ import TrackedCornerstoneViewport from './TrackedCornerstoneViewport.json'; import UserPreferencesModal from './UserPreferencesModal.json'; import ViewportDownloadForm from './ViewportDownloadForm.json'; import Messages from './Messages.json'; +import WindowLevelActionMenu from './WindowLevelActionMenu.json'; export default { 'en-US': { @@ -45,5 +46,6 @@ export default { UserPreferencesModal, ViewportDownloadForm, Messages, + WindowLevelActionMenu, }, }; diff --git a/platform/i18n/src/locales/test-LNG/WindowLevelActionMenu.json b/platform/i18n/src/locales/test-LNG/WindowLevelActionMenu.json new file mode 100644 index 000000000..13c1c8228 --- /dev/null +++ b/platform/i18n/src/locales/test-LNG/WindowLevelActionMenu.json @@ -0,0 +1,5 @@ +{ + "Back to Display Options": "Test Back to Display Options", + "Modality Presets": "Test {{modality}} Presets", + "Modality Window Presets": "Test {{modality}} Window Presets" +} diff --git a/platform/i18n/src/locales/test-LNG/index.js b/platform/i18n/src/locales/test-LNG/index.js index 561161d2f..16997ce50 100644 --- a/platform/i18n/src/locales/test-LNG/index.js +++ b/platform/i18n/src/locales/test-LNG/index.js @@ -22,6 +22,7 @@ import ThumbnailTracked from './ThumbnailTracked.json'; import TrackedCornerstoneViewport from './TrackedCornerstoneViewport.json'; import UserPreferencesModal from './UserPreferencesModal.json'; import ViewportDownloadForm from './ViewportDownloadForm.json'; +import WindowLevelActionMenu from './WindowLevelActionMenu.json'; export default { 'test-LNG': { @@ -49,5 +50,6 @@ export default { TrackedCornerstoneViewport, UserPreferencesModal, ViewportDownloadForm, + WindowLevelActionMenu, }, }; diff --git a/platform/ui/src/assets/icons/CT-AAA.png b/platform/ui/src/assets/icons/CT-AAA.png new file mode 100644 index 0000000000000000000000000000000000000000..67c6bf77841231f8c0a50e1068027b037d353b6b GIT binary patch literal 43690 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

9v65)p3PPV%&YRbi3}*u3PdpMaU+ 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 N002ovPDHLkV1o9wJVpQj literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-AAA2.png b/platform/ui/src/assets/icons/CT-AAA2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c51a6c2812d4b4bc8841983e9eb288b9321888d GIT binary patch literal 43074 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 U?HUOtx&QzG07*qoM6N<$f)!ljPXGV_ literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Bone.png b/platform/ui/src/assets/icons/CT-Bone.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3f8c9efbf78273dca89413057863451275d201 GIT binary patch literal 38805 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 z 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±WgmH9AbO8tmS2crTYH3>eza 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%0D2oc843WX@NRx<>& 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

`~8H+Qpj@vwDv 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 M07*qoM6N<$g3XYsSO5S3 literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Cardiac2.png b/platform/ui/src/assets/icons/CT-Cardiac2.png new file mode 100644 index 0000000000000000000000000000000000000000..a281b2425cb251a7b133bc2215a5a6e3c97711a0 GIT binary patch literal 51499 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

3j3A|IFzW5!HerRq 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

c5AYdDO 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 Qk^lez07*qoM6N<$g0Ax-#Q*>R literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Chest-Contrast-Enhanced.png b/platform/ui/src/assets/icons/CT-Chest-Contrast-Enhanced.png new file mode 100644 index 0000000000000000000000000000000000000000..be165b4c083134ffb947a979a45ee6c41c66a7a4 GIT binary patch literal 51275 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 JPDHLkV1oaW1Tp{s literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Chest-Vessels.png b/platform/ui/src/assets/icons/CT-Chest-Vessels.png new file mode 100644 index 0000000000000000000000000000000000000000..23f8732c56d7b2be74366955d2d4b6dfcbc2b1f1 GIT binary patch literal 52568 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 literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Coronary-Arteries-3.png b/platform/ui/src/assets/icons/CT-Coronary-Arteries-3.png new file mode 100644 index 0000000000000000000000000000000000000000..088a286116799090ec9ebadd8869082114e71a3d GIT binary patch literal 53425 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 ezwOc<9%Isl8Lb%%LVQW004l+ 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

d3bn4SMrIvg{F0M&66z{ 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 nq#UzpN=2^@_T28z+wCOg<(sBTh!kT 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 VSTko_)dK+^eQhJHN)5+|{{!fPB98z7 literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Cropped-Volume-Bone.png b/platform/ui/src/assets/icons/CT-Cropped-Volume-Bone.png new file mode 100644 index 0000000000000000000000000000000000000000..13c0922ed88cc0df8e1e875729a773f58e55610e GIT binary patch literal 31396 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≺lIp)VH>dBYPVXj)ZHpJ$s(EK%QxTo%zKJqEq^%oz071)k;$%P z%MM)JxAE>i`<%05?T9t}*6(Ml&8jQcQM%FXY}`yK4c(~iYYXgU2woh+q)ffoCXNd0 zM8g`)#7r%E0syy+36jK&7eIyAlG>V}t@3`>O!`+kKU~)4T4SX`H3p_3WD(ie-g1{o z$`eM7q`^Y&b-dwTfdf`(GDvc|XydJ4b*g=r7w~u{IGg^esIHbB4PI;tc_u7IdK3NB zx$LoKQy9lCYdm-#V{|c*uo&h%u_Zx_f+Qj-u|#W}SnDa+9dG3hf2ahgW~cu44>z5+ z2J~&bZr!C3Q3U~1gKCZ_fa;Y11Tmz@vH2lt*81FHV$C6pwvFeuEXpC6LA@QL1HWuiH*2iB&zLA2gMbErC=Q5z8x&u%f4K$y^O9+xh*Nn6#MOX-2l|S>}%SL zl!=UImmpaLQx$qPN@$lI_p5}q3c|y(R|i~LvYGg2oB$7htlN-b#Xkk*pKuY0F*B%%GRMoFy z>woCr|NOuB-{Wr`UvGaULIDs=U|Xg{Y6&bLDhOy!l1s{cbPNUo`WV!gV=hM(SmF$_ z5j#+fDul{+5da|&fD&njwuS;gH`MpoW#AGjnC_S}gCh(%${v%$ytSEHtSL@3mD|zF zrn;z|?wQJ%p>daB2aV%)@xZ7bm$zzU4$=Y~FNq!K3Qz*)w9d60X}KS3YkJxHY%2CZ4vk&LSV^qCYpEYaU-#vOsh^f+7>1Eg z1%NG>qY^5O4JMK%=-@H+RwEO!$Jo)DFe|9cFf%D9+_||bAc)9lc1a+j-Q@m5$F~91 zBkm{|RRI-+5G}d|O9_(gvV{eEXOl5@yDn(4Sq3MV+R3H>IjG#im!QgOL;ZqPX z2!xab#Uw|7!L$Q*Njz$qQxrl@V}dN^eHRY(_Mj{-UHPXJNc zlhfoFN3|ZA!MX8OZyRAzMr7Jk;=E0xkM{t_p{N#n=OOP&isFi>EGVb?O8lBvdB(A$ zu8UblG3(FrcpB1=CwjB$SGfBm&j75!7SL7|_ z)THQQUJ}%-;P=_r)j?qS1tqoc%3x%Y?1~r56rHL6>)E$#JZ~_%X+EK^rSIM4#xD)g( ztMNNwO9drC5$stLDeZ(*#~sL~ck6BfXil>MT(kAsc>QBxpKsQS;{(XI zM?a6#*Sxx)U;lX>CZ_)=!D3NgmAq0c)_xB)W)X9a8}AyQ+oXMOTvzNtDVT*sN?V*P z);Tb{ENhfWkS8oItTk3w#jUq%nD5zFf4<$1di>8WeXh+(1;t@?NgD^CSt_^TXl~}N z+$#Mdrfi+Y0oY154AxkzESM=o^oXEhSk%Cn!5RhzVl@PK$3>3-xFh5ES`7aW?#uW) zX@0+PRlO4%zfmxxLi02s8Z&L3$@)XD(M69Hb)rJJ6egAbg(`u2swhKg|EPTf300Y?NP+qjzDx@;{ z8Dmy&9vACJE){B$B&u8qg^sE#-zUPRNhf|gcCoj%7ev1~%onG|=h1Y;-58C{Ou)mw zSK%R*op2iwOGH!N_LOd=wfV4ra_i)v4f*w^Xy+eJ(`n&KS~_cccl1eFJi{S7-+qv? zS7mlFt$v!qX~1_&Qo_jW0Ia&M@x6~`<}wBoq8K2?9h)hGqNoTcfY5Fg03g6O^uAwL z%J@B6;(t5M?>B4`-ypDeQP{4wB3eesP>~cFL5K!_sBBqn5(Fi~0NO8uw1abwnw1^4 z$=z#GM?%?jwnA>A09y+WJcXciTy}IWu$s^9P)7OtxsNRj=A~^}MM{*SVqxi^&@wOli#6 zbnNFPzP_7T`FG-j_>HOl{SUq+BJu4j5D^VwLIFWllR%LoAhS5YTp=-{5lcduYoYr2y33~X zKeq}piorW}=-utwzRZT{Q9Sar1@g=kun*7yFo?^v3_2umE|nHCn=M32?G+(1LQ2KO zrmQ&>49S5Nw8#MDh%1wA9K3c-s;=t1yI0lC`SHzbTc7^Q9K2p5iDZf~=YZa(`Jtu) zu!DMqTq2Oh3Ee&h79h!S86ylK50fT`(ox~GpZnWiZ-(Wov!i#4AMN`iZR6-ymweu@ zKFZ|880fP$H0p&p)=LbI4e;hSp!^=X0}-Q1EIxaIRf3 zEAl)mwrnY701@paXSPU%Nwbt(t5WBPSsM-6I06&A-Na&{5kms@w%~yeUIb2E=T~XH zmvu%;3jkT~h@D!1fC?_wHeiChb@a@HY5x4Z_$Ru3ND{KTuQKJ3^`4^+9S$IreCcrj z*H*A=ybuOppdG9O5fp^J3+sVzTMI+oL6A@t6hsLy5=JCV;uHWuNOOr$eO{Uq2`ebM+_)H zs^oz7aauxVWo#8C6{?6<+>S3I zdTRDZB8kBd_ozF}fqlM?E{GHb)l+Kw!A6r;R<$32;h4>zkAJqvZ$>fO%ivyrk}i&~ zqTj<0_i@Uy@4X3h8^?1TVI9Z3Jqn!(n2!tqN<%M;9Fo(B)Pq$Mp{D@#;r{c3$|nI&e73Ko?OP)g&Z7;)=d zUu0Voz(8VFO^BEfHPeD|1?38Ttv*F`Xn>7cNqt0X#F&I>qK0F(^s%=?v2SH_d~Hk^ zt?Qv$w$1U?=45a3udryh!z_#C*e-3pdF^E5UD_4|nDPbY-J~jDGqk<2Wn=0ah^wRd zN7eN`48_8jkqvbgG3B^A^L`J+iUHlcSMoJ^qe8lOwg2dE^0Eyt{?jgDm#=P%i$2}+J|gV(<>t*uwiedZ9A>5?*OOM>JF=9!WK}?v zF&Zf(S&wa-J?-;L>>i48u&t3?!3mH-#bgt?=_L7eN)eE3W{GWz0*C}@CjNl3p>WTZ z8r(2C?X%frF(2O~vviqs{d5r~5+^P~zddl1)%$t7Z~G@w-L}(sdw}gxJozBDR<0q|=8#*XfP#4tp$9z9nD#^@F%Ph4MUP z>vMD4WS{SgrT*PpSPC_)S;B$I7}bD2sKIE2*M#0_SsJU6`(%L$NI?WCB3hJh$n3&* zv5kEjMB*E_eb?R$ieQkK)uV!@Qs+brJD-qxJgZDhmoC`&aVw{g0B5WO( zDM=RrtP$vLnA^&$@Iu0Qs*qK(*(NHn3S1+zwR)SZo7*SoSG9I5Pd7_3!f z6{UVVlA$al!n!wGEP*jL*j7BW#T4V26&;cfDHF2%TCixRcd+Pk*AYD$edczgB5 z|5P*S@alTFT7LQ7?B>zQ>GOVc{@i-*3tS&t4BKbN!^b~>aZe9EA7%C@d0*!lN5@PC|L>8S5{!Hsuoep9+RU|QsGIm_CcpfB^8tiO|I(enXU*fAjosDm@lV?}2 z@3k_^w1CatkR~t8^*nps&KAd}I^lyo{b1;3uhuK*a_89(v3&M}qJL10ei?5j>&@il z$?``BVVbK4Sd>q<$Nx?6)8KB+Ht+ep&o`47v^qgI>)$QniDEEBPRb5RrC_y!9UvLB zL}C#HNB|TPpt2eUrdL{ z8hepf(QN-ildaqOr(|z_FdL4>ZHjHaJ+s?~C)_CaTzX#*$89spK6U%QUbW?mtD~PM zsV9qnWQ0Smwo9kKrlB%1$IXYIy?C$DMK}Hetz$p35(|qg#>YHhvcd%DIS2r&6A>UG zQqcqos$_QZZ9sRWuP!y!ZG6+Udt7>sD3Y`*4-pBnX(Oz~w4GULBh3I=H6v>E<+>ZBN z-&fPGt0Ei9tnp7jxcKZpTJj{jzc91smOQj0zpm8VA$3t`f_w^-kh(8n)#mH#>S~QN znSL^E-?uk^wI8R+{&xzuRCtrUo|*o{9M`BumLXXIYjParTWbTDHfAs9<4?{PX}^xJ zoMhH&-d$SB?&O0)w1p1qs%y$7r{K|lS*Ol&E=r_%<1ORr3AVuB!WNA>_TFNWPi3DU!V(6|jFraM**hbxuf=XgULW3a4k;LxQ=?$?3 z>Tp5F?MDb`W*6LzMP%gsxY%qWHT`U^7dHbW;~tE!)ql9| z_KdwXW+L%mS-v)-FODte;qlO5@0SI(XqSt;yB+$$U8KV=`{Gqzj?c=6hPwH*neKH3 zgsE#cKn>GT8oA+K)13?vK}r)Nri$7VOP}WkESMlkkTPTsHlZX6A!)A87)nWjLICfi zFn~n+QT?A;si;cN6YK3FSEE%ML$6M)=j*<>?b_M)=7C?% zD2z`|LY-D%w%Oi!Q4nC%?$~aAtZBM&pJKJFE2PFSt}*L#nH~*CCg$t@RbTNKbnLED zlwf*|rBWMZ|s4uAuo zs=}S)jCXv^-=*;Yd>f8LcoT^sqM(8ZA{B;($`ob@0ZEYvfk0Rl7zsc`52nV~U~x=pZaBC7&X1e7q8fQQB`W~h-2BQWGfMG^>kVL~E+Oq3!>hS>qk zuJF3WY?{n#ohQw08-fV}9`S|g{bwLLh4oIVeqSPW!_cJqko_}%M z*b`mfx4an6n$DoC&PuaL_tKCT#V{qi9UN;({r67A^zQkr`^S%;{byCe)E+NmfwjAr zD^LI`ZK|zAO^e0qvd>}mV@uofWF1WzV4~hPLz-(NRBZx!az>c3nW59HFw=cBtu|TW7s4B zu)(1>Y9(b6fhVs+y$z5`aSp3Q5X)zxwMlytgMk4ci^8a!6ALi#U|0d1!Pa6sq)8Aq zYR9_2fmMgwoXP|elZY?<=0^~p*Sy^%jbW3!*HYdL7;_kr&Afq?&l*-S3MLW8oMblY zqU&xugP5aKA-HiaE~TWaSUwfZ?0lS7l$CkOIY-z;2(ZmrkIPlaR<}ZJ^IjEeQ@m8D zDP#xsu!@mnZaDJnHsQpHiqm!aq+RGEJeMSE2RC1MpxA_R_i;sL@4CP)AlBE}v6I{@m} z@H^j$0e#E!?%ehrj0B-eRfytbNAhV@l2Bq0+BF^mB2pN#QAW7~h?-0c;>)2>%!EoxcK0qr1AQpffCsG7N1|v`aBx7!fV2IpD&A|;?E@U%< z43UT+3WR=7PFCnCeB7^J-FTq~RnH`8G_)X}Gkb=ZFBeO*FP zg8HZ{yt$zz>vkf347HJo7ir)&!(~=(fMf5TVev~gPKG^$$!N17M#7N|VJNJW#-w!! zoy26;vAWPqt*WEkrkh9E}8odS-Ec7V1W?c8s7JgEO(>`&uD=;_e zkF-4%4Z*F20(Zv9#G*w2gC?jCDI<{pHG$3T)?geoQya!=HI}WkV;(URV^U}UQTtit z7FEf^>i%fyQ}LzO^QX<)v>U|m}xbf^gVR`)!Ntf zo~`*5l#x5aM2R_jm5QHR|Ch#F1twHO=zy#d$I9sqdIR5-6W}{rgnl>8@7F+RJ4BlT zsDX^AWUwp@ibAS88BV#Y_zEU4A!$qiWs#lOnmLNI^geqD5PCy@qR#Z4Q+pf?8D(zTy0q3zY3% z?H?5`bhzr-Z(T~Ri&yt#egJAzAhf4uGnr;Zeb9PP9dZzqA#2+`yn4r2Oc9%YTo93x zdWA@kz@gnM=H9ip$Rk3BDS8`dIx@4&n9gh?XQ~bbGE59vA@|pO(_*ttieL$7L?cYi zb6su6SKG~avn^!uq@&cxn44~)_b8vAnerV#71F3FGlMa0 zNVUX@02BogjG{wIM5K&LNV^7!oox1ZV>)*R^es$rw`=X1Qxy~x(3&936b&R!N`gul z0YzcQ10zV@n<0rBA(zK9%`6nXgjENidCr8ykrH4)$sjtw23;X(;rVaF6R4X>OSLbwo8M@%}b}<8`j+-PD z%=+}~XKCASyORiOlXCV`j@c-;Wp;SU*`zhAc0u({5?vTe~ z6d92i3EuFees|j!z_&ys>Kl$kR6qbFAyNQUkVGE97&WX0AOR^U5P~6OOp2D6(E4`J zc3mW4!(cNFpazr?fIvhE2j&*Vh*VN8L+r~$88`tXlne^SNzl#-BJPx1geWkoBqNFd znrXel##6}AA@>Rj=>VHaa=+e=UbrEvhDk=w!2~xYFAm0ah*@l71Ygf8JUCm5_0Wzu zR#shzDT-0@Y`Um$JjQYY>lnp!K(;VN)ic+NW!Ww_CwxwvRhDY4h0rjGkQzC(=GDqQ zZTr!5m{})aI}@nzheh?g%h#)*Px1Ao`F!Eb>cxA~XVd*FGGXwgI6LGp&9C`((hn8m zUaig=&f}FhC%ns%jAkF$pRGqgq3hge7sLD4Hy%!jZ86jEELMloLT< zQUXYtQOt$onwQ%!+K1YK15y=10G4XNIrAJSPl^VBKvZ``H^P9VnbT^}uEc^g3*r+t zRw@@hsKsw_yI`_rkYQY{hir1O9=*8T+PohfPvRsm*~QrAlGuVZfVo)L+>6Noa`MC@ zb;hvIf;8y1gc41NvoB{3nuOHNw#(i z@6JC@SJz&Lt2_k7gWI@&ZL+=?q}h(veT8I;%uoFXPD?|^f{~P(w4KtpGW(EhO3EnU zV#3rb800CA2v`LGQ7I{eyVkGW^pV~%&3&g~{O`9P-t~q6SaqZZ00YUIb=5*?_oI2HK!f?5dc7~ltFzc zpO|c6DD6J^u1y3<0TYmvP>aZ*9+VL?L5SEva#j0YAp!I@3(0oQ{Y%j8)|C>Wyque5 z6Le%?T5U7ea5S1s5|)H1u|s#nM>Ale;MgWu_qgDc89;01uDGPhGpKL&6)LOS!UxwW z^|})$qClnx+kljl^v=6(e=qMhxQ;#_R9Cp_d@=M>3v}eT4u{on^1+FmPFBwKMG+2* zW+sWYNB#N%cE=+q7)Ze+g%-9Qwx!N8El4s+PFSPsJjWzJ(Z-OAC{WtveUS&^fV+0Q z-QMwCXA$9ds5XB!zH0v1@v1vMK|Hil^+M`o?4p8|zJ{Srku>kI z-dMA&i*!VV8_$U@avlfhw7MA^iiAD#+z&Ucb+?%{T9((A9$;G=^QD{q%t_I#KV0;a z+U*?}vekNs%b;yawo#`t1vosZ(^>7TnK{{8hU}H^*rXy^#$;k$rw_)G_c|z&QS=f4 z>;#UzsKLP@sY2ZK=qQ7#kGzdk7D7yrASDt?fJi`uq?q6?LHAu7(6_N4ecRciJEA)f z6v0GnjABxbio`zJMFe(fkCniP5j#ZegX9Jcqi9N!beE*yjjAwIXu2VLI)^njv%##f z_zbsyT<8daWp{6OF$HM>bw_Dielks?V)c(z2c>{XNq5?Jio^xDAcMytgG_)8C&hq@ zHtbDJN2Y09UdYjX9Ov96Ys)y!!5ZlXU757MFZ=4?)?PQd8gIv=Ju{oOrDxZ4$U>Hr-D$-MMlh-F6{nd&g9LY69KX@p^_>{dw>jyX@L2@_5r~+Oqfvu9+D6%>LI&)R zfOe>}p@U%nI|f!2&;-O_`L04U2=~A(n>D0v8_JEG6KrxF}bT1yW6hQ(ah-&0fm(pxaK59T|-4%uEX? z)V5xl-qe0pLQa!)i*smQ5sxz8Kz(I!3rYi|L<1UwFin0bZnLDm3$|p96Tgk{g4#l# zjk2Smo2^5g>Yq&}|I7{h^OSeGMf0?oe8KS1czDmyka#(d68n=aa0?d+QynYY{sa&k zduim|5@rf8pbSWa2`O33Sr`!=as==gnFSJt$ZA^Tm>aSf651rdpoGG}Rx<+D--x=t z(?y8?7yrxu!=0n`_y53KVZ@!|ir}>u6b1qyfSoUEm4JY4oLF=~zVXAh2WL&0StJ2W zOkh|LRg?ipQ3D|;Qsib3pPhrGz2PT&aBPVHP?ZP_A_-`d5<#1}W#hINdhOzIh3?Lc z222=KQH4GFp0*a8gJS2;f?8u&uKoqt)kf;Ir(S~Zvs~-LF%m)3p|<;Fm>I(`Ss?X? zcyChajeByf*JYL(_wrH}6PQ_}#A^^joAE*-*lR#4*_6r$VbdGWhCTa2z96N&!b*B#YMyBUG{rOhK)VJ6* zrMn(^Kw@M@hC2~XP*fKu823mSIHE#GN-hRvrq-~2@EBpz(7hUOsEP`k^w@br~(wM zyR_M2!@5q;u5z1lLyTnBji74jI4{(NAe_45>Ch)9_tXwszPyH4PRENiEg{^`&x4M; zO-#*X7`47^h@8uCP))B+5wqdp)ou2<8_geT7i7P0Y~R+5BaQd-;iC`Z>s9<Nnku zxA_qbk1}y$BGGsVr%Qa*%DU$0GEc@tZ8q6U8jJ?WG9b~I;y_EW(S@-{?brc{iXsc! zey~?o(8gRPBVYnm5(0GKR0$A>c9o2OID-D~7{3o9@vFT|1qF8k&AL;X5(H&&lpGKN z3MeL0>%egmjYbViE)XJgN{KKkXak|+TMI@7xN3~%S^qRMEXNr^#DUeQ0+JZS1Q7@_B^dn{k};R=|GC4KopSspd+J92m|)YJ@cAy&0HIc7R4|EN`#;!HaSoN zR;0H)h2Q-!U#pA!eGT;bwPF||01&XIpdz3K@D8u229bdkQ4kENwH6?uC?iKjR4Gvz zxd^;bS}%iZCE2p4KuI#k0YhEMyA?PBo9=kE0Cq$$EV)J(-+6`qqO*R||1d}%sn600 zf+1cT?gud`6&X~y_Chg{h(HpX8S=wBZTo&{n)}tui-S+dgpr{_@Y9mGnG#G=Z$;A* zZf`aNVe+Hr8@8*VTQ#MOUVQ&y_g)pl&G&LM<)aR0E^4hD&djUNO!JzCuDECnw##PP zJYKk0R}XF;L^>-rMxUpcB%MXs-sCUOHxgDq7;0^@TT;wn%8(fgH9s=ua-Ozf^$uGf z%co!$HuHACRZ_rM6Bjzm<2Yzq!OcdY6bAqaNTOwH5k>?ix6wcjY5@ZZp*m81L!YqA z|9o>=f5*IktAnr8{Qhlx_1)g32ncUzt?qJDq)NKuh{7G`l>+T*9Rk1#M9Kh(4LM@q zUL|p?3{nGn8AH@Casz=iam-SNW+CP(bMri$3RuCG5J*{e5METoSj+4>&K72U7!IsL zZbsXvI`45nF` z7Yp7Ni7<}*kXEBtdhn!v&~oisEUvp6^{O<-x#V4HfFwh+9XiI*0~fA;_+*F{=QYk} z@%F6ipCD7ttoid~KPSz2^U+oP)2552IjqE-87#`DYhViR+2J0XJNWi}VR+Y|ihzOyj_zzrcjUbS34sYHLfnCuDOn^T0t+Od$;?3+i-=G;RBct8NC z2_Wu>aMZ*IYe|ptVvVD}W+@~cWO2-K%+O`tIm{E$B}iPo&fVIgJu$Y zlQNk;zP?xYVRPDSX3vJQ@|$~lZRLdh46<#c?RqGk96!iGO5bIPQS~O8G@EqCREVZh z_1d`Gyg1KR|8$UYTP)c&r|b^nXam!>_#`7k!}}?8d79LgSMK80m%cx=29g+tEa%+v zz~~G_)zqXdiLGsEIRl?V^@SgO?7O0t+9CF$29w3OYd{ASB>Q%zzw;{CodNw`09gb; z(6p;&Fd%{`pdteS2r2DcB1J&J%xO#{o`V4-3u!Mw!jz5l?0wq{4#{sE2Ww&)+7OqX zB9OOGM`&?J<)Wk*5eYzm1VdJ**`oe`|H}N|%y4g-z(@_zTL85QJfT{)$%*aydlGXU zZDO`s;oN!|Yo^kvb_v5A(Q~#+n0gxc735vg0Leyd*(9z4nu6HWu{;^TbO+D+gKbyn z_GFVSF>fs0i`aSXCTIdyU;1p-m1WUaMU00x8G@0?`7kWIgFQ8e#uI>`8L$7`RbNE6 zMC>knEB>7sPf%}yc}i54yyL}6(N2rzlwd36r-c2?KTg~xbHU+Z6SYlYLN%fZ8cnt2 z>8GTP@edu8YEq_XKnZoXYLfty?CReLcl+0O?gxFVC~PgXx=;pXf|eeco#V zTi865w?Hcu5pY3E<7=PNKucrBvv?5P=gaa7lioY(K0MUhm5dWc(bNx_<(RTf&aZQn ziGeKbH#FPha~=)%GAxL{JiJU@ru{gT+fqlPu($R@Z`R}Sm&M@naMq>$9@n5)B4^!$ zE!v*i5xUI1*3qw`v6J}g97eqi&7snaw;+* z1P}sIVPWzD+G>vOrRKkQWnNx|Nv+M0-zu>*k4Xh6C1C;~*tIeN0x&Q#Vcgqq-hqQ( z57NHYabtQdU$8jfThi|_rX&hrvaAjDr=DM5r8Eu497nHHcOj`8Y!$|1N;%#NT!I^E zyC?m4r8k?R*@wMpn#~hLJDkwbiA?&47s(B%V7SBCe65uRgt;Tzt_^ za{lshR#(G+sQrVDzJ$l~ekK}59Yi9KRs-b$dDkU2#VOuO|bApvQ& z<1qbBlh5BYpx+&Y?T+-V4}_{jngK;YzvBl2R3pwHCP+z@kuoAy+xR%*WXT2qkAXm( zmZ-SS{>J3bEGHA~6W`q%UVr~YVt0hYsmZ!Q4M+lnU6N1{fMNo5z=3?qUrlWLs_oW` z!|yqp6>Cph495sY?FPjWQLl#3E)##&&;DbRcd}hd%f*n0Z~J54mgD$-i-u^MnXU(1 zy5|DH!faumu9AD${wF`E&bIukPd&7&{e5d7lQ8MKe#mIEpK%)Y&;6t>zlg&)tRI># zZ0z1t@7*)BvNt8`q(6xLvCR*$FubxHo985N*pyDn?grak|-inR(Uh=XX;sK(bz+bqp20udTPmP86@z*zM1 zhJyoPcNf1VsPfyV`}a98JDA~D*Zn&W;0;UST{T{rfOegZ1WBT5FysIYs1o^WIHu%(Ija6`L)X0b?!6AiW&2Uq0!r4u_Ndv>ixOEq39`#$Ytz zzETfa(>JaiEZLPSSL5MfIXr0Gv(jc$>R-@*`#0fY6YN9m9M&mi(cr+{0GleK3L0vs zD1gOhgn1031{ahKr98Ng!!2E}Vo@uPpyX5;T>*?VO`?7R?p(*A)792oQutvW_G&HF zZhRECJt(>Z%K5NdkL`NDzi;ta%Fa1&cq{JO=tK6U*9a64tcHUipC=5cSxy;)jUgCh zgA9PG1_0hjqY{9;wWZ%Z-M`Pl@7da{sGv%L-l(oH0YZ!r6{4b5-V(h+s#S7w95t=x zJ_Yx|NDJ3QU4m(enkt?pe+*C`XCJ(4Z=V#+o_p z@|z)>Z|C=5$R1|#jE^caY5RN#XQiEM{ql2u@v?Q?myO+c(j?O%)*?ek;dN8LQ(Ygk zrwHfe`FixS*c=2L4{lV1Vn2=snQ!^B&P3e=i_0_ZizpGH2Oht@1WRfry8AbWMfGXg+zdf7(`GNC4n-fKAK@D zPeEE8hJ15eU;QYaPWlh#xNfK+&8wlnE@N<$pOAcKaXyGKPY!7DGl|t|Oz< z;1U=NaTHN!ra3OhW6FIoZ|M`eJ#x)Ej`R2Shki(}ec15Gl($L`b9qMyW>^M`9M+tiJCtZpFMq2WB~C_Zg)3-f1pyvw}S)iKFSW3jS7@#U}R1ZMNq+EVIWh;CGEvH z0yP&5=*Qcx?z6`8oUpNWmGKs!@nM4TcpPunxKNYl-iaWfFx_zgpb`Oy zkP;A~Q#))9a0W-VdkyW2UJlLj$ZU>=@zUOe@fS@#dd|=Ko3p8~H`~vaWCxhImy^lU z34$N$cIZ)6`RbN$l^&VGq8Yruw^3Qc3uKlsgXZ1COnz*hPN%_!VxsTT=FGr6n+#c& z%}F-%$qR??W~&m>k#nQAiW>WqYg*SaZbzq{eU` zMF^RY36qMIW?%a})2U6aN$X|gNW-zc-KPl2^n!z@mbEi!kBdT!DE%Gh5UApAr=(rQ zmVhck=}w<6%RfKe{-C`0H`fQB@#=o@#bNwOk=&+yay#2BR{6LY!AJl4d6Y$u2i~U9 z)|bPO*u%o()0xnats4eP-|H=`PY5ZPq7NzNPOg2o0#rx&t=0SatC!MbDwZque zpOS&hXXDAuyst0Y;(qn|teq}5e`;s1xV{d4xoq}gzJ6ey)$Ipae4mT7F8;>CXbKO2 zUUzU^uzBbH4a&{a&M)kGVVebLi#AV%Np@6t;j3{rH`J1dSVh{`SrMwJ*dg0uu*OH@dA(<44~zs5i<}{jC_m0=U&aEX7P7888FZ~! z9$>7i%iJIi`;(;gcx~&2WPX#ad2x31`F{{kZ{^{C)9pXeSjF|;Wp;(-PiN_aN%&~8 zebnZ^T$%a4PS@u7ZT>fNHJ{zgE+R}0x33#_GnD(q_QWNNtQ|V)#jKZzk)p><5g+bZ z2*u}})`bkU?F5Gj&TB~XDo3@hC6CwVSQOT|LsMJw)`hKsLxE)Db1>_2o*i6%0PmUYs;PfbPOil}A4hW%u;($PA{^Op z(BjS3tc5qs@rfUP+1LHe{b5rLmGrC@M3`E0z2zGiJsXPdMeEiO_s#GVerWl6fg6k` zNu;weXHt=Mk`;s$Y|;F{V5X{ynpre=Y68eebjQpLZ!r_!Ef(>O0ew5u(L05y9lJt6 z$QT$vR1`@KVoHX<0%63sn{#4f0LEm9kl4tq4*M2((2LR(Q~ypKN8WCAc-O@YVUg2> zQPQqvO9F422zCh!Q9yvCcFfiI@Mdl7^VfU5W_)t7Z*@7eb#=ozyu7u`i-V-Do6b$$ z=2>U!m71{4R7rpT-hLXjfx^ zW+*OGXhzCij>CIStVjTYoESkxl10NiZ{yC9ep8VD1H@t9atlL%xAZP55LF?l0R=~h z07)o8bgYD!Kv9X10MrmzwWwAU5%#lKqb4KvK|EEpVtj^EQ1sXf8UR8i1W-(OgvL9q zDPT}QP{XRJ@SS;F-F}f=7LfO@Rz`|pI!dzTd7E!e+9UDVO|(s!n~f>E0yJ!j{&U7T z%1NO=nJu&1Y%px9XHFk+&zofKTd=9ljm_WP^V-hgJE59ez)ZCv+2aC7X2!$;NHmi>XxJao!h%VFO9MTuAwwV9;Kx^ebB4R=!PLz~mh7JHlcZ>?CUlYgp0~pZnKId*K^{z4n0st5Z z&>$0mK#JrO3vpmb8goX2B&rhOZXP{2zxCN_F51%%_oVBly%MYHx;iXAnSOrZ_DdGrM`-88SXiA*q{rwP2E-wlSs|1+8w3BCB z&!gs1$pxt-MMQN3Ot|AhRN29501!y^4bk@>z<|C@T=$mOb4OPXLV(F~V!$9M>Xk&% zBm@*iC8AxwJl~}tP*|B2B1Hg1wW1LK5lPg8piy#Q?Hg${1R$k1Oe7?`e#TwOoV3QV z#&X-*c3IOzrh7vNK{Zh~%~$!5bjY?eUHs#0MRodTk-oe=jCnT`YPaPLXTQuA)?RQw zgYIGHz9=(3(p+V;u^6+kP<)v#uYej_=0X;5-|7f*3uDZ`=-j!c(TC&6V@11HI*Bf69pEPpbN?FCCiUrbjXSd6|3tsYV+l|!o{=nM~HV+oSgOY>=#;hWjDQg7evPYu2MQ?Ngw7>9hXT)nwGaPnfHys4|I? zB3Kd�awMtGfe2E8uqz{AQ3yZzn?JkVPWGlZXS3U; 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�YK?DDv>am%RH$wOX#Kyks%5(~=(518RkEDQwx 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 literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Lung.png b/platform/ui/src/assets/icons/CT-Lung.png new file mode 100644 index 0000000000000000000000000000000000000000..158f3d7b2db33a3a05fe04f546f2f5130a222792 GIT binary patch literal 45938 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 QTmS$707*qoM6N<$g2j!HhX4Qo literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-MIP.png b/platform/ui/src/assets/icons/CT-MIP.png new file mode 100644 index 0000000000000000000000000000000000000000..30a93561ecebe3ccc41991d60da0fa7e338dc1e2 GIT binary patch literal 26839 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 Ak^lez literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/CT-Muscle.png b/platform/ui/src/assets/icons/CT-Muscle.png new file mode 100644 index 0000000000000000000000000000000000000000..76ecdc41d36051c725239ab39208543558cdde60 GIT binary patch literal 42848 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

m6qsA|HF%b;=+r{-%gsGeH{~O0DrCZj5mkf+ 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 literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/DTI-FA-Brain.png b/platform/ui/src/assets/icons/DTI-FA-Brain.png new file mode 100644 index 0000000000000000000000000000000000000000..9643546223c7745eaa551b3bb5409cb272271a4f GIT binary patch literal 38170 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

7bvdf8 z5a|AuJfBzcTNC!{mktcqk#!5*6-FVgL!bafr$EYvUcnuk|4Z7^@Gro94K2BK12u>$ zJ04z>S76l0lu^TGqI}?jvI2`+J z6!z;C@9V66EY=s$pgq#WwfC?|fPpC7E>d$+ueoh6bb353KuzW%s-g~O4=3C08X&-q zR^zI#oCI9Db}y32UE}QgsA}e+4BfJ47ZL2>w(MIXarKGdHNx>PmEZb6zh1ct$G980 zPISFoqJF*is#73O$TWSUWuWetm4_g%1?egzkq!Nf-0Q&1R~h81x>n~Ei>SF}I-wEM zXl|ArE+SnS1(v^{h{{)I{P_#uQyjoRNB?U7 zK0A6ScesmmJxx34S8u0YeRPjGyoNB`fi+zS?I;qFjZQ!jb|aEO3A>~xarF(K)gFGy z1qS?=gh>1^{@~Tfq@5mt*v;4O5ojusBnZ{aG8z|;eUh&m+9!e@IN4{AyXX5^-}mY< z3;LbOg%AkYv+8zrcmnWi>h{Gk)z7`I-J<8mXn=mM{Qst7lUACYgQNfe002ovPDHLk FV1hl2=>`A* literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/MR-Angio.png b/platform/ui/src/assets/icons/MR-Angio.png new file mode 100644 index 0000000000000000000000000000000000000000..f54d6fa5a757cc7b612fd0827d456165f724c2d2 GIT binary patch literal 36759 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 literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/MR-Default.png b/platform/ui/src/assets/icons/MR-Default.png new file mode 100644 index 0000000000000000000000000000000000000000..f8bf302c1c975cbd405713ca98a456911177c888 GIT binary patch literal 43410 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 N002ovPDHLkV1ldi?+yR} literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/MR-T2-Brain.png b/platform/ui/src/assets/icons/MR-T2-Brain.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1f7a550f4f1518f5f4b12bafe735e5c5b46877 GIT binary patch literal 42997 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 AdH?_b literal 0 HcmV?d00001 diff --git a/platform/ui/src/assets/icons/VolumeRendering.png b/platform/ui/src/assets/icons/VolumeRendering.png new file mode 100644 index 0000000000000000000000000000000000000000..8d7313ea21e26c2ecac0b140ec39cccac748fd54 GIT binary patch literal 1506 zcmV<81s(c{P)004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00006 zVoOIv0RI600RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_00iVoL_t(I%XO8@Z=7cp z#((eoUB>gx&5k|3CAA&ZwbR^OR8&+P2_i@&P!`Yy3-%Rk5Ptw`Sg;3)4eFvGu>iy( zLLw+tEL#*O3bB*G6zAgDu|1diGUNGXzT5jAHZ28;&+?q}{G_8tdXD1cQdh5D{qfsX zd3UDl4~Lm+KCDNzdf)uK-|xS-y1LpwQTV@&8#iuzV^oJfSr~FJjRu*MD{1_R0CSuW zzl`Xlj%>$Xd~aWF_tWgBw{PFR^Ev31D_7iZx9gvKZTc7Iyy%@#C(NIDt)Ps57SDT0 zf1^X1TC}UkpUT0|S+o<<+t^{R{o~%fPTldTcQJDRJ@&UiCDE z`bXyPS^oX;@$tx2N>vn&3|#sW(b@_|J3PG`a=fs}bAO(iuAssk{=f{+bdz)4XH*ZL zGa8gor^hMJ4-q}yL;)i5hVT1{Dsy50^d8pP*=rMbgqWCI z!SMRD<~y$saB0L+@Sz>GdGT-^V=TdVfEYujG)gH8pp{a_XeBlUM{9!7Jk5H8PTb?5 z*TxA73>FoYQw3W6h~|EmR-?(_*dQp-t_GzLD_HpLVe#Xh$*q>I{v8 zlzOAVlZ_XAp{lvRwoa}TkT2(%92{q0cN3K=`t=x-WuS!rJl~3lXip>7lI$leZ2X3D z*kbnb1?Dc#Aqdm6Q_NmG$6=Hq|F}c3*TxtFfS3&IXHeH#+e^f@a)a(v7NsOf#_;Ap z`MTYvRrT1aF5s66I6;A(txcjwA23?Vk*f@X2W~;p>xKM{%C?9!wAPt3JUo2-v0MIq z6eiysQFb_}bDmP}4gW?F00v%2<7g0Xzk8>?XbTxEb_;4vH&nYp+? zX(*5B#k6VY3Y~$6@4O~x%LToLTf!EB4gDY z-~X~3ePw8DQrSY8`}KopqZ9urP18S%NCF&KYnv-8D|b$WehTh(yJg35MwL?2j^ljy zqMv+g*D1F4d+`U>+WR8X6_LjB^70@5U-G+3eJ=cCpmpuqwN4m@p@_V-LqxW%wVTG6n%4TGD2nz@(*6t3=ccjcjr&Ic z001R)MObuXVRU6WV{&C-bY%cCFflbPFgPtRHB>P)Ix#RhFf%PMG&(Raw&PN30000b zbVXQnWMOn=I&E)cX=Zr + + action-new-dialog + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/content-next.svg b/platform/ui/src/assets/icons/content-next.svg new file mode 100644 index 000000000..45f0b3985 --- /dev/null +++ b/platform/ui/src/assets/icons/content-next.svg @@ -0,0 +1,9 @@ + + + chevron-next + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/content-prev.svg b/platform/ui/src/assets/icons/content-prev.svg new file mode 100644 index 000000000..a01164b6b --- /dev/null +++ b/platform/ui/src/assets/icons/content-prev.svg @@ -0,0 +1,9 @@ + + + chevron-prev + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-chevron-patient.svg b/platform/ui/src/assets/icons/icon-chevron-patient.svg new file mode 100644 index 000000000..b96478759 --- /dev/null +++ b/platform/ui/src/assets/icons/icon-chevron-patient.svg @@ -0,0 +1,12 @@ + + + icon-chevron-patient + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-color-lut.svg b/platform/ui/src/assets/icons/icon-color-lut.svg new file mode 100644 index 000000000..a339125e7 --- /dev/null +++ b/platform/ui/src/assets/icons/icon-color-lut.svg @@ -0,0 +1,23 @@ + + + icon-color-lut + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-multiple-patients.svg b/platform/ui/src/assets/icons/icon-multiple-patients.svg new file mode 100644 index 000000000..276662f9a --- /dev/null +++ b/platform/ui/src/assets/icons/icon-multiple-patients.svg @@ -0,0 +1,21 @@ + + + icon-multiple-patients + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-patient.svg b/platform/ui/src/assets/icons/icon-patient.svg new file mode 100644 index 000000000..0ddc8f7e6 --- /dev/null +++ b/platform/ui/src/assets/icons/icon-patient.svg @@ -0,0 +1,13 @@ + + + icon-patient + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-settings.svg b/platform/ui/src/assets/icons/icon-settings.svg new file mode 100644 index 000000000..381dae6f2 --- /dev/null +++ b/platform/ui/src/assets/icons/icon-settings.svg @@ -0,0 +1,13 @@ + + + icon-settings + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-toolbar-back.svg b/platform/ui/src/assets/icons/icon-toolbar-back.svg new file mode 100644 index 000000000..8ee453b2c --- /dev/null +++ b/platform/ui/src/assets/icons/icon-toolbar-back.svg @@ -0,0 +1,12 @@ + + + icon-toolbar-back + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/next-arrow.svg b/platform/ui/src/assets/icons/next-arrow.svg new file mode 100644 index 000000000..027a17de3 --- /dev/null +++ b/platform/ui/src/assets/icons/next-arrow.svg @@ -0,0 +1,12 @@ + + + arrow-right + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/prev-arrow.svg b/platform/ui/src/assets/icons/prev-arrow.svg new file mode 100644 index 000000000..455afb6bf --- /dev/null +++ b/platform/ui/src/assets/icons/prev-arrow.svg @@ -0,0 +1,12 @@ + + + arrow-left + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/viewport-status-tracked.svg b/platform/ui/src/assets/icons/viewport-status-tracked.svg new file mode 100644 index 000000000..68185761a --- /dev/null +++ b/platform/ui/src/assets/icons/viewport-status-tracked.svg @@ -0,0 +1,13 @@ + + + viewport-status-tracfked + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/viewport-window-level.svg b/platform/ui/src/assets/icons/viewport-window-level.svg new file mode 100644 index 000000000..ce0a562b2 --- /dev/null +++ b/platform/ui/src/assets/icons/viewport-window-level.svg @@ -0,0 +1,17 @@ + + + viewport-window-level + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/styles/styles.css b/platform/ui/src/assets/styles/styles.css index addaa2375..05abcb151 100644 --- a/platform/ui/src/assets/styles/styles.css +++ b/platform/ui/src/assets/styles/styles.css @@ -1,7 +1,9 @@ /* CUSTOM OHIF SCROLLBAR */ .ohif-scrollbar { - scrollbar-color: #173239 transparent; + scrollbar-color: #041c4a transparent; scrollbar-gutter: stable; + scrollbar-width: thin; + } .study-min-height { @@ -13,7 +15,7 @@ } .ohif-scrollbar::-webkit-scrollbar { - width: 8px; + scrollbar-width: thin; } .ohif-scrollbar::-webkit-scrollbar-track { @@ -22,13 +24,13 @@ .ohif-scrollbar::-webkit-scrollbar-thumb { @apply rounded; - @apply bg-primary-main; - background-color: #173239; + @apply bg-secondary-dark; + background-color: #041c4a; } .ohif-scrollbar::-webkit-scrollbar-thumb:window-inactive { - @apply bg-primary-main; - background-color: #173239; + @apply bg-secondary-dark; + background-color: #041c4a; } /* INVISIBLE SCROLLBAR */ diff --git a/platform/ui/src/assets/svgs/ohif-logo.svg b/platform/ui/src/assets/svgs/ohif-logo.svg new file mode 100644 index 000000000..3692116b4 --- /dev/null +++ b/platform/ui/src/assets/svgs/ohif-logo.svg @@ -0,0 +1,18 @@ + + + toolbar-branding-open-health-imaging-foundation + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/components/AllInOneMenu/BackItem.tsx b/platform/ui/src/components/AllInOneMenu/BackItem.tsx new file mode 100644 index 000000000..ac5ca51b7 --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/BackItem.tsx @@ -0,0 +1,27 @@ +import React from 'react'; + +import { Icon } from '@ohif/ui'; +import DividerItem from './DividerItem'; + +type BackItemProps = { + backLabel?: string; + onBackClick: () => void; +}; + +const BackItem = ({ backLabel, onBackClick }: BackItemProps) => { + return ( + <> +

+ + + ); +}; + +export default BackItem; diff --git a/platform/ui/src/components/AllInOneMenu/DividerItem.tsx b/platform/ui/src/components/AllInOneMenu/DividerItem.tsx new file mode 100644 index 000000000..056d68e9c --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/DividerItem.tsx @@ -0,0 +1,11 @@ +import React from 'react'; + +const DividerItem = () => { + return ( +
+
+
+ ); +}; + +export default DividerItem; diff --git a/platform/ui/src/components/AllInOneMenu/HeaderItem.tsx b/platform/ui/src/components/AllInOneMenu/HeaderItem.tsx new file mode 100644 index 000000000..43ba18314 --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/HeaderItem.tsx @@ -0,0 +1,13 @@ +import React, { ReactNode } from 'react'; + +type HeaderItemProps = { + children: ReactNode; +}; + +const HeaderItem = ({ children }: HeaderItemProps) => { + return ( +
{children}
+ ); +}; + +export default HeaderItem; diff --git a/platform/ui/src/components/AllInOneMenu/IconMenu.tsx b/platform/ui/src/components/AllInOneMenu/IconMenu.tsx new file mode 100644 index 000000000..7b57f6f2f --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/IconMenu.tsx @@ -0,0 +1,82 @@ +import React, { useCallback, useEffect, useState } from 'react'; +import OutsideClickHandler from 'react-outside-click-handler'; +import { MenuProps } from './Menu'; +import getIcon from '../Icon/getIcon'; +import classNames from 'classnames'; +import { AllInOneMenu } from '..'; +export interface IconMenuProps extends MenuProps { + icon: string; + iconClassName?: string; + horizontalDirection?: AllInOneMenu.HorizontalDirection; + verticalDirection?: AllInOneMenu.VerticalDirection; + menuKey?: number | string; +} + +/** + * An IconMenu allows for a div wrapped icon to be clicked to show and hide + * an AllInOneMenu.Menu. Based on the direction(s) specified, the menu is + * positioned relative to the icon. + * + * HorizontalDirection.LeftToRight - the left edges of the icon and menu are aligned + * HorizontalDirection.RightRoLeft - the right edges of the icon and menu are aligned + * VerticalDirection.TopToBottom - the top edge of the menu appears directly below the bottom edge of the icon + * VerticalDirection.BottomToTop - the bottom edge of the menu appears directly above the top edge of the icon + * + * For example, if an IconMenu were situated in the bottom-left corner of a container, + * it would be best to use BottomToTop and LeftToRight directions for it. + */ +export default function IconMenu({ + icon, + iconClassName, + horizontalDirection, + verticalDirection, + children, + backLabel, + menuClassName, + menuStyle, + onVisibilityChange, + menuKey, +}: IconMenuProps) { + const [isMenuVisible, setIsMenuVisible] = useState(false); + + const toggleMenuVisibility = useCallback(() => setIsMenuVisible(isVisible => !isVisible), []); + + return ( + +
+
+ {getIcon(icon)} +
+ { + setIsMenuVisible(isVis); + onVisibilityChange?.(isVis); + }} + horizontalDirection={horizontalDirection} + > + {children} + +
+
+ ); +} diff --git a/platform/ui/src/components/AllInOneMenu/Item.tsx b/platform/ui/src/components/AllInOneMenu/Item.tsx new file mode 100644 index 000000000..7ad4511a3 --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/Item.tsx @@ -0,0 +1,45 @@ +import React, { ReactNode, useCallback, useContext } from 'react'; +import { MenuContext } from './Menu'; + +type ItemProps = { + label: string; + secondaryLabel?: string; + icon?: ReactNode; + onClick?: () => void; + onMouseEnter?: () => void; + onMouseLeave?: () => void; + rightIcon?: ReactNode; +}; + +const Item = ({ + label, + secondaryLabel, + icon, + rightIcon, + onClick, + onMouseEnter, + onMouseLeave, +}: ItemProps) => { + const { hideMenu } = useContext(MenuContext); + + const onClickHandler = useCallback(() => { + hideMenu(); + onClick?.(); + }, [hideMenu, onClick]); + + return ( +
+ {icon &&
{icon}
} + {label} + {secondaryLabel != null && {secondaryLabel}} + {rightIcon &&
{rightIcon}
} +
+ ); +}; + +export default Item; diff --git a/platform/ui/src/components/AllInOneMenu/ItemPanel.tsx b/platform/ui/src/components/AllInOneMenu/ItemPanel.tsx new file mode 100644 index 000000000..abe407c7f --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/ItemPanel.tsx @@ -0,0 +1,29 @@ +import React, { ReactNode, useContext, useEffect } from 'react'; +import { MenuContext } from './Menu'; + +type ItemPanelProps = { + label?: string; + index?: number; + children: ReactNode; +}; + +const ItemPanel = ({ label, index = 0, children }: ItemPanelProps) => { + const { addItemPanel, activePanelIndex } = useContext(MenuContext); + + useEffect(() => { + addItemPanel(index, label); + }, []); + + return ( + activePanelIndex === index && ( +
+ {children} +
+ ) + ); +}; + +export default ItemPanel; diff --git a/platform/ui/src/components/AllInOneMenu/Menu.tsx b/platform/ui/src/components/AllInOneMenu/Menu.tsx new file mode 100644 index 000000000..7e506496b --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/Menu.tsx @@ -0,0 +1,188 @@ +import React, { createContext, ReactNode, useCallback, useEffect, useState } from 'react'; + +import './allInOneMenu.css'; +import DividerItem from './DividerItem'; +import PanelSelector from './PanelSelector'; +import classNames from 'classnames'; +import BackItem from './BackItem'; + +/** + * The vertical direction that the menu will be opened/used with. + * + * A TopToBottom menu would be used for cases where the menu is opened "near" + * the top edge of its container. Likewise a BottomToTop menu would be used + * for cases where the menu is opened "near" the bottom edge of its container. + * + * See IconMenu for more information. + */ +export enum VerticalDirection { + TopToBottom, + BottomToTop, +} + +/** + * The horizontal direction that the menu is opened/used with. + * This direction dictates the general direction sub-menus and + * back-to-menus are opened with. For example, a RightToLeft menu + * will have sub-menu items indicated with a left pointing chevron + * and aligned with the left edge of the menu. Similarly back-to items of a + * RightToLeft menu are indicated with a right pointing chevron and + * aligned with the right edge of the menu. + * + * It is also worth noting that a LeftToRight menu would be used for + * cases where a menu is opened "near" the left edge of its container. + * Likewise, a RightToLeft menu would be used for cases where a menu is opened + * "near" the right edge of its container. + * + * See IconMenu for more information. + */ +export enum HorizontalDirection { + LeftToRight, + RightToLeft, +} + +export interface MenuProps { + menuStyle?: unknown; + menuClassName?: string; + isVisible?: boolean; + preventHideMenu?: boolean; + backLabel?: string; + headerComponent?: ReactNode; + showHeaderDivider?: boolean; + activePanelIndex?: number; + onVisibilityChange?: (isVisible: boolean) => void; + horizontalDirection?: HorizontalDirection; + children: ReactNode; +} +type MenuContextProps = { + showSubMenu: (subMenuProps: MenuProps) => void; + hideMenu: () => void; + addItemPanel: (index: number, label: string) => void; + horizontalDirection: HorizontalDirection; + activePanelIndex: number; +}; + +type MenuPathState = { + props: MenuProps; + activePanelIndex: number; +}; + +export const MenuContext = createContext(null); + +const Menu = (props: MenuProps) => { + const { + isVisible, + onVisibilityChange, + activePanelIndex, + preventHideMenu, + menuClassName, + menuStyle, + horizontalDirection = HorizontalDirection.LeftToRight, + } = props; + + const [isMenuVisible, setIsMenuVisible] = useState(isVisible); + + // The menuPath is an array consisting of this top Menu and every SubMenu + // that has been traversed/opened by the user with the last item in the array + // being the current (sub)menu that is currently visible. This allows for the previously + // viewed menus to be returned to via the Back button at the top of the menu. + const [menuPath, setMenuPath] = useState>([ + { props, activePanelIndex: activePanelIndex || 0 }, + ]); + const [itemPanelLabels, setItemPanelLabels] = useState>([]); + + const hideMenu = useCallback(() => { + if (preventHideMenu) { + return; + } + setMenuPath(path => [path[0]]); + setItemPanelLabels([]); + setIsMenuVisible(false); + onVisibilityChange?.(false); + }, [preventHideMenu, onVisibilityChange]); + + useEffect(() => { + if (isVisible) { + setIsMenuVisible(isVisible); + onVisibilityChange?.(isVisible); + } else { + hideMenu(); + } + }, [hideMenu, isVisible, onVisibilityChange]); + + const showSubMenu = useCallback((subMenuProps: MenuProps) => { + setMenuPath(path => { + return [ + ...path, + { props: subMenuProps, activePanelIndex: subMenuProps.activePanelIndex || 0 }, + ]; + }); + setItemPanelLabels([]); + }, []); + + const addItemPanel = useCallback((index, label) => { + setItemPanelLabels(labels => { + return [...labels.slice(0, index), label, ...labels.slice(index + 1, labels.length)]; + }); + }, []); + + const onActivePanelIndexChange = useCallback(index => { + setMenuPath(path => { + return [ + ...path.slice(0, path.length - 1), + { ...path[path.length - 1], activePanelIndex: index }, + ]; + }); + }, []); + + const onBackClick = useCallback(() => { + setMenuPath(path => [...path.slice(0, path.length - 1)]); + setItemPanelLabels([]); + }, []); + + const { props: currentMenuProps, activePanelIndex: currentMenuActivePanelIndex } = + menuPath[menuPath.length - 1]; + + return ( + <> + + {isMenuVisible && ( +
+ {menuPath.length > 1 && ( + + )} + {itemPanelLabels.length > 1 && ( + + )} + {currentMenuProps.headerComponent} + {currentMenuProps.showHeaderDivider && } + {currentMenuProps.children} +
+ )} +
+ + ); +}; + +export default Menu; diff --git a/platform/ui/src/components/AllInOneMenu/PanelSelector.tsx b/platform/ui/src/components/AllInOneMenu/PanelSelector.tsx new file mode 100644 index 000000000..c46207b54 --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/PanelSelector.tsx @@ -0,0 +1,31 @@ +import React, { ReactNode } from 'react'; +import { ButtonGroup } from '../../components'; + +type PanelSelectorProps = { + panelLabels: Array; + onActiveIndexChange: (index: number) => void; + activeIndex: number; +}; + +const PanelSelector = ({ panelLabels, onActiveIndexChange, activeIndex }: PanelSelectorProps) => { + const getButtons = () => { + return panelLabels.map((panelLabel, index) => { + return { + children: panelLabel, + key: index, + }; + }); + }; + + return ( +
+ +
+ ); +}; + +export default PanelSelector; diff --git a/platform/ui/src/components/AllInOneMenu/SubMenu.tsx b/platform/ui/src/components/AllInOneMenu/SubMenu.tsx new file mode 100644 index 000000000..42786622a --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/SubMenu.tsx @@ -0,0 +1,38 @@ +import React, { useCallback, useContext } from 'react'; +import { MenuContext, MenuProps } from './Menu'; +import Icon from '../Icon'; + +export interface SubMenuProps extends MenuProps { + itemLabel: string; + onClick?: () => void; + itemIcon?: string; +} + +const SubMenu = (props: SubMenuProps) => { + const { showSubMenu } = useContext(MenuContext); + + const onClickHandler = useCallback(() => { + showSubMenu(props); + props.onClick?.(); + }, [showSubMenu, props]); + + return ( +
+ {props.itemIcon && ( + + )} +
{props.itemLabel}
+ +
+ ); +}; + +export default SubMenu; diff --git a/platform/ui/src/components/AllInOneMenu/__stories__/allInOneMenu.stories.mdx b/platform/ui/src/components/AllInOneMenu/__stories__/allInOneMenu.stories.mdx new file mode 100644 index 000000000..a513dc672 --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/__stories__/allInOneMenu.stories.mdx @@ -0,0 +1,129 @@ +import { DividerItem, HeaderItem, Item, ItemPanel, Menu, SubMenu } from '..'; +import InputRange from '../../InputRange/index.js'; +import SwitchButton from '../../SwitchButton/index.js'; + +import { ArgsTable, Story, Canvas, Meta } from '@storybook/addon-docs'; + +export const argTypes = { + component: Menu, + title: 'Components/AllInOneMenu', +}; + + + +export const AllInOneMenuTemplate = args => ( +
+ + + console.info('Item 1 clicked.')} + > + +
+
Arbitrary item component:
+ {}} + > +
+ + console.info('Sub menu item clicked.')} + showHeaderDivider={true} + headerComponent={ +
+ +
+ } + > + + + + + + Header for scrolling list of items} + > + + + + + + + + + + +
+
+
+
+); + + + +- [Overview](#overview) +- [Props](#props) +- [Contribute](#contribute) + +## Overview + +AllInOneMenu is a component that renders a menu with various menu items, sub-menus and +sub-components. The particular feature of the AllInOneMenu is its ability to render a sub-menu by +replacing the parent menu on screen. It also provides the ability to return to the parent menu with +a back menu item from the sub-menu. Furthermore, each menu level can be split into item panes - that +is several panes of menu items that are switched in and out of view like a tabbed pane. + + + console.info(`The menu visibility: ${isVisible}`), + }} +> + + {AllInOneMenuTemplate.bind({})} + + + + +## Props + + + +## Usage + +## Contribute + +
diff --git a/platform/ui/src/components/AllInOneMenu/allInOneMenu.css b/platform/ui/src/components/AllInOneMenu/allInOneMenu.css new file mode 100644 index 000000000..ce8ea955c --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/allInOneMenu.css @@ -0,0 +1,11 @@ +.all-in-one-menu-item { + @apply h-8 px-2 text-[14px] w-full; + display: flex; + align-items: center; + flex-shrink: 0; + line-height: 18px; +} + +.all-in-one-menu-item-effects { + @apply cursor-pointer hover:bg-primary-dark hover:rounded; +} diff --git a/platform/ui/src/components/AllInOneMenu/index.tsx b/platform/ui/src/components/AllInOneMenu/index.tsx new file mode 100644 index 000000000..f0522cf86 --- /dev/null +++ b/platform/ui/src/components/AllInOneMenu/index.tsx @@ -0,0 +1,19 @@ +import Menu, { HorizontalDirection, VerticalDirection } from './Menu'; +import DividerItem from './DividerItem'; +import HeaderItem from './HeaderItem'; +import IconMenu from './IconMenu'; +import Item from './Item'; +import ItemPanel from './ItemPanel'; +import SubMenu from './SubMenu'; + +export { + Menu, + DividerItem, + HeaderItem, + IconMenu, + Item, + ItemPanel, + SubMenu, + HorizontalDirection, + VerticalDirection, +}; diff --git a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx index d47288bf2..ca080a138 100644 --- a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx +++ b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx @@ -41,7 +41,7 @@ const ButtonGroup = ({ return cloneElement(child, { key: index, className: classnames( - 'rounded-[4px] px-2 py-1', + 'rounded-[4px] px-2 py-1 text-center', index === activeIndex ? 'bg-customblue-40 text-white' : 'text-primary-active bg-black', diff --git a/platform/ui/src/components/Header/Header.tsx b/platform/ui/src/components/Header/Header.tsx index 99b97b527..5d4cd63e9 100644 --- a/platform/ui/src/components/Header/Header.tsx +++ b/platform/ui/src/components/Header/Header.tsx @@ -8,6 +8,8 @@ import Svg from '../Svg'; import Icon from '../Icon'; import IconButton from '../IconButton'; import Dropdown from '../Dropdown'; +import HeaderPatientInfo from '../HeaderPatientInfo'; +import { PatientInfoVisibility } from '../../types/PatientInfoVisibility'; function Header({ children, @@ -16,6 +18,8 @@ function Header({ onClickReturnButton, isSticky, WhiteLabeling, + showPatientInfo = PatientInfoVisibility.VISIBLE_COLLAPSED, + servicesManager, ...props }): ReactNode { const { t } = useTranslation('Header'); @@ -34,7 +38,7 @@ function Header({ {...props} >
-
+
)} -
+
{WhiteLabeling?.createLogoComponentFn?.(React, props) || }
@@ -58,32 +62,30 @@ function Header({
{children}
-
- - + {(showPatientInfo === PatientInfoVisibility.VISIBLE || + showPatientInfo === PatientInfoVisibility.VISIBLE_COLLAPSED) && ( + + )} +
+
+ - - - - - - + + + + +
@@ -103,6 +105,8 @@ Header.propTypes = { isSticky: PropTypes.bool, onClickReturnButton: PropTypes.func, WhiteLabeling: PropTypes.object, + showPatientInfo: PropTypes.string, + servicesManager: PropTypes.object, }; Header.defaultProps = { diff --git a/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx b/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx new file mode 100644 index 000000000..ec665a7a9 --- /dev/null +++ b/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx @@ -0,0 +1,134 @@ +import React, { useState, useEffect } from 'react'; +import PropTypes from 'prop-types'; +import { Icon } from '@ohif/ui'; +import { utils } from '@ohif/core'; +import { useAppConfig } from '@state'; + +const { formatDate, formatPN } = utils; + +const formatWithEllipsis = (str, maxLength) => { + if (str.length > maxLength) { + return str.substring(0, maxLength) + '...'; + } + return str; +}; + +function usePatientInfo(servicesManager) { + const { displaySetService } = servicesManager.services; + + const [patientInfo, setPatientInfo] = useState({ + PatientName: '', + PatientID: '', + PatientSex: '', + PatientDOB: '', + }); + const [isMixedPatients, setIsMixedPatients] = useState(false); + const displaySets = displaySetService.getActiveDisplaySets(); + + const checkMixedPatients = PatientID => { + const displaySets = displaySetService.getActiveDisplaySets(); + let isMixedPatients = false; + displaySets.forEach(displaySet => { + const instance = displaySet?.instances?.[0] || displaySet?.instance; + if (!instance) { + return; + } + if (instance.PatientID !== PatientID) { + isMixedPatients = true; + } + }); + setIsMixedPatients(isMixedPatients); + }; + + const updatePatientInfo = () => { + const displaySet = displaySets[0]; + const instance = displaySet?.instances?.[0] || displaySet?.instance; + if (!instance) { + return; + } + setPatientInfo({ + PatientID: instance.PatientID || '', + PatientName: instance.PatientName ? formatPN(instance.PatientName.Alphabetic) : '', + PatientSex: instance.PatientSex || '', + PatientDOB: formatDate(instance.PatientBirthDate) || '', + }); + checkMixedPatients(instance.PatientID || ''); + }; + + useEffect(() => { + const subscription = displaySetService.subscribe( + displaySetService.EVENTS.DISPLAY_SETS_ADDED, + () => updatePatientInfo() + ); + return () => subscription.unsubscribe(); + }, []); + + useEffect(() => { + updatePatientInfo(); + }, [displaySets]); + + return { patientInfo, isMixedPatients }; +} + +function HeaderPatientInfo({ servicesManager }) { + const [appConfig] = useAppConfig(); + const initialExpandedState = appConfig.showPatientInfo === 'visible'; + const [expanded, setExpanded] = useState(initialExpandedState); + const { patientInfo, isMixedPatients } = usePatientInfo(servicesManager); + + useEffect(() => { + if (isMixedPatients && expanded) { + setExpanded(false); + } + }, [isMixedPatients, expanded]); + + const handleOnClick = () => { + if (!isMixedPatients) { + setExpanded(!expanded); + } + }; + + const formattedPatientName = formatWithEllipsis(patientInfo.PatientName, 27); + const formattedPatientID = formatWithEllipsis(patientInfo.PatientID, 15); + + return ( +
+ +
+ {expanded ? ( + <> +
+ {formattedPatientName} +
+
+
{formattedPatientID}
+
{patientInfo.PatientSex}
+
{patientInfo.PatientDOB}
+
+ + ) : ( +
+ {' '} + {isMixedPatients ? 'Multiple Patients' : 'Patient'} +
+ )} +
+ +
+ ); +} + +HeaderPatientInfo.propTypes = { + servicesManager: PropTypes.object.isRequired, +}; + +export default HeaderPatientInfo; diff --git a/platform/ui/src/components/HeaderPatientInfo/index.js b/platform/ui/src/components/HeaderPatientInfo/index.js new file mode 100644 index 000000000..cc989ba53 --- /dev/null +++ b/platform/ui/src/components/HeaderPatientInfo/index.js @@ -0,0 +1,3 @@ +import HeaderPatientInfo from './HeaderPatientInfo'; + +export default HeaderPatientInfo; diff --git a/platform/ui/src/components/Icon/getIcon.js b/platform/ui/src/components/Icon/getIcon.js index 4940fb771..e02d77b20 100644 --- a/platform/ui/src/components/Icon/getIcon.js +++ b/platform/ui/src/components/Icon/getIcon.js @@ -17,6 +17,8 @@ import chevronMenu from './../../assets/icons/chevron-menu.svg'; import chevronNext from './../../assets/icons/chevron-next.svg'; import chevronPrev from './../../assets/icons/chevron-prev.svg'; import chevronRight from './../../assets/icons/chevron-right.svg'; +import contentNext from './../../assets/icons/content-next.svg'; +import contentPrev from './../../assets/icons/content-prev.svg'; import eyeVisible from './../../assets/icons/eye-visible.svg'; import eyeHidden from './../../assets/icons/eye-hidden.svg'; import exclamation from './../../assets/icons/exclamation.svg'; @@ -83,6 +85,9 @@ import notificationsInfo from './../../assets/icons/notifications-info.svg'; import notificationsWarning from './../../assets/icons/notifications-warning.svg'; import notificationsError from './../../assets/icons/notifications-error.svg'; import notificationsSuccess from './../../assets/icons/notifications-success.svg'; +import nextArrow from './../../assets/icons/next-arrow.svg'; +import prevArrow from './../../assets/icons/prev-arrow.svg'; +import viewportStatusTracked from './../../assets/icons/viewport-status-tracked.svg'; /** Tools */ import toggleDicomOverlay from './../../assets/icons/toggle-dicom-overlay.svg'; @@ -139,12 +144,53 @@ import iconToolEraser from './../../assets/icons/icon-tool-eraser.svg'; import iconToolScissor from './../../assets/icons/icon-tool-scissor.svg'; import iconToolShape from './../../assets/icons/icon-tool-shape.svg'; import iconToolThreshold from './../../assets/icons/icon-tool-threshold.svg'; +import viewportWindowLevel from './../../assets/icons/viewport-window-level.svg'; /** Old OHIF */ import oldTrash from './../../assets/icons/old-trash.svg'; import oldPlay from './../../assets/icons/old-play.svg'; import oldStop from './../../assets/icons/old-stop.svg'; +/** ColorLut */ +import iconColorLUT from './../../assets/icons/icon-color-lut.svg'; + +/** New Patient Info Toolbar */ +import iconChevronPatient from './../../assets/icons/icon-chevron-patient.svg'; +import iconPatient from './../../assets/icons/icon-patient.svg'; +import iconSettings from './../../assets/icons/icon-settings.svg'; +import iconToolbarBack from './../../assets/icons/icon-toolbar-back.svg'; +import iconMultiplePatients from './../../assets/icons/icon-multiple-patients.svg'; + +/** Volume Rendering */ +import CTAAA from './../../assets/icons/CT-AAA.png'; +import CTAAA2 from './../../assets/icons/CT-AAA2.png'; +import CTAir from './../../assets/icons/CT-Air.png'; +import CTBone from './../../assets/icons/CT-Bone.png'; +import CTBones from './../../assets/icons/CT-Bones.png'; +import CTCardiac from './../../assets/icons/CT-Cardiac.png'; +import CTCardiac2 from './../../assets/icons/CT-Cardiac2.png'; +import CTCardiac3 from './../../assets/icons/CT-Cardiac3.png'; +import CTChestContrastEnhanced from './../../assets/icons/CT-Chest-Contrast-Enhanced.png'; +import CTChestVessels from './../../assets/icons/CT-Chest-Vessels.png'; +import CTCoronaryArteries from './../../assets/icons/CT-Coronary-Arteries.png'; +import CTCoronaryArteries2 from './../../assets/icons/CT-Coronary-Arteries-2.png'; +import CTCoronaryArteries3 from './../../assets/icons/CT-Coronary-Arteries-3.png'; +import CTCroppedVolumeBone from './../../assets/icons/CT-Cropped-Volume-Bone.png'; +import CTFat from './../../assets/icons/CT-Fat.png'; +import CTLiverVasculature from './../../assets/icons/CT-Liver-Vasculature.png'; +import CTLung from './../../assets/icons/CT-Lung.png'; +import CTMIP from './../../assets/icons/CT-MIP.png'; +import CTMuscle from './../../assets/icons/CT-Muscle.png'; +import CTPulmonaryArteries from './../../assets/icons/CT-Pulmonary-Arteries.png'; +import CTSoftTissue from './../../assets/icons/CT-Soft-Tissue.png'; +import DTIFABrain from './../../assets/icons/DTI-FA-Brain.png'; +import MRAngio from './../../assets/icons/MR-Angio.png'; +import MRDefault from './../../assets/icons/MR-Default.png'; +import MRMIP from './../../assets/icons/MR-MIP.png'; +import MRT2Brain from './../../assets/icons/MR-T2-Brain.png'; +import VolumeRendering from './../../assets/icons/VolumeRendering.png'; +import actionNewDialog from './../../assets/icons/action-new-dialog.svg'; + /** LAYOUT */ import layoutAdvanced3DFourUp from './../../assets/icons/layout-advanced-3d-four-up.svg'; @@ -160,7 +206,6 @@ import layoutCommon2x3 from './../../assets/icons/layout-common-2x3.svg'; import iconToolRotate from './../../assets/icons/tool-3d-rotate.svg'; /** New investigational use */ - import investigationalUse from './../../assets/icons/illustration-investigational-use.svg'; const ICONS = { @@ -180,6 +225,8 @@ const ICONS = { 'chevron-next': chevronNext, 'chevron-prev': chevronPrev, 'chevron-right': chevronRight, + 'content-next': contentNext, + 'content-prev': contentPrev, 'eye-visible': eyeVisible, 'eye-hidden': eyeHidden, 'external-link': externalLink, @@ -304,12 +351,51 @@ const ICONS = { 'icon-tool-scissor': iconToolScissor, 'icon-tool-shape': iconToolShape, 'icon-tool-threshold': iconToolThreshold, - + 'next-arrow': nextArrow, + 'prev-arrow': prevArrow, + 'viewport-status-tracked': viewportStatusTracked, + 'viewport-window-level': viewportWindowLevel, /** Old OHIF */ 'old-trash': oldTrash, 'old-play': oldPlay, 'old-stop': oldStop, - + /** ColorLut */ + 'icon-color-lut': iconColorLUT, + /** New Patient Info Toolbar */ + 'icon-chevron-patient': iconChevronPatient, + 'icon-patient': iconPatient, + 'icon-settings': iconSettings, + 'icon-toolbar-back': iconToolbarBack, + 'icon-multiple-patients': iconMultiplePatients, + /** Volume Rendering */ + 'CT-AAA': CTAAA, + 'CT-AAA2': CTAAA2, + 'CT-Air': CTAir, + 'CT-Bone': CTBone, + 'CT-Bones': CTBones, + 'CT-Cardiac': CTCardiac, + 'CT-Cardiac2': CTCardiac2, + 'CT-Cardiac3': CTCardiac3, + 'CT-Chest-Contrast-Enhanced': CTChestContrastEnhanced, + 'CT-Chest-Vessels': CTChestVessels, + 'CT-Coronary-Arteries': CTCoronaryArteries, + 'CT-Coronary-Arteries-2': CTCoronaryArteries2, + 'CT-Coronary-Arteries-3': CTCoronaryArteries3, + 'CT-Cropped-Volume-Bone': CTCroppedVolumeBone, + 'CT-Fat': CTFat, + 'CT-Liver-Vasculature': CTLiverVasculature, + 'CT-Lung': CTLung, + 'CT-MIP': CTMIP, + 'CT-Muscle': CTMuscle, + 'CT-Pulmonary-Arteries': CTPulmonaryArteries, + 'CT-Soft-Tissue': CTSoftTissue, + 'DTI-FA-Brain': DTIFABrain, + 'MR-Angio': MRAngio, + 'MR-Default': MRDefault, + 'MR-MIP': MRMIP, + 'MR-T2-Brain': MRT2Brain, + VolumeRendering: VolumeRendering, + 'action-new-dialog': actionNewDialog, /** LAYOUT */ 'layout-advanced-3d-four-up': layoutAdvanced3DFourUp, 'layout-advanced-3d-main': layoutAdvanced3DMain, @@ -340,11 +426,17 @@ function addIcon(iconName, iconSVG) { * return `null` */ export default function getIcon(key, props) { - if (!key || !ICONS[key]) { + const icon = ICONS[key]; + + if (!key || !icon) { return React.createElement('div', null, 'Missing Icon'); } - return React.createElement(ICONS[key], props); + if (typeof icon === 'string' && icon.endsWith('.png')) { + return React.createElement('img', { src: icon, ...props }); + } else { + return React.createElement(icon, props); + } } export { getIcon, ICONS, addIcon }; diff --git a/platform/ui/src/components/ImageScrollbar/ImageScrollbar.css b/platform/ui/src/components/ImageScrollbar/ImageScrollbar.css index 6d1aaf32d..695e11e9c 100644 --- a/platform/ui/src/components/ImageScrollbar/ImageScrollbar.css +++ b/platform/ui/src/components/ImageScrollbar/ImageScrollbar.css @@ -1,13 +1,13 @@ .scroll { - height: 100%; + height: calc(100% - 30px); padding: 5px; position: absolute; right: 0; - top: 0; + top: 30px; } .scroll .scroll-holder { - height: calc(100% - 20px); - margin-top: 5px; + height: calc(100%); + margin-bottom: 5px; position: relative; width: 12px; } diff --git a/platform/ui/src/components/InputRange/InputRange.tsx b/platform/ui/src/components/InputRange/InputRange.tsx index 8986143a9..4ae168712 100644 --- a/platform/ui/src/components/InputRange/InputRange.tsx +++ b/platform/ui/src/components/InputRange/InputRange.tsx @@ -12,6 +12,12 @@ import getMaxDigits from '../../utils/getMaxDigits'; * * */ + +type Label = { + text: string; + position: number; +}; + type InputRangeProps = { value: number; onChange: (value: number) => void; @@ -28,6 +34,7 @@ type InputRangeProps = { trackColor?: string; allowNumberEdit?: boolean; showAdjustmentArrows?: boolean; + labels?: Label[]; }; const InputRange: React.FC = ({ @@ -46,6 +53,7 @@ const InputRange: React.FC = ({ trackColor, allowNumberEdit = false, showAdjustmentArrows = true, + labels = [], }) => { const [rangeValue, setRangeValue] = useState(value); @@ -114,6 +122,22 @@ const InputRange: React.FC = ({ {showLabel && labelPosition === 'right' && (
{LabelOrEditableNumber}
)} + {labels.length > 0 && ( + <> + {labels.map((label, index) => { + const position = label.position; + return ( +
+ {label.text} +
+ ); + })} + + )}
); diff --git a/platform/ui/src/components/Modal/Modal.tsx b/platform/ui/src/components/Modal/Modal.tsx index 783f9c9fb..1a717dc10 100644 --- a/platform/ui/src/components/Modal/Modal.tsx +++ b/platform/ui/src/components/Modal/Modal.tsx @@ -1,6 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ReactModal from 'react-modal'; +import Draggable from 'react-draggable'; import { useModal } from '../../contextProviders'; import Icon from '../Icon'; @@ -20,6 +21,9 @@ const Modal = ({ onClose, children, shouldCloseOnOverlayClick, + movable = false, + containerDimensions = null, + contentDimensions = null, }) => { const { hide } = useModal(); @@ -27,44 +31,70 @@ const Modal = ({ hide(); }; - const renderHeader = () => { - return ( - title && ( -
- - {title} - - {closeButton && ( - - )} -
- ) + const renderHeader = () => + title && ( +
+ + {title} + + {closeButton && ( + + )} +
); - }; + + const modalContent = ( + <> + {renderHeader()} +
+ {children} +
+ + ); return ( - {renderHeader()} -
- {children} -
+ {movable ? ( + +
{modalContent}
+
+ ) : ( + modalContent + )}
); }; @@ -72,6 +102,9 @@ const Modal = ({ Modal.defaultProps = { shouldCloseOnEsc: true, shouldCloseOnOverlayClick: true, + movable: false, + containerDimensions: null, + contentDimensions: null, }; Modal.propTypes = { @@ -80,9 +113,11 @@ Modal.propTypes = { isOpen: PropTypes.bool, title: PropTypes.string, onClose: PropTypes.func, - /** The modal's content */ children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired, shouldCloseOnOverlayClick: PropTypes.bool, + movable: PropTypes.bool, + containerDimensions: PropTypes.string, + contentDimensions: PropTypes.string, }; export default Modal; diff --git a/platform/ui/src/components/StudyBrowser/StudyBrowser.tsx b/platform/ui/src/components/StudyBrowser/StudyBrowser.tsx index 671f1f628..c212de7ff 100644 --- a/platform/ui/src/components/StudyBrowser/StudyBrowser.tsx +++ b/platform/ui/src/components/StudyBrowser/StudyBrowser.tsx @@ -149,7 +149,6 @@ StudyBrowser.propTypes = { componentType: PropTypes.oneOf(['thumbnail', 'thumbnailTracked', 'thumbnailNoImage']) .isRequired, isTracked: PropTypes.bool, - viewportIdentificator: PropTypes.arrayOf(PropTypes.string), /** * Data the thumbnail should expose to a receiving drop target. Use a matching * `dragData.type` to identify which targets can receive this draggable item. diff --git a/platform/ui/src/components/StudyBrowser/__stories__/studyBrowser.stories.mdx b/platform/ui/src/components/StudyBrowser/__stories__/studyBrowser.stories.mdx index e60692f3f..0c0c10132 100644 --- a/platform/ui/src/components/StudyBrowser/__stories__/studyBrowser.stories.mdx +++ b/platform/ui/src/components/StudyBrowser/__stories__/studyBrowser.stories.mdx @@ -99,7 +99,6 @@ With Studies displaySetInstanceUID: '0b66675a-a4e3-a718-21f4-035d2d178d62', }, isTracked: false, - viewportIdentificator: [], }, ], }, diff --git a/platform/ui/src/components/Svg/getSvg.tsx b/platform/ui/src/components/Svg/getSvg.tsx index dc5e0cb9a..22ebc3b84 100644 --- a/platform/ui/src/components/Svg/getSvg.tsx +++ b/platform/ui/src/components/Svg/getSvg.tsx @@ -1,6 +1,6 @@ import React from 'react'; // Svgs -import logoOhif from './../../assets/svgs/logo-ohif.svg'; +import logoOhif from './../../assets/svgs/ohif-logo.svg'; const SVGS = { 'logo-ohif': logoOhif, diff --git a/platform/ui/src/components/SwitchButton/SwitchButton.tsx b/platform/ui/src/components/SwitchButton/SwitchButton.tsx new file mode 100644 index 000000000..0e6a80483 --- /dev/null +++ b/platform/ui/src/components/SwitchButton/SwitchButton.tsx @@ -0,0 +1,52 @@ +import React, { useCallback, useState } from 'react'; + +import './switchButton.css'; + +export enum SwitchLabelLocation { + left, + right, +} + +export type SwitchButtonProps = { + checked?: boolean; + label?: string; + labelLocation?: SwitchLabelLocation; + onChange?: (checked: boolean) => void; +}; + +const SwitchButton = ({ + label, + checked = false, + onChange, + labelLocation = SwitchLabelLocation.left, +}: SwitchButtonProps) => { + const [isInputChecked, setIsInputChecked] = useState(checked); + + const onHandleChange = useCallback( + event => { + setIsInputChecked(event.target.checked); + onChange?.(event.target.checked); + }, + [onChange] + ); + + // Thanks goes to https://codepen.io/lhermann/pen/EBGZRZ for the inspiration to the code below. + return ( + + ); +}; + +export default SwitchButton; diff --git a/platform/ui/src/components/SwitchButton/__stories__/switchButton.stories.mdx b/platform/ui/src/components/SwitchButton/__stories__/switchButton.stories.mdx new file mode 100644 index 000000000..acbdcc094 --- /dev/null +++ b/platform/ui/src/components/SwitchButton/__stories__/switchButton.stories.mdx @@ -0,0 +1,58 @@ +import SwitchButton, { SwitchLabelLocation } from '../SwitchButton'; + +import { ArgsTable, Story, Canvas, Meta } from '@storybook/addon-docs'; +import { createComponentTemplate } from '../../../storybook/functions/create-component-story'; + +export const argTypes = { + component: SwitchButton, + title: 'Components/SwitchButton', +}; + + + +export const SwitchButtonTemplate = args => ( +
+ +
+); + + + +- [Overview](#overview) +- [Props](#props) +- [Contribute](#contribute) + +## Overview + +A SwitchButton is a checkbox type input/button that can either be on or off (like a light switch). + + + console.info(`${checked ? 'The switch is on.' : 'The switch is off.'}`) + }} +> + + {SwitchButtonTemplate.bind({})} + + + + +## Props + + + +## Usage + +## Contribute + +
diff --git a/platform/ui/src/components/SwitchButton/index.js b/platform/ui/src/components/SwitchButton/index.js new file mode 100644 index 000000000..0f44a7e6e --- /dev/null +++ b/platform/ui/src/components/SwitchButton/index.js @@ -0,0 +1,3 @@ +import SwitchButton, { SwitchLabelLocation } from './SwitchButton'; +export default SwitchButton; +export { SwitchLabelLocation }; diff --git a/platform/ui/src/components/SwitchButton/switchButton.css b/platform/ui/src/components/SwitchButton/switchButton.css new file mode 100644 index 000000000..2eff3baa2 --- /dev/null +++ b/platform/ui/src/components/SwitchButton/switchButton.css @@ -0,0 +1,7 @@ +.switch-button input:checked ~ .switch-button-outer { + @apply border-primary-light; +} +.switch-button input:checked ~ .switch-button-dot { + @apply bg-primary-light; + transform: translateX(12px); +} diff --git a/platform/ui/src/components/ThumbnailList/ThumbnailList.tsx b/platform/ui/src/components/ThumbnailList/ThumbnailList.tsx index dc4bd8322..cf949d202 100644 --- a/platform/ui/src/components/ThumbnailList/ThumbnailList.tsx +++ b/platform/ui/src/components/ThumbnailList/ThumbnailList.tsx @@ -29,7 +29,6 @@ const ThumbnailList = ({ componentType, seriesDate, countIcon, - viewportIdentificator, isTracked, canReject, onReject, @@ -53,7 +52,6 @@ const ThumbnailList = ({ imageSrc={imageSrc} imageAltText={imageAltText} messages={messages} - viewportIdentificator={viewportIdentificator} isActive={isActive} onClick={() => onThumbnailClick(displaySetInstanceUID)} onDoubleClick={() => onThumbnailDoubleClick(displaySetInstanceUID)} @@ -72,7 +70,6 @@ const ThumbnailList = ({ imageSrc={imageSrc} imageAltText={imageAltText} messages={messages} - viewportIdentificator={viewportIdentificator} isTracked={isTracked} isActive={isActive} onClick={() => onThumbnailClick(displaySetInstanceUID)} @@ -96,7 +93,6 @@ const ThumbnailList = ({ onReject={onReject} onClick={() => onThumbnailClick(displaySetInstanceUID)} onDoubleClick={() => onThumbnailDoubleClick(displaySetInstanceUID)} - viewportIdentificator={viewportIdentificator} isHydratedForDerivedDisplaySet={isHydratedForDerivedDisplaySet} /> ); @@ -120,7 +116,6 @@ ThumbnailList.propTypes = { numInstances: PropTypes.number, description: PropTypes.string, componentType: Types.ThumbnailType.isRequired, - viewportIdentificator: Types.StringArray, isTracked: PropTypes.bool, /** * Data the thumbnail should expose to a receiving drop target. Use a matching diff --git a/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx b/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx index 286d723b4..e1bd9acb3 100644 --- a/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx +++ b/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.tsx @@ -24,43 +24,11 @@ function ThumbnailTracked({ onClick, onDoubleClick, onClickUntrack, - viewportIdentificator, isTracked, isActive, }) { const { t } = useTranslation('ThumbnailTracked'); const trackedIcon = isTracked ? 'circled-checkmark' : 'dotted-circle'; - const viewportIdentificatorLabel = viewportIdentificator.join(', '); - const renderViewportLabels = () => { - const MAX_LABELS_PER_COL = 3; - const shouldShowStack = viewportIdentificator.length > MAX_LABELS_PER_COL; - if (shouldShowStack) { - return ( -
-
- {viewportIdentificator.slice(0, MAX_LABELS_PER_COL).map(label => ( -
{label}
- ))} -
- - {`${t('Viewport')}: ${viewportIdentificatorLabel}`} -
- } - > - - -
- ); - } - - return viewportIdentificator.map(label =>
{label}
); - }; return (
- {!!viewportIdentificator.length && ( - {`${t('Viewport')}: ${viewportIdentificatorLabel}`} - )}
} @@ -105,13 +70,6 @@ function ThumbnailTracked({ className="text-primary-light mb-2 w-4" /> - -
- {renderViewportLabels()} -
{isTracked && (
@@ -162,7 +120,6 @@ ThumbnailTracked.propTypes = { onClick: PropTypes.func.isRequired, onDoubleClick: PropTypes.func.isRequired, onClickUntrack: PropTypes.func.isRequired, - viewportIdentificator: PropTypes.array, isTracked: PropTypes.bool, messages: PropTypes.object, isActive: PropTypes.bool.isRequired, diff --git a/platform/ui/src/components/ViewportActionArrows/ViewportActionArrows.tsx b/platform/ui/src/components/ViewportActionArrows/ViewportActionArrows.tsx new file mode 100644 index 000000000..81ed0c564 --- /dev/null +++ b/platform/ui/src/components/ViewportActionArrows/ViewportActionArrows.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import Icon from '../Icon'; +import classNames from 'classnames'; + +const arrowClasses = + 'cursor-pointer flex items-center justify-center shrink-0 text-primary-light active:text-white hover:bg-secondary-light/60 rounded'; + +type ViewportActionArrowsProps = { + onArrowsClick: (direction: number) => void; + className: string; +}; + +function ViewportActionArrows({ onArrowsClick, className }: ViewportActionArrowsProps) { + return ( + // The arrows are only visible when hover over the viewport. +
+
+ onArrowsClick(-1)} + /> +
+
+ onArrowsClick(1)} + /> +
+
+ ); +} + +export default ViewportActionArrows; diff --git a/platform/ui/src/components/ViewportActionArrows/index.tsx b/platform/ui/src/components/ViewportActionArrows/index.tsx new file mode 100644 index 000000000..31f3ce3d7 --- /dev/null +++ b/platform/ui/src/components/ViewportActionArrows/index.tsx @@ -0,0 +1,2 @@ +import ViewportActionArrows from './ViewportActionArrows'; +export default ViewportActionArrows; diff --git a/platform/ui/src/components/ViewportActionCorners/ViewportActionCorners.tsx b/platform/ui/src/components/ViewportActionCorners/ViewportActionCorners.tsx new file mode 100644 index 000000000..78d5dd4dc --- /dev/null +++ b/platform/ui/src/components/ViewportActionCorners/ViewportActionCorners.tsx @@ -0,0 +1,76 @@ +import classNames from 'classnames'; +import React from 'react'; +import { ViewportActionCornersComponentInfo } from '../../types/ViewportActionCornersTypes'; + +export enum ViewportActionCornersLocations { + topLeft, + topRight, + bottomLeft, + bottomRight, +} + +export type ViewportActionCornersProps = { + cornerComponents: Record< + ViewportActionCornersLocations, + Array + >; +}; + +const commonClasses = 'pointer-events-auto flex items-center gap-1'; +const classes = { + [ViewportActionCornersLocations.topLeft]: classNames( + commonClasses, + 'absolute top-[4px] left-[0px] pl-[4px]' + ), + [ViewportActionCornersLocations.topRight]: classNames( + commonClasses, + 'absolute top-[4px] right-[4px] right-viewport-scrollbar' + ), + [ViewportActionCornersLocations.bottomLeft]: classNames( + commonClasses, + 'absolute bottom-[4px] left-[0px] pl-[4px]' + ), + [ViewportActionCornersLocations.bottomRight]: classNames( + commonClasses, + 'absolute bottom-[4px] right-[0px] right-viewport-scrollbar' + ), +}; + +/** + * A component that renders various action items/components to each corner of a viewport. + * The position of each corner's components is such that a single row of components are + * rendered absolutely without intersecting the ViewportOverlay component. + * Note that corner components are passed as an object mapping each corner location + * to an array of components for that location. The components in each array are + * rendered from left to right in the order that they appear in the array. + */ +function ViewportActionCorners({ cornerComponents }: ViewportActionCornersProps) { + if (!cornerComponents) { + return null; + } + + return ( +
{ + event.preventDefault(); + event.stopPropagation(); + }} + > + {Object.entries(cornerComponents).map(([location, locationComponents]) => { + return ( +
+ {locationComponents.map(componentInfo => { + return
{componentInfo.component}
; + })} +
+ ); + })} +
+ ); +} + +export default ViewportActionCorners; diff --git a/platform/ui/src/components/ViewportActionCorners/index.tsx b/platform/ui/src/components/ViewportActionCorners/index.tsx new file mode 100644 index 000000000..9136db97d --- /dev/null +++ b/platform/ui/src/components/ViewportActionCorners/index.tsx @@ -0,0 +1,4 @@ +import ViewportActionCorners, { ViewportActionCornersLocations } from './ViewportActionCorners'; + +export { ViewportActionCornersLocations }; +export default ViewportActionCorners; diff --git a/platform/ui/src/components/ViewportOverlay/ViewportOverlay.css b/platform/ui/src/components/ViewportOverlay/ViewportOverlay.css index fb51cc08e..e8aebd0be 100644 --- a/platform/ui/src/components/ViewportOverlay/ViewportOverlay.css +++ b/platform/ui/src/components/ViewportOverlay/ViewportOverlay.css @@ -10,40 +10,13 @@ text-shadow: 1px 1px #000; pointer-events: none; } -.ViewportOverlay .top-left { - top: 20px; - left: 20px; +.overlay-top { + top: 28px; } -.ViewportOverlay .top-center { - top: 20px; - padding-top: 20px; - width: 100%; - text-align: center; +.overlay-bottom { + bottom: 3px; } -.ViewportOverlay .top-right { - top: 20px; - right: 20px; - text-align: right; -} -.ViewportOverlay .bottom-left { - bottom: 20px; - left: 20px; -} -.ViewportOverlay .bottom-right { - bottom: 20px; - right: 20px; - text-align: right; -} -.ViewportOverlay.controlsVisible .topright, -.ViewportOverlay.controlsVisible .bottomright { - right: calc(20px + 19px); -} -.ViewportOverlay svg { - color: #9ccef9; - fill: #9ccef9; - stroke: #9ccef9; - background-color: transparent; - margin: 2px; - width: 18px; - height: 18px; + +.overlay-text { + text-shadow: 0.8px 0.8px 0.5px rgba(0, 0, 0, 0.75); } diff --git a/platform/ui/src/components/ViewportOverlay/ViewportOverlay.tsx b/platform/ui/src/components/ViewportOverlay/ViewportOverlay.tsx index e99a3d204..971b2227f 100644 --- a/platform/ui/src/components/ViewportOverlay/ViewportOverlay.tsx +++ b/platform/ui/src/components/ViewportOverlay/ViewportOverlay.tsx @@ -3,11 +3,16 @@ import classnames from 'classnames'; import './ViewportOverlay.css'; +// The overlay-top and overlay-bottom classes are explicitly needed to offset +// the overlays (i.e. via absolute positioning) such the ViewportActionCorners +// have space for its child components. +// ToDo: offset the ViewportOverlay automatically via css to account for the +// space needed for ViewportActionCorners. const classes = { - topLeft: 'top-viewport left-viewport', - topRight: 'top-viewport right-viewport-scrollbar', - bottomRight: 'bottom-viewport right-viewport-scrollbar', - bottomLeft: 'bottom-viewport left-viewport', + topLeft: 'overlay-top left-viewport', + topRight: 'overlay-top right-viewport-scrollbar', + bottomRight: 'overlay-bottom right-viewport-scrollbar', + bottomLeft: 'overlay-bottom left-viewport', }; export type ViewportOverlayProps = { @@ -27,7 +32,14 @@ const ViewportOverlay = ({ }: ViewportOverlayProps) => { const overlay = 'absolute pointer-events-none viewport-overlay'; return ( -
+
{topRight}
{bottomRight}
diff --git a/platform/ui/src/components/ViewportPane/ViewportPane.tsx b/platform/ui/src/components/ViewportPane/ViewportPane.tsx index 5aa06ffb3..ada09c871 100644 --- a/platform/ui/src/components/ViewportPane/ViewportPane.tsx +++ b/platform/ui/src/components/ViewportPane/ViewportPane.tsx @@ -64,7 +64,7 @@ function ViewportPane({ onScroll={onInteractionHandler} onWheel={onInteractionHandler} className={classnames( - 'hover:border-primary-light group h-full w-full overflow-hidden rounded-md transition duration-300', + 'group h-full w-full overflow-hidden rounded-md transition duration-300', { 'border-primary-light border-2': isActive, 'border-2 border-transparent': !isActive, @@ -77,10 +77,10 @@ function ViewportPane({ >
{ closeButton: true, title: null, customClassName: '', + movable: false, + containerDimensions: null, + contentDimensions: null, }; const { t } = useTranslation('Modals'); @@ -73,6 +76,9 @@ const ModalProvider = ({ children, modal: Modal, service }) => { shouldCloseOnEsc, closeButton, shouldCloseOnOverlayClick, + movable, + containerDimensions, + contentDimensions, } = options; return ( @@ -86,6 +92,9 @@ const ModalProvider = ({ children, modal: Modal, service }) => { closeButton={closeButton} onClose={hide} shouldCloseOnOverlayClick={shouldCloseOnOverlayClick} + movable={movable} + containerDimensions={containerDimensions} + contentDimensions={contentDimensions} > =16": - version "18.2.70" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.70.tgz#89a37f9e0a6a4931f4259c598f40fd44dd6abf71" - integrity sha512-hjlM2hho2vqklPhopNkXkdkeq6Lv8WSZTpr7956zY+3WS5cfYUewtCzsJLsbW5dEv3lfSeQ4W14ZFeKC437JRQ== + version "18.2.73" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.73.tgz#0579548ad122660d99e00499d22e33b81e73ed94" + integrity sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" "@types/react@^17.0.38": - version "17.0.79" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.79.tgz#67693ab9bc476780d968326658619fa7f25b8935" - integrity sha512-gavKA8AwJAML9zWHuiQRASjrrPJHbT/zrUDHiUGUf+l5a3pkEd6atvjjq+8y2vfRHBJLQJjFpxSa9I8qe9zHAw== + version "17.0.80" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.80.tgz#a5dfc351d6a41257eb592d73d3a85d3b7dbcbb41" + integrity sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" + "@types/scheduler" "^0.16" csstype "^3.0.2" "@types/resolve@1.17.1": @@ -5462,7 +5478,7 @@ dependencies: "@types/node" "*" -"@types/scheduler@*": +"@types/scheduler@^0.16": version "0.16.8" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== @@ -6118,24 +6134,25 @@ algoliasearch-helper@^3.10.0: "@algolia/events" "^4.0.1" algoliasearch@^4.13.1, algoliasearch@^4.19.1: - version "4.22.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.22.1.tgz#f10fbecdc7654639ec20d62f109c1b3a46bc6afc" - integrity sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg== + version "4.23.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.23.2.tgz#3b7bc93d98f3965628c73a06cbf9203531324a9d" + integrity sha512-8aCl055IsokLuPU8BzLjwzXjb7ty9TPcUFFOk0pYOwsE5DMVhE3kwCMFtsCFKcnoPZK7oObm+H5mbnSO/9ioxQ== dependencies: - "@algolia/cache-browser-local-storage" "4.22.1" - "@algolia/cache-common" "4.22.1" - "@algolia/cache-in-memory" "4.22.1" - "@algolia/client-account" "4.22.1" - "@algolia/client-analytics" "4.22.1" - "@algolia/client-common" "4.22.1" - "@algolia/client-personalization" "4.22.1" - "@algolia/client-search" "4.22.1" - "@algolia/logger-common" "4.22.1" - "@algolia/logger-console" "4.22.1" - "@algolia/requester-browser-xhr" "4.22.1" - "@algolia/requester-common" "4.22.1" - "@algolia/requester-node-http" "4.22.1" - "@algolia/transporter" "4.22.1" + "@algolia/cache-browser-local-storage" "4.23.2" + "@algolia/cache-common" "4.23.2" + "@algolia/cache-in-memory" "4.23.2" + "@algolia/client-account" "4.23.2" + "@algolia/client-analytics" "4.23.2" + "@algolia/client-common" "4.23.2" + "@algolia/client-personalization" "4.23.2" + "@algolia/client-search" "4.23.2" + "@algolia/logger-common" "4.23.2" + "@algolia/logger-console" "4.23.2" + "@algolia/recommend" "4.23.2" + "@algolia/requester-browser-xhr" "4.23.2" + "@algolia/requester-common" "4.23.2" + "@algolia/requester-node-http" "4.23.2" + "@algolia/transporter" "4.23.2" ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" @@ -9371,9 +9388,9 @@ ejs@^3.1.6, ejs@^3.1.7, ejs@^3.1.8: jake "^10.8.5" electron-to-chromium@^1.4.668: - version "1.4.715" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz#bb16bcf2a3537962fccfa746b5c98c5f7404ff46" - integrity sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg== + version "1.4.721" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.721.tgz#a9ee55ba7e54d9ecbcc19825116f3752e7d60ef2" + integrity sha512-k1x2r6foI8iJOp+1qTxbbrrWMsOiHkzGBYwYigaq+apO1FSqtn44KTo3Sy69qt7CRr7149zTcsDvH7MUKsOuIQ== elegant-spinner@^1.0.1: version "1.0.1" @@ -9603,9 +9620,9 @@ es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.0.17: safe-array-concat "^1.1.2" es-module-lexer@^1.2.1, es-module-lexer@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.2.tgz#ba1a62255ff9b41023aaf9bd08c016a5f1a3fef3" - integrity sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw== + version "1.5.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.0.tgz#4878fee3789ad99e065f975fdd3c645529ff0236" + integrity sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw== es-object-atoms@^1.0.0: version "1.0.0" @@ -10755,9 +10772,9 @@ flatted@^3.2.9: integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== flow-parser@0.*: - version "0.231.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.231.0.tgz#13daa172b3c06ffacbb31025592dc0db41fe28f3" - integrity sha512-WVzuqwq7ZnvBceCG0DGeTQebZE+iIU0mlk5PmJgYj9DDrt+0isGC2m1ezW9vxL4V+HERJJo9ExppOnwKH2op6Q== + version "0.232.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.232.0.tgz#db93a660e7017bd366290944c3328ca506ca7d2b" + integrity sha512-U8vcKyYdM+Kb0tPzfPJ5JyPMU0uXKwHxp0L6BcEc+wBlbTW9qRhOqV5DeGXclgclVvtqQNGEG8Strj/b6c/IxA== flux@^4.0.1: version "4.0.4" @@ -11227,15 +11244,15 @@ glob@7.1.4: path-is-absolute "^1.0.0" glob@^10.0.0, glob@^10.2.2: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" + jackspeak "^2.3.6" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + minipass "^7.0.4" + path-scurry "^1.10.2" glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" @@ -12814,7 +12831,7 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" -jackspeak@^2.3.5: +jackspeak@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== @@ -14079,6 +14096,11 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -14106,11 +14128,6 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - magic-string@^0.25.0, magic-string@^0.25.1, magic-string@^0.25.2, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -14875,7 +14892,7 @@ minimatch@3.1.2, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch dependencies: brace-expansion "^1.1.7" -minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: +minimatch@9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== @@ -14896,6 +14913,13 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -14985,7 +15009,7 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3, minipass@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== @@ -16214,12 +16238,12 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" -path-scurry@^1.10.1, path-scurry@^1.6.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.10.2, path-scurry@^1.6.1: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@0.1.7: @@ -17034,9 +17058,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier-plugin-tailwindcss@^0.5.4: - version "0.5.12" - resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.12.tgz#655999849344548ecf4d9b47a051ed856f041c72" - integrity sha512-o74kiDBVE73oHW+pdkFSluHBL3cYEvru5YgEqNkBMFF7Cjv+w1vI565lTlfoJT4VLWDe0FMtZ7FkE/7a4pMXSQ== + version "0.5.13" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.13.tgz#ee3c1e07848c90abdd1edde36a09366327e31e26" + integrity sha512-2tPWHCFNC+WRjAC4SIWQNSOdcL1NNkydXim8w7TDqlZi+/ulZYz2OouAI6qMtkggnPt7lGamboj6LcTMwcCvoQ== prettier@^2.8.0: version "2.8.8" @@ -19889,9 +19913,9 @@ table@^5.2.3: string-width "^3.0.0" table@^6.0.9: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + version "6.8.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -20060,9 +20084,9 @@ terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.4, terser-webpack-plugi terser "^5.26.0" terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: - version "5.29.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35" - integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw== + version "5.30.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.0.tgz#64cb2af71e16ea3d32153f84d990f9be0cdc22bf" + integrity sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -20689,9 +20713,9 @@ unpipe@1.0.0, unpipe@~1.0.0: integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unplugin@^1.3.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.10.0.tgz#9cb8140f61e3fbcf27c7c38d305e9d62d5dbbf0b" - integrity sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg== + version "1.10.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.10.1.tgz#8ceda065dc71bc67d923dea0920f05c67f2cd68c" + integrity sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg== dependencies: acorn "^8.11.3" chokidar "^3.6.0" @@ -21179,9 +21203,9 @@ webpack-dev-middleware@^5.3.0, webpack-dev-middleware@^5.3.4: schema-utils "^4.0.0" webpack-dev-middleware@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz#0463232e59b7d7330fa154121528d484d36eb973" - integrity sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ== + version "6.1.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz#79f4103f8c898564c9e96c3a9c2422de50f249bc" + integrity sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw== dependencies: colorette "^2.0.10" memfs "^3.4.12" From bc718616198ef3cfc6ec07f241f1796f60ca8849 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Tue, 2 Apr 2024 13:46:10 +0000 Subject: [PATCH 208/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/assets/images/CT-AAA.png | Bin 0 -> 43690 bytes extensions/default/assets/images/CT-AAA2.png | Bin 0 -> 43074 bytes extensions/default/assets/images/CT-Air.png | Bin 0 -> 36276 bytes extensions/default/assets/images/CT-Bone.png | Bin 0 -> 38805 bytes extensions/default/assets/images/CT-Bones.png | Bin 0 -> 38193 bytes .../default/assets/images/CT-Cardiac.png | Bin 0 -> 51803 bytes .../default/assets/images/CT-Cardiac2.png | Bin 0 -> 51499 bytes .../default/assets/images/CT-Cardiac3.png | Bin 0 -> 52991 bytes .../images/CT-Chest-Contrast-Enhanced.png | Bin 0 -> 51275 bytes .../assets/images/CT-Chest-Vessels.png | Bin 0 -> 52568 bytes .../assets/images/CT-Coronary-Arteries-2.png | Bin 0 -> 51925 bytes .../assets/images/CT-Coronary-Arteries-3.png | Bin 0 -> 53425 bytes .../assets/images/CT-Coronary-Arteries.png | Bin 0 -> 47004 bytes .../assets/images/CT-Cropped-Volume-Bone.png | Bin 0 -> 31396 bytes extensions/default/assets/images/CT-Fat.png | Bin 0 -> 47653 bytes .../assets/images/CT-Liver-Vasculature.png | Bin 0 -> 46843 bytes extensions/default/assets/images/CT-Lung.png | Bin 0 -> 45938 bytes extensions/default/assets/images/CT-MIP.png | Bin 0 -> 26839 bytes .../default/assets/images/CT-Muscle.png | Bin 0 -> 42848 bytes .../assets/images/CT-Pulmonary-Arteries.png | Bin 0 -> 53588 bytes .../default/assets/images/CT-Soft-Tissue.png | Bin 0 -> 32988 bytes .../default/assets/images/DTI-FA-Brain.png | Bin 0 -> 38170 bytes extensions/default/assets/images/MR-Angio.png | Bin 0 -> 36759 bytes .../default/assets/images/MR-Default.png | Bin 0 -> 43410 bytes extensions/default/assets/images/MR-MIP.png | Bin 0 -> 36738 bytes .../default/assets/images/MR-T2-Brain.png | Bin 0 -> 42997 bytes .../default/assets/images/VolumeRendering.png | Bin 0 -> 1506 bytes extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- platform/ui/assets/images/CT-AAA.png | Bin 0 -> 43690 bytes platform/ui/assets/images/CT-AAA2.png | Bin 0 -> 43074 bytes platform/ui/assets/images/CT-Air.png | Bin 0 -> 36276 bytes platform/ui/assets/images/CT-Bone.png | Bin 0 -> 38805 bytes platform/ui/assets/images/CT-Bones.png | Bin 0 -> 38193 bytes platform/ui/assets/images/CT-Cardiac.png | Bin 0 -> 51803 bytes platform/ui/assets/images/CT-Cardiac2.png | Bin 0 -> 51499 bytes platform/ui/assets/images/CT-Cardiac3.png | Bin 0 -> 52991 bytes .../images/CT-Chest-Contrast-Enhanced.png | Bin 0 -> 51275 bytes .../ui/assets/images/CT-Chest-Vessels.png | Bin 0 -> 52568 bytes .../assets/images/CT-Coronary-Arteries-2.png | Bin 0 -> 51925 bytes .../assets/images/CT-Coronary-Arteries-3.png | Bin 0 -> 53425 bytes .../ui/assets/images/CT-Coronary-Arteries.png | Bin 0 -> 47004 bytes .../assets/images/CT-Cropped-Volume-Bone.png | Bin 0 -> 31396 bytes platform/ui/assets/images/CT-Fat.png | Bin 0 -> 47653 bytes .../ui/assets/images/CT-Liver-Vasculature.png | Bin 0 -> 46843 bytes platform/ui/assets/images/CT-Lung.png | Bin 0 -> 45938 bytes platform/ui/assets/images/CT-MIP.png | Bin 0 -> 26839 bytes platform/ui/assets/images/CT-Muscle.png | Bin 0 -> 42848 bytes .../assets/images/CT-Pulmonary-Arteries.png | Bin 0 -> 53588 bytes platform/ui/assets/images/CT-Soft-Tissue.png | Bin 0 -> 32988 bytes platform/ui/assets/images/DTI-FA-Brain.png | Bin 0 -> 38170 bytes platform/ui/assets/images/MR-Angio.png | Bin 0 -> 36759 bytes platform/ui/assets/images/MR-Default.png | Bin 0 -> 43410 bytes platform/ui/assets/images/MR-MIP.png | Bin 0 -> 36738 bytes platform/ui/assets/images/MR-T2-Brain.png | Bin 0 -> 42997 bytes platform/ui/assets/images/VolumeRendering.png | Bin 0 -> 1506 bytes version.json | 4 ++-- version.txt | 2 +- 75 files changed, 76 insertions(+), 76 deletions(-) create mode 100644 extensions/default/assets/images/CT-AAA.png create mode 100644 extensions/default/assets/images/CT-AAA2.png create mode 100644 extensions/default/assets/images/CT-Air.png create mode 100644 extensions/default/assets/images/CT-Bone.png create mode 100644 extensions/default/assets/images/CT-Bones.png create mode 100644 extensions/default/assets/images/CT-Cardiac.png create mode 100644 extensions/default/assets/images/CT-Cardiac2.png create mode 100644 extensions/default/assets/images/CT-Cardiac3.png create mode 100644 extensions/default/assets/images/CT-Chest-Contrast-Enhanced.png create mode 100644 extensions/default/assets/images/CT-Chest-Vessels.png create mode 100644 extensions/default/assets/images/CT-Coronary-Arteries-2.png create mode 100644 extensions/default/assets/images/CT-Coronary-Arteries-3.png create mode 100644 extensions/default/assets/images/CT-Coronary-Arteries.png create mode 100644 extensions/default/assets/images/CT-Cropped-Volume-Bone.png create mode 100644 extensions/default/assets/images/CT-Fat.png create mode 100644 extensions/default/assets/images/CT-Liver-Vasculature.png create mode 100644 extensions/default/assets/images/CT-Lung.png create mode 100644 extensions/default/assets/images/CT-MIP.png create mode 100644 extensions/default/assets/images/CT-Muscle.png create mode 100644 extensions/default/assets/images/CT-Pulmonary-Arteries.png create mode 100644 extensions/default/assets/images/CT-Soft-Tissue.png create mode 100644 extensions/default/assets/images/DTI-FA-Brain.png create mode 100644 extensions/default/assets/images/MR-Angio.png create mode 100644 extensions/default/assets/images/MR-Default.png create mode 100644 extensions/default/assets/images/MR-MIP.png create mode 100644 extensions/default/assets/images/MR-T2-Brain.png create mode 100644 extensions/default/assets/images/VolumeRendering.png create mode 100644 platform/ui/assets/images/CT-AAA.png create mode 100644 platform/ui/assets/images/CT-AAA2.png create mode 100644 platform/ui/assets/images/CT-Air.png create mode 100644 platform/ui/assets/images/CT-Bone.png create mode 100644 platform/ui/assets/images/CT-Bones.png create mode 100644 platform/ui/assets/images/CT-Cardiac.png create mode 100644 platform/ui/assets/images/CT-Cardiac2.png create mode 100644 platform/ui/assets/images/CT-Cardiac3.png create mode 100644 platform/ui/assets/images/CT-Chest-Contrast-Enhanced.png create mode 100644 platform/ui/assets/images/CT-Chest-Vessels.png create mode 100644 platform/ui/assets/images/CT-Coronary-Arteries-2.png create mode 100644 platform/ui/assets/images/CT-Coronary-Arteries-3.png create mode 100644 platform/ui/assets/images/CT-Coronary-Arteries.png create mode 100644 platform/ui/assets/images/CT-Cropped-Volume-Bone.png create mode 100644 platform/ui/assets/images/CT-Fat.png create mode 100644 platform/ui/assets/images/CT-Liver-Vasculature.png create mode 100644 platform/ui/assets/images/CT-Lung.png create mode 100644 platform/ui/assets/images/CT-MIP.png create mode 100644 platform/ui/assets/images/CT-Muscle.png create mode 100644 platform/ui/assets/images/CT-Pulmonary-Arteries.png create mode 100644 platform/ui/assets/images/CT-Soft-Tissue.png create mode 100644 platform/ui/assets/images/DTI-FA-Brain.png create mode 100644 platform/ui/assets/images/MR-Angio.png create mode 100644 platform/ui/assets/images/MR-Default.png create mode 100644 platform/ui/assets/images/MR-MIP.png create mode 100644 platform/ui/assets/images/MR-T2-Brain.png create mode 100644 platform/ui/assets/images/VolumeRendering.png diff --git a/commit.txt b/commit.txt index 03b9f26d8..54d66d7c6 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -158a1816703e0ad66cae08cb9bd1ffb93bbd8d43 \ No newline at end of file +b7f90e3951845396f99b69f0a74fc56b2ffeada1 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 974aebd6c..40068010e 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.66", - "@ohif/extension-cornerstone": "3.8.0-beta.66", - "@ohif/extension-default": "3.8.0-beta.66", - "@ohif/i18n": "3.8.0-beta.66", + "@ohif/core": "3.8.0-beta.67", + "@ohif/extension-cornerstone": "3.8.0-beta.67", + "@ohif/extension-default": "3.8.0-beta.67", + "@ohif/i18n": "3.8.0-beta.67", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 49013cbac..85b2f9d03 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.66", - "@ohif/extension-cornerstone": "3.8.0-beta.66", - "@ohif/extension-default": "3.8.0-beta.66", - "@ohif/i18n": "3.8.0-beta.66", + "@ohif/core": "3.8.0-beta.67", + "@ohif/extension-cornerstone": "3.8.0-beta.67", + "@ohif/extension-default": "3.8.0-beta.67", + "@ohif/i18n": "3.8.0-beta.67", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 220c516fd..dbec493e9 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.66", - "@ohif/extension-cornerstone": "3.8.0-beta.66", - "@ohif/extension-measurement-tracking": "3.8.0-beta.66", - "@ohif/ui": "3.8.0-beta.66", + "@ohif/core": "3.8.0-beta.67", + "@ohif/extension-cornerstone": "3.8.0-beta.67", + "@ohif/extension-measurement-tracking": "3.8.0-beta.67", + "@ohif/ui": "3.8.0-beta.67", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 38b07625c..6c6bda9e1 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.66", - "@ohif/ui": "3.8.0-beta.66", + "@ohif/core": "3.8.0-beta.67", + "@ohif/ui": "3.8.0-beta.67", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/assets/images/CT-AAA.png b/extensions/default/assets/images/CT-AAA.png new file mode 100644 index 0000000000000000000000000000000000000000..67c6bf77841231f8c0a50e1068027b037d353b6b GIT binary patch literal 43690 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

9v65)p3PPV%&YRbi3}*u3PdpMaU+ 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 N002ovPDHLkV1o9wJVpQj literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-AAA2.png b/extensions/default/assets/images/CT-AAA2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c51a6c2812d4b4bc8841983e9eb288b9321888d GIT binary patch literal 43074 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 U?HUOtx&QzG07*qoM6N<$f)!ljPXGV_ literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Bone.png b/extensions/default/assets/images/CT-Bone.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3f8c9efbf78273dca89413057863451275d201 GIT binary patch literal 38805 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 z zL%pPu#Sp`!Ow%SlC;LREob0gtUp!iJH)%mvYuG4bW+Ng8Ny^w6;A?yW>}vT*>T=`q z;;91!@+3}$lLHd+_k2yUVM#8n8blH7)iBfH{_|!GwA(6~zu?MkVszxqY7%19Du3_Z z;0xrBYjK%a8idn8;V3jJ>vuPALoW)=0Ej8F_tiF+ESf@EYxVaeY?bbBoPQi6kI4#A zvx0W{R!<3z7e}2D1bAEjhLX6JtJ*%Re$7=?CXgL>O%sR3%j-8x>n#d8@sLCVgd3E= z^Z1gHdN|y^+&xF|knjBA8+$v@H~63X!UXH-IszY5Q zw#QTNF3Lem%2^Z(|dDxhC)3zy%<5gy%WIl zIB)a7!Rz4Rb9BC9>)_k7!>GNAieK`xULFlaIKd_B6<90@zUK$1iv$d%H1NM;NlzG7 zn0VitXy$!!w!gw_(1E9oU^38=&m+=pjcf!(O~3rxhgrd$pT8G;psnWE`%nUy3POV_ zh~;BOot#5N`mWRKziFlZvcDJPpNTI>;Dq6g@1=e(xYf;>YjtY%;!ow+YtTn7`)s1(YsJM_+{z7N#)am1nz- zjBr7eyU$x|N9bSKWqMlvJ`ML~P*3BgFkq0GkKQ&NQ5}TX2>tu><0G*qy>X6iX?^q{ zs;scdn>dB%+72lrpCjDawZ%_k^_sXjVE`|T3h;1oC%mcs!BB}+)b^kLoSqfAaqHQv zs&B|lk1&Zl6%RNvCwwchXQAU)6Hxm)=El?D(@Vl#2G4@l<>g`7UtvOV+vmrDNWM$dtanji!?|@4&fI~ik z;%GGL^+YKPTZZ-V+0Mdoq+(i|I`IyE&^f6L*EGWQ4M>hkOQ56&L)B2wF?2>BCzOU; zRjJ}T0Dg3i!Q`BZeUNMaZL?>s9Uhezor2X@fV;^UK_s`W!erFW#8OR10*q6_&Uvp5*xhGs zWB~UALV&_pi%vftXFZK>DUa|+9_{BKV|@2NomTaY57!(p_{s`JXlaH&GL?d;zx?9K zP8QAUHQAXNCbjPgd*rcxlqnQwJJhF(3up1nfJ*4AQELF0-^Tlg6DUms) z^aOjJsPQWzC}ic&=2uEeDJz1TNJGRBH50Zx+Xp-llBZpq``pcAgl{wdc_HWq2-l4(LaRDIx63P_gJsy?}J$Mo~#ZUU*%oX%CqWjCvGHLLUv zMj3&`|O!=Bnsc?a4LGhq>UCwz~VOngyrmYoTn~)0UxM;FJ zfI4!j)F(>#VKFgpodZBpGmE6p)vF@69J;m)Tb|%H9tip|SRom>yS1iwx#vgAW*X=o zX!26)^Ixsb_t@&Vk6XCLDS4KTiwnZi)YCE#V>s(ct`QwlOVrI@>fY`C znO`QUJp!(c-#ei#mQ*lu+szI%myke(@mboJ2f9@SMt^gx)-i^-5ORM>k8edQsjREv z>&$o)^b50IJ&#Q@&)d|ommU8ejj3MCB>lgsc)L-^3#K zU_e*pjpRH81>BPm7yNAnk)2*X*o%&Jb;h*~XLYy9kbr;Gu2ct2HM-`wcRZ1Z2$K~e zzDPs4kL>!|_s$zeF)fcH{L~?|-rZ@PhDVZS9&hEK?Lxsv z$vf{qZ7Y5|MV);w`NVPtv1(MEI0~<*9^~S?Q=+9u31fY%gsQ&=y;?^84B#01BA3hT z0#GS0&Pqtp)}FGeKFtI7SyV8?9_>0~f6K8#WF5KuNWfO=@&-C)ZH1!=!l~+Ddpn!* z4uw2yE|@6>^j98_oPObayT0&OpqrGVUp?Ovy-T*^C zf6l`0bzqE-viP4$Vqha^me#3mWoXeaZ`no^AdY;bszkD`bB_=5u2o7RB1+9b>M0cB zpas*-Dsfg%piCh-fn|Z^(VEG3p0M4Z7K&%1#2MbrFrgO%wkhP!G%!Dy)DpUvAl(gu zBp87TNJ-yu+ut=fId@1RjO`HaAuYMcKwRowO0ip)Zr*mZahzLo!>8YeP{4O%V-%9l zB(DQF#OvaGRQbrM2*{5jYy8C^Vm` z`H&N6ovt93SgY~4H%#`fE}Z(YX-=5EdKYrhwK#wMK=Th+)vQ%8$yk0+jLKW;+-bHY z#8}MOF(%s0J;zAW+Kotjbyv+Vx?SOIhddjbHGF0d*7Nx zpEB|1Nl5b(b3@h(h3?bOO|`TU@Mwyzer*?3O=6xAQIc`@e4OdKt6gAT35bIC5a2%t z<{;f+0nZcJl%oe>y+9xL{Uxk2N>WRb`!JQd%G?uUl**bOQZ!TxqJb96tWM?he5zm5 zLw=lC$}PVQs4RLxu*vb#Q3jb-m8%)$8*42<`b*=6%ZVR{Lk!=Va{e`x`qNty!q=T+ z^=iPcdcSnPZM3`*+tMnwpx^{^Czhyf`n7-K18br|VcTL)f^{cnbUzBo+yXxJ5%yP+ z8u!0uOz#Z0$c_qYi+YgHzIigR0Va=4<4Plyfjlv0*Sql{;{|+@$D^r{^%e_RA)d5K zT!jpTzArXKQPg}|8)&DP`dFsvYT^w4RoiX>j?+v|mu-^dgpp;3aIgOyd|$31S6Ug* zlp1zJBN|oT%=oA3PYB{AH6?BxH!oe7_L!-E@R}hO(YHG-N7{ueo~1o64lw@>!>d@! zhr8>^pX9pNIZu|<3&epcEX2aL0)eB}nVF?%E@!Sx4@;By+&EAQf0ul@IUJngakCiS ztEtMsCHum^d81W@#@QLdXpPKV&N+Rp;)&ULT``boRa{Q2-S|YoI$UC01xJ7L9v&GD z&zCyQtuKQBlc9m!ZdZ1JY7C-On9x<`UK-=A&nR{X_HjUwi)hm4hx~=?>Iw{>N5fuS z3xCH(s#`_|pyybqAJk*K&S+m-I`?gk%|oT!f@qHZhR@NE@JDiRrK;culXNWWePLj^ zl~nc6$Piox3Xpg@wd*$8D6~|tM!(Bq2<0MstitkwlEI}pxYMYg}S@162U5P z_yP^UR6>llMY?M=TT)deG1C8D)wy;3z-sFq-lPr{nM($O3w>Tk@&0n z`$Km=;)=7iE!;g2w}(h*o@sKe64_X>H{?VY7vBBEe`qyBIt5A4fGok+UnhV2ejkId z+fv>hsQ8wo8NWc<9voGm2_iNZfNEFPX&_+4fG7prULB4kh0_J~;)@bH6lY%cIkl`l zICLed^mbDkW=@HZJIhniKVJ+o7Cg*3{n?qPZsGIVpNE(bCzEV{O`eXU>gU~>;y#Ov zG0~6l)A}yT&(UA>9=E0)*&RGpD^(md7eL_7<;DpNbZMy?xfWG~gu4(IFb9J@kCnhw z12tCex(@G3Eq_f?NunO|=l*6(J}U_(SLhkBng1{_3l9PS8?6t|Tnw(J^#@-Pr+|x| zbt>!rW{>6U-CHxYesl;m;ELRaV!z?!NkGxe5HKEQRRseATdyi>uTC}Ir_&1K70Gc? zU5xj?bZc|cY5rXu@NAN2*mI(7BMk;uV?tc!DyPF-Pxh4-ZP>pYNN$f%%4#4 zS^F}!)`-CkVSyWHFkYTD84p_(JttQ_xIKxXmBF*KnRK$rFGSqvd;q)FJmg?cy#Rn$ z(Z&IRGIh0s#!iGatit=7DQS)({vf28DG5-i&KZ)>()#(jmGBXn)s-v?O zT{Z^8msCPBiRbCP7{@=^-&H`B@sirNxyr z5FZt+ToS#S38uz^eHvK7EAg5O@zh+A{MoY<7aSl9q^MMdo(Bp-5+@4)@A0#I*9G90mobinC+RNzwjOuJ>g)q^lqe57$F8^^Bz`Cg4#A=91q*w5tA@u4PSu}@%B0U%|P zZo?1HhV)9@IMlVyb`CCn1~pF}h;-w{Sr1ZOa4pQxM|CX?He@k!1+U|ssX)>Kxaq#J zau2{HzKb)l)LhJ8iZ;UFcc=5B;xopB_ess)Pald`@^B}hZbL-hXII^pAQ=adU)2RY zZV$Krd9_UZgh(KSHQ&qKU_oFE*i zH5y=OnYcy$qdpeue;xU_GhXSahv9%@X;B2Hh`Ph3SqnzHx|!lqn9z~G^B^%mmadjZ z0h`7wev^do>V1Tb=vA(S#{dW0EI2yK9aOkh!8);khli=C1VqwuQ^~Gj$>ybGHQ*4K+m~;Knry0#`vGbIIf{QghwJOg+XX)Srs;nRMkH({b(;XN4vU ztSA-7bq+|?v}|@(>meWMRkb0cdShf@pybqxd3nmMHUFyqbf-8j^J)Xw$S?OghIw+m z28QW07~G-CPa!Hy_N~RWuD6a1pSFq`Sd`H@X{e(%et#SnA4i;JGkHKSWp~u?1_j6K z7aBV$ZMBD<3HQ&qVpEDd@zjvPpQh|*;Y$8bDFXi_PE@affAl0wK#8lK09bwct3z(c z&(|GO-Vexfd96PS`d1C|f7^Ujf?O66vrR)}_~Q=tk4N$Gxl*~s#SR{-+NHt%Y*_?B zZk1dQOujRi#i-ma(M=*k*n`!%Vf9|B$ehXAd%?F{*8$OL4U!xFDoVu?;n7$D0E3h< zFWgR$FF#`mgTXADWt_e@=!SHZPLH3Icq8!hD?vF-8RRh5zgP90cJ~Y;fR(o-aBH~< z*(6yKb5Ldy_jI+ekYMt9k< zR`wJ49>IsjQfDycMRfbO0u~T<12Lv{1MGq;8(ZywKwyF1^Vi=uOeYyr*?wqb`RMnY z>UB*+sBX@!MA}lKgU9{GUVi;YxQHAvSb0{5f#{(7d)YFUt_?YMoAwUk=^B<0T9-9V z8}C%^Rozg=VFX)E1qUsM*bF`z=b+j=A!Z?FUygjlId^2fwHSbBX-zxnt!O-K4uSVh zwow4by*%D3-hWJd>QRu?6nBlJdiNRxe+Mkjk7vsrcmr^5cLeZ!?*;o--_l|B;~9zQ z|8WcO`^_&A&hEzhgl)!}8I(Fqu0q1!KMDQIlQU0kl$0ae4W5=OnBa^vpW2XnNK+Z0+ku$!1zGNp%;tgxoG&fhJ#M+fHUH4qHa47OOUKpq}0 zx7`2bG7*yJfyv^fVk}Oqrsn&(TI?pa%M}CC^>C@DSpQ19&j{LrT87>hZUwwN+3rZZPoYMC>FES!7(YTxU|M*Ng?t8gbr%#BZB zd6rcQi7Z3CS^e_w;=TChe~dognw+?wD^l44nR~QT{HM6Q12Jhw#O5-oNmEq5xgF8} zAO*R*cRqj7R9zkE7ZUhjSaqd|dsF-3BKYXS$Fq2<O9TG;n<^=FLm1 zQ&WgKlhy>0?OJk6EDMRKk(P;(sDytL2&N71YiyHG0{+DNrNY+dJ{J4P5trTKRvvci z#=gH#Yn7CSO30#wyi3VhIhW4!xZ@$fm#}5u>gw>`y5BjHmC@eH-$pHX*6UH8kR1%= zdL4MR%YzA=;`{jY9Nug$mIR{n#9FnlQ9;~}e!Q8iEGGvfLZA415XgsK+|l8nq2`hm z+{bO7If}`#JX7&_VEV3Ww~fD;`D!Jw{k#|-akVF<&Y(uH&xY}i2S)zoWF@^FOv1L# z=CHv%xQ`l4u!9u8saMdw11~td6&J;qd~~HRy8(Di7=@uS^qo% zejIZM&54FFq&0B0sM3~oB>F2^2!0yAg%WNU*{inFX#joxsBUPGuf zEEJH9bCVVH*9vLc__i2Xj{RT&kKr;(m1CBq+@2N{AiOe+xR%Dj=xB4hnjB&X1?cMJ zOjBs-P2;Kj1C7PVwFg%b&I#t|07(f_5QhzY6V57`JbkfE9GBQJ^+r_cC5UJ8%?q8< z6Rox2(M4(b*2#?%(RFP%H$zO73tX305X4G2L9jAMr^KpE-|Eu+Y=Mfu{o_<`eUS;n z{y}tKd4^Qh=jAjxWwe257H82P!m`!_by|(bF^TVJ7_HTJ{Jqu^ASxag)q*b`XPOOL zf#dGN0CrPL1Mg=wUq!bxjI^1E1ty_;fALZtPPr+JwhA2kjc|5_l*P*J#ez_CtnMAn zTHh0nM(g9$P}%J^=|xKlB^?8Azge}9rJJjJ8IORrd^kjr%I;;i}GK`K06|oHVTC??32q0j?SL|#v3{Y zYz$*h)GWay!NLAh2W>sEF_KpZDun6gtexf7@6!l=V^G2t9J6mUA>v; z_mnu}9ICy5L><~2GkO{?kIvj_(FA?a>&6y029Y}FuWaa}A2cJL8w~2bw84)~?m}{s zn&Zx&G{!yP2%1iBc11O&>lj4OKckH6@2OxB4p9=*)U@o^tt2v~WRdwnWxGx8!>K9h zjWd2#-&D!Az$oTx)a4cF&;g!|;mfnj->YUEeOkMEm18a8Skh-p^~f4uzs8VW-dM_^ z!fXGBjRvJsKSojh#m!=;OU0yN1A}-?W&A)O(IQtluE-!39q%M^m{`pSv#Ulha6}(R z^hnu|QaGc=3eO6^4fLiyN~Nujkp6&BpOr;UzUN7AsGc6;%HV&-Vry?7pw`+wJ}01aRsmg_Yrg_O zJmL+#Ze}N|Ux6UuoTPHBr|8t5vj8!xfEG=^=-p45VS)MC)nqrXic6#2h!SQVEm)LN&HPpD*p;uce366j`6KiU(wy}UKvH7ADpt}tuYV8I7v_(Kceoo)OP;4 z+u?Fg6_jCR#H_n4%&jHEI8sc|vcKlmZ0^qm^Ut)-dNLkJRG1(GTWe?Z{NP>5q)P!y z)HN;ddgh_&?VY#Ls#WlBFZ6DJx%!K5BFzr1`EXuwJfc6dpNQ9ujRLRlF21LYcFu#N zead!umh}XQ3b@vCm^!|2fvrw5unDavn3Fc9QdiLd{``0fKggN-!`+tMQjFH0HYt^k zlTQ{FR$8#cMGXUB14Q1Yvk>8fFQ&Md(m6=3eSSZt#}}ssuE+@k*h^>t;1nlk!ijQr*X@mLx=uLoFj7IPE93Cr+`%sJ#VQkRh z_4mTSkCKIWWlra^j86RmlmaGT7HzdR)CG<`0!DFxTrb`?P!YH_qa0 zwB*}8zA_CZuI?`ZCSY$tukWgmLztv-V=%yW!JZCo9N{5m$L%&9vh5*|)3gwgjMUJbw78)ePtV zd-4Y&NL7V|so`3${d2Y)IZtB>5lJKX-CVPSFV4bXQh%`;y&Rm{eR3Ou4fqZKkO%_2 zn#_IxB-^fZ2lSH7-!Cqok|&AYYW#H3iF~107!H?W1C5FLJ97D`|5muLx~$S)bZd%Y z7u^qNWzmUQcsjO zjv8gf5dL}Lr0p(!@K^Bk@SYmeSsy)$$h7h&_I>~2w|auU47 zR-|#oj}#0sX)jm zOJFUPI1BXMxkcR$6jv+#U>qXOi?;)Hd7R)U-Tn+m&jgl~gQM`jSA2_kYQ(QEZ5<{9 z7I>3|tMj#Ib$xAKXUnkp9IIAc$0JdK)~UJ;B97*5a#>|9ExakMKy*Q7))a{t=g~hN zM;ev{0p&3d3K|h;OD4ZZ5jK|TbWQzd zt;)u$Z=X0J-ps1IM!R0LNxRYld3($-Xf@WnIqj(nEBlHUyWraJPA>kBlJ}~%l73^^ zYeN8>{2~$eJb5UC;56hnM1b+-ule@zz$Y~GuPz5LEPy_f*mQ+K!KxO$^5xF9@L&a7 z`fm<1w?1Kp7A2K$#8l)$aCnjwGO8b`Kg8^kB)F;koFmGy*KdgsfhwuKyw-j@SB|q8e+xJKwwzN{H!=>DY7$`Hu~=} zDJ(pDlr2f=^Q3t|jNRJouP~c~*K?lC7>AwWj0KIGmN`pHJguqJDy)xa8K2)}6M(_s z>kpQnFSxi2hv>)wB)Kmur&w)thA9vr69;ispQ48kdg4Fm0_$q_$z{i1zxF@$)oxM@F*&6Vo|oh zGH)sIHPu@d_i*rMG0%uju&1nhlmv{%`M1?8mP7w5f0?uO_m7Pc zs`?nedoRb`{M-8Ed19~97Eg|w5>Pj$2e|`kqLto-=!&>9)QfhAghOgicbt@O#<)r7 zrM3?LJvzNd0qtd8z$Y{xHYq+)?JrRyIAi+)*VLbyp@2~?f>kthb(0>?v4H4_WUpIZ z>`s(+Jy zl;^+K)OoiT;DH!whQ3b3d}tZL-#2fW)r9J!xrep@WB z+_8uBas1BMoINX1tjW5mtF86jUb3OS;c#`ebdJs6%i((fE68&02-P#z`rWh&gENDU zfFCC!H9X<+-?>|)08XzPQ})Bn-uzkaAC&tLgDVLC`R$fLL1$YVO_96*H>ePj0@X_1;z`ljn(zv~V~H^{dR zB%`AQ;1>1Q`E?_J$xBlhCo(ALJwSdd-f7U)IhkM=AU+%bf4Mhu2 za?_trA1lnR-X)ZcG=iSQ;~=_Ou&H6*NiLYM_Kp!26Bm~Z5fBURscg#c1Z2&6R+l<< z9KX)?SKpoZ*!(+#F8L%zk8i-kaD?!LH$TWs z(iQtr3@~Cf9qjY{&rrd?HRZ75i+@SSvf7;@jui5dZM^(ic(V)`7S?R*#&RttArngG`Qe$$bKSMO@n3;Px zj-&KackNg14Mx}WPG>tK7ye$|r0(xLl ztMP;w2t4uq57zI7Xu3-IVLDeT#IZ&9PucfoiEtmMc5})~WrlDeY z60hWE_#^Ks2nT+OG|5(Pm8u(}FdU7`OEx*;-mg}^wQ(_Tn&YIr zcu-?}60v2!UwGxY@ixf*?i&gs1-mI#DQj5P@$pvY?{2o`Tz&sk8SJWE)-%)hZ8RDf z2eJt0=9ZRkvZUsiXcg@NF*i9&c8M(*JpPq~cM{`2l$$&mjTcl)B1Y&0&@IDnL{&2k zZ~-DgOI&>uhW;&Tm=jzhAV0ur&Mj}bX~#cb`TCoh&Oix|J0yGV11uG;Ewx6P?ZL)g zw;}~}&3r!j*y-Zx-TtY?{{prWl#3Lu z*fC!;bP0doh^CkfdfKu6GRX-$|19!%o9W-c&VjLjVyWv;bLJCt<|ZCP=rG}<;$wjGxx8neRcNiW=*S=Gr`7r{_eZjAxLOxpO_nzN9IIh?xJe$I;4l;8rME8j z1G4RZgdQyAC&mU2kW?#Ix28R^y{dFWQickJ-tHzJJLmtq+~i_$_Z}fl`E;LSw;3mN zqe8VA9LgGd=i+$-e_v6U%ICVw`vxxif7o(193~}<(|n7i`e+A9YTX|W37Y6t((1EP z92ueq7ARkl+838PI8KxDLw?+|$5wd`x;$FasP|D;?QRJ#kOkKq1*xxy4umd0e_n;n z%S3@>1lYQ0Ty8lV$*(@Ercae)>9NmWLtN?O?O^m~QDjuTm9tq;ihL5L|LWf^y3E~I z{t_Uh3X$O}LEUx!w0~~3*xQmFEBXXLfzzP7**Y1wU~r88^F3%ZVqH8VS7l#T1Ym{| z_(~|&4|o)hOGsvpFKTLnV_16~E8R>Mi+}li6@6cB>wD!mb8FLLPwOuDT8hWLnV@Rl z)QUJwQ|?A#9ICKBNvFFDO+rQ8<{YjXnSmRC4+|~l^d_F(;5ccEykF@ybok5X!)hPB1>m*2=dAG#zmy=Qp<2+EW#c*hW z_l$2`VA^=0FzZqwbZw4$QL%Sg8||>mSFr0jG5IEvGK8-gVd8lSLflmM&|k-`hO{%pTLk`4!^y1x4&D( zTUq$bfn>1Wb1m0haT`n0VJ;=cCljjHEQ8kUTq+K|*L!rp1Znb0qzG z$|w5b8$HlC6MVarOSusJKhJyme6Wt0g=k|332CUE)pz701s+9+lD+Bu3`U@oA_QTxr}(?gtiC`el>N-*}T{PdF$}E z(eMjpUl|F$F!qI{GG3)>HmXA@Cj}Ch1Cxx*)4^2EGCOvacn=6#^X}c}U?{Zf>2(fQ zG_#nf>}|wDT-Hr0mSgP$PJKKk%)&xuBenT$!}aX={7p(l4?bTHD4ZXQDW6Ub)>rXx zC*O-evFp9%{_DTzmH$2d6#g%xQ$C;I{`K+6StACHLVqER={M&A=(sl<~jCKq^c>#h!&NcXmy^WP(@~ zrsJXgi3@-Wcc=pxu%1-e%U)krCSgC=vhfs3 zBZ?5SuirL%_g2&igS(C3PRYy+7~foNvjTWN=4yZMaXZAjqrG+MFPTxk{KOOP>mS~+ zaB|&>lhzxfj#fwav@~^#lSz!~@1uZZ{QKf3){Mux0B$k-o8r_c$YSIp!4Ovhcc4&E zl-UBS4DI8y2?bLrfCmG_Y(a9x>#MboB3M%9)?g2zaf&Y<^%{eXDBBbNc`$ZM`F!!; z3wZgIl;7`%B|k)ae!Sgck{;xV+dPY9W7_)LP3xheKHilYoU(COlbR2dZB9{8#n*!d z0~s+KVBMGu?OLws38W(Rve*$_;}D>!(@zS&Dfn=N+d z(VT{g;J2pTGXk+fMzjzx9A$5F%Mt9+wfjV5m-{u8vY+$7?XT@+ z{@D#8Zh1M$ZA{Ph59wNF^z7Kez1fi}uFY8rad9N)uGL~|E_MQi)JzkOH^&H@k6_#i0-SA>k z<=-!}pON(I@diBhsn2ab-diX*EunxgF1TK-iY_kZb+&bef1HIp@3>}P*oIx? z-T+c$?@r#S_euRIME6Duqs7KHQxI}K&rUEAr~+_A@o2)7ncKJkm-`#U>GHV~5q{=A zv=aBS&`?W;B3uJ3!M52rlon0?J^Qw+R^@|%!VVb30RMTgVh^TBNJwq=tR$US&0x&a zv^JaZ?bRia+h=}CFh~I0%wkV9jW2IqJk9C2m@=)A$?+2NDbdU;m)UDNcbGSrFr3mK zLaG=|=;^C|d{-_f27IFd0Kmi@K)VmF0ie;JL7=x~wB7}&tvP|Lm?FUhVEj#Jt=(il z$vi6V2DulpR+q96hs%n6SyeWlEFLUqA$9gRNPj17G)(C`Pm-@EKI*dL&2H@VOBnU} zlVJNj&Y;^GUU(G*+VoyN)3f2KXqn%`oOHG{?_oFhR08P|O)P5qJklub@U7AXry(93B=Q9>dtGc{nnQ4^E$DdQ#GSH*e~r+lRxI#RKZ zs-6i4PMkz~sQ2OG^t6^00ehS#=EoGozCD&fR>NLKsCd&(|kF^AQ(Y`JpIyMON z@;!fQ=%^pXz7jt5{NMjCjQfK6zF7+x0Dz`^A&qWL7;XViLpvG#>8-CnR~8tBx~$qewp9 zwKRs#y}4;|WbtaIL0Sr|A**-%VBW@d-zM?oYc{2m3JA&%6Sh7miEJ}EE_uPLf~jV0 zEo$lpWB%1|dCPQUDbnJ45X_GLB^pV%PVd|GQK!3X?Us^~J31 zQw^yI_6gVXf<6I-cJa)D09KjREhy#ioL-vuF$vpv;ntAyp{u};?9zj-7{F2$2AqmR zqNPfy*JM_Zc{mM0<30-(u`E!E{YHNcVqZ-qGA1EzsbpHxN%32)?|?-|>RV6DSx>x;kir5j-II6T(2ZTR z#YJ7Shrsay8UG2Uc3xgO;rk1b6ad^^IC3S)j+4hzo+iWxjRehIB*w1*<4UrZKZcI^ zcTbFl?|Jx3L?b{f4meS9rOD2$HZ_#$PY)bNOwWtQiVj)h963*E=zVlF`@e!7TNbdS zy)y?_K}Dce85wlh{HwA^;4b}BTY*)<=#zBCh3SlZ zQsEAK$v$U|r*3YWrS=ixu1yBqiY!50q?)Uj;Sz-KxNAS&_V=9y9-^h? z0>SXjbYU5_dOvdEQUxX_NGJF3p*}@WRx;dV8b)Quj5aHivusvJVN}4X42CiuWE@p)(7`=IC4#By6C7~F>*0Cnd;SiO z{%wC9{31uJ3sZl-SrLBq{O^=B5{=HYAmg3x1=A>I*6Bwgg4joWH+gw02L{4F&evn_h5|PDSI5nCOZY z%iDjNL_(R>kpu)EMoGB7h4+Ohb(dL1g@l8Mxd{gv_ln~YG)^||DY+RzFv+BNw76)U zX_`7!H`UUpa;NO6s?F@IqNE^{21W+vAw&dh^l`d6K1^1MOd4O+bC@*hzc4uejpw)4+1s%es zoLiZX5KzWjR;d6(%Q^Z7X^+±WgmH9AbO8tmS2crTYH3>eza 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%0D2oc843WX@NRx<>& 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

`~8H+Qpj@vwDv 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 M07*qoM6N<$g3XYsSO5S3 literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Cardiac2.png b/extensions/default/assets/images/CT-Cardiac2.png new file mode 100644 index 0000000000000000000000000000000000000000..a281b2425cb251a7b133bc2215a5a6e3c97711a0 GIT binary patch literal 51499 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

3j3A|IFzW5!HerRq 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

c5AYdDO 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 Qk^lez07*qoM6N<$g0Ax-#Q*>R literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Chest-Contrast-Enhanced.png b/extensions/default/assets/images/CT-Chest-Contrast-Enhanced.png new file mode 100644 index 0000000000000000000000000000000000000000..be165b4c083134ffb947a979a45ee6c41c66a7a4 GIT binary patch literal 51275 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 JPDHLkV1oaW1Tp{s literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Chest-Vessels.png b/extensions/default/assets/images/CT-Chest-Vessels.png new file mode 100644 index 0000000000000000000000000000000000000000..23f8732c56d7b2be74366955d2d4b6dfcbc2b1f1 GIT binary patch literal 52568 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 literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Coronary-Arteries-3.png b/extensions/default/assets/images/CT-Coronary-Arteries-3.png new file mode 100644 index 0000000000000000000000000000000000000000..088a286116799090ec9ebadd8869082114e71a3d GIT binary patch literal 53425 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 ezwOc<9%Isl8Lb%%LVQW004l+ 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

d3bn4SMrIvg{F0M&66z{ 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 nq#UzpN=2^@_T28z+wCOg<(sBTh!kT zr&A5F@9zSfyLaj?>$l9BSkmzS^|projzmi|U+)PJav z24J_e76-O>3K=*znE)9};-94GSaVDEJqOX7QsSY>)<_V2={v*spZ!&b;9#J*tR~Tf z5vItdd?6zq4Yb3HCno%Q8i!CQ2hRGBdfYJpRr3~!f~@B>aA-Q5eW zpLo(LaHUYE*4gEqR|dR$hn2BC)8Tx7*48d-#R%L_)iG^uXxLooK3Qp6?pRO)EXc8@*pJlf*8co& z#3aK7=cqldN>(1V`=X+vNb)xyDch#y88;;FoK+%9N;T0BZM?TR$_Hw zn-Lc7vYgC#6dw7mWev_DOb|<^xqnd9B38oRvW6?+ZpQeNY5_2ePS8)=sEW}QlnT`4 zb_dkPrA0*UoB?c4b?=R;>+~?G&8LPx0}RFRM(b*^$_g5r#-(v@ipuIf^!LiU4uKK? z0;AM1S0~PJOb7{@S=Q?aSWL0&Ag@XABw%Nac^_ph*N(Z?)z=R@Hw`$w>grJ*>-)DEG=n#OUJp9}F+# zxyQ(4-_{!WsVVL>jFtfNO+g$Ap3Y&Jy%*Y9AGst-H1~(+8eY#TeL|sJCK^=U3F7VF zvk^@G=JOO2zxcU`0@sCMQa2H4=Z{VEs-}4}p1c-eI74_T(WVGs)a+9bWC!RN0wBZ) zf$MEzXzMm4$C3T5EhGUomSbbDW9pQfSo+RYMM+U{q;d5p zaaNKRe@#yIh4UF-&zhK+SU4a?Z69`@cJHdJf9tK(D$lp#;jYzDS#R!a532j}vQ4en zsK|5lLI|Eqbs?qR;}?F3TTsPl5pkzdWOH*Y+`YzsWs-;_l0L0$hh8Pa2~XlcTECiH zX#3x^eeQt`2PJ2Q~-AZ2I5sJ}_Y%oP|N-juup!PO*o1+ZxL=CK&fx=L$Z2 zM8D|dVDF@TwER_MgZR~lfal}A7HIB1hmb0*=YkkZjvVwg0>S{LrC-@(s2>mv7MTvs z%cDZcN~?S4`}->a_p1K3cp6ldo9Se{8+h}h0z2C~Mgy*Vko7k0GhVHDbMkWSv`5GG z_^pN0lfCYfG;hP}WyL4kJNqiD50ujv)AU?Yg{SJ|XowT{V`uM?|M=bfJQjR)!p*C`b>8at zOiN+Kbg;?*wU)fBm@ZR%JLtiKEFtRg;Lo3E((n8V1K2eNIIGi_N6!l7#;SO58RDP8 zd=H%4V?*{}kGYtzwd#>4oCFMsi$ zb$(GJ3-i!5^WjFZ5f*|I?52*OZdnrQquYcSSyOX#@ol#j6~8eVBW1Y6uZJ ze2|O+XG?HUBzyGpp7SO8h{$kf^_ATLH+w=|*ob|6ba}b>s~_`P+6)8<1gjuo^j;o& zS7sb%g8eO6lb8+qcY^)VeAr&hYtB?&m_^(R;n_2sVUa_PQ&b3-(WA)wN)kgTBxBz7 z9Hg+p`17gmefNJt#0W~^-qci1OG}FarJzagG2iJgJ@rzYRG*@JIk;>r+P|f(ZQAuS zznVhu@lND3rF0`z%HKZO`u65*q5XXC;}f$zSGuDjQ#NN(3h8=pB93DKcu5r1MwK0`W(CNx}d$` z-fP+A;VNq9RNuorU%D1yhVHgMbDi#Q3CK@^&d80Be)M>1!P=fopVW8Wr+@n`iz1eW?5ZYX78kR61h^mfC%&5VViZh>{kFVpnkQi!u``56`h+8b7l%V| zwdOV0dYO*KX==E;%9qG(*Y%BZ-On~t;(09bPnNJw(^s|5!0@P2Xk+H);@7Vww)MwZ zQCqjs#B3B2nUvV#NvpRRaPsr>d!y(rmrpa@&UvYziM8FXqow>I(eqK8Imhp`9<<+u zZU3?Lo4@Tf2X68-s#a#y#EtOG7AE;hctI2+_eEB-j1sgE#P=^kj*c3)Gf8*c<( zCEm?mG6n0{)+J|3O@AsOfT5!!r1 z(209ngpzp>#_;R16I=1h)wGcSsjss+q{c_Dt^!6)dGn_reci*Ay6*7+6^d`l_RhH~3sh-QBl=Nu|FePq#)# zM~ox)g1Wtx{}j^{A^%lAZ%^Wtc9ge0 z-ia&q6CV2~J5s!l^=OzCt-fVBoV|`nj5DHmOY9mmb8qCu%kks4CNT%`0zT0l1%2b!_K$24$MfEi z$pK)x_sXp9g-Y$UGSZ(6P= zP67>G$gy5}Q|@)^%8?)hPnv=;pGt5EsldoZSy|bl&Li^M5{GTn;v7x*<%i->&vD?= z5-^vH8)+t|Yul}|2@U?{ig-F=x)L6!*y&$0&=z!hauTaI2C2$7pKWiY#h%f-E zaT^=X8fG;^zk9VhaysWW&Mc_Y3|{xH`vRP~h_Zin{pn<4a6rKJ-_1qmrYaK6Qx7S+ zlbm1=)O`9)ZbepW4pH=Wvp~AEXAmwrB%1P;_u@Mr#E$iZo4G>J6RB7kVQN_!xvXrF zRuk9UjL09R<+}mR>lRxbwLKhqB9*;8Zy(gI$kXr(27neLAr(}LkA?YI8-SG+(RO#Sfl4;Z|hNNezLM_I zeZJsmm2|22&pkkz+kG#ar0OnGM+au+E`6EUWqT+P)+|ALl%gDre?z4<4G#~yk^BZ6 zEZwe48TqRfQ$o}Vjqxa9pGs8Kbj!P^$Med2#VU$zAx(?u_gqb$qlmzaOLSz!X8iNV z6_dAZtvY=C4}VX1fnMU^WI6VfqhEhl>ra07*LNKZ(#)m+A$02p7EG&)Zd_FA9g`~1 zY4H@3oZwnQR-u^a1qg9mm`z*24~8p{u@YG@gCc$8TVQI5tUbd+6Y-t1$9=*EQxtH? z7Vp9O!oDj%-L~G{FPW*F5@8Oq0>4t2MV<+VJT{O1svrlL;KtzqP~7>i^ge__L~IDN z*`28~Bi~h6a48}<9@0^m3el%DUK!KvN4u~W~3J} z$|{9^R~V!^H0Ym;RdXy5sP(Mn>HFRp*4ueA2h_^;#NFz9JV$%Qvhe2jwN~}d^Q>jQ zl~Ap$$`;{rFpi5MWx%Nj6H+!N#a#B|1~hQA|J{3E>)96G{x;u5T>{D!RaC$yGC&r~ zH|qQF3!!0}NOczd74SPGTP-v^!0*9_VAY|y*7^KPkNV}kC#omVf**E_2AR1>7K0Yr zf_7%iTW68u?`VO!kHYVOoF=Wj>>lVO4+#}eZdO1is0~Acn%Tij$O~GDliI(ZMgyEm z6Ei@A3J@qGCi$Yq_p`j*67MJ>{%+@2_2~Fmem>YI;QCf6(+lSNXkG0pT&aLQ@EHvYt@VmbU8Nta zqa(^vzBJZ`cD9g6v|`qIHxjV)N%fcq%eiCCD3f|~?wuJQg=uvK(|)gz;-yF+~~;Kp89Gri}S*vgdBGu@^_1;uKnM?o4dCow+?>(O!l;j`%12)MTg5Y zNTkzNeCtaKFH(`9ov0NH5uQ(V6+Ww>n;4yWUGtqrA__8kr_Xc5hy@*ct_01*^6u=# zgEy+75|@j$*&=-@&}#v z6YLZP)B3oVCdA5wmCZ96y1uCuEK%9PCOjc>dvxS>G4pv5Qs^xt0e3E%ID93eCW}mq zAU=Cc&a4@ijTIPI(vmm^jlh_}-!n%2#(ZC*j{ZbEg1fZk$hvKk+^u#FNZ;Z*2Wr_k!p`1o%QyW?>u`24IYL&S{8);8{F zxtKqEPq}fz4Z8*sT3HdzGN8?`T&X$ItmZC2Sm#^V#b}q=^c5xF0#_n3?LAb+C@WK| zrohA?@nQ37rXczZO4oH-w3d-B`MRbA81j6ar>&gjXmydiufgvkb6y-jiTSw!5fHNx zBxZof2;TE_iKq(zCP5}vs|w)@4T-E7wlSTu08k7H;ELg_MoHt}S2newl0opo4+*hZ zp~4HV{B+!DRoet;T!78q$XpG1`nhd=3))jqJI@)F49%NzOIw-phRGgooNS)IWLVx; zXcZnf@Wa{2egDtw>GBwP@!QLud-0hK>&vsPo$am4kMs_DddVuI_#0tB5~{k{d^9Bj z>u^NXbeAjV{^|E z3o6eZ;7(f}GgT{kyFNF2I9~ICTAjUATU)D;e)y+-53s#9D<4~OaB{e=Gxo)wW`JMT z4RaE37anT8*8(SM(6U}kg8nc@0msyzT*7ge-#if@FmHU1m*iK@euilK$WSbE;jp|U zG@S2+owbR9um&9)a!~37E?R!e&%2Z*mc9h1`X|crszX&erdzb(udebfwRyJ>B?x-@o7cQYzd+=H+rwNaE+Q87 z)_By<5HHSiknGiqC?o-FD*(MP+cJa#3zn~brU&#&G4}!h3wx)tr@K+=h0F`xdk?7- z7E@ERM}|UNw`EA3s)|Z{^RHMvJX>-sXeq-a;_$$t$obfBt6w*^2eS>TdfLWTS~l@H zLg2e1AwbQ@aB&i74&5ev}X+R(YjG+HM{$unf0M17cW%_~DlTae0SBevav*_4H zgSR1pEIw75R|GYHB*PDx?|gi0!8)K?6b)ub!lg}r0haka1cK>#`!nHDhihRZGyp)M z(DoveVEDqq=g))VKki4#r#H+#%NDM)tvWmLD)Yc+y|>Kq#?GxG{)rpC$au7~aBAt) ze7GHuD_%ysu)>nJ-!dCgYR_4LrS0pE_se)C1K84Gy@iF4SHn!x)XrMl zvAH^nDsyKt7JS{F6Mhb#tOrw7RJ=%Uhur@)R`w2JYio3DWg~poynCvdLvpdSw|e#K^t{Y*sl!13n7O6e?nvx%Y*bOnTO|mU9ii$T*A71zksYliHLA&FVo8Flr%;j3Peu;+3>lE~%I zP`N?s+Xsc;d|tM;dgtk83K=v$L75<@rlve*XQrpq7T-!iidX^$Bb4=S+xkt9@AT7Ow*XD6FtNO(AcJB>mO*&iOfSNlm` z6ZEAsEC`;p_$+$MxYN95VlwVmr@!|R z|A|MK)I9|E$U&cO4M`VhL=L9mzm-{RFXZ?hXCcx`eHs#B7-W^pY*^VC4U+*1l0KCn z1Sp@Hp@OU5P!J^givWtm;y`jkNh(LUApp#GKXF z_vQqi62)(?fB8e2$xk=xUtBzn{kZ3z?wQ(ujUYrrw8>Pe|7?q0@VB#l zpEoz90k!q@R@w2171-=KIovoNkEcELc=hU4n>N39fpc)xGF)7WYjMZnA7%BUZ~ud$ z^A2b0?c;E$w$ut$t7_HW)TWA>vHh%sQhV>cx2jpho<;1?icq_%VinaCRkf|I6xnHhbKv^}shB4HaT+umtg1Oif_eoQ$yIET&tIK&e4WI>~uL)+QO9n8i!mSmrw z2-4tTE3z%9T&WdHVSGuVTG9s`B4kNrcqU$5NvXe| z15ZxVC@9m(ZS9@U<H+A<1xVZ9`zrF!(cZ5jaVs9+VW$L}3EcqfFt0Rvpjq(-Ygox_KVm~=Swid(klrO|= zn(W$*(t!@X^*o6`jA{=y4SPENu`nOEwVjFwOxkj z7`e9hM63eS+fO|`>B)z3U}61Yhl(G(PY? zSu5P@KG5YeMi|(lHZ00$D#RaoD1; zt*EkwvlYE<<5oe{?A|FbV}CN*oRgD7Z#z-qemiA#%`=)L=CV=*Gbt0-<*LY9aR)WG zw$5${%(e~(TQsd1Do5%wmGWUZQe~g%U`5;@`S8En+dw5CxWtkE>g>!g@ zh_MBpWH>@U!~TLr8~uRzBVve(#x}u_THNC2AxNJ;j->3qQ*Nu4m2@MW(r@l}z;9UJUeC{Wt70vJRO2jOUuUq}9T(IYF(DKo$6>VyU`a%ojB*lzAK3<1FgG>L zc6I{xf}lt$+#fUFd9Ijgx>*WC=42uSwKB1yczcc*jhN)vg_dx)B5yDNBTr6>vaMf6 zw6*=cTpK^x-SVV()fD3YpVVV~h%I8uvN+{*F=(alKFdgOO_-F2)WbP0C|8{Rl*{Y6 z@i1n>&!;`7-N2$5c`kgry4BPRyhH*u!ff+44^@LBZ0XHU|M|=nYS2hocf;I6WwQRD zv;F1Ao?TQ#3W)8+>(0m*jO4E93xHZ3tHK9=GE-3w(&&Kd1_qQoVP@`Z1l~$bkO8l9 zO|RonHq5l4m(YySka;hrEO3^n3C)0?tWc6NiA>=HcUG;l89)E43Evi>rt~6T&@2m? z@AAV<-bV%yupqCmVkMlNkBCqM%oQbBrX>^(BkXmny6scyy`76Z+c=(%cNZ+3zbo{S z2GRVs@E=mmV{UpiDGXE=2ToRHuWS}X!BjbMWYtoQ=icQJS6NcYVII)u{p+G0z>c5- zzOVK5DS-+i8!Y1_E^X}6Xh%QzZ+Bh}zzI6{daB`dCO}!#6gmCnd}(q8D_vE%)iq~O zGJ~8ctmxadx;^X1M#q135N{0fjTQb&L>jH7H5CvF;KXA%ES*)@1~9z>A{OBB(RaKx z6L}5%Vp1O?P3k9|fCBoq@XcRg0PdgkXw&McJrv}7mRjWu%Q>!Kxn3X60^VpHPxpW^ zK;7u5mVtPowgZsVkimBNktfEiCQRysgE(Ny&?4B4UhukRmg37+G`Zp#Zg!M&js#0R zZh(oBSmyw@=A@H0n0H{q?{9G5#l@kok2ZpXTA6{%n|?qj3Sp!{JoA|}-%y!H0zzvA zBBCeE1MTAd$Rc{2N+NFWM+Rkp&xq#KM@W~H?^7xAyl;pzRDP$y+rnrZ4z0Zx=f!(i z4o(&l+x^PNAm%AOF2&f2} zZ6#bRp61Kn`XDk=g*xAaoK7Q!?Vw`CX`S;6Yim`8BO)oDVJiSfxF+R_hUF{!G2t$b zxAuB2cYz?oDr5sOZ1+V*_!e$Ii{Jixa&mHh9^AV~3FOL@)mUD(78vqRSMZkk;)O@k zisP*GgZ{2ERiz(B+qv5HJ3wdLGbeXu!FP74xxE@EN`g;hq0$Ky{&JcIs zVEf})lw-GL+q{PZ)B~C@4ZJ{tI3;Y^leWu2Q7K|o(W5p>yw%^nmkHB`PQO&7ti81G z5HjxL&W^VFweER4&Jy91`&c31z1FclSN*;ip9+FT`IpBA1l=eRXF#t;I@qd>g$Yp4 zN!A&AiuL31788cZAt3Xu}Sxa2QAx3Lqizkrr(ia%3df#_&H(jAM9|L}PHWM=fx zMu9T99EdvKI_FGpMRYUL$k?@ST2Z|PMOg0Ldn9Mc;o0@1&5P@#r%#Z@0@oP8%r^(pgGK@pn>~^e?Q4lZ5f|9f1Z!Y} zHih#mRW-<~+K{GT|J@qy<0HnH3Z4W;8+O1byCA_JC@icC<(o%$H9+UN*p3n}EfpyL zxE0_Qh~Q!5c62Tn?|9PRY{8q#>UGBoXuDk8>EmgdNew}+br9Hc?8nZA!5jq0`vD(E zJlGHd{f5I!A5(3`fe=g?YaQ9q5?<=JkF+<#MQVM`!ysygBQ z9r0+2PCtZ*?e0_SYIpi7!3PNR{xwLP;vQ~gLq*djU$@>}P}qB7(mQi|r`RqyizaP_dgqig>q2Acvg@L6fIxs;=L3qK9*d()6MD?+HHx3Ax&K6n4YslGW;dgoUGmADGb*hA(=c36)dOXn>5781yFT zqyErGA8HvbY?WTl1KipGY!}129?%IqN&pTIhU@^ahy?e!odAF+Q%>BwocGupFP@wC zm=PD8Ypvv=pg3ib59?}fzCoB;iINEVB3PLs#j3jJvCcFq$PAA5MXdaTjQOysTl2LuS%U$ud{bO3H%a_{!JR90zqro48PK({ym?k`v z+%|vdqA?CABZzU;+7YL%tYw|CvPM49rk`x@WoPfD=j~4Ka|MN)AGtk1VuBSH3@y@n zWn62td3=GvV1Q+mMm0qg^U0Y})qumfBk@arf9&Nc%hh@5ZOy^r)lFazex6&8`3W=A zz_1-H2Al66=E5VmyP(Ve=%prV?iK3WGInQn*RsJs1b5PGofm9rmp}A_W8yhdg+>+f z-u*x28Y5cjLNUUET+51{GPce<55SJZe$o7Nn{GM2^e&T5qVykrA$ia8s=`7h>2ZR!eZDUCRg&}Dug}PUUea;MbGENQeHorv_}DxGu~5?) zmngNE@3vPL^2oG<6hkfS)X;eJX?U;uc4>HJ-ozIH`}ipuUZec)`i5up2NJ0>+Ke#r znvF7_)*m%U(rBCOj<~*9UbZg5p1O@bKChb3w%fiZ(v^zL(zP9;2{5BTsux3ce3vXqn- z3pF)JGCo=KXBb`VeGz#ZE5847PC73|@6cjqQ^C>ew!d4QlBLPBLFhOv&TNB-mo}Ix z0e^YA_c#G4n%BYwCaqWN519;ZyZE0H$4ojM4MtuK0*`tRs0&X1J_y`X!QOC}<4EZWMl~g+yc<&n3H)i^YTWb&oe7r})s>G4ojkBLip@mQoBOh)q zsk%~H-dv@`-Yf;)u49wt2aDe0j%js>sg()9ii~ROp+kAbC;kszh%+efIaWJ*mvp8~ zNw-}`U0QMt1bsBqSDV{$D9XbpK7+i2e^Bdc$tKdzRm|W}(8@&7?JigXeTcTgQLWL- z`|5KOKqYK#GE{!NVT;XoMpY(;naouU zrdbq`m{;kv?KWgj-i+Z6+)9k&657ZJ_PG_tx=l)qaC&{e4XqVXiiYkID&)BX*& zdx?#uNA&qjm*+nL_p33?O&%I{Fzixqp2T)y6{l#(57 zPU0E9E1B)AhB<3@24d0M&dAd}^RW*5S&eUHA!zXQavy5rY+I|T=f{@Bs~1CuU;S6d zwgwjZt~?_c!w*QurXJ-Q5D{-4&j$T*Bs*k+TWHj}&FN&?$S-S-kR-#YX`C!MQhY{a zG~#nZXoT3z86zmDF52&|V~gI$apVf#(t!z5qvF7d@62RfqwI59{kYubc3T*12ZFlZ zDcheD;^PzGprLZeQ0=`Vd2`zGh7lgbJL;II++t>syG$Q5X`0ks(FWpqgzCwCc!{(m7zSqBjM+&U_qssS@=21m}4Qpi+(##P)UYxt}8A660O7YZ+AnJ*rRr|?DTXjB;!%D&v^eV|gFO{th;#C1(EbLKx2y@CzyZF<$T)}8=w&pfZUg56?fdVjef9rKw| z%LQKYK7m|A27v!2dXcz))=yRk+h8$K#`9p%`>-qM>g>QvTHr4GXtQP0>HJ>AjQ{+y zm)V6>Y+u<`y)}Ii9ygBlMboHG0*mID~w_(|;WS?zQ_2IL*gY_br7o1EM0 z(qi57E42LX*F9Z4w}W8rxjq4gLV1tBo!$XNKuw-q7n^jQ#p6Ml6mQxkLn} z)tcXQlWf1WmSigW)%u9Ycn09Np}jAlmTTEAuk)u^MbgtQD>6jfh2n<*aQ$dX*b)lc zEGpLNKQDWsU9LeC{r4VmJOr0u?X@OMJDJ5j0VPpszco6I^uSF+fRi4tG7V>Q1jK1 zpGj>Ge!z5B7q@0t2M(Wc-`ysEQxVvEJZ64eAmu2a1x%jpOX?|EiY}w4TsqLOctZ~; z=6A?e|C>(Gh`7ioEwm)>-b)BXnG}$ja<**uD}q?#z!1AeC0k9F@Qv4zLJZ}-c&msG zp6xHC>Sr2>TK8G}pwKDUjO&+E26khJvmn(+9u+3;_;1`5=gZ4X-#y!!#1g!Ha;ly6 zMH!y)zGOSH$B%zW#Q_dn7=nAYgLh+%)<#`$cYn{Kv?=7v2qiGIrUmvj4001#gw zf#JgC>5DvVuAV(^OxkZ?Q6xqtj z&RimEynrzkd(M;z#taPL?dk>q{>7B=-eg1s*%|1u(1Es}jr;M5#}N5E%7msiBGRlj zFS`yYLH#AXbi&a(5**TK&}5pVYzGypl$K?58G|8pNvbPTIxJ(sLUziDN<7(OoN+!5 z&P3lI_{HT>PqW2Uz zEsgd0y=Ck&Re<{qt^0p>wF(Z_bKUrTcrjHrwVR`O-QPcd!)na;TJ1iRQ28Hg!*lCQSjF?R4ZVr6VHh-NlNjJ)5Q-?Zsx%Seg*b3)cB7tSO@tcY}5 zwpg~%%#RNwB1CrZryoHKPDr80&0wWiqT>HBBy2TPgY_$=j^7urg>Tlg>Pme02q1dr z$|_)x-|*r%gSs+ZGVi)IdW2V$O1PoH$cAbV1zr2pt%fhKo&rcpBiadYzelxo0j<4w ziW3viIKdSeR{Tp>BvK(%tQ?{*_ARl`e@8vH;{yJf02F_vxBcqo7pQRwCbRv6%agUu ze-d2(TP$v9!Y=&CF+AG-=jDhS_M#WG;U9G$m28uI4;>X4^pG@XTsk{*E?DKSHwPV} zXCl_5$45ps(<85Ds+@yM3ad7zr>B4ahV?G$WmX#229=xwNpn$A(areY)zSc+6%)mq zbe0z$XxZ)spB#ie{Y3jY=5f<)edKY|Ld0b;K=$g-8w z^={ewZ~RV1K*#hMZ#V|y+Lh@*)k#&l>D#?eD)hqRTU!)W3mo{Hd-H*C~4q8O0> zh6{W+MvO*Tz&anM!9Wzf^2tEFbj$%=Fykc7Yacfh+kdrBPw)Svz9y(YAX!k*T?`W# z$gB|JC!79($Bih-ZlP|A|1p1p_bZL(jK!z-x3~ZNS%~P2lysBa67D`b+}PN-&(dW@ z!>*ah^A`{yG&h`gb=i!aUJs_TxFVaZdew-bR#t&bxSRVd0Aq9`HzNVOSXDX$t|`pQ zBoK9`r|a!5_V%Js*V#>B$SIG@2;}6@A-jy+%yB=B-=eqV)oaAue>oBb<9|^%`S6n< zo5+2(KRpIP6e1ph9o^F73H_6OeWHk?e|9fMpY_+US{E_G8H&u~#1I^uE!r3{4+F!F zngTE(%z1!{*K+^$m9oe!RQyM^g)kYx=q0aK9mq>5wFU(Fn#m#kQbQtY8j_?8sg+RG zC)TJzh-Vmza#1O{!V=+Sipt{a9OKwHHp8y3NubYzq!ACm$9I()fT^IJ7+~=VTSRFW zQavx`OfMZNUuu=WH+Z+Lpk)iwUd_!1UlyO1K>Xvuq_5-Xg-(IKg2ap`v??&78Gkg( zGd2fn;)WislwL{i^LHb5Cl7{!FVz#;3RDJ@APDM&<=tJ6ZcFYsz*KUi{^G&_OjKA{ z*uT8Ay&Yz6|5g+jMS0%p-C}RIO0Q9o0MRc&Ptn%amY$Xt$0IFudP>xuYLDE)W3`NPZhL`b@MBc+~J$)Q&wf1dT?Jd0be#0#({+0$d3#4QDEupC-ih2EPtFK$Y2FRm#U zUcGXL284ec0)I3-kimHuVGaN`^3mN_mY0|xJ`+BK2&vMY5o{L2O1w3Avwsrr}+z?A_hraP#aOc{UR0< zC?3I*ow|cOdQ8_;QA3kIY=?YMQoX-lY9TChRcmZoFy`a8bgAis-)R3Cb87aEK+nDY zH~Bx@7g0{L8Ba9=&sD#kpU+yNrs`(4im(9h;UZDNqx@B^;yoJJ6#)Jb-uF?7?{MdC zl8?#mrP+1}S?vlI7wO&(-X2&*u8tOVdu&~xQ{}B_f&me)er+otBWyFSZP|K+G}f)% zxbIL<;Mq0R8~k+PkCR-hCdu7(b~1Ol=d#f&whp3QK6eF2kGfzb>2W-KkLJWzl)n}g zDksXPYxloSxl?AC1eXBX{=%CG$Rk7EBnJlZEz*fYeA>jPf2*8TWEmoL5>eFgiF81D zDV>_Yi8upA`qlt}TrGN>knNyNJWLOcQRM=C7a`+)^d55O&c76&GqXi^=orsj0i3=3 zU7CIG*9%(HK}^cmVceQ?Xo^*D}rdv$|j!aWNAspd;=C$;So5n>YMM zWIV+gfvZzSTAC;K{0YTbXR|d`|*|u=YBO7nq!~v9zIer@D5zwGXA61Hk4S1m4{P;I_9W(g$bnil42;z z>yw{VBxmdmUGHh+1=E`fxM5ub&yRyMC$T?5hX6_~PVSMX3kU~t(R^&#%KxAqYcfhd z;bNnQD?!o>k>6b;T_x@-s*`4}O4^zXKT+as2Qzi)e@@iisx(=xckSjWaLoVUHs{ZT ztz-$yD=keADLzLdVaQfDXpZ%}z{NQk`S&{~J6%Ix&UNccdd~orWkj~k$^PX1&d?tp z8jbjkLHRfcpLhyTJrX|kL)*}>Pv8kj1RoHTRiiX>9MCYqq%VRKT3`Ovdn0 znb49|Xd_j-{kcXL3R{tdz0O_*0{GoH>z<8L9E0Mhzc!4{63dsDbw)5kdY{d%Cl*XA#u0^0l`lIpx1N!Qqtt4PdiZg z4J&RU_B2i=;N|e!AzL;Lp~N4`iRE8K*$l~RBs6$c*}#t~(Z*p;24v%C9F-Cm(yNm_bZ;Ec(jxw$Fhn9gXO5&xWCo4R$&_c~ptXEj~&Ox>p} zw@2KIH`Dd}qtCHETv_eYe)a?5hvLDf&kvARbARtWA|#8Qt9p+%GJJHdT+5`d#S1nX zE-pjUs-~%Ut!a?MaKuE*<==dG70+g4n$n5Z{|mop|L}@txn&w+p5qS9=CDuEQBklG zcyRY~jlcth5Zim;QFljMyH?&Mt4D-w5qg<1{qg9v^? z){>?FCTQko;M(0q*?wJ9Ucx9EUmbLnInbwBfA5};J>7lMdGkaug;s9#xzEb)W?UPO z0VVUF(7kJG{dRk(KW~<}4v9cc=x{bt4LxlSSDgfSt3d!nW=g*RTBr)opF^S0cKwd;1;C*a&u$3GxCPcGYlsud?_?W zD)^wieOa%%{|%*HYb#^QQ`_weG{15Ue%ZO*i=LI0n%4)(`CfzG33147ukEq~vj@qP z5oib(76>~W;x#Bi-xn_jZ*h8CL6O>dJh+6dU3!e?uTVT8kl-wD@WTaQG?+=Yp|qa3PV-3UER-j`svMl#P}n?m5`-8FB0NOWVPL`gYO=-=M)M~r+9 zPl(LgnO{*BlfDxN6yC^}P20|Q=qCFd_O-s-@^o!%9P4;FI;snn25zE)vHRIB5-DpClF=g` z6!9{MFoWG1#;d{_cgKnRuMY{)SFwjLK?K52ozH?9JM@(BT9JD!x5>STv74SJVU}^i zSfFH!cz`5Fa8z?AkXXlEt*}g>(yd26V`^3 zWrvBG3M0w0Wg6S}+XsP#`pe(Gz8%(!xS;Wx^3TnNH2X1~VULZs{brswb($5u2>TG} zHS}QFiy8cPwOysMd8oqaLDY^(=ggLxfpqBv1S1FHnNgIHmo^h9SF0GN=RXXia;!2A z{NvAdHoQE{&MXDc6#<**B>SpK8){W$jW2ob1;^rny1JR?+g+A#U`X7h4%UcfMF1H5 zTax6+7Gs>kg8V+sZ3)h}_z%7Z!rkC1`3azo?*Du(7!`H za0xoKyh$}YY8r&&^~8ry8}`-jyod%}J&`+Nxm}4o;5|%4(7#vvWcKT`cssm-XRRo` zB@Tre@cJ<0l*iBixab+cRw%=%lU2p?sX-pFR-?Mb$gk`B*}`G7t!I9+NwflV(f95c zXlC;x=DIwhRvIqX2p=X#&j>AV}i=HWqv#b6k zu}&F8HE3wZq6_>NDa(0a0<_Sa?9WncafUydcMgK=3IZx7!R#dc0-6LFp_aLY*~?yH zg-?D3^aUdgYo+Q4HR%Ug5eBtCVZ~{NK%Ninq6{qo@kNZuf_)dGT(HT zcrLTx8Yr9g5YThe0=*$Et$N|^Fw|57+5HcRBu+Nap8<7rBj-aWmT-$#&Tx^Cp{GEXRp4^e82Z23;5egKV&JmBz@@Bgu;s#T3J_{=z0U`xp_I$ zj+nUogyHsZlG5IFPNnbmoW_Z@({HVhcve?`GZ53=9U~pvhe}<9-cI>GJQ>E=&m-aN zY#dKtA9^3%3hs>+xOX<KIe^5gnnIS z?>nPRpY2~cs`;7P5I05e{9Uh0Y$@t;YQo{4^=`PAlHtE@4n?_aD9_I?eF~QiGBakr zX={%cb6K=;f7;hKvn#PwO5Zgzf619a?j|-)ec$wemibPV;aV|6^eqJ~9#q3-9{?25 z>Z2DC=qo+Gn>Y6do3RXPEzHqXq!3w!Rc$LwOPCi)iTj+Ke16Vh zlFE6Aw>YT0|9qUD_8+FN-#R%u@@u!y=E8O~Hd%I0Z=Rf;{o*&1hWtIdmm$Grs`SlF zJijPw6qV-UQlP_KOp&54HZdAzAD`H)JEYoTRxp^(EGswG3>SeXk%vUX_s_5IS36=w zevgX{(+_yh`IUxj-tIe2yiUUUUKLAEiH^w|k|V zBkC1XZnIuovsi`UU~QTpSsZbV|4Bu8&735JdVV;{*G^#F&k$2q2ebWVBU-8}?2uel zr^uJ#u)DPJ=Ee2Kb=PlZif6o!aoSj}6wZ`a)0*!@*E(}0Ygt80pCEJ6Z`Ubr_W{X7 zaLJu~%U%{$>;Lr9^i*8$Ma#30Z;H<+eX+#qMx5LLao1O;Fms=rT-7oYsirMm$Irnq zV;oC(m>FRG>=VQ^NC<+|x#E_p-06~iD_A(ZOYDn**ihl-OdZn#V42I8d%bOFv~NU2 z#O=-XdDvttIXlIhSZUpqkM6G0>a1?&h%ZVs$*o114-L8;$u*o~KFiiuZdN+etB)IG z(|v{h*|FnWXWuF*DgHU-7Z}K+YA2YLIf0|Yl44mRV!b&EIGia7>RpVp$zPLl0PHa* zJ9j0{z)T8zPM#o205bMZNzs~8|C(ys5#StIe}~M9>BpuF4Y=>6t4!|sU+nBZk`Jy1 zOnxX?;ym9j=gn20<)ZwFT;nO?=;;_|Q?&{zYxA}gbc!nGt8r?yTLX4nFj`Dy_!q3n zQwJK~1D*i0kx}t};Apg(4PQw$El~*OR%NEm!& z+Av;V)vsPjd0uMq?S8*&tP&rQmC(}uI_oG!Ya3vdqQ8S3erp7di>)hZLuzK>SrgSN zcIsSYTm_Z?Lv9wR8!WLr$T*c_U_bl*sOD~+%wBNE-K!YWwipPwPes)roQMa?8vnU% zZp_ZQxL&%@tNs(WRjMEG`^_^&__N-=9me3}|BCtgJn(jQfP*Eq@jd~@z(M=sZ1_L6 zZ%%N95ZUVk%G)uo7Kz`?QfOW+x_H3Cpprsd>7^3Z{=;}ygEvNG)%E#aYJn6hD6moN zLb>)MoHvSqmFTAY@!+CF$$w~u5~VZ|#l^EP43s!j`lj08hMC6v&*s`klNM5RiC|Ud zw!)q5?cKdS34bUJowvNW32^${`sR-krYC}W^%OYYQd>%ZYw}{;@3(wiX(x;#Ss-N zKk?#n`$nDR#wqah|HjXS-@&!mw_tDMZCpIBmhbJ&8)c5Bt}rR$YIn{FTDSIckG9F* z;yMElnFl_42o+ROJ*t{DBOWHY!w$Nql34Uv#)W{%mOzX((Alh4=KYskGUAfnD!or@ zyzI*Cn0WskmtaHFM+S2AJC^N-X`+4oZ*JWr0fE@Ax##@uv1}q!hBFc!Fht{MN3J<; zmlN+TZa$sTjzqc>NlWL^4Lpb*%J3JIUE5HQq`LF+!#{BmK?GUFS6N4$S0-a()g6r< zmU>3uXGZ@DE>Ejr=^_2yt%xewjnhM2sWo}A-$g~1tc#|7fA5Sz|hOb_vN?rEzCz_eA{X4^Q>+L>LZ8sAL?e=af++54TR=7yc zFPF~^cg!>;VYBY<-Tw1buP9y)s)_S$Y|qQlE0w%10ml?nEnBE%aJm&EGob1wTWVgr z3>{2R5D}r5Ai>L%0f%T}D`KA8fE86R8*!l>nBXPG{y)9B)*mprYScC?(n})AfLH{B z@&42nDUtRc=z9lx8bs{cP%#Y~%}ZRV#16kxHB^I2cKF!$F7C;0ftlFvG>^Nmw{6Hm zFMkwivBgj7K&PhRWd4@x16@gQhIDGzJg|7N@Pv?Ab!awQ{Z=x^NLyyP&Zr1kc&{^790Vqc zen7Y=xOZ*^H&h-nk-C3hPggHJ;%bHRcC%^mew1fVX#E^7(388xTiqnzo)5mb!Uac! zg+yGPU$3;1$0(A&83wW;U~*Z!HFI*WJ6rT&!f{~}o~I~cFLbfEXhOZ>6{i{fF=izw zbhN=_bY&$Q%u1y9w-UIjizN$utKwYdn)z_!A@>|`L$YE$DI8wcTLB+N4+wRS z7?tm-EJ;6%YJo9J^Q+CZCG^ihFaSzLH#!xoztP=2AL02r^<(RD(bE-WqLel=1FyFb z>R)xu#NfN4xcAc-*waT_)lZb88&w3f)7-r+%!*=%Yx{gsP&m;W8B0P-FAUO!fYIR4)|7@SK)mb_Q zZ>^cteiC?$9Gw~&%PqFtI|;jpFrM<3XC~`V&3F-hB|RovZ-cfF09@Z-qJ_M=y3Nx| zOaK3yj!j*Y8iY?9@RXQ-|FUbaCW(PiwZ4O2wP3PT^lcU{cX09h~M9g*!wHro7WKX zN`dKQF=Weqe8Z7Newm5tB_?}GXTD{LZj1mV>oW~kj$?k%{a#k-EXi$Mb%}|1fmewL z6F)WO<}+m0(tYi~WREdQ5go6ThzGM8e;s(lAT$b1dr``!G<8b3y!blIN%l$ZFk7cHLA%<*r$^3#vQ{rv_B4v}J5X%hvru zre%3+=K!P=D5+}?NhcL{@Q(i2lkGYEDRY=nL1%Y>rr?#aVMYAE9H*1Rh zN7h_or@T?`4kvIh&uz=h-1+R~EsegkPtkz=`O%7=!u1hWUFTus<%_dD&xH{4IRK78 z@tfuudbiE>hM+%1-nxBsTlmz9E9(4|m!f_xf4|S3{_8m72Gc{r@Aytu=X!rCm8Y0r zvQdk6sy&Q%LT=L8S?@UX1)-eg%Ik9GIxoG8yc6Q;u(O0C{&IoinvWp74V<{BA!pl^ zk14jsf=N@}^hq3lz4>B3Tg>ale5g+)_&}jN9`F0QxLUEwai@??{q?l8tp&}15-Z-= zz<5+V8=_hS%xa`%#$xwn!4hK|L1vWqL>0R%ie7~HDQ$azPm9gh+FfDpJF46nrY8yB ze>_`StArpXTY?yO8WGpzzOsotS=op#^b`X*P|2{ky9|iw<%)M_XE!D%Gep&hfzvx0 zB&Hi>;=*3M_Z^2-8-WLb-bJ+@AYTH^Y2+wzh)s>_<=FuxU2^PR7>*^a)nlRSnx(kp z=AUQ8es{Tuy84@7h2G$;vH5w=+ShUGChblxvpduM20W@QZO>$73rtc|SH>qNmt)^h z2DW+%n0yq~*5Haw{2Xg7AcA?9f%*p<|IaG(&%3d3`<38|4?0xS%LVQvXy-ieb)SMQ z1p}$whd5Pe3F0kWOanXAHux-IoB#*;V54w(_V;fdzHTPGeP-*M>D`1JR=#>e;&Ig% zx&c(=!L6!lDc%-uNGRStQ?V^V3q81tixIV?k-?QOCRgwf`3!PDWE(81o_^)`J9+dm{#ajuz^0TqJfV2lfDhBr0yLPkENkyU^0zMVwxG>2= zy(;_;a%aG%XT(CAH2Zu5)uXDW9}5 z>9x(&;vNi(yr5fr-Wz^uo|0OfwGn&yCNXGhdK4f`ZoTBw6ncB}#&nu`bE{r~LIWa7 zIQ*OF1~h-~j5N0p5l+TMC#`tU7Yslyf7ToR5N3Qy^e@UD%vHqgDsXL@bsan%RkAnQ zwbd0+$?($8eNGZBVM3r`3v)=N;Y(^WJ-=3z5nkXzyiR$Rpf)otY1rCt{bz>)V-D?c zsViqBvl*{wr9kRX8SH-x9Vr?m5C015yGzBiLd5p6mWJ8@yUq$$0%N>0EBpM!oPX=r z)+eIDgB8(aZ`XGCTeZ5?tBsYeKyGs1!H^ z6)#T~D{{1Xciflo&f8hPgSHoEsP68W#`&N?*UJuSI?t~2L%BUbPd4^{75`|R#aHha zM&1S(M>=C_x+3*%4@b0YW8LP-PAA~bqNLC<_${J8F6${ylsoe9^M|`sKFsBwOXjDg zo@SAep?5-}C;k@XKLQusNn?6nTfd@PK&@17&Kujezcz5rtz#_8!OO}1(_g~s+r)&> zU+JFE&^a>$sSjo~!vha$GMb;pdFf8Mw_21?yuq@5i+fi@TAw=Oq`D7bD?tf@{uaHL z3~7hi({KS(t$c|PNzYHe(2|NF-zREj=F~7rQ?mz}eXIPM?5Q4w38Gvtjn%sS@}+*kz(`<7T@$XW!1lyTReF(n`;$f@7gs$B%G`~;$I4& z|2^`>yxpR z=HX#JV#a(-N1fBUEYB^c(3zQ{C5QY^7ZrH1g0USPC2ykF zj}zv1S(7s5OCzri)T^tjt>2|u?Q%MM`M8uazXtCEY9|gCbEkp=(oUGksJ&=DQ^5VU zB2J>$Uy|!&DQjEP;+Du>y~@z^l3s5UR0!IiobUAH^!`*(3eA;y3=91+mgK=rkkT+# z%4{LNbK~`$05|d*EPfffy;~f3dnnv{+H^Y=nDHLm<;-a7f|FLRjCuW09yojFc4yV} zCQDq)h;^hZ(~x6$dUtm>^|4ggr(GQt;^iqxg3pD?Gv>$Sc>hTA$wxE2C+t*z@8r%)S3I>qlbKrI#ihIP2PZn4<%+q<_r9K*jc zLbP~}#w?EQfY7XsZQwCKT9-+erRX*A34|GTb|rUYil!2A1kP6&4u4l8Oz7DQ=kl@51*Y(t9>!%7M%hF&aTy|b(DjZESnvy93Ez~TWQ zRP%kWlYQ&S1rO`oZEaI%upXFLr_b%h+T&Gtj;(E{hZ!jh{IWA})oF-yla2_iKkD8#u<G)IY>p=1Z&i^lz9#Z{Xfay26E%2z@tx zybut`$v7olgTkhn)-wl9d-{XY_BVxb0y9;IzkdTMDE5-{bP z=e6|NYx9AFVZ3TYNRZj+k}gwyD;o1joG(@3qWAXPD*W&u zocCPK0bIcYoYRyD9CFmE!)XuaAc-2s|A+a%g8lh~Dd?xT|Enq4$&yYA&>9{PNNHyB zasIEP^YEwo{onYpg*Zw%IB|@uWRq3)ER^gmB%KZp4rLQr$6n!}tO|#WL&*L(R*sb; zWF9)%Wbfbm`#b-@IS=ml`+nWmeO=e{oCS*lTH=Kn@V|&e^J#fktAJJ!o|HJ3Cf|qr-Zr7Gxhxrx&l9?JlVBFx}s%or95)!ptYf^`^`J6hr}SL z7KKlZyRX$Bj14v8XUO&30Oi_xN_-R(>(yg>jZ1J_p{(rLb7*X<#hewzVon!-xcI;c zsQ=-CWzqe#(UleVs)=)A!>r-h(n8T#t&IN$-VRg|SHgeuGj)ewvp)D;v@XkP0Ee~; z0~H>U(qns4IIZJJ^8qmp12fma{{C)0{NKX8+-A8%+Dxx3#k}}khk{zXeRNHW@Q2Qr zrEYSSC6H+OL1(+E?7?NnT+r6;5cBD|5rh^|p2yGEY%315QaY*XFRtuq&~&_zeb!4D z8e(S7=X3@tRsR>$-Pl05REP}>X!gt0Dv?tKjK+Rg`@DV)T(|(W$Cb7%AxMC&7LZeV z3-m8>w`5&~b*26)i5jcE^hn26R@6fEsN)h>yW9Wz^|^k?&U{DTv}cLa@Z2mBh5MYV zZD(z_b{vuZHAcsa8HN}mus=lTeaXiqO7VT-U`JoU+Bkdjjv7WUlYj)VU7`TAMj(_whPd36qW5cBdjR`wPbpK*70$xeGt zPfca+flqc*SSVMLvyPf8mAy6GQjI|+WK>FB>u&RCie&D7j5SjbaX&RY%k=RBCh}$ zBQxgw$m7vr6&Gp$)TEVnhVd=N( z#`IQZ1Cy`DUy?D{{tS~GpFbcDP56wrYnUw<|3nr>iDfsS)zGr8T3wZ;Z<78?aa2*! zlN(GUG*PSji;>CJVj+f?lFGMqqK&ehg=Le1gvO!X;1%&sUxACt+S-}5eYe_JqLMzP zOEr#}0+JS1JUvxcdR;_|4m53ZAHG_KBEAp`M>+9(s8!AvC%Bi zVw;H=`)SSS%=Gvcjktld^J-dJW3t8D56%@7b%s7?vq_g{!0f|$K=IjKmJFdDrBXc~ zktwKJZAw`D{AIeVpS6V#94 ze7^VT5ICp!h%~0B5V5$MtQ=HZR7k>^6|w#<$U9N%W>_Hm=?>}8<9C3YB*c7t^`dA@ zy)COa&*&aALEJjQY%HHUSVzA3^dBOzJ?x75lfPkgGMpShSi4k19;V@Jux5?d{PRWZ z?388ChJC(G_CH3%^ZcDyUP@{2#2DURBY!!=PSq0qyL-rzFYnPoMM}V z5272=5~GQAz+)u$t^$z~E1b&oqEW2IXwi52CnL#R{TB(HA{PnOfBkR~dKW^SU9vhW zq#D=d!M5PiWGiO9W;tCq!|WS)pLfYc`tF)hRWm=0X#(pvC6%LT-K3$w8Q{)AUnIuX z&LXQP4*VO^zYA>4Jb$DGbMUf;YZ(180+IO3I&ir^1S&MJJgRHY#TQHs6S+Yy?9KZ0 zDV{FL7#OrPr{#%C1RCdba!InZe(Lzk<(1HB^Ju59Ureec(Fsy!IMD$FTku?}O0 zSag(zmnk6H16EVE;dCYk7a`A;pZnzf^8!$pNacreaaSC{>H5(avgb zr5D9{HQW-?jlvCE(}geczNAY$6OT$1+a3Hd1bcle1?aCoA|Do1n3D~iA;zH7-c?B# zBu3G~_!G{=`G)WsQ&(B<*8QL(MfOJ`ll2LQ8WlcSk0GAatrlRAyrY;-yCS=FZb;ib z?xYHoaRImR?YA%&G_bm8nEuCf)Hx5CP*hTO_=#$5n9ex!vl=Y-rUd~flqbmoIX<(p zO$eK+j~x(_Ej@3q)juWyCTbQ4De)1Q+Pw)lfrQHDcqZtc+pFXazEwjYW}GVQey~p~ zODR2P@@8e^?Uc;Wh>*#lu0b&>I7j%z{_Vy|T<)8BsJH3EYqwqqNRC(T#-uS}IaFhOP8SYa~wm?>`tW$E+#w`!QaVuzVghen-I<8m>>tp|$ z3R=NCk;TbAi&k(0EkUnzP?n_DDHk|M;;m}02pVn^I*A{WG5UD)1Hz@Axk zJxdXiD$X9A`r$_7m^Cn*^KM~rXRP4CYp=g%U@Si&g+8d~;vL1+AT$=Yv&~P40z+9# zOp#EQXie{fvvo=k?b{AVN&2qghn2p~Gi7DDrKu*Aj^NJ~V*sd5uKrud?nz?*=zl6- z%bPs1%4wW~aMncBvQ1tEj+j&CZQn1he~tHjy6EGdvgNS9Ud-reg;^`C(eAkI7g%iV z~NQZeVCpNwwh!7t+Cam!BE5y}Q0S}uQ+5Oil z|5L6Dd&`6GlnAEv?d(+Jo?~eM_HC+>N-@^qaQ%6|q*}2v(ry*u>85)eNl1y`@L@%$)Mn z@d;7}B7|%otw;lX-gd>V_sP;~!!dU?Kccw0`v?T{4@<8ez}H5{maLt9ZBlSY6*=Qm z{527DDCf9BW>eve)XwMGOSWvW8ifz?QdeF6W;5HjX^ z1YP()fnALXr~7L1^p=^fT?;_m7q&P#c}(g_vM4u8705FZV(NORctZ<-&>~3LR`JqR z15`8O@%==sUwt*v52n4t_S zh6}|Ci&uhEyd+zL=F$8wu{M0vj#k7B>F<~G zBMS>p2~-3cO=)xT^60OF8k*FwWL^qOH&z!_+pq-Zs|-tmbKA@Aq9A~%jn}R z`FsX_l)wmUDr`9%9Z3vDSQW++PZnmv1TID#Lq1d^6*(>+8pkV2q_tf{$i&St%(j(vv zBpfSD-w8|B(7S90F%+f>qp0z+W_AkjjB7-{3dC9y@Uw}Hq;>#{6;8y3T5;%7s`Y@f zFRw@wv@O$bz#>yBxENgqOyFG{Ym}T}E6?6MW-9^z9$QzG#J_;&$=yT_PQ4Lfz&9>I zgOhc&E@(R+ztPhgTP=GDfT3F&8i4L{GCMn2`w1uv+zBB;ksajPV<5|t>)Cpq;Q9R( zV(*+srLruW7$t>ZyKO>KUl|FK(Bv=SE36S~;UUUmarhpr6>;rgv_{N&roL$&-GhuQ zJl*M0Z3zkfxv}}XEfjb)2HU5{kJVCnJ@U%7AX}5w6$HG(FkxwM*1POiG-+Q@Anh=7 zb!;JxF+1>r)2gP|9l}h+)f@Ie|KsGhiC>0RPyQCZOgWy9?M5!`s1YZHjrw1H9At3R z3$t!msvzzMJ&<`<%!b*u--=^6APGP)th1NP|`6cdWPUO+z{x*#dA=~)!)q95#Ya25Zv|QLAau{XDUn90At%I_2 zo6Jw|gmBY(hlYBFhF&f%^66g#c@Y565|E|`h$NZgzDmK{^T6PKw?uDkxnsRq5ul(0-Jy|T%|-NjW_bqScUt^fa^zuxK=4;zH2Oz*IA&%RMe|d9nUIfA29*h z{VUi0&_vJpJw1Wd4Nw+T3U2p(ogOqV*LJUV*8s88u<2T6(Dr(BL!2e7KD9)MfR2hL z+7j`9ORYpuuCh&ymMS_G!C$_MagiMZ$unY42bNpR?-85C)_eo)+z`|CyT@lh)6Uq+ z&!-eNa8*DwiRKCUgITs^=m66sV^=eXIX)TWMjtlqlq%6z2*eF-D+@EWD2?szMUCF# z%A)vqcjzZ1hKENrpI}=AOwLW-%lOyI&QPosO36wn{-2o*@g4FmjbdLOoT4|p+ElrW zHCZNho}MFu2By{|79CtdyZ1ZOCpKztNt!xQ>RtOl)8{hHn^szaB}|kbP1_s4;ze%< z$2i?8wW4!+V7G+0!%?q6?+lBJOgEuNlYTV)rz8{!gTZkg4|&r;EAC%_Z%%jkM*(pN;15-rZ5fd)beIGJvv=mX`Ziu0oWO4g7k~M<3IPL2pGI-eaqEWNmBq z@+=y#Hl^x)sgP51!PsEEL5%JHR6KLuuqB0F9$spB`Mf@Z4T_IK=-&EPM+j_sSN=1* zUvQ(#DZNx5(oL*4o2kEhr+kK4j?*>Sa~oXzVf zi$)u%oLn0(La&P z$#A{ZL%|+r^9i>D=1A(c68gv*8-^4QGjnx9-+r9u;Rc7YoTw8guh&?l@AfUlU}h&9 zr?&jhW1-sBZD|0q2b!3#@&>qX9_mX;FGLuE^|VCeGl)uwRlmROtiC*_s2NvZ~EUh;NJZ_X`3_b2aEt(Ukr$r+_QBwRJeZJbC%0%kfU|y^YNkcV{z(N#q*b&zt*yO zu*!_F-`}xomUrZ6Y?n^ol1CKn8;Cq%Dt)M6El(;BJ@_$~2z=h+ho1$O_= zcd#M}Peh?+H#Bkt(`ywxNDA)LfZ_<#$aKZ*HdRJ}ojzC4z;964+_lgWXUZ_8s`~}7du8BE|(WfpN**T`e(Q9K0=h1Muy>Je6(+Gi7Hf)wiE0?iI8pM!61CX^K#$eq6$&# zZR8~mC?Bg$sE6qP#jtUKlQUuM8_f!;Xu*~3nS4mH`A(Ga0R%waqX5z2g(lNiS zUaVPxO@!9!uui?F=k}k*#;4x2zc4dHOaq`kEEbuGszBtHipSaNald;h`RkdO=&rS1 zz{>J1(&%zO!@G!&$krcL%F}ux@>jLjYz1|xyIGrekF{tJ;IFz#%!$U{B4hrujn{?L zt<2Rw0OGC-?@{l};RQ13&!Vl@l^DaPkHiIwc4j*M8g}qwvq}}kfS*%}{LPV66tuiL zg^q4f&`*#u96LgY8P-aoQw0vr0W>slL*ilAyhB9vxoPCQr^By~r5RVQ&n3V7DVqjM z_H5n1J5xCudZ`J|RbeNS*#n!EZES4fyR9sdb$?+Xow+c%8!yE=avAqU8c&cIWpxma`nLx=I?6Xu2H3Am@By z=fU4lMxxv_9PA#|?;EfKHDAXz(zWjw7}LF_AfEx^sdP3>Bej?~)l}(LI~kPENI}}E z9GR*YGlV6+?H)}<THeXq|1OfhH-tro<@D-|)Z=;#$DUhBXJ`e6_begeXv9p_l@hFgd>ZVLDJ{>O@d6mCv|HBQ7QkWMQQwwu_vB z&V5Jm)AIqxd~JLBcRm37VeF@t5j>YnQ#d`hRhs=k@qvyYZI|*r&u;n%B;gHlZELT& z5RnOB(V};c#h5hU=Jz~pfox8<>Y}K^>i~?F1gqskL8H`~UiN{Pvh(5I13{VO&o;Hd zt!P7AV36!>`p(bn)ZwY&$++<;-9$qD66Z$~JWYEOxX#a^EfL0@Pi4Aw805{&+6YE8 z+KPQjVHhLGXPLZkf7EP!0~i5m$*WCe6+o-yHEMNePx*M9l)2fyi?kDZ==m<-5XjFn zoD14L_AT+ZN@s%B1y^!g>}TuuUsXes z4jr0g@(D(vXK9E3#s!#)LOd_=2>@jc>-oDWcp2zbb`Zg|X->{*pVK|x!mO?A3Q5*xmy(AZr@fWVo|3Ij*Q_$OA zt@r)U!NM=>$ogBleG6%A*m9D+ajCnm2&@L6=(^{WxC6fOkb8+FAcXY4jqEAO#q{Qjf47#;C|I1L|_}waFTstkAysLdNn{-jo z{p=rI=+;)ovhTr%Cgkp6r{p@SNuuq5hw^i&;?Yvt5Hm}@c&02=!g)kvc$9(=ulyU*xmF}>L__{Fq+wof~^IACBQ*4j( zcOn|B-q4Uy#Vy9pL)`D3(hwB~YDpuV{_=b!BA~iLLI9+~e&g^IBeN9+sBi^C12x}$ z$m1hGaK@|2nudUMw$IgYaq-Ig^FC&$_f9f@Dh_V(ls>!{v&+S`n@qI#l!%j|7IL}S!y7?G z9Xs{@=0Y`C9?-GA(WM~L7e?MLl$ffw=akxu|JylmtV3DU^qAS@7pN)(ojfJPm0Qs1 z>K-N&1B7CFgZNtF|6DmvLrt=DrHjD!yuN7R8hiRy#)bw&U|e zg0a!S$`2`gg8SObK5c4KN)B(lqO+m4)+6d(6@hnDA&n{7AsZ>Xg|vInE;> zSC^s1_QBnFvrjS}T*7hMP&X%t6mSJLU5_HPoUE2xRNC&8P$k_x)QUi2zMl>@u*WZ- zN3*MY-J{pGvbD5R@Q?fJy3q z;OKUkQ4Tye$8MoSSu-|4Eh1zsG+Ih9a*yfn0}jI_1;)U)a08KlH{fJs8pE(2v{t|i8l%wLr|nr+?pkC0dHsttG>oDV~9#sZ~edoHj*`$li6sf}vo*^o2!${Fs>&syqFk zn=gx^A%(6?M9<1EAZijt7+vVK3yk=gMa%X36RbM9abI+oV9CigT_f-Hi2Ki^8|UPA z^YY3y=*eOgyRru}{&O^-svHlj-QBFP$85)3o(2IPa?P)n`MUTRp90+K(H~nO2p8&WgnuWw>YFEaUvCv!dw=WLThR zrM2W_|9bycAT!_u28H7gR^ljlBoo%oe7vk;Z*z9PUWDfXAljA}YrLROsE47YO3g+2 zv?xih?zr$Z*3?h6@5sN}a~OJEDH(DV)G2rGeu^_1$qV{W;nLQoy3SH^&DH8nDZ<$N zWT`I=Mz54dn4EMslhcRZDu8BWa3=(S9>ut*a8t&>B$=p_?KS@-i$BffmZek!Wc6#d z74e+8#B@0^8dvCHu2R9^O+fgPEX9@`Z;Idf=Xts9d3o4mf8`_C&Mxc0SAW31o$c%d zMvC-iuT8X#uk3;A(kYxfQ#92?su6pnp3tW^0q0)T!`l*q>^cnwG+iUY3|%Ti17$(S z%UP%A`9%S;+_=H;+VVmMjyvUr*@WD#uFT!P_`w$8K5M%N0ednxo?Cs24l|*(^#Z}9 zk)!cxl@bdeM+jaEF;fTnFWFz_`Ch8e%nI`^-vV03EiWzN%AA0JmOvDx7dj>VR)iex znoZT{1WEPOZBL^w9OVF^1o;rH3x(MlJZCcsUjyrT0B8eP3<>>^u5|zY`4K6pc}ARk z2DBprJlX`(QC}KW$1#!k!JR2Au2bD^4L~w7Pg|cph&Aj;Qh7e;KS!ZR?u8G6SSzYy z^J#RwxTQ-YV7+YRfg75ttMPDSSaEyIb3e6LKiifQ95xYjrX(G+ zwo_Qxyr!NA%65r?s-7=(MJI(cS(~YY#j+MgMu0j^Rb}PVKlkQZzJ2@Vzhw`3*Soz? zL`NnIh3@Hw{@(E0Qhg6QD88nZ31Zbogh_Ena>>;V+8qmgxa@0skBnuZ1YG&F2JZ$k zDYh%F=j9dHwfN!Y+D^7FKB)oybeH@y;w&s7&`4zJbHd|t8-jL28enW&(zxx}vLkeU z;h2$S_>}i98o}Y_E^R9g%&Uh7RqMF zs&Rhv)se0

1yN!frT0u7-UUyZI#DuH{734GQ9rUShbnWc47umIym;xrwRO_-gOJ z{rcwpATQ5qOZtw4fwF6n;Hk|2jCGf7jM|6BNk*6aA_9ga>kbLQV+{2~Ms%0-S zDLB5fS5kD!;c_1gtMu9JP41P_kzQ{)fquBkCeD5gL<<5>X%(Ci<)+)%xl@V2x8(&P z|JYrT>VJXBOwh2$^ZR+hT+?xrRK5Gl$VQW0`>N~jcv&r*=ks8X-|}2+JLR*h!zezK zi5jokOrV~y>8GB=U1fF0MmZLxV2lzIJbLY`)|Pz({6bQ+cDN~yl1A`nEAbW)?QZ&E zq=2^Dgs6#UTulCEU@APY;jj78;p+%1^@gYhw}jY2X18_xV1w!Kc)*Gt<0A;E9s2Fz z1LYIW`yULs|4xt;iR^Xt2z=xStyQhuR4!(J_iS%z$ty5WB9VhAs||9Z`>jqG!}So(?FYrK@!&P{o* zp8xmCJBNMW>nGQqf2@M0&M<(iX8;;ZrYEXe4z@dtjf@^l)N>?N&9v@r7`bT~@hkCC z8B#oJk8*jWL{3l5XP>anD@C$t``wM~$m1W{1eO`J2Q;sY%FzK9BTrI~@>~#kx!Zex ztRN&3(z2hRTKO`!N}Tcrr`x@y`>oLP?$aIZcup{dl7x8z+V*r|sP*uC>oWfG#P~AW zqhV{H#N?g*)QA!g3^Kx`jo9XjqIG)}lhyai8`Zt-D`zceNWW~41bYWOFH6{mF36nL z101>nunC^TD*M3mBR!Vrmb^R!e9%|vYS%mw%N5_f4&b}2r;UUjjwRyi%QDqCuAeKc z^8Ugre1VWNp^B+!ij&G(iOd6bPj`go-#4!~DELxHw!(6yI#lf3u5)KAf?Fw{G5Re+Q$KZ=F zLvE>^*v<10RVIFrBpx&$^q~22QrF*OZfdsiq_3r|zFv7Yz*Ro4M_+~8;kGU&-Vpqi z`PF$Y(#iz}qh?v6S%QMrN*OwjuniaX4a&6Cx&$hwidt^LEmo_g7~6s5bYRBfpEK=j zzixQ(do{R(U4lSZ5JJ!QrbvZJLg!q*={>ElZO$T>18y6@4Y`FlFIPQfXW>=}I-K!r z{ntMOyp{mm$u?o5T>Yo^&8p_LY_n16SMXaPVTVr0?b z=KOelZ)J=QSTBE+AWnLTXrh+69*2+=h!c*H%TiDF$#nXwmY;v?+PH}&{GV{DhFVHi z7)09%+LK=;J|N8p?7SO(&3Q(Dwz?o`TY zhp{wl{rP@qtXoaB0N+0&n3RkER_kCRQ&F*p!Pc{YuyEA8vA332Vg^?0Tr6^M?mqeV%js2y6h?003?uP;L4DwDhkqP1-=liGFn2b{qEqz$#O);K z{n@|*HrKI@15<@pQ$MY*)7DQTGJYCTO%?yR-ULSMy$Lbf*-E`Z0lE^7(Oh~W09ZGP z1l-#$y5*PS^-6#VL^J`Yt}$hxuNY}U$kQyMjx+)BUJD#iw;`XvN4eD3H@QCFXPh-q zwDTIUjS58W^&SIvKfrliJZk`G%u-$PRf_4=9+o{0vY%@_Wr4aFvm_oK%<2$~lID2! z8b*sJ1GS6g@wZq^S7{f$HNkF->V@$`zLf zsSaM>*bu$(ACj%7+UJ2+O-G=q}Ig2-ela9XCz`#R_^ENVlbDfFm z_DY#&litaBz8ft=7c7p?folO;TPFiy8mkCJB9TG9ZK}T$$MQWG0k%q43V#hshSS4* z&%)3z*put}WLO}my#TrPN0cY!S~y8X=WA})mjC=ENX6kU)0G&62?KY^CMFld!)b>+ zcn&=r^S#3qov>-s6ZIWHg)P3%$bcmI)3_Okirgl}h~3WO3MSS!Io?Qd`tFuRrr!Jmbn->@57)Ce~=@~ZiVVzDx)lBYy z&FSr@)BjyR>aK6QP^`c*AZ0}A>Zxlm(L-Lzb{8M3CQ|d`|FGYCEpFNNw@}O+b$@Hm z511l*D{2SdignVQR;^{kW7P8O4oHy8@K(%D2p+mJxEVBb`itl#%RpQg)b@X0c? z_!l5z{c}%={m(G1it?t)HA%LZ<)uZ1IHjuZCv=2VpSzWEyAXuI>$b1+p%W*bAx3R~ zfx7G0Zoj);Sraq~T`2CAR0fho@TG-JJ`155Po2sS@`@>Q&vegugEoV2@Xc+4b(L*0cxfLGn`p z8{<27Ffz`fWH`{Hd#+^ot+AY4-S7M#i#_*C0axLpU;ZCq5yr1BJ@8d=o%wl-0h?+u zor)X1fPkS6Nt0U=OQFHDhVxo8g4!XH_+3n$4vA8Y!V#h=a$UsPh5m0NhvTh>!HuXL z?H=}nYClNGg-r-ztG#4sfk$&JJv^?Ka4?z8n{2yXV~ccRt#Ie!jezMT@Rkf)D=8`B zZr1o>1e&`R?v|KZiL*Y5X)hWLT8@`5e&O&RU)#qne-73vPn&*f*ko@t|5@q45f|Fw zM$~=h`*7P_2V1^dIx`P%-BR10G}iqOoFcU+=lY@0#Vm@xb!dP>0nY&v;)9WQwC7oN z2Y$?Z%5D@~V%aZlPB~V_`tTOpVs9>i!nqikX{l$-3qFW|`^!9P#h8lrn?K!*M$wBzQL+ z`es5>9`jATYC6(BU-Or>7iOuWtq;f=-#URiX;(jZH}7r!;Ng$&8Uwe5{m$>_*3GsF zWm1K_Y?a{&i=4NyIW?g*>D|BvlPVa_Sbr21t4_sfj6Ztb`OU;YF)zo%pXCYbJZ{aC zPL!#$cx=Uh!?OIo;`_^~ssrugnzW$C%(ka%6ri(ORn?#o2MW*}44Dm{edL&i{S~Qr zF<&H6@>60h*5N$o!jJTi0?e0Y@`le$2X;ot_kR!_)_xUNO}Jbe@@UC=I{O`>8a?{& zmhPI5*KX;t(ehl2+rMV6#q6eys&@q)&r3p9j9ZuZLlxg9wtWpbS{^!Ej4mLDv?j(o zoM0vjCI#&BCo_qCP>sTQ9TNhw2kl0(bm_F1Nhxx1j~cSn*aP^5!KE3H}jra!EJ}rAS03 VSTko_)dK+^eQhJHN)5+|{{!fPB98z7 literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Cropped-Volume-Bone.png b/extensions/default/assets/images/CT-Cropped-Volume-Bone.png new file mode 100644 index 0000000000000000000000000000000000000000..13c0922ed88cc0df8e1e875729a773f58e55610e GIT binary patch literal 31396 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≺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�awMtGfe2E8uqz{AQ3yZzn?JkVPWGlZXS3U; zUN1H7%e0b%W%NncFW}m&O!>+|H#B?M`h!2U|1lB9*wyia$PlQn z;xP~R*-sDT(I}@XuV!+Vr`iKDk_RBu9~PV3pYirg5qsNZ+-1RL@nFPS`Of`Met7Sbmylg6WW*+5Qa!~q zr`7dPT0eVKrI23>6}6T{HS|gIG^p_CC9H*iUM zKVg~5eH{jkfnW=*+TnIrVv5Ef4y#*XjJR4JbyHKatvTqZGeH}up2@}x9pcpwoDJ=Cs0+3M60Nnzw zOH@k+#egEIVN}GFFcLtbE@A{S7K|!OutX4Sr#K9nRMnA9FaRI}>znWa@4`?~jYL%G zq#X7oTn3H4XWtliu)SAxH*Im%+fcMzuS!(f?q9t=#q!>tfABZtt0&JNe|Gs`TrW?@ zD_i&Tbm`MxR;4e!oy3}?sbugYN(_nuum{_ORy{rG9IZnNv-S2;nz z(Ab}G{;zVo%Ct3VjCr*&_%Wx2z-h|2+1>)et-apki^`cpb;j>^T5hm6aq!wKe9-x< zYVvNIFK*5v`S|b^(BM<*H4JQqZsL~rxr)N-m!s&5*Y#YoX5ua@e!=y{%enjI%laX_ z`_RrJ*2XkZeN1SHGBgI@&F-(?=m`76;5q(2P(8dc8UXl8)lL-zJAuyWgftUXNk%CV zCPUtP(>3F9$;v?i46q_Jx@q*bq-w-<&&|dM_LH$?BmjtjHY2dAU1CL}lwgO@2YLJD zb(c=O6I#%c?NkoiK5MQHb@8wW=Jwz+pRUpBOiiErL3F(xPol+0-POS-@0r5%zIV;@ z$9(dXvhIfcn$zgPlaI2F#a(UxREK^<$x)JoHWRd8e$s7zdUbhwAp76{S#f!CbK{mHJq*8TcL zcDs20fA#)p&XX>bmK|ar5SWONK!K1Gh=AY@4|4|%{*8(L`Yivu<2ek%-wUeOuOh!) zQXBiAJ+*h0W z=yo)_AzxZd`+55udA;4c?3Z(;X53FHrmpb3Uzr&IYvOg_uFck4e3_kJNGEZ8@8W1$ zc4>UmjnAhorC@w}e9!&peu7`)PZvVm{n?go=4}U?eB#`A+(|RW?Yj@c*h^^nCf~a{ z%c@b?H`%j)GrwNWUA?X(nFe(*!CK!8*>+P<)v@v9QxakhRm}i5e3zPRuM(f3#d>)G$;;$AX|}HK^ogsAVk4o4RZ_m1SgJ0TfOa4Dj7B_x|d3VGAj(^9Iui)lL~1BhjI zox7vf7o9ZLL>mwBYClxb*H3SyS*!WMUNyy&AVd@tK~YuHo4hM1C?VN5EjPQzQU6eI zj=%r1Uz@+XL^uKwI)p)Co3vEQEDp*mOw4I&Trl=h`!kh^L%5PxUUf#J1k&@3s?X9s zV@Lp?l)xkLAieIMAG|6!&9V(7?2>JiEz@Xv+gz91%_K8A8Z{4My-$xl|LdiBnep++R{JF! z*=bLu3XHRLH+jC&&k25bxOv~b_^Vs#a>tHYj?=lpWY)n6Q#zt((v zF`D_1-@E*R{`rg5;j}JK3%=OwJ?qOSdGlX~(QUifQ#da6suF~X!3!~s^KRQ^cGy2F z!p5Q3(1hxyL8l8RMeg5~>SbT{)Dqlk;n|oV{S@Y#=4rY9<|#aCLhmY9+JIH zSPgw{Gh&WlS6k;LKXCcMOfVwFk`R>Q8hPWMR2H|fx-qMT`-I!f-`>mC?|ylaoBp+H z?WvsFa3DkJ25vkp!lp2%-_OnuC)tDTpZ)CSlMQdicCyFWDukxv%;ZxUjblBM7t*Ks5v-A#T5>9W!>XXS|f4uC|ZRLH=!wjo4+U{pED>FDS)h5nXZGMwv zFB@vMA+g_{mFdCM?X!uR4--g3v|Dd1j2pcADSr8@!8ctY^C`T1=g^GGF}y5LQiY`&+s$M>QlBPGzNG3|2AD1f*l4O2h`q~Gv%{s7}! z(){kqa*B!uS%F1GAt4K)Sj`Kl5E@dlm-thKP3Y$`v{hNvXQNZ_tzFfAE`^kg7{$6Qnn7RTv4W!P=K>_=t z(fX_|SK%+7sQI_m|2biQ+2+~F=0U^Ima0K_0=k+IlR-pa14M87mkIx{rn4Krtrqqc zh4eNXy_20&RnfTX0xMFHv1M?A0n}+614h9?F)7Ae4N5M`0E4ASU;z}>+VCODkzxSQ znx@8O1`9zYg1ct0Z{RNxKmZVcjK&t%*8}OcuHU`dJ9z!a`RFI`gVfiJ&Pn66-XFbt zv2ybho%Q|XJjnCTWo|RFt6w(QTo)4Z9=De*9KfsU)Ly0J2o3vtnVFtQKq7oX+=ll>7>YJPMa;t0aJx}hAG0;3Wr2(X@}Bx(=M;tA3a&$ z-k8f;aE6Z6a+*hqPxPy+v@2bq=NC40sR&$#k=(LS97Vb(*{n2sLG^d zb!H_4FiKuk<&Fm;L>eN*nnpQH)+q_E4F^yQNibDb>RnoZz|2er$VqofR`?t5_$K&7 z1t2C;S;IPDhu4$YDtz?OClp}QOz!vZ|R3*L9-$6`VY2o*nxyzkieCc=VJFxs)kJgUrgPtip(ifm15hf)c?phnQsJ z!tKn^X8h5|{_J0^-TLLtf6y<-#fUQvDXkJO6I!Dr5Pi%veD8jEJeG%mPuL($LK)-s z=Fx#YKB`^f{abk6=;{C@$C5w?x?0nDCuBa{w!Nm+xa@yU=B0W=p?=P zo?IS63DK>dXFoG3<*Ro~YiEVB38W~Bn$WQ%gsaswY_oCNvwpPjo12q=bN2A^UZFUl z%|HFs;-~!S=Fk7>K`mZ}glI{nhzXDrNQROhnf3r4_1#f~>)zftAO~5*&fBie+f&n% z#3J0r;V1~SpiGt!o(#?Nt4V*ck38h#OJg&O_K5cp(yrF7h@@l*7!U~w>5f9>?F0A+ z9)Cv^_I23Wu8M$fazR9D0C!r72npZPO`!tpWTulUDJX$K1q7>rmJ`8&#+uX_vJA9q zal@S~!d)l#+nnXs(wA=&rFUqOBmg5iI^yZzN{FQG*juyctC!lIWj`f>q5Yvy#cBWJ zXOV1MoZZCHx)}9`!vmK~cX0iLyTdXAIy^r=Y1Wv{o)`B%!Kd#K9&C%%QZF9Babapz zBcf5#wu_Tevpl(&wS(QjV2j(;;m7&t{K3B4cSQm?a^33>zIgRn@!7?nLDsKfRR@SF zphO6aDbjL9H%^U<#U{C@{pN+P*H&B^_kiDBKYUOgPjY8<+QXuyCUL90S)|p~x~AKc zX%V+4Pr7vzUrZkUpq|(X03zMpD@S&h;MnCq{!sDy-!uM>DC}$2^9BPzcOnanjF?AB zq7m_p5FYNLZ`xJe699lBGNK{12+Wv_%t$kUc!zWb0ssL)fHzX+ZyG0eH|A@fWOrW( zRRKhG1c(2VllT8$H^JJ)%U5US#$fZ#vYHGhU)cO-q5UIC5B4d}`1-RKHEvygd{veg zGnkZGKh9lt)O7B0yB5ABn7q<=pL&S#`8x+EWBXtcAQ)h$`KC7^g@)D(@KK9tFePOD zxJlEWHm9$xng0;=kM!Z7`5JZH>1R11S$?b&HMf4lJ@cc(%?Ki}UF?-T$lU zzLit7iS_QmCPDyGg+H{r^LLKljY!;iLV%#C1creKl0n(w0`7bs1O+5CpkUt6D(+H8 z2mrtU0NA~WFyAJZ3BU11e>-0eZ_gK1AR%QZ zX*h0Eaa;KLQa5c#d#xNlUu^DezWA_li~POUaCEzI?UXkk#q?-%I8WAS2WlSc$%8uo zf86^rvwEMW+j+6=QsRiTtSS$ig?^EG_sH}; zZP%J)a50fM%t_$rY74FZ^5C7~=zso`(;v~FiZVzfv|Ez9B@4~6?5iHB=*}FyuIPsMM1Jz zPF6j_+4)B&echg}R+WrzqQx`S-qMaOTp`fuE{Km7Ps zh(rK*TZ4TIu>kl=i}#y}@*VK!twPnCFLt-%>DPXLef*A(arb1AqM`^`sP0d)#|QoK z3Vz)`PUG|BzDTe@_(;RM8cUAH$K}y`)!+P!d3ew4Js6KK`~caiV2|gfwU~Sswv#n( z;P};9l}@$xz(cvh`ns{b%Ht%twmEloaE*EJ-yJ;uA`au#P`)Sq_nNp1ZNj=`vXjX)4UN=T%JKg&H-d+@o{T6Mt0=l_a(K-}N)?onFL2TQN_f2gv z+Yahdc3hFV?Yx~-o%`@;J(Y*1dVjWW4CFolPm@8Fd2GiRxUX00(Led4i^EZw%^}=h-`0LA zdA{ma)^n?)29=B3v!=T(vh}G?5Bxz0e;zOb4hrO{y77Ck9ZiS#;`MN4+SUwhfY@fb zom}FOS8-;j?ZWG8drn6ky#`1=nz^HztNnPoSyjVq7>{FF<%NuL%^tbg;}g!M%-acq zRp$Z3CqxuOgn+Um_Ck0o-t_O+b^dDnehg)Lx6A6=rRVMJzO@v3a}of++o}J?_`7|b z-!k4T%{#}6c4Q@@04fO)!5*fAp}&{tpAg*wE)fK%OJYhoK0U1cqF)D`WZHN;Uk7g_ zd5+5x^DgHo+v)PJ|Lo&OSF`t@<8}x_8$0Ctzv9(L?W%6OSTexs-e;fov-f}bBaV6e zBaxZXK+1;5BZaQ4aXcI4ZIX*l7mG9`c3n-$Hly2%sM?O_gIOtLdG_O@X{TWOiKI0A`%B*_fJbmidWsnnqP=^SwBJaL;&L)z0j@?*WY4A}hrz zAuuok2!o*9^>FWcUl2f$6;SW8%uFhG`PLnA=KtW<0|5BX|HbRSwW0j>gRfru4aCRa zjd1&o)4m%N+*hAN0YG+~o}dbl6cvF{9Uu`HRwfcAiK0TYJRl+if`3!wp#;gP0feY2ffxbj?>)eO{x2@z z|3AmB;-RWL_`QHC2mtY}KD6sWQr+d;5O*M1#k&kUf&!sv+M)OY0;|xDsaS-kE@LV5njbRcMb zzG1s58G0Zgkuv{tAuDS$ogg8hT{`F*cp9jwidg|&xGb!JmNr~IE^g0gBqRxdkDG;+ zlZ_{xrH!3~t0coQw3C6(!CI0*Ur>!l%}v(E-a*L^WTWG!u50DzWF>0N0Fa`S@DY0^ z;9}!xLFeP*?CK%rBgybDx?<1ef2z3|=>7%qbdqF{{)Zu*ftn_rED&TvC(6akX~o0C zODFtX5)k4O5fv2{7UrPiA5(xxrvC7nq+52(shm6%`fb=HcV!=G*vMIU+DJ0|<2OzoQBFQSU0xnB!DrVAaPkO<@$mc?R1IkD zVC(xI=yMz2vwwAYM8)_8#CQccc?ACt=yTv$TXfveOYGtD=C&}=vHJ5{fwU~{ytq`w>jVPxD zzo-bO0H1{wr=^VmFDIWRKc9%Dg`fz($bb6F0j<3L@$G;2xBmaxUjyXuJiaWP|F`M< zGwS{c3Na-Ik7sxJ{(DU5*tq|@yLy{z(0w*EvTz|ZnYff&=cKT;e! zln%*qpXK$tV?7hSroE#UyM9n30t}YS9o%EVCM|m{Li$S~#tl6ym|-4)9nI zgx855g^EU$+0xMa`PI}xQQjpWO9}y8cqu4epm87cCJGfBowtSfXHh`k?eJRSfC&of z9-e0K#+NUPKX**fHc=daC)WFLfmClQeE+dlS87>d#s-aQg_lfiNt`MzKRR5T5w-1p%WyUah4QJT>n?i7}vDwiL#0Mmql_?`E8)wVvU z82TuTX*HqxW)v_)`VXg`yzy(zPUfq~390oW{h|c)TCh7*ejz^h(gXkl`wk{O{55L} zyh`%(M@;Y|h4y^TY;U8uQ+&7qs&hR(nfk3ueBQqDJJNQ)tcSreen56M(FB+o!duR* zo9Cmk*M4b(ynbn8+r-xA%Kix2zwE1qcZy5@^&m=Nnsym4 z2-+_Pwx5p9UKB|@k|?~YoN(ptxZF!9(V#Vp*%-19Xk=dwhzhv&xAKyMK`xD(=9|vRz-%ipZ;w~0x)qCaWKn%if-W3gP z>Bn6^RfFzS;!M=Z3-V=W73Bjp3u(w8r5cBOrNy5sX=U{VI^;>nd(H{EqTls=|IRs> z#{lZl#I{;fqKix+j~ez}HQ{PC^MhRNUz`0^)4dvt#4S8po9nRyO63CfrOIJ;R!lT% zd1Ti6b^cCX7bgdnqAGT#t{tZ*<1pCEwUR$(N=zwV#+9wc<@I6>x3@+c1N=N2jJ4;J z1+68CW00(EkrT)2q=FuNe*QQLSR3eCJPo^U(=bjJuP^!09`XBCwO3$I>-ul*)s9Ku zDbUW+=~-marz@9}L7P$4jSfj{v}IGnS=)$xATd4}wMb}Y8|oloR}tveqt729Eb$oO zbNN=Ly)Q%JfPhds>g~nd`5i=jV<2#i`_HAy{a{n&J~@>Gw$p$I1yb+k41d8@X~)qn7e^{Vq>@PRGyg7xt#y&t!N_-9)`ce?YX0 ztD9aH%)mG#T17KbZ{}Dp@j)V3tHwh3e~EF!RFp7)2zTcOi zo>Rmss=GLjD9d|nus_zbLzpq{HgTH|7Le0j$Ny9?_2pnwRaSV>% z&_UMO;BWVlx}&l6PdR31;m7TpHLV~!X26>%YWi2rs5Dorn{BhR4(QqPHFW+dY+>6pm2a77}HCU-5%uZ#PoEX!eZSw0oF z{FH%Mi9%!`ph=G_+Y<$n_ChgPc`BRZ_v#1OEuqOV+3FESpj|ZwkD(`5Z@fju(&gIS zlA7x?W7^Cz)O%!J%{hHh%kAoSP1N|CUQqJviCYc!! z@bhlAzPzB;6-M&_k?JUVcTquM276KqF8D;n?kKbDY;?7go z=aMRlmx&)@TZ#EKy#{*lw8jpYzL&f$3o?ZE50mxmyhF+Q%sv+%c+c`UvU2R_UOwb| zIisI_>5&6B2AgUap ztPvD5^waD*GjRaN<4}kShcK0`v`WuK_r0d@awL8;lo7+WSV}ez`-9tp5v*0>t{(_* z_1J!5l>*;wOs)$ry^vx1n@Xt_O>Z}08xb9{GM=6n^Q(I!e51XR#^)S-S8vAVt*|~B z5-+uo1UPn&qH@DT*8Nnn+MtBUuUIa;GiiPJ=&0X%gDOAzqhPxgGitJV#j&_Q-+$(< zkBUSndv46bbyGazs7$1DyysU1 zz=^1bzZy?{$7KP~@xs+(R^1IwUsMXKGj_`MvX1nNfVv0E=^}x9&uoPKRZU`nI4;2C zK0y~!Fo3GG+9wq&xtBDujz}DTvWcQ(5>AL0IeD`4J#$}MII;tGclvsrUN(wKNzVH$ z-`oY%&rPRJTx{asZso{ds}a`uWMmq!Frj3+CLSK({-AZ`($LVLRSx2%#!kAr=MvQ4 z|L~OskFP%MjBVJH*UCa?402qhx4~wA2j52iT8P|W#lWEL5!&VOgDzT0Y4sy8`)Y01 z^Sb}xq{b+(xcKFFtgN@OGG&8?CNJqM6-X?7fOIk>R+esbGRB7X15ol{ZOL5b1?^J@RLeTV5lTex}hsF zItX}qe?|KAh;~>+jfaWdwYnw8qyxr?86dg`IQj?GICYdR`qQnS+BNtLUBER(67Ki7 zJXnT#zVdk6IVKj1EK#?6&JpM%Zw@XlH~yRi%V!dYtCJvnG1`2fzr$= z%=@%Z55SfqtO@vXYVx{WX;aDo{&6SL`XFa{6#pr4Qw5x0Ez`13+!Q*oN!y+>) z9_*a1qtQEKH)4pQLpWAP7t+;>q^kxyY`t&`>O^4<#rT0$em_}XKY8O6RUNc-#M-gl z1$^)mVrIWHotw^sM_C6@W*~(^Ux(*ebXTygIO-p-oG53)qgXS0{Gc~pMje}*UrC{l zdraZ7-yb_*WDP?|@< zh)}i8j34yg0uzFQ^i3)?P^mukNyGJ^Pm@)zTaN^{CY2?>cu zdA@y+aa&srg1zMNmiK>w_w$|tkI_Kp97(_PaQv?&OcFWW)9q&b1ZNMJa*XxZu zwKc?}&c6WCMt`3ZTA}s99z;BQ?Ar9!v&qk zELG13zA;mJkW4Xo9xe%H+qLXU=!{w7uISH(HTl+iJCqNNzS;IKM!Njpln^O=RkHZW zUl*qt^tIoK4WGizI@FlV5`kQEu?XK_4Lsuxx>)X>iN(-RofJ$^e==K-DYdnkt4-ed-LX_!;j9<(hnqCdOw2VE-Ol8)0NYhLSlFN>}C1{(s-{l?!2>D0E6;O z`_VYR!7>Y-B@5sTBtjSew>Vr>DH;ga#Tgl@ev8<~+!9Cr(ywZqIxT_TL)t>DMDva( z=xi`Kc5O0iF%waeP?XolwmTG4AB#L_{lK!%$qD7L^9-3(dnz7+kEL4PxOYg7uHy;A zegg_n-?Z?(09#+$n6(|HW@u4s=APZf1)Sl#T^|2{4;)O<6!W?XRYT$6_imOVs$+{( zdsB1co_4jy!rR;WU&+!s+<^$%zwN%_tb&4sG<|7vw2a0bwiPux(!MvH zt=4Xu++;KX=zpwO1ZY0Wmy~xC5u5?4q6)aBf`ZJ*m z#S+YDiAmXQ(0Q@9G&^j0doTu0END!ib>0FvAF|iqKHMkg)93w8C|E16p0D%b!Ub@T zKVi%)?*I{Y-Y45_l96I1dhS;foGqMzN($G*b6@?f@RC!AqvbMJAO$ZDdZ|WVX{$%K z{fH&N`SDs&lWuZwR%Y)voHg{J*H-rY;!k=pPNQirOTLbPT& z{~RKksUO@OY3FW%;bXILcR4>uy|;rR=UAh);lA>5)Rjrh$#ND#BGFlye+k25ejMk( zKwjGs;=*S4A#-E?r6$57@T2*P{5S(u`j;7%Ml=}8B@(aTToewX2ZB~oPyf2MBd;>f>=8b*_9M|Cg z@TfE$IPwi~5Pg(Z%klOoZTA}6+S?gi^zhZV4t$S~cpLA^=DM+`GA&UI<0b$4Bxd%& zcl4;d6KO7oTvI7~BT02e9JIrzXCVtr!nnY6cg#t>IRK{ZvKe|Fqt8b!4D~}C$sbCW=12E-mDCK9$Hl&l{LP)s)P-5w`OFY230|W{#wgT^Mn;*DKdaZmZ%BQ zKL+&opp+m!

?HPxxiJpC_lAadQR9ud#IA1x@xPCBu|5Bs%teEA7ni&|}HX9gB}v zIE#JHQHB0Okpo{t z+{Hn*mMAZo=rwl*ym97|>!H~%DzNZ+Lu5A{x7xQ^N*-GaU}7rS6_BJm)-O0^>3%F= z7xs9YV@#2}+c|EK)I?o@&lX=H4`xI#?(5~TCWNq*U)DXVeL;_Ztbg6LviSYWqa;*$ zStL@9pgGd{7*&^I5a9{sv=ynL5Kc`%bF!g@MGZN)}=3tlVsH{TQtRxDE zl>keZM7x(fbYnWl#(g()P!7)81u_K97 z{W4C^P$zf0N^OL-@rEj+Ny-03_0u&x9dXjmgVNX#*+YS??blhj9hBjcP!$xRxj1HNC%#; z68%+9@A;4Yuk$~ACMoJpy0|d2x)M_kW(IX&kVbK=Lx(DQ6i>}PAN8`rB3b~5!ir9+ z;o&T7TNjtX?wC3;A_+Hg(a%cTt9#qq7jD-lHGd)Qc|cjsTh*Io(a;HUEM+~-FuG~oOLaFkHz^J*<{BV`?h4hR zoP?~RBh69ccmxwP(qQ3jBY#JFXKf3qBWQ8ugkt|Lm3%mBDo(v!oCsjqzFfylQv1yG zD?wC=BiX}{07sq3iua61!5i0V3&)deqb5I>UYN*rGk^PHDKBhkOJ_#NvdK}wZS?gbwS$hzi;f;B$2K$C z1Ea5^zr~*GTVK82Yr5z{B#DOK2YoDq*dO|$l6#=l!zMUres2V-!*eBFg!H%A6lw`R zToQC!26g6+<-qPHbCw6oh~%(T1vYNGIZ(`z>LMRJM0gL5kRlsjSNUHmSE{%wl)Zn4 zC9|^R2>}JHyIpS$Aj~0ty4BTKBr?2N33x|Ko!62D@GSMc#^av68pOIWiR;T0TyY(S zy{t54Y@FeU=hKQHQ;B;;zgq%J0V%g6rVuzs*s$jB_uQRwj})10z)@HNn^)rvTABaJ z3%psTj^hJh;Ln_guLXA_v_~mMX!*w2I22m`EOv-5-RS)AqSTtk={Bd+s&T22X`M#_ ziF@&>OF$cx_84-!9h(9GTlZ7H&B&GsW*(L^D#QXvj+_}Hhe@jJVTih+v}Z4dsb|+mk*tDeN&Xn z=R>=B69rTyO@T+WoU}njrAC*|az&vGTGbqGXD%#6L!&z5!G?q*W!55MlZ!xSARHvgiShVX-C%rr(Jf#!n;RYLLILx|eSI_Vild|z zk0+KM+S-yuILhv3?534x{QZ2{&q?=}1C_$_L`Wo_-gac$&ij+;P+v*e5X3SRJwxj~jRKF4E7q(D8B^n!hk5iOZ00TX)n#-6U)sKc zWYSmtsEs<}PSBA;q)-TYjTE=t^xxQO)^?m)9;_JfDlPOfb8W66_-Urr6!_;6ZJ(pe z5Vr-8v#Z&=u~_D`l-$BBoWW6Y+oK~lx99kH&1qZbe@_#gv+1kfWNv#Vl*1$Xcd_Uf zd^9%;-OUcXF~%SCkmL&@jta{C&Lj*Q|MTe!kzN1y($X>!jsv%^$gEZ0f+MBSS}*rl zU4!mQmhRU&l^*r52+i?|%Z{uCJb9b3T;DaWw#xJAL}2NKXxDW#QDWBL7u;C~d7Un0 zbbcC>MayCm7G^F@>yLHd%~mF9@~^cAL3m#ejX|TR@HDt~3n`u21Y;-;J;cQnF6$sH>?n8bLV$2CrE`JS6Sv5Av4BLe=4uK>_6}(Wfgfhd`~otMkj*5!aK`X zU0t>ikh@r9h^385X||~oMVC=%c|O*hg3ZcTWUFG0wKk+R|8msr5X@eVjnf}bana94lUvkIE#P_#>V0{hl0!bq(H;R4~ieoVSR$Pghy_g~8yF_K++-8y6K;8r+j|KK*2 zAvSzi70w4=u~u&tRKyDjS9bB?-%vMs52^oC<*oC)$Ec2D$&QL8JL0!64Hq*5vDn$- zF($q`YiT@|H%qVOww7H=RCEWE;*sX$+~0oB2@E>>x!2)&xAN8mimYl-J{RzlKj`@R zZ2h9E$nmwg^gSuPvz^Q85f7`!Yn-YsLR@|%536A1UxSd&mNs}r&Ve zCCkX(VdKQB(rNM}$;r7MWQl~0yso~M`Z|`gc)L)>;}O|k$5HH0q_ogc5I9c;klTrD zQb0Alf(m{~BI$NpR7^TaJo|(fIK5SH_Miav>Znp-O-g}R8qPk3HQ~*d7p7@OE;X-6 zX^zV&D~IEpBJI`ZKyAT3AF$}r@MOwb=B8Ux>AFVivPBtgBi9b5Cl$_ccis`-UrS9@YAoEf3>vbP4`IQ4)M%>mjW@SAlvv1wYpq%FJKViM zggEbF=Dx8_$49@|z#{+csLz7mt(xogC8O)tTo(_63>`n}JA$cxEsKXwsUMp>UGm0! z|8P(I9Km{JBo(mweRuq+sQS_GN}~0)_H?yeJ6^ZpFXU^PLXo@I7pHob1-~i4yeF)T zD}7O21FTA_-kqC8Ogt)|pzI&{$(Um*?(Zn;qRr8Co^rShGKesyh&?LiJAX|WRlg&( z$~PY52&c#eMV^wRdDZV0(J1CV#WjrAPaKknpl?-z9)!$bOTIV4IhS{1dWMl&TAmQ# zkzB}MY*#$1@jYew18=o7Vipg5VRYW!`1m}m(NP5)VMPM2wP>r&8G5@lk>p<44FdT# zc9DanwvpO4zYA0FQ~$=Le#umOAWUeaWOr}vz);)r&*f%%)2#sc3a7@RUS8H{-&odX(ah1zaIcpdS>P2pt#-IZIqPkE zwWLbiCGC|yK{*0p=jF%VuN?DvxyTR7jH87hgICVw3~<1Gk&VMJu+tX zDpqvww6fv^M^|j;(KekI)WZBja>-qhGBC70!5j@e`EY`>>j?N$2pdgVDMwAH@E8~@ zFyUteUy&k-NAsH6L|NYz>W0V)FoO3DvFKl;vu+uH*uLbwebqO9v!d?r?RU20E{M3C z>x%15E$%#B3af|hzAin4atoILp{(ccO^`RH#Ru#8QlQ20Av+tv{UIqK!oc}XYrsbow`hWI(-l>D+wjH&9c36-HX2?pGj7k~<7)A zR4?8zq$VRp)L^RT;XRxq@4jMSQQT`YB8;}|3ki>427RGp_)5p6aPBKwCKqqHBeb6i z?(hrT+52|%> zRH4olCBgd@*@#ivGrH2-7pf>M<3$GxSWy{?Rq1k; zRC(baQkA}Pe1uwAGq_{cs( z-=$r-eQKzhAgD(sL}X-Mr*GV@EfrZ*b$+sG`8gTEbfI5oxDro9h2_SL)Ki1~Yl%UAfTfNQAYK zEnGhB3|cI1d>bp=a5&18wrOo=*9Hc+U3dFz+fs4L#Oo$7rg-B!LB~w(N;kL9Nv!A_Ap~)Vw6+cf|2fMjFR7~iblu~)zT9)l=Vfy z7LRT)J<}llD~IL6bvDG$L+Evqe#XnpU#bi*ggw9>I1(L%YvlWOJHlT-+P|MRBMRM? zDoKq0X(&v#Z(WmX%+M`CK&b98RZ?}7^RmJUWit4MSPH+Ep&ZX%EBMptQ{|B7j4=)H z1DS;cU!kp6K9nnxj<>kN4YdUog~x-1NMY2;GP3S1QhBHnhl4=ey06x&&@%j~_|OIZ z85#?jQ8tC8>bvriVDbcQ-ZGER?VGyW&L(&!%O)myBkRC~V)6PMZcf(@zB%#CgM%#2 zJHJJPzNwt`yp59Qy~awAaRh-zzA=@gf3AZz$&~wGc58=wnMebBj&F;RrH&xtjb4Ea zc?v5gFh+Vg|MDJdAgVV6147`j-$nfX?I2$3)afQ5^ME2^(Nbn=PHwMwSMZYjbN5lX zUS&8rGnQ^j0tN#bsxoAUA&Y`H0?Fd2wfOjArQeb-rzuBa2)WQAJ1J7sl2?C$$^lE2 zBMx;l7B`E;KYFUl^s4+jG!8>OL!qnL4b>2L4to=hE7-9SSc%6H;#4peLU(|t*ARcu zPhJzu2RBpE$`>e-OZXuN(PzkdjV5p-2_MlF4OQNI z-v{BXr<}eAsdwpB;o8v*Or^6GJTQTu(LAba$bS`zLI~)!k|}G|=58 z;=SL{n)m`#CJ1KU>Rx@UpVCe4U%Q|Lz+z$fr5b8)l3~y1Kd9 zKUSp4CTk7S=CdNTKnYnicl)JUxj;}`PGPvWPshk*m(87L@Qs0;U9e`O-4-CrJF*`a z2vOY$Ge=5~P$n-nI+4v}1C5)S<$bd?9L1B-^ZWDDaQ0Hn3-ZER4)3)=+TI3Fl&lP| zp(^RU>wHy4Z{N4f8mzEVw*F0#aP47U!-d(5G2525iUKL0pHh(V`S7w&lm)*hO*{RD z4~a|Cdj|79CFx}B7r#{~GT_9C_Q5+yVO7`9fjLZZcmPMX@dZl63vS>CTLbx>m&dKV z@Uy!I6Qg#A$Pc>j`QI1+N+>9X6apXGD|r13|GIme){9b|U0|fl-*a3h8AL?5#GH%M z&Po)8;8-cVC_&k8+MPr|W8*>9l915Y)PSwFrN3u~IqMSbwRW|llC5q!V0xV1*-A`? zX53uN7i0oTrq*79Nxc0GWk9&Hfi@o@qap_S^(VicFLfxEqxO|jjv`umR7{84qyuWGhCjtm)=@84KtpdW^ z{U45u>?ZP?)MQN0cfPP)RX_*#8AW0jGkVP-WyQGc#ar?@%uQN)mW0DKMrVAEi>4h8 zhh^|~$yWCu@0&9psiQsE=1|Y(c>(xvFojSsNA7!BT^_(392i>gz_8mtiMjU{;DB3lijZ`_I;mDZSU-I z>X(nkJ5v0%d0uN6j%K%_YGE1U;Oko;~RjItS|jv zd;7;-w(h5%TYn&R9&6bi+v&&E<`OEg8|%}-mbPS8wNYl6zSX@75`o|Mn9lxrvbA=v zF%sggIcIz~kggPqjCq$>+P*9q3CVopJoqKA4P7JPQK;a_37avsO#HFf@iX|z4d))- zL7#1uxO?MlSB+!C+(ueQj*Ln9GDZr^6~1k(5Xwk7+V#T2v)xt?Go(G7pHVtmX2{jG zlE{Lfj{w_}>4=)X6n~vi;i!;eYd)svxAPDED$z7~(Pio}@1G`Bxu(Jic^by z*0th`a|@DfU#B8Ay&HoH%C$Yr5}~_Q=~GxPckcE{hkeI%?$aA?Qx@xHd>nt;m@hZdR+2_UqP1ZbG1eG7CV?TGr`D|7 z*IKs0cn{af?*6TiiEP-U} z@Cw*Pr4zDgVxq9W>_kU?qZ70_{+=1xH=;e>)>#uMTcwTEat$XA8U9hKvY377C}s97 zaH>ij_1Hc;S1JhTd*RwtrZ}bTfgw*}?j_6*rmMlP#yHxN!%!)6?L~Gi{_WC<9>TWI zBTG(&0V8M9T_<4d8jBl6r;pCMJcO~k2!Y(ICJJ(o4?YMV(?rUY?YijM`4Hj?Ccs>e zjP|+MO$a~vzc=~74VT#e6fRf-=X`!|4`42tXqNCs@?=4K<9+iXQXGK>`$7J`ca`Os zW=55>MRTS+-iKBzn*9elRVC`Gt*f^$@v9B4DU(ezL!b8qCqCYqSqd=z=v>aHp*oD( zNyWHp?0by*SU1}vzTrBG#$_TtAHa|GDs{2KDdKk?;PY%rIq*?Z4|o0jXr|Sk|1Yy! zcv7B3z}bmYr$e@UXiBy;Q+zQa{e{cRdb$_MSy@F`qunli!u$jxMA+~;%ufbbwXVq- zt$wrTA-yTREsm&%7JG7UHhs3gyq=gkW8c0zSubGkFRG6MI;ZQ8`DIP9G^rW(F+`?e zc=rpAxUu0v$`L)I^dv;X`9kwvCl#)?NIg_@bQ`^z==@o>76(iI(y?V`CI&+5Y<;fr zAr)az)#9(2MD-MTRN#zleC`SEt7AAj3)EW1I9vpzQMT1`3U@q;Ed#XOpKZ>;`ubj3 zk#xt)4b}5%waS=I`N*tGj%;kcOfB7yEZ4sq8p#18ypue#j0G=kQiefdaiQcff}>Z( zVx1-I$dYCLGeMlrEiDSW*qg6TX;O#>G0`>JfRdf{E^R^E;>wqZQ|cGSBB3EjT$Sw` zPX-JFmT5WtCDjpmNlkWUd-@tO6f2W=AK5g!7F&<9pSA`7EmDx}wVOZE6lv;pL^#E^r7c@{@lJ9!*2!#b;R0|e|rkjk8I#I5!b!V z%&a%x^gVZZnA-)=vp$M1rvR=75c5G|{vDBM@EB}~!YjgphY^Es2A@SEBm(KFo+cLT z06B>r1Ys#TwY6v{(-rMvd5g`^zn!(B{(m-Uh8a}XN}U>x53?0T1=Ql+?d{Y}l1h3a zzpKDAAd2kmM*dDDK}tU>1k+D%oeZ$^UjLv)%1gwt*?6THZ!1n>+1Vlixqe%cv_$F@ zl>*?mx#1bMDWjYJ;5|;qikJE*PGq(04B}JauVM4N2$T zrcx)SI(jpv%d3+P%Zo0aPQNTf%BED4)OrUmouI8wqJ55%yUV^w$}!kp|Ksd2WY7QF zEC8}SW5TXDQeV&W`gj@sN>VuAW`0cS)1G(pErc(yYi8nNr(klgDU?ma3>_tv-ehA0 z>~+}}aJA9@NOl}}@R@;#tUeD~kPY`yzNj;kJh=6G=`W8^-&tlbX{m>XyyrePKYJas z0^!&Z2R!2UhXiKu4E$t%?8+lQgr;S%S?)P%FrD}0PW;(q3_VSLQ(8yPTlm}a_}$;x z9JPfPY^XNiAyPDq2^@wuDA9w{#?gaKH~FIcbVT2yD@u=3v#+TG=$2|;7G-GjwOr@q zZr8HO8gBW)D$=zR7b{vMpaEy&u*n`atll0h+UUAgCz^3QLi`c}`cH1j$@l#NB~lKq zv22?@GtPU@+lNy4qJKW%hgNum8+=ZcPZleg=SiKUiCD=F&oTu4aqdqSjgP^3H>Rr; z+m|<;Z%jiyF$~!ld;WSN^4%UFT{r`>0Dk;-oKFJtyq*lhzYEuyDKe7*ABh8Or|yra=Uz1&uD17;7a&IO>Hxks4=afg=Gru*aRShrhQQ0~ znN0)@Te8utsx}X=acU(p0rA5^cQ-B3i#v0=QwXnQAKjPEJH85?YEKBdE|uLPOn+)u zcy79#j_}X8pnEj52}s*rE8h8-1DT=+360rKik>7Fwq$3dSP{xgl$c_5Z)|O) ze@;LNdC!Z>o3q{F0S-wi?Xol^)svTl)SJ?_8;xBLpTd8+W-sVLB}}LREn@!azqJhQ z3*Ir&Bc++t>3&}LJIzGO)b)}>#+8Tq@Ar4%PPtT;+v=uf&f{EGTAurxsnt*L+jFps zhfuq(|8?KQ5xmXi(gt#yrWhsOG`=0jKQ+0#cUv#~G;nvC0X)c9H{x!ryeij|x`(xi z_O~OtV<9_pU8Y_Lf3w58wNu{eJ@Ul6p|zH;DEhFC{+*54nURT{TKXDhoL&wd2Ko$o z{abJ3EBe|m_y-Z9jb7w%$=2#x-;8f3RkgMWr*h(Z+<~bV@#q|KYx(9!AtNB;JV3zu zt-r>C7d7sX91iiCvjJF?$1<3`?&Au7p;kc{$D5z8nrB zvc>&2L&Aq3AxmnV0&?h&oI1;Vxtwe=Xtv+xC5`LRPwKdJ!tZ=2PYv^*S`@FRtfuX_ zn15Imp6K*#8{Xo3TO8#c`f+)e`h5aSDw&}Vtycu3jp&B)W^J#E1(M#W6V_3`Lh`ohA zlCS^w&kQmu1z13>gkQ6$zqXm_1tfp5S&(94f77sj&fXt3YX_N~5qn?yXRHTw{+Z0I z9eTdjUY>e%(VT9O5)B&|ik)n>KIU+dP%Zqq1lTmrh)Ai)BE~cd7+0vq!jEn{`Eqx; z>UuWyFH087dvXriGZE^}^;Pdr1<`zavwdIX;`;G$fvdE{!+u-ca4beH)S?uuFC^T8;htivns6p*C(XdM5ZhLoVw)(y8;_O?6 zYDj^eAx`Cl$Lz}#2|gLD8cvgRBxhEu-mXR%NqymuU{%|5qidM#-u|y*lUXol=4fg8 zZ0Vu%3gpEf202v{)G%e(XiIJ)DW)(h=JlHWi@L&id8CrJdt4k~h4t0k@I984?GB;C zLA7Xl<|sqn#L*#8_4{%D%nFTyd`W-ufvNWUYOfr%Dh<%%#oFWo`^ehTwPVmsE?{^6 zyDfTB7uY}B^71NQqUHJ)AnWe=u%uj&b@sV>8IRt&pj2yU+g3mE(a~7zTB4fEih|z& zYKpRdaNiIR(?tE^>DSRrkWV<`ThaV@&8=oXw4B*3+;&qN&+KvOIalr~C%_a0dn~pX zNWygm?cNUbCFGU<5-QiLmP0l9wTK!qn7>%R@UGJ)GAs)&nIldRk%_F4&OgBOk!oYw zA7ZM@*gH8_k6FGBX8KTkxOKsB?da$PD~#^@@h6vA$z0jc>#Zynis-8qEP58c=8vde zBsg{rZ5<*Q^0QLnql==iGx8}_I59&)SNVQlQ_C97j>(0iUaHlLiMKz-kg@uMv+Kb+ z?bxuJlNlA)#jUk~mNK1K^_r(o%4pdOZ{rwKLM!m)cURYyFjHvVca$0EFWZ$V)M-21 z&sIhb0@pV+#;<@b>a^etd|Jd-&*j|E(PL7^R7=tGn&y?_c@z-P>T}{5u+O}GbmjV+=MtM!v>wnR$xjw#YvJ200*_{3=B6?}=&{ zPGRkDZQJ^zpW={f<)%*ZiL%=#nW@P-Eq;ttG3^ZGgGKmqr!S-M$a(6BIy>Ksh5YZf zo=3jsQd1vpAoibK6o1FO<3UZ0=@ps#>?r(wgrJ-UFbF9SW-WWqA%}4ogQCn4OBe?g zS9Vj}d$mE2MflRIxtEX2)#!f!UqGP0-{<-gtP-L@hY_&p&D$}?ZhhJH8O$OTD0J%! zXgAO$nFeu(ZDZNow|q)~SV%Rs_0`h{JGWn69KK@N3`~q5GM(R@TpVAXFYDSI8=_K# zQARKUnY}md-ASrFDi>J4t?h;PISMFiYSvCRn(x=k)2432Xs@%ry?WL+_2kB3HM`w5 zE9Wv!cf`It-PtYoZe2ZldUQmM-zv%l6UYv@S_CR>_0H+>S=gVJ^Lll3l-k+}+9fB4 z06D=~SO^Ys9xk^JJ*)bkuEMquwSnA;*_PbD<-PRk%ldq|yj;vjlieFtX)A&nib$!~ zob2Fm=jPqRwAma#KH2m}1SYTpv~47HodX`jAn)sNGan``5f}uR1LiEkp#V#_InVtj z6j5`V>J>CIo4aR2jAM}!R5>y7(ya%vsv@UYRm`I9PU6Jy2qF&^q>y}NFeA21)%;+7 z_%g#%vvzdEfn$Nx_Up@76d{z}waiS!ZZ?eIWhHlKa)&tJmU6o~fB3b{(SzL=eqi_h zi-FKKjinrlYI5^_7#*+Aj_OUHlu~k7&oL6iG`nRGd0u&WV3Ut)^Q9OpRGgZu28t8Y zVtIO!(z75XhoD^z&$+qSbep7&1R-J$W%foAPAG?0DJVR0oA z;^=OGf>_OqP*#&^S>CBi38QHoEl9%p^s%K)pMskPHY!FON1A%=JJaOq$sJIazojpYo_20#sf8HP3pZSnX) zlinRpZtN1ALKQ8|ON%tSZ-(ybysaB^rZ|Gz)$wC@T^!yY&328dyRU!N-J13C>U7;S zSv#dD1X1OKgq-N(&9=o+fKD%-F^zApg)k#`k9KQUC8!vop zJfE=~Rhy>W4|uXD6wvG3+B6E{ZME z<-hkT?E1UJ4npo_G%xP|Nxc2Dg{_4)*7Z& z`9a>CLZ~QgbN*y`@_c=MEJXq9H(j4|?`9!H3K2l|04j(&A`pTM-4-?Yu)cJAHU{Pz z+?fW@jdIdH7jb?wjCMJemM)1yh*i5f2gJ$JdMOg>i}U64_e@hUnlzhrz20bQHs{C0 zGTWI-*jXMw>o?C+TXD5V#V%>%<{CywYX~4^zI^1VqhdcH<;`VSFT>vz-X&-8Scbj>^lMQ+}e%U|u9tG=Ps_hemF7Fi?l&KCWl?+9DJ z552HqpBx9MB5jJBpNadg`RbdnuIa2Om{?TJ)EpQ}`M{*S1xtiHD`i6z1cDmWAWT8r z6d($L1m0z+BL)z`9KzpL&~+v=flb4qR=0*R1ob|(-qi)tGDs|>-5wqcjI660|9 z7-_V3zuNg2Omnx&siqJpPM}AyB<0k~iFVCqc?Be4SW4aI^yIzNZkFxUa=h4KiJ_qJ zEOOGeKBW+7e4Cifdh5o78k_wsl@0Wb?r9D{vza`k|Qs2SFIH z>m_=$rMId<0EQ1#P9Fp;sWgabCb+1&C4h+JTDHgtV(`)I#%MaZI$3Jg5KFFha(zVr znAG5^%z;8c&ZcJGXH|E1^&rE$hAFD?*qt=xZR6MBUZ0)z{~i`*Lz=<_<9m&DB}EJT>z;-=8hGtLtv_MBT6qBKJX*d|GLRL#0#dK0_% zWpmPZ7iy)e0|{XcTnK@L`;@w?cCp&bNI8k){GwA1HWq%??mV3;@(9D}&jY+&vJOwmg&JRYYNelSuA+Yfr1$j@r6UCyqTS=L|Mb z?rLpUmYv)vl-to-3SIBnHX%?P&r-kHEHAp%a?EZga3Ppy0%uidmLPzU^{@m><`^&@A$KBGs5w&zF&J@H zvz)H=dxw=?l-09a6b?+nlHKcd@AmlS;-DO{UY)niWt<(xa@OlJumH&QDaFXe+)M#y ziP@36PJ0E&HmlUsqs4Buv+rHoZ?2@QVvu$7lz40Ht zW{yP|@Fxlt!BqjL7(x_NCmO_B2yOrnWY|p0#9+V;**zP`L2$J#gIjnDxNK#YoqSk& zEq?tOI|~P4H_Hw+45lf8IYzV8H+^=*C`kEQKby$Z5nM_g)Ilt{J2Qj{&g$e&4ltuA zh=^UYrp`7FX{cu8ASu%7BCRfjNk-9Gyh&s|!9pkiGt0t7h{m3sDhqKC z`w=ODl)5WJA4s!LrmHu%0BMNDcoyP_@(NP< z`+a!&V88R72J|5g+D@|zaYPuqDGgK_7bjsPLZ1g7DhJOxSb!kW??Y12W4Q(roL1xxLi z4vL5|keaKylY=-4MH!?phL^+u)C}&z+u3xunIm{6_b$7GCGggW%^gfUu$tMgTf~FZ zCkeyIOaXA95F%K}b@;Jk;0$bKCxuaL5&vxh$FYjzskWQGUiY0=i-Xb5{jv(0lE{30 zaaCWvV>wGXkL7+bztPpJ-p|U}BFyg)jk3ekowB7mZLW~ISdeM2ZA(IeloHxz6ATio z-McST;|iJ1uZTy?puDNWXh(wh@{9`!app2phxThz12eJE_%<_#l2f}Tkd(8k+UZu8 zeb@C(&DwcNa`S%NeN~uDGiVSZ_$Z9T4@$J(Z|oDpGLT6kEk4WRpC@11rf%D-hCa@F zpBX)Sx37CC3U~C$c#u&aqLTSge7gf?267Su)L>@9TVwNW9x_aCxq$!=Zq^RGPZ(7#m;?! z?(peqWhpboeJKETFZP*O7B9%+(kyLPl6-gtlyQH5PM*xcNWiya@mpg!r&-Y{h<#LvIRxBh5#=d}AUKqB+2%MmBG6NAKusgZ-Lo;Qogh@mLw^m{hB4%)u5M3qpi6J4-u;f+E z2~I3Si1eJAi{tuo)hBQjEUlZ1x|PV~^wz73*M9J)ZoT?_A)s%Y^JkAvo}YLogo;F@ zR~LYg+jU+&_iibJRQDdm4}8G4g@XxT8Rg60UVig$r>^00Zbqn&!u&q=|3G*28;+it z2Wk)A-wY2B*c=Ai(n3K*!lZB_3Pk#T)HQ=S0@L+k<1Ns)drYr_}XsJ(=eAJguL( z)=W;!>SQ#r;*ck|VlmfjNcCjCTTG@PhNkY~X>)#2&E_{=d}%rpq}J!3q@7Plx`^|; zL}kBxPwO*C0LV#l-=w|`qr+l)^YZ9z&HZRRx_JKh;^Y}Kl|dMpLos^w&r5aa-eT*1 z{^Pmk4>X|v{7?UNx-R>_YP(o6fx|7Hm{$P zo)ZUCHA{dIWVpZ$q%b#UVjvhIL9eMNDqCz2+2KCuz;B(^mLi9tE+Zf499!-pWgVi` zHqqy;Mjg}#-AoLeG!_}wwG6xwB4QG-3@GXFsK6{i%q;b-2+C0<#HIx6*j?=!Z5j$f zk!@)~9LsV#pN@8Bq1tuXrEoF6(#3^v)n z7s^?^UU&5s2w`$a#Uiy=&GJaQD`E1?$rC*vu(Tg~2c(lrQ`V8QrDp z1-$Q%wSUOl2gv+xH@I9+L^)utiKlmpqOjhZdXsyT5It{V_h@mr+m(mb^{K7<6tWG@ z&~2EO1pqR~kYGD<5Fut$H8aCj0B^9?VSx{^3>5aEy0pRT5b?n6aCe3XZ`ZtS)oMxI z3GRjrlA%+(HNHXBdAm{2%@{^3eyuBIDFM!*AQpFn1D=Q|Mj6({Yf@%rVZc?5fEc-` zA~+gPQQTpgcwYC*=Y74bcJ3>Ri}R(79;SNPu2#&S87~&2QH;{3)tPpelv`qQX19>H z7{Tyg1eYOBiGq38D3MxWEm)OHbzPr4X_qH1U2Hb6F*h;OOx2j(nj>93Bt)t9I8+jf z5N8?@q^IPXqq>-Z4I2Qw14-7sQ?CO|2Sio+k%XFs<* zdD3>86(EZ3Rj411M&xPH=qgs4WCR-ruHmXl*=x-@oFn$^K46X>C}&V_$YzDmK$^C# z%i*ChJmfRjDrpSf&{chqrSfglc3YJ*Z5y$JwUK}Uvpj^H0nQrchXzD(c$dTAdxXSM z8Ot#-<*XqvtamlU5F?Ovc(`zY=j`qzF-8{AzRi9md^?N^cedQ8t}Y>5-FEMnPv7h6 zvy?o4d0C8RU00|2%$l_i%MBs0;E3iKuAUokM3^wg5I96hU72)J*K6&LHFc>;NAG;Y z`>YP3G87x~%j+BVcQza-=ELW#9<`m+_@Z@Uv7QZcT#W4?ny-H-LkD~S9q+d z$s)!bZCB2TeB^qPwTXd+%*l;nm;2ObmO_}BGaODltO6epoRp23Sa@(e*OYrQN7kXk zO70$*ggM*5HQh#Wfzhx}mc-16D9BL54?bF$-Bbr;86XZanoY{8RD;3ntfB&)i(9GB+#JN80z= zD;F`8BbJ~%&6%N>0og!VmHR7(s?K{`Iha$jf>HEG_IP2_(!yOrR=fm<@$V2-Uks&aVXFyz7-GdNGnbp*Rp-jV2^ba!i*sf~FmRe%&st63`!S4`l8IQ>3 z>MnpV1%d%NsT37O8d_ig@sNozInyAUu4?4QM4=o7kh=Hx1zWpqQzot$dzo7DH= zEWupjgePUSyT5burQ9~%`l2YuRB~STox4FoEQF`lox?M6<*o)TI50u2Q*D~HF^odt z*0mQ$oyBTAswNe{Zc3KKT-Wb`$4r@WQgh@**qKu(x{Iq-d0T9+IbRC2N}@Rj5eZ`b z<$%=;`M^htUxNYt?sdO|;RzgJnWUJ!@+a%(UzmnX+`oI3$K9n1=ajoXg@lr6)x9fb@2GPrbqdRm<9k9U%um?g6gG45n z2Dy0i>&Qd_m zJZD$mGOXOq+%*?Op)8uqi#}s~n_)R=uc<-au=m+AbRhQ{gv01irnfnAsA4Fp+3wB0 zJ7|{|&1xy=$FostvvZUfwec=(%K4OS?AbiGzBzKPK#?SZ;WS707@o?qU?xr3&2mzx zmE(el`>ru3h6YwCDv2ZQjR1rV}OU*!LgCX(tn;ZtFc?%AkZi~<%;gvuv z!#7!iGP5Rf(`+muFb~f~gb;$Ju5YhmD2WI4=PDL;pOR~4Fh>E9)rRdsOvEJB&Yi5> zojl9+dnDPqre8nP=G-;I%?v^yF5}KiasC2R0xV_QT%AuAH|C4O5Gx`~7E>;&&Bf_v z*?XABST^VHYFASL6UX`T5V*|2;1V*+k$Q2{WHPb)I2bp0HPoQ3Q65TApr2K%-JZJ z6BVp9Y+G^i|9@?N_N!Tz<%eNw*!xW1aK{)kGBP78v&J5a>?Tc<%~n$&A(D{PG$ay` zA8g2g0n?%Y!%z039`r{DFlfUDtQW(OVG5uv8<4C9yVcEZc6E1kRdrTQF~^<0@tm{w z8vL-&7nRAbA*xF{xQM)&5pgr(e(T$Nt@WGSnK1Q(nbmJS3IM7jHZ|-vHVp0rfr)|2 zWjeVmfJ%1VaviCzbn^t##$-&x&a7~7k%*`}trz!0cbj9#yNwJR&BJi9@w7X8@ZQ)9 zg?e^+zPR-WEUjKX*=Y z)tUp;vo`Jb;`4C&i}lg{&>SmltvL_NcRf@-UJ5#Ct-F^tq;UW3c=k=O?4XE@NZ|V4 z*A(`H`T=l6KVYAZF?8qmV>}wKGJH0SI#$6II~&cezNPz@2+kbAvVpl}?O!398QRUK zvF$3(YHrSeP6TdRtQ62qz7QsClbK36YRth4{7xmI;5Ri#yfP112OGbH7(rzw`XFZ~Y$CZ988qZ{1R{^9NtP z^YBa8FQ2~r>@nBf?D(OZNZRKy6CyQdz%v_OxsMR$4#BZFbOO|4rw4%O}EEB_(Y$GU$BZou>6aW|F3o3%qf z&gS><90+-i;F+o>EZ@yHzl%Ayb-HtFzP}nY8z9+uEd>lmBVDVEj)XYH z)|=o!fdJgZku484+yGM+-`_mT!=4MX8Z$6^B)4(D%KdtE{rKa{cfb7ZH~-CB55I&y zKKXE$e8Jr<&Ei+z$Mz1-9!h_~A!2c8aG3C0$HV!epX!XSo#vF$=i_1Uk+`@e4E#&ra4@c>4{WQgORBX#`w+L%81 zNjAR#ulI=#hOR{D&0CtXm{G-Nw~vCXhh54#I_v)Zkp3NAt7?~VjexsbXc%kfMV$i96~)i;!w%3OJge7 zJ}|i?bf>yD>HF)a+$?nLZCrCe=78=7O2~CpF`?;@#U<@ueD4oe&!2z&-~31C?|h9S zKK}0WaoAIHT;KZTaP%ISxDL2{FSJLt{>W#yo!YjJ3M2-xeV8wQOV{6{*ntiJi0$p# zh3F%xe%ZU*x3e=}z1oR3})gEMbh012q$`%MrlT06bPPFsO_}b_R=Kk{}`&$bhbhWSRmIVN^6G zES`Wx1;t_7JyEEUOjXU52+@mwwPA_Rc1LtkHwPqhb*eB1&VwTYN0gLBm1BMO);oc0 zd-H0y&8~ZxE@K2VFM@6sD0oePK*3G>n`giOfB(A+P}B^-v3c{FPd2$sLT7kb+lZbdvi60 z_1-(#jb5{FK4cv;@%H9Ic?mYy=7sjpkt?7ILS0ZJ{E6>>C>U#IYu)lXYj%DP~4u0ykJ)5>aH|}^f&^9FtJjL+1KO~k4P|C z7#3y$F%ywbgwp9LY(Os8Sy3u-fnCi+vl>n=ZG^<3UR1MFt{Tg|j{B(zhax5-D_uJw z2P7nSLjYn#BrvDxAViqVw=p1wK#0V|Aw)oNNiz15hT_g-Dxsb?C+~#zR%nhf9;Hz& ztpXYo7fWiM3>MAI0i4jmjHm)~!nAtv7&zYh;Onz_vw8J=9Iirl&h2^CF1cPH1&XtJ ze!Dt)hud4A>iLGMqwfA+t?&I6A6CJ3F(S$yk-O7-OTV*SYk1gE}^5BqT+KV@n&IC2B9+P?ZsGP&lwTW3QLH3FgU zKpiPiu~zY-yutt`su{70HM+V;ApV?q$BPYA8LkSBi3EhD8#NPELm~)7?vTXPoC0w` zbqIuvXd>$1fPugP!~i{;NvN7IyA5tCFM-O!esTga05>2oR{#uzj<1O;g_4E{00%cm zL;woKx5=4-$fO_pL9rWn!yp~cbO66qH1Eh z{2+AyTfO`iUjM(V)xXsKdj0&<<=v6i>neXn_x=XrLN`y)J;o5`9n~y1f3jPDulwr% zl`e5j9+O?&@iUVODoX^~t-<@gsMW%@Zb%$6w)FzXo!p z*MHJ)_G+PPu|2tG-Pbg^t$xpT�YK?DDv>am%RH$wOX#Kyks%5(~=(518RkEDQwx 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 literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Lung.png b/extensions/default/assets/images/CT-Lung.png new file mode 100644 index 0000000000000000000000000000000000000000..158f3d7b2db33a3a05fe04f546f2f5130a222792 GIT binary patch literal 45938 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 QTmS$707*qoM6N<$g2j!HhX4Qo literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-MIP.png b/extensions/default/assets/images/CT-MIP.png new file mode 100644 index 0000000000000000000000000000000000000000..30a93561ecebe3ccc41991d60da0fa7e338dc1e2 GIT binary patch literal 26839 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 Ak^lez literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/CT-Muscle.png b/extensions/default/assets/images/CT-Muscle.png new file mode 100644 index 0000000000000000000000000000000000000000..76ecdc41d36051c725239ab39208543558cdde60 GIT binary patch literal 42848 zcmbTd2UJsC*DeYO3c*(hO;DsH5FykMiu7VaGeIB;f(l4UkdE{Y@=`(*f}jMDDiA_b z5Rk4Q5~)g+E?uNb6%jbR-~avJJ@<}t+sPO^d+oiRHTzuInQQG>VaP|EZXBH{-L9OpeG&^ zXoR&3bhcBr2We^usrjp%5pczO+X(r)y103%_^X5dMOWpl{m*R~kkG#%-p=YE?SB{w znWK$`Zn}Hog_NaXQg*VkFd?P0mb{|e4P|8|B_&BAIaxWljI5%JoPv}bTtz`i1tu@_ z?+@sVqo+MV#T23YZ+>T2>Y#_--X1D4GJbx3(tdDhcTWcyn6k36jI5lDoSf7dLdq+^ z&D+Lb%FPS>-xLsdFFQ|14{t|zH=%zh+St1Lc&mfXr2Q{7Ts{6n*3IkRraCj4jK7VC z3`|<~AGQ7kw72^Y&cnykCg5{eNO` zW?nS1{5tWWODzgSsi75EucQA$?f|A3waj=hby&HpRd-cE(! z?&)fCrm~}}jRRiB!_5IC^dCd2+;n$w_dH{KCLR1=QlQZ)25w&7Hg0x!1B5#0OlxUJ zM|%}JIYm2LIb{VYTbQzLPe{|n~jPVn}#@x*I8oLTGtLqN%#i7)d{F8-G$GXGa4 z|JC3n>2jEoF`$TrP)>L;w1?{6P?bc#ml05@Jgrsc+x_;MS+ zsPFaYsZI8-O$Y71?|}7FSID{!dkMF&aSpnKsQR&bJzVSa?bF|3N2hd5bjCswG2d@K zIhgswc6tzYR2TMhYdCCYSo3uA=r=(%TDbp3+r^|ffBvwaZ%#8ebsL&2YFM@-I-5@g zpVwIfs@((^eqD{f+)?pX{9L4`{7?7Lo%PdSm0`0uYmIX2rl1BFyNNoa$J9JNsU{wf z`D4(Q>rxT}4<<#hZoW)y?>s$68WO4G=!A5OIocY@5C_An8)BL3)B!gt*I(C>$T(e| zF7+UHYSq!NEl)%mOJ>)gqwwPV-oCG8_DFWxXvi86;!-3gFk3gXr_6saoINT2M5{0|Lzf9@Mx<)r_Vl+QD`)T z9~fWau&&2W$E+2Zv}}f(2^rVV@U+hk3JSV=NwBV+t-p*xKi4>$qJxnx5^4G|u{>pN z-4b$RQq$5`HRQNM^SG5F-9K|I;TL?Ib9&(3a&o!8m5wRJ9v|^xW(U86pR%^17h;x! zbLQT?e5LA*si+BpTWCmSyVNrDQSIuj1mHj~kM3|~K-n-4HBRG|ThCmu6pjwO(~eid zAW{&Et2xj%7ibYSjvZ_oC&Waf_T0_LgI3v}*aL*=OByukD>cud85ttTNMOF2*8wpC ziWP-d|L{#HRC@mh{1DoUr7=7s#HzKSxwUXW#3TDlmBhF*n$x!d#&8a%{UXpDpEKMP zcvWu})|;xP-cKEGaL-*^a42IzpV; zI2yG}pBc^oDz~^JkbUF<1c=IM-1mbA*j=+nShD$Xg}VWS8JF1tNy7@T6}^+8;C zS3=wJ^NA%`l|F?Q?7kGwV~9&PCW&vEObLBheQJ5(u_QNiISgmWEUv@OAfKn5<315< zhN}y??<+`ZE)jdop^dvHz}9OB1-XOKV~I2B?y-SEZeqa)p2z;`Ji}gac7qgJSs9cr zir8gX$-(trGGEJPvnquYa53pa{eTUoPF=T zw+;H%Yg;!!37#88hHwGBA3zcKEp8k;5E$LK>DVil9#tN$zs3S|gccT4^k<@v2DcIG zQB=dck>l;dpw&?|t;*tf$z;a&3AfTN%ReQ8OYqkV_ts@zx84Zl_^mgdVSe?G%3QzH ziIceh5*1lFAusJ{Hj7Ql`MNp#kGr`?Vk@tZ?6*R50{CR~ zUYwdA#X{Oozv7JknEml&G_!1o{D_|mG>n;4PnE70j38zEUw_mq& zX>TkMN3Q^NvKptJyj_$2Fut%gc`2v=-RzV6S4+ryIDsf?z?|L!5zF!NPLac7&#)~3 zMUq)d)NA^~oPhTEA4HMWp&G}Q$+pt+brU2=H&TYpIv>FIvXAgf^XtK%5YdF4N7~A^ z-Rz&f^t=E5?Qwr*`4Lv#KF?9zW9GQ>;Q3|EI3 zU0VJM^Rt>RJ3jQi|0DsNpjK1EaZVJP-{f{PGTsmmp>!2R=x}4dX5#wJ=d|wxMvBMd zX!^uY;|q<)#CzqpZsIV&2dZ6Igomn5Y>b;o60PgCo^&#FvPw<|+3@LjcPn&Ep43^0 z9D#Ypr~B+rE=>Mz*$iqMSGAnBPh20A(SH*oV@!bpg$tKr4%kv(jcyXoF#;lC6;^4o z-1x#=F)kqOW`1nKg+`y#iSEUA-czh#*!T!$)|H>t{WSV#f{Ip(t_mMFy=kw8dMo0C zqowu@ArN!`3zDD_ub80Y!^0V>(!+xQUlPcl1DekXp@tB~bcob;F9g@GhdK{bn@|~_ zYz=7}${=;11qk#qwyOV0Wj{YmL{OhaN?YGE}@oDxH!25=tcAs zXjCU-1(T;lB2+XpPK>VaNqQM!JTq`)!x0L$-3hLy#sNUwUf3th80Ed%MD6G}Iw4Vb zene#W=rK*7+oDklISqm)FH9qIGjfjXv8Jx83!4ggW@s;Og*dUro z5Hn%~|4LdgsWo=uHp=X^=tvGvrhxE?6flCCT2$kGve(~w=uscCw`B4chq17D<8_fz zYHYfJz%*`QI&msT^MPWf$SnklZxP4~^!fJ45p6#a!+yIso6Gi^pMXo_?AKGv?1*V28q@y=}`58gy z&t0%vGm>eF+#l01=-qjS`=nDvjZ7$`mocs>PtyFdxUxT6>6=tJeUe}-hrN=V`-jNN ztV?V5MZaXzaatsanHpZPm=#!&1(ZH4EFB?=X=Qe$OsxOXI5J42{&g(A%GPwLoAq_j zkNWOC-=j?H&>g~hQt^2mTqYsEO0F7(OACkEv;}MzbkQIjoNMBAL>h`&3`!#N)xGb) z>T`3*ra{dhEVdd&3ZQEJp#dyXM4ilu-YOgr~7w@ayxZj1M{S5H_* zNTR6n+cja&=i_+0!n5yZ8ydwfiRK>9Wje5(ZcmXT*~@FD(aUTv$1^xQ{lzxE8{wW1 zQOt~52n579dxa!~q%bg$9{rLfgWXuPusHt(SR1&JLN^*Rskycy8||%MtzGMLmxpG44uB zMwUJSVB55@EB9C@rBh_itw*;=zy7fw{L|jMIXdj=ospI90W+@rB$u9;n$4MJwXma; z!<|mJI2Xs$vWGhj;M@T2F&TtOCPhhB^)(}LSSzK| zlR$kFG>)u=3A(!%pz51c)bl~{KB9-xrq7d%TdYoc-)@V>GfLb-VuvN{u!KUnCf#Q& z742-dIrPk4#uHAW_svjh$3}kk}Dl|_QD|xDmW0;t=<78Qjsxk;@Gp^^Zh^3XG zh85sg>TPFyCvXi%&alsb;aDX_*H zCOf zA1LL?c^Pk#D(=(ddDQ|pAb@D{yg6+?J$&`jL9nlh;sB$x{ZQe@>s&NC!3qokRs ziqZb;KDx~{hA2q_RqlFPn$OrJ&Wdt+EgYvshUEdh2kab>PbapFCJ)TpkM0nWQ=hY0 z0o~Q2=S(qsOhKH5%?0ej`T);UkaP@q5LKSr25h-jP@<4V;TRsYrJ4%pteI@g0=c~5 zqB#e%z*}`4yKRqDKhC;t*LUi}O-MZmZWchzOAh6UzZ>9!mWvNisj`54W4x~KVBsfX z`mQVP_kxZIUG3X~UAamtQ>IZMr^2*aDwkY!@W97!k;PHW{Vy(v#qwvb&N~z_6$)|$bE;^hR{=L^Y8d$TtVcPqym=fQ|36Prm(S|Umi{n z&$myFZFtm5dzH-)H1)31XGI{-p6=*jtV1yfN;A*&8KkIywE4k3lp!D=Sw~GW1ktpn z2d6>-6TtXbY5%i~y4E5e;<7%uMpTo#F8vve6e+FfG)Y#zuFFH5Mi>B%JiFi<$^0y~ z2*fb6`}olAPUoUruxd05)%(&cNIpN#-ZgvEJ=CpM@fvOx$U+(i^DQb&w2VJVU#`5W zx1d1{hnPOV1{5+lNd;qGpKRf)(;kV>e4UYGvu5$k4p%jA3w!lA`vS3Yxmceb`SEM* zx~Q{}Qp#*-Q{;;WiCtG1u{ewNH$;7Ng56*9!v32D{E08AP4}%CUzdf{u6UI_k;F1! z6+}~;uB})!vk)h?EG~odKw^{oCS@47upT23ffI%!U-FRy?d7}>$@1JBB$iiXsVS5Q zy!l4w15Dp4Ae=d~BqdwCOM1>?6wFgS&Dc>~Xz~@6`9r|RU#%j<@6>++DGa$)M-rtF zIPX&}FOc)R6JOQEMC!uv982qS z5GPfLHG2#TX_nCeCQ^Y4w<~%+YIa9+%2xaSE+boNgm?v<6uoG@(R}FmF*jMR_y81! zVr85^9Mrhs3#I=M-L3Jn&3im{UA<)1)uSV z*UkI$`raLHA9zBey6E7flIEG|aS%JT>oTsOY~`w@Q&*sq3X{}5EGLkpe3M%U!MTDN zHLX#Uj(*ll&iS5R1t|H-_+@)tg1S*3#94aWrR0sTRh?D zkhOYmbw3sx?a8`Oo4EVp!LwXj!)AS$!YehkWQ9lFl1bl3^p$JwW>5^x{EOn6R-Rcr zckQ`eP@0WG-dGeQ+TsW=E(duzVY-z#iqfYV==6lck>*jPG4#1Ki|P-EA=h87Z23jf zJ&|Bf|G<|eh+&OCKZmXlEeJ%}vb>AquvHjq2Hh$&CrX->wLws+K`ft9X2b1X69wem zqO_XAbH)Juq^1p{s;ls#@bh|DT@#^~xoV)N@4F-;l=UE3xO6@=1(&^*uZM#GsEAa( z-wW3y04c}aEgI|nnysOKAaP0VC%HAEwwSnkpbM|I?f2(WN<5cUO6x-gZeH@sev~w!wP_UF-2`imoI$H z67Va1(**7a4GOT2`))hJRRFMJ(2)8oYAOV#><7jl5UCYUiOpU^0<$Dbyp`HK4dY%+ zII{w_kcVgRNcA~VC_mDr*X$|kVp2lJ-7lq`B{hTRVuBF+koc8>9*1+f82~x3DUyXA z4oM;NYM6jHJYxh*HiSiYjyhZ%JrltWw*e^IJfhqFR|#W*vqxi-TTg2aDm*vJ&;F8b zKr;ZOnB~$Rk4+4K=cu~RDw4u-BPL!uG&~FnKIqJsi~d_DB}&jBa@GgX$Y#5fxeIQi zuWbQ*+t|40bQ||r0a@)aQwJ`PuYZc;u(%{(_3)Ol>mDt@bi^hV7{nYbkD9>m;_v% zM%X$bu{k4Fz@P>G$!8EId#s_@*ifJnCOU=`KUTatd*D$0a(H}qkvJ=jeHx^x1fnbJ zm4nNWI_O%3vRQkaOJ-;vVqUo(bcNf(o#HG}Pqnpj7qZiAC*>#-wVC?4`bWOh}r=Ch`U zjgV9AZN?uu{9-1n6a&(53|ErBWyBa1|{N06wut1GM|iX?q1`xmMf-oE7P%6g7kmd0Q$ z1MH(uz|L~n6%Zv@!zG0o-8!vTyGSOs0-too;FC_Itw}0k2YS zdEj2?mN$KQseHww0}Fj1+a-;@HzL)y{#4j8|eYogVJhp*S*tqb_7^ z13d)Rv&XKJL<4%pZ^`}3#b6Jm~Yffh3+nJkzq zP>^B@d-s+}8m^kEb2pYrwEm%ML_&jGT|re3qiLEpf`^1OF#$@Mfo4DTaM?Op0(c7m z!*rA%YM(!7FWBj< z-?YFnHeGEkP=PV>u_+cGxtZ2p8k?12#MDjX%10z7P^XTof%l&5WeZ zq5ZGIM0eYpm0Wv^x*j1GM3(F%i!1xxPno0ilU|d4Z;c6(@A4oP{Gg*rE{`8z03i-I z6NdYB-OTRmYNtaeaZop~E{^>fZHrexQrc3#!HzpS4_Ht4gcq2?0ym8HE$!-}M3`#B za9U8fgh9$KMLa!UsJZBMNtN0UJR4ot(amSoUpdkWq1gdbY{0-?#cX*!o=p2 zo0B~zPoGEVp%y+tpIcc0W6Jeqts#;6l9-Z>!`X7Aje;X7WhUYv3$hp-Nb2fR4rhmE zvH!`$?ayW|D_55qz4x(CBodqc64di2DBZM~*3!w4zH(Xnh2ZI{7n+>ID$!1(p&IJP zTq5mzeeX`iel6EsU@j9BV-u#U{Ks$U%EG?R_1|CdHOE2ScbYS4S~Nutj>wOTNwY4 zM_*k%SR=+`IZ~EzNzYuJg~H(xQRyz z=~EEqK%1)?YDTUr%YJ1#W)b9y^(Kv`a%!2sx>Bp&IeE6vAM(xVjP2jM+kKlI8reff zgD>3$Tf8obd?2gG*!&q0X+!`-rlg~WzPiaEA8sO1UJK17&+#8%mo8`Uk!f^M*MYF| z$JC7V-Nxwq>x1+-9hRLv*mCjP%a1UNE0(eWo5i^~ds?u}!zb#($AwEeY5 zbI+~=Qzb6PQH(rFsrDI>0E-({ALfVT^FeY@bz$3)yUuI?5z?&ix_79TM%bkvr7J|r z9k*3Ifm~I08NWN`(Sj54l$vRSn?=UP7LV*UB004Qs0nanJzR!a{EApt&(_2`!PJ!E zVMg@$0R|VO5LjbbcAo+*%0C6HKVKb=Y+jKx&&KNjn_LP2&V${+Bcj{=2J#9&<{Xha zEf0n}{N2_&RRBRbgFx6}NCM^HNUCc3#ck)h?$G;en?*^^7?RzM$BL)t+7PG`h)m-q z_{|n!1rj`_rxXx$cZ6Ufx{x1uEp+18(N(M2Wq#cvgBl|U#x3jJ;P9<{PKpnAzvMR;->9Qdtm8{vP}SX0%wR8=l~fo7?xbN2aq9x4Vf5v} z3f;#s4D=_tB@ANAg+anq4PQ%Un%PIeBhTQ659}j`X~d?DP=rfkXY=SY;;uK&VhFWI zY)X^`!l&5uaMo{8M722@7eKq8PV{L|Uu|?uC*BLIA({A1slRTOc6$p-`DXKaB@T6) zyTa11vfaxP8%gSb=2Fn(c4mkB;`?mMzJiTMEq|WGF+b|B+4=7xbqBx(x^sbuJ0ec@ice+w zZ$YN5eZz|j14g5`R zs~`;|Ya0*wDIP$wFTJQ(Ar#!f3JSh|bda;3@S~`4=C5w(LlF4K)_p8iUQUJtaY0wc z#LM2Y+BczeU?T|wB|3y9jn5hC6z11KW-Q1CkG1&*wn1dT1x*4I{llV>Hwxv9%1`kg zX1wtOF9LC{)dv|beV=hgI0-1|{?%`2 zstxI85)mR#gr+97q~~vB4^R;-NHH*HZ<$3Pv!Qv2uZ0NUcJboiVpU^KLy3o~;miCV zfxm#ljODl`;ud3uFSn_j=S}griZU8JPjA#-m2e5rTd_s!4{3>N z$0fns>H_)JZf%-@3JkfX)4^Ro;dvMQopn-AAX}tS{Jra2z>G$g z^aQ=BI5-%=^#O%i*$`w4YpfWN3g~}0{^W*Sg4&Ct{JZID=Zdb314NQ$cRnZR)3M#^ zrmo=Tob}wh2v^9Rdn4Q!xe>I{ix`JVjM&@n_Il8GmcU6L1Ww-6d{iA^%neFZI~c)f zHMz_yPGZsCzs&(r5md9Z@eJ4i+mf+@5pSd)&u#_kxYA0F@ zqz@c=aLuw?a$x?43Jz!p-NxpB&{Gy?+%BolVJJA;bl{O&F-Cw&9|a>tt^c5C|I<* zig6nG7AGcuY3d{2asEs3B$~;gu4MQlnft^Zb+AO>AS8u!FO6LQh+8J)Kihh(hu7W2ysPSqJE(8#l^S>4m?Wo+nnQMiRdpqcgmMlF zJe^o9C=juC1*osM3lWm^tT#aF;OZt0_M}O8;u;!BGJ)^uic_|`DgrlZ%|pgNYBWi3 z4q95X+o(E-Mo|?%ZnQ`kz$O)lJNjH(c5A!`GGwSHfFvdLT~9RGp6{pGH=q1yv;K7cl1HDReL*kmVzyc#wW7%GFe@zrWHWj3l%=feb&Q(si0Ap8$7y>u(a_>xITUIcqRW(pDr_@KQ#v zM4K6~Kv93)amafw7FycP)fV?I}nSAeN)4ZoG^4s?5@LqZ3F6 z$eB=$aVXao7mNa_rwav?MjtQ(voofm&kbkV;~qOZ-*%RHfatv{Q&kajIl$^JE)fRT z(fS;Ds~WlnzLW&quy}e=P@qUn3N3a-JN$WnsyNs-q37NBT2n2VU8SjZc4AfpZU0tK zgVA`_TfnHz9MQlRTU3>9Hof>dwutWl?-b_)9s2@?bEN(?;g-L)~W0 zElO9ur~|JNd+rW?oPx4<}w)Y&M&`*Y#${#&TL+BlwT^ScU{% zMTGurYX^hK`;?{&fySO6d(gqi%ukQh)vC$<&w};~W0{ErYz@q&^Qa>Yfj+h%Aay@1 zj3975oPKh{@H}d^a!GIDJxufZBfiEA`NHI0L=;fpK26LXHsz}cVpQ(Ej_x4M1UC?L zm=CmYh(5v3kx10x*WDa;O4IG7T*Na#_Q-djfLf^h?Rvy1pi6SSC`JlV-4idS{bgzE>5$w>G9;#J_L z%*5@P7wR9pvUH+^-U zjIps)`Mj5G4GvWz6SoS(7Ln+;+{ zMWj2mUMe&v@@^PfDdv2--^u$}XV%7&kRt->+?v&xe}(YZi{W(dYxdirofVu-zmo=a zu*|p>LdeGvk&0}Nv5mRnETdeoVZIT%XgXgB*ZlX?&da5&$2bYovp}02OMr?1JIIFM zR46g>n*j8g1+WkV@rc!Ry64!9%GRHmf6Ib+UPo|ExSUJ)bMr)T+S|56Gx${SWNCMK4ET#z`~&nbG#QMjJlzV7ExVUfK3C3A^TQC zvFg`2`Y3{&L!`w3#x(WJ9-Er#NwbW(4f1E(Y>;-(&y#B#uxWe@!3R|%Q&w$3ayC5x z|0$g`wq}J6o}WK!H-pNip3s)Nf4=?NUefBKhhR|VgbM_!`t*LdxX-mX>j$1Fdp@`^ zn3{dKq9|98S+d1zmG0iVdug(o{RwlWJ;ON`e=|^{;|MBh?$7h*9U08us&o6V&wCUL z*`81Kv{$6Cc(rsyb$sBAX=I6lUy#aU|6I+Sky~YYd+3t?F#B|)m}NG0oz@gYIDH{= z64P?pIAi{pU0lW(+VrtHh^W51h($VHHv!~`R*V#>UlaZ@o6=M$FsbZaz-vkae++Z?*&h5NHQjwyi_Y! zBM6xHJ|vB+w}y-nUJhhptWiq+u#S{SEn^&IYV~Yqm~NabtfqO`C%RcEu_!PyW^}Hc zuju6S-y$3}iM$rKo!fyidKeg)B+Uy<`&^MdYk{_p#?fK(0Md;?yx}Ov;+T;>SOwGU zwn#Z{_^e=>Vw#qE=guIT*`nZqXfT?Y!DcR_j$*nB?;|K{W(%}X!iVyFNB;yE_hNHB z^5U^kNp|i|$wA^|V3-K)h&{H8N}~ns8?g*8&2r#OaNHQW0ITPkf96=ZUzkdoVsFGA zt#83Vs~S~-Lu@wJ4rb{OUN>cmiH9c-mIse{`YWUrV^qlsX*;%t`~o;4G%4%!l|u8i zpTSqN>krlDpoX|J`oS6>Yhz|gHb-!JL$fwehUs;75UKtzJ@g-0I(ZDKL>R(?^BpXH z+N``s;MZ{Lx_{Y3!>)N@L<`Qz%55>6#HY|$-w0(!jo)_0Q*+!77A~aOCWE>Z9+I_4_ zr`6XvhV9eb22lFaMayozLvSRuls*03?T`Gu-C$<#w6=@l(JZ)rts4qU?1?d^tY8g?BskLdp4MRtBiKGfpcy)KGxxQ`)D~q#D9uEN~!o6 z5~K4ymPmIaQ4_aCDVg5wVYHak%cZ`9QXeRYE-dnr$1I-!b86=URQt;D!z57_P9kkb zqXKwqP#TogYiJXyX3s4hbiYnExA#j8HGDz?`?)vT0ec?$MD1XI!{*R?;(#Wm;T_+# z?!n_kO{u;ORc+ zyRG(4bk}u#pF5ewL&3SrGe}vC!;(qSOR(M&4Um+8O0K^COIY6-Y8Ew|k)A8}j*C7X zyq&qJ*>rl+zEgYMFm)8j)S|psLG^3V0dL>X0mLlt5yyynOZ@dFK35-I^~2b4>wdVe z{yM111x)R`rS!rL#Lg90Qr7$;=pGjC?AE+OT^$(i0q0b97EjPWa2&ap`EKM|$+8y*zVc4tW#b+O?uNY*X9HO8dv4|Md}rq9{KzC@iX<^FHscU zSt%wTCbtEwL7);0c%(3uI8>XR9co*PSc}rv+&>;1Y}8bHF@sH1ZD9TrE_wCG2g1{m?9vtqn>&AG)N%T|{}oE$Nq z8SB~JDO~-rrDFIb0XT+>;3WfJD-JqB)Sy)vC2`4nZz!<>R(^9u_wbka;NfPk}C}}Gf zQk0n+-3beJauA1mF;{m|0bJM{_u?C+e4Z4B$Nlh@vESX9Se#`|Gt`78JqpPQRSP{S z#+LJ@`8Z_%49eHi{MA;(qHM>ihvQ)Im6PCnWbBJ2Xhj88G4^H<30k;9erDlP5Q*yr z$&+d;Hy;fi;FRZ%(2MN(A{nrZdkhr|xcYPI=s-X?pJ3k59OD1Aj+Zc+zfV9z3B z^E_h{At)z_CCVXD%-I}$x!MlPgGCw(q+!}F@RQJy$wY>;l-Cccc{n9XrAmdw=&ObZ z2X@VOU~%j1-F2gO!TX2(zpK`s!zx=G#ZNF80rg%l_ znR1aB1q7dstj)gBhuPm56tAwfoN0CG9}R(7^i7#O4!j#U_{U$h7ECaE3}{$!Qc*6D zJoozABY!RbjlU|zwBS=uzE%%m#hfulZNjf=dD3R{76u0dcsS+g#hH^AF8Yl>F~PB< zr+^^5?{)B|`mSB0Nxlu|w^Yu@V|!S#jQb`v%nq9{f}>VAnMQ|HF?hFnp~)xPUfEOX z4=Psz3)cfey}elgu0~HV$NPTIGu|V=*54ARJGj1PI%lM>YxjG1?ziLa{n-YIuPDHxiSuat zdR3BvtawSf%~y?e21VFpwFhUzj}*THQG=DBaqZt z?YW_GCr`dd{!NqnuwX=qA%^J@_UtVZ)Iy0fPjt*5vpR)x_rhcmqR7`sY~X@IG%9hC zG1SlW$}jg9j~77rCQn(r@j|6U<>Z^htRL;W-=oh8jI+B@glxBWw_ zMk?wi_5uf~XTQ)#9(P-gJdWR7bHClJaJ&(4uQ3A<+4~jYe#D+%30AU}~4jvXd+$nxb3azaZASEG!`g=b(E^r}YxB zY1j;v%6Ry2NUUEFY7zAN$L;dg$Gy!Oj;0QQx=uo&cGK@T zReQghh!M^8es5_j4u9MYV2u|~=W=edMKWpIM=s03gW?U(g&WpiFv*3&AsVb$B+ksx z0I`6*s(3ZW&F-xbGVNQ*%H^c%5dz{Mw&MNWt*wop!iK&{{WEF_TeoFKyVrS0N!MFl z<^v8CoTz%#uE^3cTg6-LG@*K`BB!w~0=r-9UCqb*9P{GBrQ2r!@=0Fk0&CC+nCyvb(B{$1UM9Ueqo~}%kK>ZPS()wHxhzuxzll_j-Fu*h*`J~x-WwfMHQD)jad@J;jx@iMbHeJ}4f8c! zY`GeFYISb+K#sSyP|o9yg+7PfB*Cf0qJP&eDEbBFvXGeA(nSE!64eWbK8@HW0VB$6 zmk^QHRnt9hPo;nCYZ9Egv-nP(ROqCu+V`@-R=vU(8cSJTU0=Ch>~s9Py3RV}M4ELb zw8>?{w`y_q>_x^eqt?NbAN#`&oloYTch9vRo-7{YPv;y>qJn$}35Ih`Z(I|~g8i(} z-z`i$wzgigsaB%T-pEAR^~@ef_TV~p_uNVH_9I(aB|&WQ<>)$Kr@o_0Tk_!;?oN4` z`ecEAMYFgvu1RG!RP^2LIv|Sl~Md2GRftJAa;K0C9 zn@FKjAu8$(fipD>=NLLhN_aNx!iv7{99iGJ*ZOBHEE@*0L>#iYjvUWO*hGm$G3Yj{ zwIT!-1_T94QLZeAYl4i8S^x~}CP^_d3Z!dF$j;L5%TK$+&siqZC4qfBX2mJ=H+(CR zE`2tJb?IK23#8Zk;P)FrcU{$k3t;KGb2DLo_Wb&1LVkU-Q_Fgm6MQn;UD^8U(;dy@ zvC-4TgRt!jVTYq(^S>5j*hVMb0XxSR@??ZML#o6$*L!PcpS#{MgsbiiZoEII3;0gz z&>t8w-uv0WnT{%FdHj0=f0f+p?P&PGpAMIP*(qR1<32arEq6=zI(9Q9GG7pAO{IRf zYYwPT#jHCbFwF%4$a%1BXDEM(t^b2W|MKJq&pWR8DAm|9h^DU&Q=zN0tT%4}nQ;zO zx~gULCvBQlm?%=h?X|k%;#}%czn;DK+3LlD zNwJ&qpT^A`J*|a;{AUmWZeUJ!<@4vO)~A0)t;60@F+mV2RD7my4UDdP|Lc|=!jKq!9lHe$XJY?JPwPNJk8$9;O2woCzHz# zPXfZmbd^HX_ByoWY0uhHaY4Nyy*?9`TEI1uUMhQhpD1O=)=tQ(_~7Wusv(5I#5YiaOZbh{fDv_l zee~2jz(45z%#3ncqsE?~&$*vQH>qtam$5u1^4iE7dCiW^YXaae*IgiG8CW?o&JN*! z@qYlUKvTaDB{{)F4~hs&SQTF3S%l0P6#(y^Qkg-c+(&%(@!2yMTh^wR{qW4kZimx^H_r<>7f4NwM}bk8VKgM0 z3i!jm&X_@nnFTT`eLz5(RF!9Txli=tRUPRO093ebV;kdfU6yv&;@Lg(TF6S&jOjdg zQ_w4f>?&S00tyNwDu?HYX{w5X+QaANBj!xwgOo3R_Fsx<_@L-N?&A6F0lGKScUIDo z2dR}&aNn=(^alMYQSKgCOhKVY5l&1Dkg77%uK_6>6;HBzJLCB+a8;pR_k3Z2T5MGI5m5_*pWq2DcAj&EWt8!n@Uc-9WO6`@h|_UKmOA{ z{%8N}pZ(dN|8sZ#&Ch?;nr)ee0{F$_8i{Shd0C3M4u4ooL_D#!hRWV_N=V&vvDTIe z!`#(BA1_BlHkHRyr|`0m+ja=$)SDSky_wvTjb_4|3T^EqhG%4&X>aC7oEFBd8DsQ5gf_Y6_7EN78H#cZKvhA5AQNYFGm?Lsi~?x=2+siKvNpiwLXCM2H^w zL-70B^kHeLx{WbLdPFll!hiAeU#Q9-{m~zN_0yl;Zd+vj^vgGwmm6m)svt5)xHapP zsX1)Q)^$JP@LZdodmEZUS-KH**@owRb>ALIU~NkB7WWAEtfadD@Wc_oX*`aNih{6kGpXV zy9Y()!^vq12B^!!+nHS9^AYk%mGRCp* zS5}FtT7#JOlhSLvuR2V-SzQB>B{@q`R0T>RyejJMfvje|7{kYXV4Zl@-H&m9X+q98 zKT*5hj+e{rWV)Kp38M;Cxy(4u@I}OwQ|WhJ`e|*)5o6@;ejkddA3i<%U;T~y_=BJQ z;nzR;`q*|=L-Mw5d-|ekDqFY+o7wen5zJ;;l*f^t`Pq3{nq9UX$ZlG=Z*_TG8i7yO z0|gaXOwRo@!Q##R7|H1%0!VDb0W~ACtm)e9Wgqj$xgDW%bwOstBoFQZWIw2?sZv!H zDHC*k)hI`zSlh@7G-08(;Q$u1LLKf?(3lwt!Q}f&3^g)kd3bvB)xAxwD$3iR{AVh9 z?6>(ryi%d_0{Y#*{@5F6GI>&QliX2d{Ur9-gd4yL6$VR~))ostN`Pcdcd42viAemg zA2Bn03{;3PA|k3c%L@0?5SG zd&Jd86p7Q)SeWPR`8tl{`PA&;@$n~LebtEH{N~rz?c0xby}nn^bs9xr3qTtZ!-;D65&wfVLLMoM_$oTQc zO*MlEcY#yobbW-bIK7}HG7Fur1d?s?hAskexn;(V34g_1Fs;@(q>O35Rl z0%SFv6&{OP2d3)71Dj`LO^RTC={=KT>JO1srzRv{Z9+vLDgE*5^XW0b{dT*&e7Bz7 zJih%&g-g{8u*6*o@Q>`J4fi<$6^FZLmXNGUKlc5SO{*dT24-T6OsGf$kE$7@pKG(* zzF%&)$5RKBuWInh5LHozrwZnKIv0Tyfh?qNM_#w%+_Z`AV|=Q+lQ( znof;NRoq>X?=Rcbv_!=!Cd76`WG2zgaQC?K@EDm7OD8$aC8i){JM!>+-pB54B1Y*= zUKM$BZDaZ!>Ov$i{q7W0vLa<&-u$GsMWtUZFZ=fL)gS*K)`xeMerGxAAAfXS572!p zQTe`&aiGxG&z9aI!uPA3m&`IM0WVGHOqY)oK$<``AJ+A}tiO5xq1n6MT2W@)!juTI zstMFI=Vm=1DnRO`D_??+I$noKFJXGzE)lBvQXw$j8rpxK^vwa+p+HNoF)8}u0^5+vMQfspz=m~qmT=}~jR;P8y7%KEe& z*TW-AURQ~oyJgk)&)f9~ot!yk?KZi;+3LsBd zy6LH_XYIpxcMmU=$wUJAc_tL&j?gGiRnE5z4V9w{x6w-su0YhrsGuB0z`X1zwKsHFCH_~XIfQR zP>7YRf%Qlkp%0IbBAUr*f}==5>b{W6BI`KZ-Sa;B=gj)wJw9D-Yg3@EyMsJ+6CyK@ z$m{O=h`d9q^{Q@94}aOl9JA~0VnNn)&!h?-`tp~5`_2F3|M~y=n}7Sa+LoXF!B4(; z_moGyJN1X&j!5@BFKumhJ;r{FOpgem%vA*W8aOniqHj*!BQE>##nXD~cG-O&et6uD zaXrSgmYOIEtTJI{Zo|p)h<$_#BkOq^^VadmkpWOCMR>-D%q*{(8}gP(07o>Fr}J_| zUiT0}L~4eORH@*;Rql0|2WH|QfQp>Po*a>_Kb)VwP+7va7`M~;v-88}sHlv48~XbT zfd0n|>smrw7v&ma1)Kk3WvPa~G5+skIeoAc6} zPR)(Yt=J+NF}2AflH}))>zmW^?aS?$QvWgb5ucyeW|lKfiYR3R_K~0VaWb7!9-l0K z)yK=;%uG~DJYpj8x8WJJG&^<6oCzD8b2vP1JD)FOL{f0>wvF5lU#H^{h>7g$%%3a~ zCTbgg^CVBKL1ugNlczVIp?JA{%F2Fz*VhL>t|B%!X8)rpu-_h_*Tsy8<9ZB-YKe{G z>W-R2LIzP}Vy-0sfteI81WX{Rem#`3tS4(7rJ_lxrpxOH*191xs^BqYcj?1Fyj&NP zrZO|z9=ejuDiyptEtnek!~N9~b;l~IW+tHsZ^v}7YaDJOUFBs2QIBhXz8!!4zy0d} z^xwH!e|-DdAN{%f)&D%+J$?N0vVD3vF1MlNo6|Z|@mAHDWC+4Un#h#wn8;=KChVs3 z%Da0%vKF(Z>N%N@8Ej1*Ipc+^DiSe~R+;`(07Zcn3$vd~BiAkwSu$7k*5NU!G4}i1Zg&^()VV4%Ga{RCt^!4sdxGd)Rb}@H z%*d&kD(7CVsv22jHQ`_X?XUjgU;afzCPe#EeO>zc#i^ecJv_F3eD=6J&e@lk$RTD% zNtI_Url;4KpTl!RtfucyUC2|jr?o}pWTxuA{HsO;1*^(xrmB^g6-q^xCT*&F?m9`W zD7~AJbDo>X+>UYGrYix5#}N+Jq=Ye%!y*MDG`(*g%OBP=5z{3im01IJ^|L3b6?M9>p>!%brAcsi+~knU^CNxO*T4FcKl_v8*njc!pKp7N ztefN9>{fmoe%X)5r57uzOyz0mmFcJ>?tv^>Wg>+#n=6P(AW`!V@+e>iyTIl~Hv*ml zv@RmtneKPu?=_}|cgU$gsonE=i&NL8Iycf~q3Mixt7GIo0yVR=OXlIYbMR;r5fX~z z;o*@PMZl)jrc8M{zx~5Jo{vwz@TxcOe!86BrXP3k=WYm`CFLLA3E91wuE4ldG1&U) zt!P8+La2nq5Y7<4s;a3!BFVWCQ04jg)4tu_JUyvM#hA-gPypv&7NQO zkC)?dwPy4^A69!tW&<%i=ISw_tc|mI zzg@4N-hcT1*S}#uy;h0Fvm&8Y@|vwQ1rr|0 zq|Sg*h6YqMqxQqc%q=BmSrWKNwe_>p(`Q6!KihtL^ZC!rdioChu-WPFFc|-+1H}7N zanQGnOiEkd0zkU3iBQssO3Z{Pg2>9bjmu2;V|?@7x4rc@4^QcH4@=F=5tW)N^h`OW zW)W`M3H|otr-Ie9gZeS z;Bp(ceavlym)$+G8`mZ}1F^}?bN6`Yv}P0(YWTzhDWq3MVseF9P|}5&XhKttOl0aS zpUL}jHBA0^nh8;LR1t*~5KQbIj66o{BVWVd?(0gLa1ibE+3De}X;PQo)~9zr&GgLR ztoQXFbMO4_0h+d?bU&U0(OA|WwTUINK&d&r7ZEcG2&@bs1e%$@`Q}%Zem=h`NFk;O z=DtD)Gh2kO$!SymozJ)1$4?)hmbR+?;`w%XMAI2wIMM3eU1wrfVLE$6*z7f*>b_V} zn&9+wnk!dsEY@6>DRG;di&MSY<-$Si#wZi|KEQ!5-p}E9sBn$mn&gvN(8b*RcS!vxQQw;JvtOA zMX1ozzx(dn>&wUUdKOls3(}R$sm)rR4aqVU*zk}*ltz8=l(oEhxt)~%H7@oIdnCe`7v5g?{ury#= zP)fB(G)f9Y2+}?LzI66J!A6w{HHjJ2M-sSirLD>gQle^eCut@E%;^KDN|=fOo;8&e zp7-hDh!9#gJ+|AP{j)Fs3CpjSkF@2@mw&F>DttCgvz7q(PtZiql-C^3$9|(2#D-sy zU4-XubMvPubFOnl5@`xTKYaRdefjjbuDux;0#r`TG-Y}%fx8E^Dl?>DT`$-D!~5sC zd+_DDSJj)78D$$`QccBFmpg+ocUBfq!&8+_VM zJ|eTLoz5MVj0hix$Kk=u<+Ma`-WkpA{mpCFLIA=kv0y|-)w#9DrCs+CiCz3EN z%?cQC*E&vlKgi6ANKia{AE^S?*gUvAeDU?4W(+{ik6%2z`KmIqLPY0F_>Vt2_X9Mm zi{{SUO%hx%z4?^YpurSYPU)Nc5CC%Bwte3oAI|4xi5!(NF$wpP?xH4Aa?fX#xsA-L z%H#X@FC*g7G%`P2j;FP)%{;1`RAp372sk5~P23GCT2=cos_D|StDw#8;CMNX%6zjl zs?MuLcyAq!tYV(jPQ3@jy%v)U*|Q?6t5k0>7p)Zz4;Bv(Dplp&?A&aRI6Tiwn^kEh zeh`Jspd2GStEnED|MtV}tHuiIb&hH*S|9U$3*QYP7 zpEAbW6gstl|B?9NZx4`(6nNQQfFet^E$b8V7-K7(im&uVO_n$*;t|KOFKubP1DLD3 z3joy=8As-r&{_eNKDQ2<@_O^{KV3xl?qPk|-K!qfcHhNxj}AaH>!zd@J+eHZ0##i| z;oZG;>W$=eJFX+n-CEQANVB`ZFS11C*fO)CYnEhXWGeAy?VH7Q8|z|A)BOk(j)>dl z>!S&|A2HoaGe%96$LrdcwHs0U@HeM^-F@@Oxqu>(g>8gKqDqw_^1L65*_3-v+yB~H zyz&*1nc%6J5?N%?OcQmCAjNb#y`aL|@ZD!tAApL4%xQ~r4`u;S(apo}HrE^;d+FOZ zU!9gUqg31DyPr_Vm>}0gi};U|(Es~iV%9)jp1*f@pscM+KUIcr&z=~*#mr_cMCE;; zjvW{l?2TW0RVn^1_k5;cL@*+k}Ki-7X1?TGyt?nBA7TQ}K<@5Ao` z9pZN6_br*&yIrj9g0)MHZ>Z2LGO%w#bg z9wWk3yUO7)4*@}s8kq?k9@k?`5@zP9olK_%c9H`|G{tpyAs?3+&PkDb;y3`j9;CzL z7>TKHMQz8}tH1r?PlebnA8k1==XbBFu~#wCf2#WjFp5ZcjN5)3NU9*}0J)srGCgB3 zDNUKE@{%?op6R9)=JZ_FedfI9O)DTw6{t$4qN<4f@b5l+P~wY+em#6U{PR<5sz+31 zn6RsK(=NP?@$tH&urwhsvL?_HNmE(6-L~4Ctz{`F_<-60en0)u?dh=XOjiSax zDQC*3oKh)-+@qgZb!s;G(eu)>>bm=F_)PI(K~=iRb@NO%W7I_Xad@7LbFK4{HOax& zBr^BC%(yl^4jvJAJb=uqNLH0pEoNQueuQZI!$1BP?!MhVz5D8)s7_sa@xI%tUPrM1 z6bEPq&R6cJJ2Y0~f+dd+q0;9vSOG?+1^2?sK0NM9_z|T76995w1R}DJ_;9%iu`X>y z9g#X+d6}M7p6$L>p2`1zZU53FTasmGVrxHC&oMK1zxPIDM%Dx9!ke!~6GAq+DS}B0 zCluj`e}M!3M{>dmg%k>ULV#=`geX!_XcqDr5%;>=;~drf;9wt*%xZR51DR14o+385 z5qaH?n(EfQ*ZP)6plb=xXhd$qBJ$L=E>q8^b~*JA({E#o1C@tj?QHWH|F5b<{QZ6W z=K3&?MGxoNxwnXH$_W}4AZo&ElgPa7vued{7Qcs2U708{Q8J9oDv&`m%`GCC32={4 znGtW>bkDVGk%Vg8mXYqEf&>je@Mv|lsj6O zo!&i(`1drx|8?H@L*wJ~i1(5OF*7(RD2QlQv%mup+_-^ypiGrn)2B-31cNx3GQBV^ z79pN)(=O}D&42mrt7l%i?w)VkSeshr9Mj|I%8y8&b4K*z2&8S=Zh3A}<$GlAb8a&p z!!Aqnh;4WU(Tr&T9N5ejVPzVYb9$5XAPAZJG@BlTWMUH9r>{*&<<#4UlZQvm_Um%K znJ^eKzH_D-)G{rwQ%D zqjo6|fA5RV>DAHMhu?=a6(Ky#W~4ATWhC4Wgb$T33e{80Vbv_7Y12WMr=N%_F`u4( z+Siv%$NTApr2Oq7_+btG{%?-hZy%3{09fS=StyK&NCb(%q|_2X=TZ1GNeSiy#Fb5S zm`ow6k^y&Xl9H|qgW}8U?QI*2pb3Az5A!@0EX z@CUFc5z+9fB*Hw#bRnqnjJ)j=gvKHa0><=FX^8|7EMV>yPDdNbEwZVo@^v#+7siKE z|8g7O-N*CV7nMvb%8khYipKFxhUd~H6HLAy@j`fvNleeD4&-T3B;L$L zxG^1pWlWUWltHx5FtaAyn{LyG$Mez`;k!GCx>REUN?g%(ER4XT#<#`813A*oGqDJI zqiIcBK0kdbT*B$;)BAshj$Pw-T0lR_OI2ha^X>M%hmkCOIY;Ea-;s{?L>cZ*N}!_? z2ueZ_Au<3b?#u<+(sX2oszNxX14+`gkvTqJAMXCt)go^Dcv;)?s;I98fP|SRQbpeT zY;bdcRD~<|+8tnzyzf((&ud$o-o`BEcSH_%O}Z?NfcrkJ!gWC&Nd#r~3Ze%WLbVCs zY>qw43*bOTPV>tmO_Yc%+{}f^tU^p7!Xj)QDpY%}g$ox3SQ1H@y@?9jL1iEoE-J(H zAgV@iDJe1|o2tsu%jr#-i#*S3Ys{D)TKoaPGMPw}M)-IaG&?Zd6IhxwrWm^+`||N; zfBHY{%acd4D*d+Y{2v^s`|q`YDjIc+M@CSiwk*Q3Z;zZec@{)nR*$SMW+f&Z3K&Q- z3s+h z9sr%Yylwk7{BmmNwT0*FeXd=FO%n9BjmS9n{_?aurdgnB&oB33 z77?*91KAt(wwU|%u~+vfvNE8+MAIXR$cQB1)O1m))su-;l_~GTXSjeLBUD_4l(`9K zrZ}EY?Xq$j6wc-kR_+kWU67B1Miklo=68qN2>G99kkU*>v+P z^?-W>Qb@M&F}=(C)|?=MfIx?kt+Eq|P?0|eoIkUzb+sf4+uwe*pU=9yXg@K_w0YD& z`Fj!+{<;Oklt|zAhevP{w^nO}m|55p5$H@zl+2Mw1HRaf#3(W|GkeK21&9FY0pdZ2s`MIM^|a>jfg4S`C(Ap#@PFf20Z`O>eCu???H#Usiw?h%c7cx>ifR5|Z+I^|=SFfOaM zMwuAyO=az37TVEpY2``?NlJYFn6VaFkl_u42KV;XD zX%WLB6J6E3hH-@qPm7ErFol|Mjp)m|Y_-cJGRYzuGcgA!0im${ZH_y)b8U7+r~n51 z4QxZoggNfl$2BvhE!s3bb>$DK&r&BGn6sAQr6Gt zZJ%XS4Mb+D2!jl^(=ptBURwDjgs7-Z9#P~d5$1?(8l$e+hsrZD?!#YHBV!wLX^kl# z)0X5#<>}l?kL~~kzItAN_TlvTJ~9vNTxGjX%ZNGMyDBm5yVXJOksi*(M5MxF+HD(` zb?M6YVaMN!FeA(&P($H&DJVdoa?3k1lYY>HSEmh79u5vg*VR+*MrWuk*%hVhsLFd|9M zt2Uy2I*xpT(s*E+7gi#X#g@CM7JqJ=bDP;zJ{)3D9+exaoXE8?k-9@!y1qBCks`v8 zix!ZERk;zVkY{>gTAD{?W0OZ9RH&;=j~YeYcDtO~^QpV%FazPVC}q0)htu-$v_AHE z9kVgMd0ML$G0)y8kd%3DO$0zP6ht20Rl0IS?iS`z00w461d#|+BAW1+K7F2-Mns9M zT5wow(@0o|-E*(m3MdnN1PCJ|JxPct#{J7LKFr6uK2=RvMk@mS!P<@gwgm)AVJD;~ zft8S=+S<}FG#*JiX%WPUiG?V0ASRIjsJ~cE@8TFBkf%gMMr2r$hUaF^BEozfv#B&y z&w~J5dMglhrs-~xmkOZtTvQ1(hT%xK`Qd9sN8EW4Hdq5@hKVRiJOGQRsFDP#RXr^r zq@qM{45cvx(n9Vt?oBfmA2 z9$du4?q0}uVa)xW<`uqvV2FXgp)-sT?ql2byC*VXHWMV=L_{&mvf>F)Ho|dZPY0aR zGKTxeFr?cY?p86CeB69QBZO+Ku{JPJ_ZXUq}PvnE|$3%-tZ`zxldI=bhk9(R| z-^}7jiU2@~nwU1#BF&hanR^6LX^I(uXHJXTHs|z={2_bQA}z9T-!-4AI`q=C3E#&k zgzrB6FMo6W?(NP<6)w)VsEANx%<#-S1lk^B+A!OOH<44*qrFT_oLVWC@7>=DBLmPmt`^IC?^6x2m`--=mU_lKgMt z2=lq`kJtNs5R0}h(%kOTtrHPPSh|yzIKC0VL5;W!ngnVQPBAGaB7p`Z4h3)$m`L{d z`0n-owCH_iCYaHc*d+k>+=i*}+GH~aXi>%?fz`+a!86awb9zLcds~}uae_OdR! znU(*hL6|vndH}fyZ-nU?5kM|o8nm`WN~|io#WtLnSXh~7#E3k#{BUab-KIwpD^qy< z^7G?una`&NfSJy{i5`f^RkdPM?qd+qD#{EI0wDJwso@bRh1b}{!J67%JX0a^#vWgH}?A!edQ!+_ab@V=d`0)bT1ugy3Ys!WidB1lSo*4!gCHcuG}&a7SRYa<;P>I zfFn^^nJ!CHmB*a*%Tyuhk(-4O7L^%UDf3Jf?M5CsrU_9i(jSo~FU*fIUmyF@^t^Pk zI6TwSm09!%$|9oYQ{OCZk9}2UhIs~2x)&9YDk3frfo;ZPcqWRkt6HTAx`;&{&d=j& zO~O3LSh$c-r>=z9%%{b9k<;2ey#`gnXu=hH=#fk$NKcq&Wk5HP0GLo@b|GRVB4m(A z0yHBJ$#Xe$6Ytl25+NXmhbNwUTNTqh!@_2atpMbIRl)INA7O>H6Bgyx`$|li)LLt8 ziEv71MR;TcKoNP>5OpGSn8<%}nisoz)8K>5jrHJ}ot;>3UM8^verdbwE6_}pP5T?Rf zm2`8Txd@*d2jK1jmbPSs+sK+zzJpzV+|>g>eQtuO6i!InZ47A*5}es`58^EE^0A0J z)1;%f!Nd}7)g)zRzy&7U=5(8*t4_=N7|QU7`!)qRl>@|O<3D%yMzHOAG0u{b= z9cA@eFfBdfLxJ(8yJu5cl&jAP&~RT=o|aapIT6*VG%RN1u)}8LS#je;DT(3>;=P{9 zvZxZ_<7KHoO_YyqO90x#M_JU$5b~pU5dr8N+t}`&8I|NA0w8=wM#Lz>9}@>SP%?2r zL~*HA^+>c#(x#ae??F_&W0h&$Qw63SqoR~_NQ<$IK!Xm5oHuw9MOKVLk8vJN_R}}Zov`@3ltn2`y0J>;| z@9vH`cP(B=g%54_DVnE6het$ql-iW-W_x%Nl_L}+;IUg$^_A`G6&WMD2 zTDZvJT;}rrCW`Vgyy6LSTBvesT=<8zxTgpL8gqn?`)j1vZRTC*_v5b~037o*#tpGk zy6AaXFXbB0CM-?>AQnvARnLHAD)B4PwjB1@|<| zk{DQ|5+dTd`#v*4Otf^V!=~)sDpKiU%Iu!gqbXL^ZOm&f0qCK)#&2s(gFhzuX4Z09<9C ze%c@#?|KFuP+D|-jn zEr@7UsqKe}&Rxu6AF(i<7O8H62Z|aKzNs!O^}*0@*U*psqws;8M<6P*&)udqmfjU( z%ZwxevaUqMPRl@22Xo|JPCSqTL68Jzj3jPdiR8WwVFH*uBC$^g;K)V9kGrgRmg?nb zbE&9Dqy-TPirXERE=^d3nzpsK+iut0n<@yk%}fiTjEsovU7i|myFG>r6H9G5f=YRY zdt!LZVdax%<}Pv@HZs=6iQJ|uab_NkX~I6;B41AJ%XL?l2s>9So^6d4yiFk*chHf+Ex|;fJ4k0c$d__n^J#x^9SreW}D3|-dmeChkGy)Q^58N zWCm9c!i^A=mSL1ZEF_JYi3B7GCKh4^sYqY?Vo8r}&jZ>=1neF}+(jzJiit~`TsdqJ z#|k*?^a;;+j9FpFbv-#RjX>Ysh6Bv?uO~6@HisSD2_fnt=dQ>cei-H#ZM`*>Vs+Q? zj4^$i<{nLmfnm{Fr30eE#Vlf*W|sAbPfearO;vi6$L_y*+jnyzx^CmP&*5>~=P)lE zRz+G;W>;RD5HMy?(y1vESww5HG)3YutlV&8Ix>~1JaJ7Vk8Em01Tq=qo~sgbet#Q8 z^wa0lr>CX7P>V`yEde*1`=g{2wSazSxzPLj-+lA@|LE=Q%l-NqVIr&c6G;OieR}rJ z4uB3tb|GCd!wcdi1aLA5K%R~areFn;a7rZYGw!!XL>du*MM;>ta7KI{{?zrnD3BRx zz>HJ@@(|M$&BY>bn^9s~5GsKXnb})1xZp3<9GF(-Ax#hx`>=h+4BR%qtZw0!cv+Re z(*R^7M$jGz4-paJrNv|HV^-f5k=Qe18iP)Yo|-BnBCe0oMW0XY({um%_xIO_b!7rI zC1NrQCTev66D)HxKgp5gb6MJ{X)<2-(U?^*%*U8VxV>j5Dvo4QRvH)q5wM8xY)oq- zCcf`(k&EbubGs~35h4g8Bm;mfWc&Tw2s_3c2%?%!9(&M_I1^KUe4F!D>H=Z{B4g^Z za$C$MGKDmmKtkL}BqA~g!Si^U00lBQqxiT4sPeMt{o5}QE<(fd5V|M!_Y`+x_IGec zCOpuD5;Ud0MF;#n$pjwmxy$$K)(*Bz-s<)?m3Q(^*@T`)W&&{$U0E{r^) z4$GMQn6pw`hQ&5aiOzZ`dMi+^de%u)ZHBJgn9cJ#=5TM!&ud$hGtrxT^|YK8HII5Q z(<70`R+FhBU1{65w_pE7HC*x?1@z-Bo8P|F#@&3n8@RD7Oq9uKBj*tIWC}_LE0V~o zCC!zrlAe^13n?FwhD1ye2xML#`}Wu}DU%oxM_fE8Wti>e#VG9}<_8wiDt4IZ(wC|7_aUOEg~BWAPhT$0-QVtB7^rQAR9nyU+w1;yg$ibleT>MZ zEw$D&!-$DMm=~}RxwY5{z z!XTMNIVy|M;gxs}h(iR$zh;pY=^i5@LBgEjUNchQHe4tHgkuqXUQ`H{0iv%j>kR+- z=lddZSz2Tcv#zaNg-)CiUtd<)a=X2`Z6p^Un6(zsk3J03eZP*e35$xheirR$3o8lj znE;Y0!zaW`d(IT)kWB(=o}N`Vs0d{`Wwkv$!i(2moUb~2nbB0|JBNElWM!TukZ8n9 zYa+axRgOe$B@vhw(nVFBNY$%J)P%cAYog5i^brZqk`+($Ci2o`pFSzMW!lS>xIf)cy}!vg{Ln4Xr=Ri2ee$TLn|!r?(D(!gQR2Bl{N3LYI) zcmQVi7-sCpEy&E1DsBqHU4?s-`#uxI4ENm4_Gw-DY0<6%Br~r~RroJI-y`y;9~UMb z)0m~YR*@iNeKI0+{r10}_b;uV2}gG4;gJ4Oiy(e`{eFMkl|_YGKg)9BwlwV`Jj1QB zsSyc(hoT*dj!HkFnCZK_Rf$%V2^2TaE1oeJsU=%Eut5P7SHSl%1If$`UR0h>y(y15 z_hHJ?m;nSZJj#6`%*=dQdRHQ3Q$8)aC=ZXO^0c%ur@5g3p-j(9Yswzs9!&hSwy!R0 z0ZxjIT6X3|<F2+!*_Zo`I! zWkz6FY}2jc=75@dT1E|D_c`}Dk1l|DDLD684OUF|FZVGmPfdilf)~2T)1tqA+rGc; zfBNC_)$?i*Ow@%v;y&j0k8vNCk@cBw*I&>3XJ#gmQc2M7-o1XLmp<-q9(7MrY0A_X z+C&{pz6T|ORhYn;L1jgaLi{NcsHC}s3=g!Us6kG1cUR`MizN|JKjO6GzS(rs5OY$h zm^2E`-kJz+V@4cGegH~EX~^eOUz%9N7%q$enR_BDKM=@8MN{wF4$!&vG556zGsbk$ zqv0VUOQ$aUm{zzk^LlL5gr2*M5$3@?nUWYxwA*2S+ihGQLx_@j-{&^tzE6O*VQ`$5 zhC{Pa)15SjxecP;s3{AP%5TNaOt>t4xZlQHL?UvZ4iFPfi_dp6&*!r$vt`E2E-Xy< z;XnU!|K@r9=HoeuPCdh8bGLWrP`=k*9#VF65@qH*knP7b6vBnQqjw* zo-xe3C=->jm_SYC<&~=_r6L?2^@-WkwWq5x{-eFh6%Khwd;(=GtUh{QUKPS@ci8eoD%H zIst(+%jxbB40IJH@{9mNUrx_o3nRnnDAj-T4G0`QBj)tz%SBbf&E3+6;Fj;H3e8Om^I)el#_6u6NGy9+cY9t zwAH2-o@Oz|=O*KKrR0;b2)sWs)2k6FYv=Vl&wA1q`l z7YzacHDMxD8UaA=`SG$oow|E4a9P@UY1=*`syR+;lTS~}skNGk3LW0dl3WUt5H}_P z?!z9_JdzoOd;anm)4U7U?W{hvX+A7gm8V6|O@%PcFRQl3zj%9i=HLJ6b7Po!HBoBD zSAx4sZ%>N~QHIa(nZ2)PO3$$4Y3Co>cmDr>>AsIKohU?G1`&n15ecz`M-XKy!HMYr zXoiJPsqS(ipNYb)#5HNg#L~DRWf@o(NzkNFW)@z7jrq2lYA#(+x1mTD62|bD(*ZCj zB2^CrPG*kqZMfI2mH?n!Wc%EPi9lH+B0R_R+ObNFrc4=Wna}6dA|CtLM~KL2X%WG~ zU3uDj0#haINE%W+#BSDvTk@EX>Dj_TTHe0*{pSbc_pz+rx1`_ajaJ;Nih2^Wko4A9R`RF@ zND0~mbsI-iLQygZjtmcFfROx-KMq8u0%`6u;WhJk2lf=oyD3LzF~3gj2)$z}(E_H2 zWpve3rB`HXlk?K-xC-TrlEw-Pk7@U9sIUre?wNUNZS6u#ag5@L1Ycgq>utN77Z63n z(x|J95t$h{1b%*i|H&ioW1gF?O}5=$?}N^GdyJ+c%&+?-AQSgJUOX>rPoUJgbqT6L z>^tj*JTX1aO`7tE;6tqK42py&UQUgfw&`?~Db!VkXd4qm-+VZM_`Cc5)n!>#zQ6Cn zyfod4m{!(X;>+5)(%sTC6eL6=a*TVQ3kkHJKtMQ{=smyYeF6PJZ@3IuM8w)jgji3P zXOV9E4ODK^;|fSbAQo-XdWkJE!)=6HoyAlZq=;}E!)E04*xe(-BGE)jxU)^KXK(HqSy?qrxB$Gh-T;ouFf8@H+cu3r=dQxIkKu_L60MCb^H-m* zkA2kd;SpwuqWi{gl~yABe$vH0U71u6$Zgntw@BzA=&G!)+@~`!3ypmXS>Tn0;(nyqvI0BxLkq+1#=`-DnT=Nb$qaRUOrXmy$M6BlzM1qXAoXAr0YP3XZ zrjW9TCP|Wrs_=A+fKaxYlX+H|T>!`F=J(rUCV{e~obI^|e@w4bf<0__g3yGs(qe($ zSeXPEo<5^1ZywXUvt;77&6%l8r!HC1Ph*zuY+X7sH_r;Q818PdsIXE|f7Yg7o%?1U zkt}SHJ}r?2QDb-{>b5JvtI!QVV)p>i<KFwhj?!?Hy_sz@a>-HEHNh7e?JoUa0 z+sv0$c1w%w6&Gh7;Q+O!qQYe(2M%p7B?rx!zkc0tG{S;_MHoaPd}<8fyX%;l|LBiD zzTWo7uutdKnoJKpn14AUNBNnBVOhDYED9EBtM)}oIR_RZ1{Who zSt4?VA8NhGF@2g>OVB;GX$7f_$Re~Wi;7H-&72dN*ru0@Z#Vz)81A{MfU2}FQcj+G zHU8^*0s!Z(k+^OnGiq)xeBjHNsjE~)1)_S^05Z{`V(<9A4~tY5fTsCv zpJgkfBrk9bGeDaa8w#~iZPR83ftrY_fGCq9Fw<*(Ql>NW9G=sXnF0FlI^MSNvbL`- zOH;W`3(z)fd$-GN79|xbZpuF9bYrFj`+imJx}HQek*FRe0fh(ok$!Y~21)N-T2CM% z%q)CUL^!1+CqR_c5)H9?xTk=q%mqc)0w@NKQ{(~m>bQpV}XQ5kQ-DtsSCZ~}W|gq!*9xi0O}#gRg+O!Kf= z2QywD4yV%;VQzHWm5$d40Q$ZQ6C4 zLXWj65p6S0T^Ge}w(S;KaS)7*+ct~D#fbnc(kobAcx_xue;8S$M^ff(qv1I%p3hpV ze^FMZ$F%x0LNL#=Hg_$`hu_AW9;*sxjJc&dbAcs6@7vCgJIm1ZbPnHR`u=zgyU&@| zZLai2b{7SZ1gm%+B8xO62`DLv0>qIN5gAU^q()?L5SbPKhJ?v77O)5dPK33!htAoeYf7^C(rAgWi-oz9@f-$Q6{3@i?f3uW=f4YAFq*rL}e@_Aded8 z&~)Tq9c%nvZ^z(IziKx(2inpFZalZXN|EHY3; zCuOMM)b!=NdgkphPQ5Alqv}?InP*~{->0q0UByeZ6&ZOrKABLhuk+f@ORKthX;K&d zm06iAGm_RO2bm4f#=S{>C6>lZ!*qFUb2nQWmo(9XGT`owxxXXsnyS5LwKODCu1&k} zbg#mxQV6@ssq360GgWw4c!XzEMdb+(YI0x@Ym(zOZ0;1vB%=C$cD-*$|BbHV@AXFa z$KBJCpP#?_+jWvIeHFh^Iv^SE&dNecfWasmMr5X2xRG{ZW;%9g<~(qGRN)o5NOR=$ zsB7Bv*k)BBRDA+w%m_-j`FHmr!Y7pxAxT6uBBz@$z2AUfei&=I9!!uQoR>;?TH4FH zi14?sk8Rq|K3p2}FwdD43-bATZ>^t~Rw1>Wg#>f@ZJW%@Oe$2u^|kBA=Toh@wXra+ z6$u0E)8`B!K6jm-O?YWq*<*fm6uHFtpRe2NV|+L*Yg2+*&@{J<(xFcC7Kb)o6MXcn zv#SWvW1FVjl*nnH7LoU1i^>9a^8>o5%#{FCmPhchq|@hiwYiapYG)h+ogZ zAq|r-d{QzeB_ot*5|To4U&Pjn$rDRR6rF}caodk}5= zWWv(gm=5|OnU+Dg5C7)GOV`_dJf<-LNyBV+J8SRC=ceED^oUc_PcQ4+bx)$oeb|O` zlXKTah?5iSA^T&W9*x5j4n$;Ei3|XX^0~`(o0qknng$Xxw+K&MItfuQ*W)f52?>Gd zx=$f$%3U}-My9H~ZS!rLXO+yHP5`M&X7=ggdPU$&sufLevpY^u9 zf5pl#@IyKDV=SPkexmk>imwM{2xr2l7d49k1_`r-=d3G?ATvQCl{^)OtN};3L$vkY zil0@82w_U(KHV&th=rBVnVSj~&doCg09W8mWkz`*4$(tINvE@<%2}uo4@BLn5(WM_ z_m;qYpM+>lB@47!%lps+s6(Hc zK!m$+7oHxwnJT_|UYDk?x1BjJtu4I`^T)7h`MmPE>vf+yM`VD)GKpA((`T0CfQpev zNk@O5=r{r1OQGLy0Yv}_?V=r-b8gx@U|}<&Djvzgm4RoJL0IV!AA*$tFV!uPCK;N9O1`DL5*cwKOWPkg5hesCa*#(*29gepACBZ% zreLNy+<{XoWHZXL)Rh^OglX~d(!aW#w&}vu8q8CfM!08;$pnaUMwt8B+NsMhyKb}U z%7xo*W)?5!4#qxhpI+$2*T-B`x@r)@qcU&tK4h8h)jNLb%{{hE0e6)VQL;#4O5ic( zjNsHvI`y{O%*@@4K@1w<5`>gFW6p@cZMRQP>mPqS-?u#pr&age(la=|`FPr=Z^J*H zmyEa%KM?H+0Bhr?-hOj^e0fYHFs-W)<(wWF&e9r^=(MOZKlZtqcVS_Ez0dnJkNkLQ zA5V+2TzA{unLuEvJRnk$RtSsyt;3Lj!gW+N{f8c9TAlpXRu*+i?d$n;;+eyYgb^_V@ttm0TYtdm=LeIP`I_$VKDN9?0h_-!h)7`T-RiQitIr-Qf?=YT9-fqeu zt#9WHS8ZcBGK6Jmyn6*`iU7j2b}^4X|I5#F*tc)H2X3347hP1g;U#UW5&F4HV)@DQ zTK_-SZ4%MB>9p8APQdWorZ;7?7?#?|9iCB}@osV3{pHlV@XtTr9N4BzizamHIRZ`P z!)5t&S+{AAeKsXeyzTS8n=sM2gNyqSN^F$wv0HeihPmw|!mPE&vT&VRAi@uZpFeB~ z>AN;{0TF9k&Yzy2pXoEZO_ElU0c2L_ClQX(R#@*!EIvIWL^D8W zIxMr~o0hqB`Rc>vb`l6yt#hW6o<#pIhl#5K4zxw|6`R!ga zjk-+}Lz#Qyis&-;rRmdYiHx_$XiXD#z3=VJk$D|+|KiHLblE&cAvvj-?a9Qq&A#0C zru_9~A)(jZ_A&1xJTa3BX0066r9C%!UiDYIZRVrC&Yt&Sr=@kGjHo$EkifVWCuqwT8`Xtb9x$TpZ7EvhHPLZ+C1DQ}>;3A$(OUod_ zxhoNdxiDSUX6D-r2G+)xwR>bB7l^!v1X3X0)7?}LAtDIpRv{ah=1h26bb3%`A?sB2 z>D=b9%xJ0~mNqlrc2A^xB5j)vf+u3w?jDH`A}^;thrd4d8rX6A<*ZMq?vYo@$L5FT zm&h}}Z2R|*{qKJLG(Gp-e)e+OcDX)gfGlFVuT7ZfyD#_Oygt5uJ~fry;=Wr1k`WOJ zoSJyRElW2QbR_yLz3KWaZ50(#sp^lUp<+965HA0~C8Tu>_T^N~B@(fHqj@KmIOhH+ z8eK4apWAM%y=2}$K)Avth>GN)Hx4R&>Y1@o-kx~;kq23greV9coO~L#azU}k0v?C0Ylb91cEtpA&EMrg8Zr>?y1)7;-4b69j`VJs>c7;y|i zw_yZ2FM8W&Mt0$*Y!UZ;HkDPCT27BV6eG4x|I?4BuU<~mJi^UsdVo==jeYuc+G9e1 zrRy-?r%j7RI5=N-Ys#N4ix4}!wip2m`95uWv}Ik^XBMfT?eZwSX8`^{oBBh~Fs%!E zTTj3tLGbwyyHS!KOprh(Q6lW|nA7sSu!^Jyktk=lnWajP46`ZB1j&pl6>Yj@GV{{Z zW{`7QSmju51%WsJoY35OUyv8hmD9bz6UYV3=n^6Hd(+=AMp~Csd zGYQ8X&5x;g&5YauWm0h0G^Z?vfxAa^VG%~c0>ZQ|ZLuKAeR=>t`*40)^t=0J9_OZS z_c1-zu1wj5nlc3`5fk3-W48l2RMWby;vR4J(Yq`nO@)Ye^V?>(IlsE}pM5wJ)7q4n zUT^#GI4!z1Df;5uV`k!c=}q;z+xKr#t;E%KRwa?^R~z7NrUrYLzhm(26?}R1u=SWO_(U7P9+jhFeM8U zcS?wghu`iu9MhLPuMLs=HXkEAlK>S$rYHaHKlw&l^Q3?NFaG@g*n~1YgmG3mDOaE= zfH7m6u1viNGfj`iM54QUBkIc2qbprjE%mW^zFg$eG&8@uKeibHoEmpwcN!LTwl<+A zI*c-N5n<6eZJ)jkS(@(VZ;$!u(w`UE-QR9gmCs$iep;GpQ%(<6X(|#~{pphYdIXS7 zMTjWkyvXyZ6+I&ZCFt7BpH}_J^C>dZoK?FBGk>-AmveheyFSb!UY1_S>F;cNOq&)A z%s?bWsPcYTh|2~8a?jmxprO+;1N3f2t$*?m1ic@mHCXulcOji-gtn|Ny)X7qW>M97 zs3R!eRR=)=X(~D$0hVJ6^hjntCcfb{m*8z5bGIf)Bnu1kea!nX71qq*-ifw-dZa`G z7}EqP8JR&ui%Ky8XZi7jRC$4B1~D;{=Ft-L2tm0+$UHNULZ$0KR;X5XQEFvbCyTsp zb5X$zv#1fe>cLOvpy#!l@55~E`bd8a`*dp8$M|yJg()Mi!-!y!bDxdLgX?n2py9Eb zC$M$}lHQ3kO?2sE76f-BWo+gm^pnfFHi^jLF{Wqc(<0|ZBjBD*c~P-Qb2o|^bZ+XB zk$E3JW}Hv$`MmTdAeslEmYFFkV1WQg3TJu-z||NhRxTGF)i(48SJFCd_I^1%eF%5+ z0K=^=3mi#@ER&hIB?)M&Oj$)|VLm`?N`#0bw1LC-Y36|{)Ii%l-?jnp(^B5ygyR># z`Xa#B&(GYKZMtSGg2y%z3{UdIz9O6wC|f`4Lyd2C}g&7xE*^lg|& zKCMkUR|Dd@Z})wE_0$I9KCE}Hj4%}rkH@sN>!Pwvt7-o}or$iSeRmyy=Vve1hh4X= za_K8=Gc$*W5Jkjex5#{2R1PR-L}o;RH8?YwC@A;oGvjB^%k$clX+-TzrM!~_N2CW% zP1h#Z%_5=+sWL#E6_S+G9LH}C6`2uZgvuc{Bm`v=2@$8yVB&01G2svbqWnEShAvSF zK`E?#yMDWmJ8XNvFpXJ>#i1$6x~epD59(Q#+l01Nq{lV_9z@E-qV6z@0z`sP9InT1 z5!pDe`}EA`wP(b)pRe0}fBR}*PU~%-Z(pt!j!cjA$hGUo^WyI17WIrdjlheD5R%CQ zk0g1|W?!II2!wo0zwh?x)PM4F zVy1oiW0;v=me#v^1QSGRgC}BM8b`=*c)7$0%Jk{nlz5N)&D+L=PnVMt36WV?ar}}q zJs6@3fr*HV6ypZ`jvV^8GqE3p9rzDbcxZqjl8L!r-Ap17JEhf$S<_u2KK#op%u1jL z3qyjz%o&KRA)+v;u&OX&A3kR&#iJAyGrsKOtIP7!r}fv@hlnuquRnkB&u_yb+}BnX zkCJ3?L{1MdsqlUHWBO%j72mN|T-@|7vi4pb8YVPhW@@UZuDgW@pBLSx_atQkNQE*v zfCLGXdq}UiL@*O6JIFHKgM|}tWF)qC4c9(vR4Jt)u}GOg9(%Yb!}7LIj^@Je0@2;(t{zY2Pj0ihat;gg4VGH{Gg&pci=AP-5&jW-ilHCp2 zvKr0l=AxN_%2KIYeZ@Hw%aL!y8Aj}?U7IA}9+qL57MYP|0Z^%H$`z{0_lNCnAV`+W z37N<6;XdXzEr1G_3_@g%>B6i{B62tHLQTcp0cyfc*#lif2xFLvJe|5-_sl9BNr-0R zm<$DqNKb?^)G{AIV`G{wy%fhk|LzuUA(YvB)hsdB|FXg@#iZ@2J= zGH>B=guf8@=mmu%G8xf?r8P67u&SB`1Z~D(-)pAqKvz9Tk-%mF;OnzCq1&)amjE7P zCZWhJ)w7-+ktso?4=h)MnG2B;MTDxJ7bU`Nx7XYF`e_;A)1#@J76r0c8SI=15mMpH zq7hl`&AQj_=KBnfe3+X%gSU65b0vBbNu>%h(QTg}F6&R9PfaO7t5mK9sX$q_iQOVS z&7+HaJon*opFZ6IT$W~Dl~9_wXRwe|dUqx)8_UxwpSS%nqqAh$S7vOsJumHP>1C`+ zCWAynZXXwzib-`nNmJAKr;3 zB4KH*mo%&Tez3{H$pUT%Lni~pt>}xih9l#cL7bIqn<>mlaSucY$O-N-h?>v_)Sfxr zD+GZVBEq1D`83xfk_?5l2N4r@r9+}+$%(Ftvh)%?hH;5UL3?CFdoxA@^orN&&Wi1#Gojqhcb!sWoblshy9XylwCh4g!$B)Sp`3! z`VPaK5<<0MgeIB!=V?ULyLJ@<`y>cs&l9S;)aIYeS@a_XXt8R&6dxk-sUv$ZCzv8rlAM%et_Rr8~m!`P>_<+Pq(h*eZs+erbC;ecHx z2_U5jsBMA>BrS>kAaAB{YfV9t0qxqB&O)APfy@#oWK&wY5Y=UZJaU*P&{!HsO7E4J z1w=^<^NIudvW;yzF|t~%KuyGmuzTEw1#)dI68ki%RhUV{7U>ylQ(_Rw%V{O1Z471J zJYTm-NQ?OXx^FYK5xeK9^CFT-O}Hy7aoLlFSy@D+$W$WybZV{INRmKKk9~%D5~zZC zROGU>f^vNI;rz|Z`T5kDX$%*pa~CAOzwX~%@0V4(%6-`P_YKHZrRA#xLqP(>B;k;f}HTQ^YDwLR6#Cx>f5ZLZt(v88y#I3Pt`oy6ceQyH&!9PkYt)GY( z;X*;oaLcf&7CD&-#2E!q%_C@82qcnHwr1zbO^>iSmo5Zqs>1Av-C}w);ipp*=B&n` z2ooZ6n_i&>y>U~X7IcsnQ&k?*AHykWZH$CjvT$82l&K3dNExE-vb5d&_Sm;ETagJf z&4Y-a&wZP|TSSB~MZ{yw0Gdh(FfF1*^^{qew#eEjRk$~l0<$%#2`5T|4OC#1XCCZN zP-#+?nV5y3N(}mR?$w}rI}*P&U>YsHsYp@2ld&i1Yw$r_KA^?-AbCOSsSNI=7oVeV`I4|IY3GcN&WS zVZ#k(Z6ZC~+-IR!=X``sfC80K9dsyt6NUY)mJ|`Qh%{yjA9L(slMyz?+(uVkRm<+g z;I%1A3?Eq@_^u)%(`s9;A_hcMEda`7LI%w9v`AM*(y(A6Wh(FR(j+r8-;+2qJz^Wv zJw)4q3@21$KQs12j4Ru;a9@={d}Oi^ox60Q&yW3WoAnC{QxghgWN@kI-Rg@MnZu&^ zYtzH6)P9J_Io<Nf=3S>MBHUkMWpRwbApbWyb4$yp7qLd^|56LCAB{%hJvA^)?6@ zz_2(s_3$tEeH(Tpr+N-^kJzW(#stx#%0$EbU~dprCN&`*_p95mu`_d9F31?;nwi8> zww{9F6W)8$$1?g4_)(TF%gQ1V4&u6S)u0N@AgkhsiJ5{q!v~{*bhu~uvM3^KTDS?b zEIr+}eWRq_)W)EUrkcn(vuRm1G9tjNL@wMiEbthyv|s`wh&YnmLxoOVH*@z~guQSf z!1uTP)LUb^?Q>YDaP2o{AzdsY%#=t)_Tg{a5aC6Y0Ob^7;k3v(?cDV~{ISndZ=9GO z*Ubv)U5@<-0uaEq&DU+~!mILQI1^62%?Jj{DX~Ws&t-Vdu#Y0;p|OarLW$Sg0MVzX zzVG&{>tmZCM5oS+%5JgSY{G<`?)PDqUVF$dzTB7#@I}MY-KNFbSX3VSjKtdXK5e)W zDbhFd^jw!t*V|)kx5xeT{L#k-%GUek!%w&E7Cx$q!tazr2X7a@gW~-6n~*6>({@sA z;WWY`L&ylFAv8)o{A(Ezo*Ak_B4%zjRY*iUf`~*9Q&OV%Qj;s{D^e*MD+vlDs0?Nb zfC9&jr1DOxRZLuAOLZC9r#*%(y=hZ3tKnA@p6*3BwahsjNEHSjam<-HGR-qG=k6lh zM3yGQ<2LN6>t;R;=dK`Z!yfzWO{S;tF{79s(~qLtJX_=EWeH%0ClL|3$FMwgQRcuz zz$ra)l$zUlzMuMIx(8J7v^Ic$`F5QiT}q2{oIBIQEtn{fDnvj;3=eodom*2urn#HP zaA%<utNg>3P+DQk!lA%c-=9Q3xnz zdUx8tL#2<^^WX3u{c7eHP)KSu#`*!4pXs;WMK+K+~L=8dGK@FfBZBSsEuE zyAe@W5jk%Dz~PWLv$w~%?b9MyDhzsV)AnJz`wTBgLnMTSh_^9kB(t2FmbZ1c*vxnH zeVTi$i+nnFskwxbM|{5TV_KaiD%6w&*em{>DL}W)9%E`>Ch?bTtW5~?{dF5=O;{Nx zl?aUKI8ulzE1ig`Hz|5x2~W*!n>Njfh=up*w|$!DX8z09`)%`Yp3kQ)vz$^*;L({^ zAn;99Ey;alf z-AV;ce#Du=BbKIX=V>|2eS|Pu`flEore3RSEzRE|7~BFlVS zTcsm5mCX;nj0LE&6FtU^8tD>|RaRHVBC>@OLO>OrZ0;aD_Bn z(t|vZ2w^(4c3B%`e%`jV>+{-gY-2iS!lKOZC4dA_b>cDf5Yz)(Rfos*F+Fl^oQ?=U zu$yO6SM|tYhQxVk+pxzlBt*Hg=$Rk{tt=l8AtuU#rki=e8&DU^i26nH=6w zl`QVjw8%(RAz+`ztWCHBK5a%mugfU%vd=KV)qP z4;#eXmy>9##|hFovt}I3b*h$%yv_yw?_WSqAHMGE*~ebJDIY^}vM5tdO99i7`<>>n z2&sMz5fG)ki13VL5n-g;j2vS$B}y@m87WBNlIK-VJCmuau1!Ih(~H#1M<6%Jp=il{ z+6=5pO$0>du{Jreet+GWxi=jnhMT(+;bmQxCXX>9aca7#+=mTM^Vys9CQbP<{jpnb z>=|zH@qF@(Sy@aG!}8EbAd6Ypm`PZLi+0>q6ZGZ2w^LtL_K_mo1l#a2otYX)^*BlE zj{5p~ll0l-x?6Ey+(SiFd7svsKAoDmYp`}k^8DeCK79IH+|{Q! zNJZb5NBs8|(t3IRs`b;fnGtO{_4DN*XrTplWg*sJiU@>9vXUy3XE+_&{><>geI*O= z9Q)WtM4FW@A5UxhLBzD#oYR$v1)e!9u8-k~=X0-EIAm58Wo7_s$Xwg$^w=gh=2fM4 z?#jb*ccaXuE0DvCfXmV=y?eJBoEbt~# zcsdc>mZyF0fAO#X1+n~tfBetB{OVu*#lQI9f2EIc{`lR?Km0rY)BpA9@-!Z=NKaB0 zE$YNye~_uDwDr8Kr`z?5gi#oL%iv%oUX!$}8q|nlG6icVVZu%o{m$u`5Mogf3aVVQ zLpwl$l*q2qL~7tgz?db!LI!%%VP2?4vy99pEKCM&n!RatEcWRtHFKafbP-;JKl|R9 zFRL=sbdSiTNsUUF_+{gDBSRU)>CYSWv~IZY)~EGz7CUSEIluU|iX+FpNS zbAI{!>;LM%{6GBq=l}M@AO9oo>$m^v|8o1)FaERt#XmTmpa0AM>YxA1FTegD{m=hb z&!7HuY_FL?#6O5%|C%MF?lU5!HM4q0^o!rQSvztDoe7@ z!9vXJ2bhWjIV_frl7wpGr7d?FkKHnJY5Ke_yG<)TS43T#6TwVK2=cUai@0s`wDwci z>d5tXECQv2Qn0XL&p;h&|PxoY^$8I(5!8qg=KCq} z<%^GG2jD(-+dO1>ez{zpFHc=W+rlC^fBNu8e}=Smk)MA3^-q5KzdW`4JOA-Nd->CU z{OAAA|I^l%kIz5-{*C3_zWMwA*?)Zf&A?xBpZ(K}w^G$bybsR)iewSL zRV4ns|M7o*e*S8G`s$lM`A4VAC;R-be*Wi=h~P$vR6*syk!U}Cbp3caKbT(EQdf6RRa(}%pP$Yb7`%Ge0#lLzW&?)jd4GNUqkpDbm~WjHsJwH9atm|rWIeqx!zMQU~f6c_p`6FqIFan1Se)_i)q?zt9 zBP*?ql{@p&6u>rox_4nMkW6B@%Q3-0MLdn^Du>9c(g=i!0VZ^&#-*1y>T7yu5eq;< z4Bsl{g=lw2h7d$Gi-XyKJQCXXVX3l>*+du!KZ0Nmln`JZ=D{EfOn3JPlx!JH5Qa0E zqc5lB;~&3XUwyodVJzJ}6Uhn6Y|KTWyAQwaPK>7X`EC(7H#W~{n4afFx=2O|IU*9J z)Ns#jnrNSnxBLCi{>lH~AN&{p+wtYskNaC&PEViyc;9YsU%vgLzxzM=@RPqKtZq~K z()vQgVf#G4w5LyfIj`qukZiXvKIi4bH^MZ=K7Gz)7CvC+Yf*-^)~)v;~c?%1|F_Rar%=R5DdH}2D| zF{)}+t>2oSv#M6D5Cu8$Pe^!35D*ZbBqcyfALp)*JrM!w;|Ono-tuumw3Ybo00DtT z{?866sYG@O0ReMsp`ziaAuGde1h%F(Fa{f%(7RgOexM;Bcm-T-4U8;J9ElB0%q(p9 zfETTuKw=AHKA<|AETgQgh>5v{guA_ovb&s$k-Mc4moZR)pP1K``-6bBiK79rtF@Jl z1Gg(5@LzPfKidD?W&jfZ3*u@92^Exx%W{R?Pp^dFq9lfBiym>U~0m{^%u zo7gxyd|;XWgS9mWJAxg|!T&d;|I__{V(?*JS=s;a_+QFmZT%k>4vwPEA8P#DApc9W zgNmE234@Y}1K7#l$VAlnLrl_tw6WzDu{SYr1ly~C!B+q6EQS9TnV6Z4o`sl7*1*WZ z<{u@f|ED1)AOlAeKHxuoqhsWvV`f%iV&rD~a2+chBP%x}<9|VA!NwM*ZvTOP^f7<< zSA~&_o8<$_M90YXe?UJ1$JoHp;QtkDY{YE}wzoF;P}#!Tz|4ff*2WA-{2xPdi-4`b z_8*Ktq+|J)6tc41k~R*G1~x_}k{~|dht~8K7RKD1rY5Y6Y-}8KtcD!ybgb-#taJvf zj0SWj#>Om0hD;nx#s;SUJst!$a{9-&|2^LL|L1sldy9|!GO+sJrt?qM{Sy@25*7|0 z?sEHgPAHq${kvslLHw^c;5IP&C%*ZBM*le0#2EPR+ZO-Z7Wgl+F6Jg5ME@V${a-K# zu&JYqfxU^4*@w0MKLixRhxiQt&0Ad8bg`KnD~W;j;@|=_`QH*CpqhW zgEP6w#A(M*C#>>YA{&p-eXPJ?$ zCSFrFVp_BwFM=G^2Mih+z9#mbaAb9QSfEw#zg^~L#%(Mn|BH@2 z){i5s@~kqKzFX7ANk6Swr@MNJL9TqBFR=kY;}U5d53s4w&Zg$R(hUOzu#OA7C6`d3s`NBl#VEv{N476svYQd4efrHqEDzAMrdqt!9=o%#G3pL-W5{2nV$I^zr+&) zkm!QI$SEYluxc-S^wluWs!ODfSVoaAwFwYsd(@GfK*HvW%<)T#%H&d| zov4?4%})~KgJlYd%-tShb_Gi%+xH!#^iK4NzYfL{WF+510K|yo^tXJNGPXzL5EoE4 z%c~2vJm$ik){^%LRX7}NbDq&JUbEC%Eh*F)$qh5~ zZ+>ctbOxZT{(2imO5dXUD<6m@kj!A3D4g+0Q5hwv5BK1>a*@8~<`)m=kEyw>n??6n zRqbum*R=eIZD`SWGYhsQ(O?Lrs(d8RxgXGCNq@*VtU<%hF>~K+R^?jx5$?0gIE(9z z(PH2vXbyj<7d)qK)S(-q;TC=G^Zl%tTMMuB*T%ZSr1a6&=0cOG@LHn}C1?-F#k-Bq zlmEu}FAR0w0)AmP;ms|N^a6LDMfB)deNi&eygPb$8i`P~3gRSnM6_x5zs(j21-6X~~kS<2j`)L(neHnFJSUUMW+je4{hW@6Zj23^Kxtm1i z>poFjP(D#4!LtoAGt9$CXhjfv9O8Mk;^$1{APOee&ot*aJ%C9NA67GFS7;Z1SNpM zEW1`3A~eER>ezt_-n(_Rfp8ZQ=`?mn(FnFGKt&T{hOi7N85W3Qkk)fx7-Ji^Nvc=^ zV03p3$U_L|9<|e&VO`5mzO`0Fm;fRFu2q)#5|g;oqADk9Nx7Eih6KY^qN`?uiV-|- zvN`m1UtEjh=OR(=y(L{~DKhP93fluoqP(8Q4LjJq92k8|+R z4FRswl2t)_BrQyPmw_2xQV7ZjFJwaZ?MSV*W?4}K;8V(pV(YSHVwr_Tzoo{IIsoyQ zP~3c6!Q&oTv|o&CuibTf{e{Gfh&Wy)4r1gjmn>V11YBM9@e0nIgEUw0FqmacNcS-9 z(&VhWO1$iqDZ?EhaePtezN`v)F5?@CUhCt_mO|EAOLkW#Y4M9fN!s+@+;RpV6HehK(W^^-cTzF2c~1AzD!>>BhB6NCFU{P+b?K;9@yT$YL6!+? z`xmgA{z&PwwVoDD>uVl?m*ydaC@5^dJ49cW+oN(iX_gij9t9EOd>lh2RKG1CLrc5a z3tkJ`JK`F!c)n z>- zzC7jrYbrD;3kG$L8;@CQQ+)Zh@fKb&jMQ%sfU^p??&LjvI;G?1F{*?(sO$83_V>Pw zV)7&icfg{xnTH^9G}a#r!R5Xv)*kn6mby(LMWxoYR<}JY>_>3N9My<)1ZgY44F~J0 z#hn(Im>tq(?6Wg)N|gxsY=_z@#1JfR;xNkz`WnpwE5uT}&cgL6w|R1q)bickfj_c4 zbfrqG$tS@TyMtIlyM(`ld0c@iE|elL=sRsWL6o=vZTqy)c=>(n9_PK7p_B-KORVkg zse}Hsw57aiNkoF2LsGdX6hYL-COXhEaj*q>gnIedwW)nIzNTTHCTYbYDUQcRGwr!K zUX8WPh`C*5*f-;V&Iu#S1ALAyNzdwN=&$Pwn*yUdcHE&g)M13u?>a!XPr>@G&r|fiSej$gJ)g;l_Uz3z_9+XXp3s zY^@4)+a%2|oYN<*TspLcvqqZc9M$M`lakfJBfMhYMcC>0b}b^Q2=SVCsHS~NClF)N z8|}(SzWt4kEBfOJ!Sbdz6By`vbXR=qB_Z390Vm%c}e>8@!TnIcFW?8 zAUQE)@j&t}=?!E~D>vv-0+kNRo+v*^9T7aX$*8Y9ZW(#qdVPyixyX&mF8e1rL0QUZWLfjZ#?Y+ZNcgy^VL)5Q zh`~an+=eBjijS01#$uKo;iou}U-6xTPTV3X&2-cuEL5IL)k@J2^$DX`&3e)%`(9ay zK54T3#G_4lt(!krvu0TsSiRyGLH3aH$V%Sw({?EdnPWg!{YJ59Ziej-eK@6Hdx~@S zi#eJx6tZi^`*Rp;?Ufx%r_``C~Q#byZq&h@XY9&j zqW35U@2fq#lM_NdSQfdd{`N*r74I)%`?TbmX}GCmJgY@p3o?cCdObv+Rt8O;m=4;9 zD2K4eIzvsWaflZrDys-rMT4eIiW;!1w=a%qf@(nvza}`77J>9776sV1ES-m=D~I{l zp~+OuXqK)>f@Fs0nra5?)6_*T)(vY5ImT(V$%t(Pr+h zNG~lO2^rbU`kIjGagUp`*Dv2HK3)`U<20o4KUaV%Wb6;;Z_U{$dGfq!s<0N&5hiKK z6@Z7YXJ>0%B+%4A%|@FiZ<@&o5Uew#gB}JUgb_KOP(o}h-2S?aRfqDmHJMU6uFS7} zszS&1a31N4TyMJ3wT4dIXODV1w~(J-dNH|K)-63K*$X)(SGyA#{o{rpoqV#9%+hl= z^!a}1%%beiV~4PKWL!)%^&Yx~<66%#^S?UYKlqJyUc>KsUxQa%h?dt{-5qM*wp^Yx#*4B!fQ*!-O23HYC({0zz)9&6;W;$LCPAk1u%ZpN z*O6vWDK5svZsc0xmODwF)J=PYu_70Z{ZSN{XY$LmKz|uV+Qs22ovEP2-jH^_A4OPM zXP#}(O<-F{HmhO=-V;H+%CBAg+K2N{x0TLzMkB6OED-&WV2js8AhKPG_RBcmp$bIV z`CQp|aCw@?eN{8z@|D=cuxg2q&G8r^F$cA3ves8+T>A-{`lUb1cyH@;s@fFiI#hqy z=8<$P26&DtH4dgn=<#eZ@is#^1TMVqj$cM+o(SmW>r>h427x3{E`<~ zeTCrPe%$+8QZLCzzL664OufxB78UJf?HR)=SL`TJ3OBw6>$vsjz?5A?H}GI{{tv;* zz}|$lGa5+<8Iuy+_PJ|^PJO(UF@EBeYtbJ(t~8FYjG_Fa6C289H!Bwp9y2iRax?AE zsdfdoN5;3ei_NRtn-|rm?UTK|73}MlirPd+gifaou@)*3sK|l&?Ey6r0x3e2Wsm%g z?*cBP(go(nCw`Jjrr-aFPTHp4=RiEb>6DRUqg9%g{!TLz$|0@}=`_CXV>T4nR5%$> zhC-V*gBFQ|gk*p*VoV*|=TMVhQ5%$K{u&U|q|l%bsUBm>@4SJrLOcJM)A+?RZqI&- ztQz?j?;mVeb=JBs2FLuaO97@R_wJH?VGWvsZA1ofqwB`XhXB|ffAVL*Yb5Iv(98SNQO6x^X0p%1VV2w z&!?phJ`P6~M4BqaR)57e0gD7?|*VXaUH-A!6`CXTIv9}_RhOjQv@CK+{X;CGvO|sG)OS)EM$Vo7}3(K+)Ol)t}B^%Q3GV8k#le8pvj{-cw!*&t6U#CiLEG z23u^DXX+YUF1)Xj^zgx%D=l&3d4_EJit7q0R~^wEytQ|&X;C-#-h~3M<#+E-7xilP zC&R*2sdeRF_nP)v>wkqUk@kM*@VuQ5an(K7-$+=`kyZA-tye!& z${wIQa%MM-oMn-Tpzdq##Pd{h%j}ARacp}}-x1udS5DOXt$Y-~6qIC}Z3D!%Csvap z_a`IPkNy-H+%AEFNIh{`9h|74`N@fmlL%+*G#9q8!H) z17KoZKz&C~JH%IszY-DcLEmN>Rbu4ea)_C65d3lIe`w+q&N|D8*AE;2}|&GN#F^<*0BiJ{>@J?+h=OMB<|M8M-A%)35( zCq^jPyrPP|K#WsZ<5frBmQO;AfTS`Ea^CA8QD0HO>kyq1kH^wU)69;c| zNlDI!scKd|_)M+j$Rce4@0}~7Xm7*bcYX`tW4#yS*CTm<5wA-H0XLOQ-sp|@wcE+J z*_E%&KI8&zI(OqK$vyzXT@24liSiI}RI^3dhv$A9GwfaxbSdmECkk$Dl6}G(f*I*z za1(7Xlu{2X)nbtqQq&gmB{B6tvSLgZMSdKJWX=N8uMsosVcv--=RIhRZ8#zfPS}|I z2TTCEvn>omv@yaKQy+b)fD`+X=Fy-UzV@dykwEi{`O6mgYTLrog)=-zz`NbP^*9+vtk<&ZKwCC8(}jFQT1tqv>@1MvT^a`x%E_0(MN0(%a(1YdGuH4u_XQ<1(fIQ@bVN`Rt}0 z?6UKCH@6Y*;+-m-${Soa>aIGXmWQ6o210FrJ59>k@Os;6S(kBPR|U7H?eoOmfgD>abWtJ88UqIx^cxihp&a-*{e+yZCu`@;=xq;QltJhoXV%8yLex z5-Uv%_XGim)@NkhL_tOiDVIRg@E3QyI+ym3pG(VUfS0$RAFQkqXhV@DWczuCwKSS1 zb4Uk-M&!B@`5LK+?PQIWtz+b?SH&A#Ev>=cq|HuOLV_OAv{)AX__`vn$MNpO)y~@l zQ_J`j1nZ+1Iw)Aq-EsAn)$ZBMxAAk~uS>ml|Nhd}Sy0e7>Lf;K_WD+3=V^j#OgAjM z;!8{>r3_S6AIfDsd{PrBH3Aj*-x!u%d`g@b-tKTXG*9O7;&C0hU^r9J^yq|MpCvyy z5^iAd5aa;_uE;)CVDxW5X8XaS;F|40W`RG;w)GixGK!6iq_qAS#n$f%Mnsn*%$wi< zFNs7L1=k#t&UoHfGdtMW>puF;O(ot`#bGAp5Qtb}p_ajEp0v|e;C3EwZF?5^#{7kx z`m^`W#^^%s>-a(SvPK36*n14y`;U63>~Q?AvRI%J48pBXRh-UdbR>dn*r5+PDNf{X z4Sgp)i}N)+nxIOTC*I??{wpZ1VnU2Tgc#d1k;@-*2Xtz#N|RH$kJuXYe0pvap4qbe zr*uT4)U(b9_KKHFc~LPzx|Kn7e5I<41}eD8iB$uPfng{>uEmUONGTX95={ZeiVVV{0>*nPle1o})O#0hlog6>9Vgd&q6?jcKu(JFE|C9NxV<(;S~6~X3*zhHEF?G z;y?3cx~{!cBASmAi42|O3kjBG9}n@Z1i-R}XP(0C68|#9WVA-=nL2UOV_^g)A1YL; zkOhBDCuw(kk$75cQUflaySVHfJ6+d>O!~@ygfXHz_62F=f(g50l2}t zom|c8LFiB*Vgy-$Z)Hw9;XFKDv&a^i)R2iEIpcF-BF!!w9;+&U(E0P8!fIJ23WQJN>YWbca(E74LXZy%JPb1;=4>>r zP|wi$mOm0l$=VcO31`IgHs=ml>DlmyfOp$lu6pZW;aWs6nwx&@a^&IQ?l2vqj$}6l zD=xkPM8ZPIvoC3O^n#+^?}$yW@wmQH*#!Sxp($WG6P$T+uljwSRrnOT5RwMS2qF3l zOS?rKgojTeVM85er=rKorygqqmCAYM`e^YB@kX6kT8!{7TcAcx$?(wfoQmns!bTQv z>yqWq0|mLC}yAY{6jSkX|Je;K^Or>yKM__h~4!f=N8YGX(o{XyDNUhFd1y@C4Ho{=;plJVhU0ynoNd<0s0ylN4% zqUs)3g1QYmes2mD0y1}mE>7gRZew0;;pUDUKfHI;+COF9(TLv`kAl)Ec_yy5Ql<1i zSsL&!+8GHDJ!u*#a6y^DNVHUfqN;pa*8q~7Jr`HjaOZj)gxy_&m;o@Q;_$0{YO8b) zwZng1?>jg6mw8{wLI+kj4w5QuMv4n?vMH;{w`u;OV)(9S_py^;D?vws>V_}s7-ZpQ zFpKtOt^{kptv6?lVfP7ouGV5mgAmA?+#Ls0TtVrng))+M&XwOLx@oiDujW)Y-`b!; zKp0g(pG8H9iyz#-a3iWEW_K$Pe39{tM0s%>bDK_>#6iSd4$*m%2r0h|5P+CEFR0al z7sLiN>CvSn!^_*wWeg1R0%2(aM}vA!>hifq=>Dy17n{F@SyV_Mv8FRnc~G&Lbx&@n zWYI=U;|BA%P>SdYgqXzHmtR`ms&1s2E5lyG@)481T)^5u{h+YiyD&KqU5?o=qEo-nArK&>%xk z_Af@_{?17jNt40pKOUSjMlwHzAwwlx=9+QZzxc=DE`y;UfG-`D{Uo(0Ap5WpnmrKUz1PdIMq!Xfe&1^*plR0 zoKM%KxAK*zCk~BE$`V(^XDEfC!nmeezErU=5*YM0f5^1^bn1QAPft|^n~FVvmO{A+ z->1kbj7Mf_#~<|DelDSQwz+v|ye_^XZ;P+=&QZ!QZ@jf$3%q?M8jY_E#qaz94=we_ zG$XQXF^u+jiwSp4Wa4jAg3MX?XF5y9opvDUMZJH#_>5_xg^+|{Zo2?M$rAB$d1vLV zr`E*$w;XYQ792SZe-d8e37L|IS2D)n)3nu!*G_?sw`Z=v{AK%zEYILOy7%F)r`*Ww zs_}|jrJH4ZBG^K4iz;@#mDBT8o

m6qsA|HF%b;=+r{-%gsGeH{~O0DrCZj5mkf+ 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 literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/DTI-FA-Brain.png b/extensions/default/assets/images/DTI-FA-Brain.png new file mode 100644 index 0000000000000000000000000000000000000000..9643546223c7745eaa551b3bb5409cb272271a4f GIT binary patch literal 38170 zcmbTc1ymf}wl3O0qru(XoyH-!1PJaf!GpWITX1&??gV#tcXzko4wrwQefGQWjr;8O z=&D*(>s!<39M!#Mn7r&a1UOtc004j>DIu!(dF}c6;&(P+`EuR-yTL}#Z005KX zp94%%k^C)Y9v0^kZviV`m=xSyAi3R|^3b@)D7+M%R68|tZHMiy? zy=?6yB{nzWBUNLUVV1EKF*Y-oaJM&Ba+g&$bhj|%HX;?^C;sZn^GU$U*wKL4)ymS^ zfyb4P^j~y&KF9w&W+Em27sSzmk5uR%hQ#VJ^28!G_Qu5Aj4TX>%*-sroS!2$4iFbN zHzy}2Ju!$G#LC3X!31Jw0I~A0bMmmT5&!!``pMDW$b?5xRQ%ukKJWNQ%^V$Vd6<}7 zTwEAkSQ%~XO_^A@xw)B`K};YJ!zY5l!Ohyyz?H$;f$YC2h#ET>+MC-tn%h_t|3lH> zhmDgXAL*yG|D}eN?SIHxJN(;JpGISHHLzu3VPyVCt$zWH4F7|(b+Who7jq*+CSyxu zD`RU%hfgfaf3UV@HjXw9W;Xvfr2jMhe`4@yUKyGH@c3WKVrBIo77mVL&Yx=h+aUi- zw1cvntud3Lv4f41y`iy~^QV|(|7c^&BVuoC;Ams7Y-3~j-_DZ%Z;^>X?2N3$)G`K! z=GOlxLGwQ?F%~s&H0C4y$8QYG+zcR)G7B>g`={&J7?|03n3?|zDq~}0ZsPVI=;s{h z)4$5h+&rwTpI-)M_WuL=88}7;jt2j)U?W2w6B~OggHM&stqe?!nQX01Ns0esNFEUz zOB?%7#-Gx${!0oO86HV%2S)>ILt{x%KGILE8O_a&cuY7y7?@u9ven|I9A~%l~aU|76`iLBS(o z?(pd@w}0n^lCj;tN0#Qq|B3@11H*sfn~&7+AIBOSk^cL!`Tw>B{)?=Oneivl{|9&f z7tF!N#L>mT-dM==(^~%@0*dKVe5QYL@xL@-`oAjquetvzZ~q(qSq%Oe{-+Xs-u$PQ z8C!oAF#FF+wGoz^2>?WoN{R|8yJnodY1A1n$5IA2zu?|G9`N?3#6qAts3ezuU#C#` znI@S~p3W9W`38j}DOu${WiwMJ4T>)}R-9#vS=SK-qlQnFFcKYb3~`uj8mv!hJ>Aa0 z!-35yjR_OQD8n25C3eQT<~6xK+K80xbMfmV;ezn0qzu=9%Z)!?mu^j)M)wv&|3<{j8RTkLc5zS&*|=i5ngFjI9m z`p(;NMpU_omHfT}=6!Wcw1AcL7Ls4;a~DC1-=K0AL8Q>tigi^%G~1dzHR*G!HdzGc zlPNYRFf?VOjd?{BPV|O%FNXp+iU@|6yklU$9_SPT$^(@}f_3ZhKDv0n1$6m!95HS#<0w$5$fL{$ zbO=HM(3O=HFvt~*P{Bw9k$~hmBe3W~%79p37<7OHiUMQ;7`h)~trI#Ic~HJN5E9r@ zmk7=6{=IzjKDooz*oSZG#l>iO)06Jat5T0$1uhWU^ziZG$_Et+15#WbRS^=58wLxU z7zBzS7Z+6y#0%xuZNOluBjw0%mL*sIa^8hHt#o*-C(h_~*LKy1oG~{BULqhPR;5=Mh z@<89vt&4;aJgl=~5ZFamVK3hEY1|!>?$~>W7jc_|MTakd6aY@^>kEPfkW%~7!qE+q zxBmp?A@)oxWDg&xa7KEiCR$fz@VVZ)-g_@qWId@N+&`S!<^_v~#d_9hI*t20Y+aGj z$T4aeK@ihQ#v%(bTT#PIMMek31)Yv%GK){j z97VWtB2@QA1{cwj<=h%bObfl|KRG(H9W$!%r0=S|_|hMUzPjBG!_8z>U`eCCVCI4Y z6I5c=$D6Qr6cGU8f)sl|zz8_XFeUut}kMfZXz}ghA_M2=yPRJ)& z`Xi;GP+2uyex-!7J|exCJD9cY4lc*Bl*b^00w9F?;)?dYwVo;~;C7K&Li z5(jGryD7pOuHjF6rh4b)_p-TS(~RIB4;`_b-8ZfDe3tKGEnX;?#IqS9oBUEvWVnFh z$?=Pm?2E{&<(}OHW{b>-btzTq2O10~)4plE*YS9})x_2;R~{Z|E?PaUco%?_*dLWR z7ll0E%s1XlxVjjq?~6~mP4N2ml=wKFe0rYzx9X*@%I(0XH`x2l!|H?4>gtedX!|~Z zS5HxlJ-1M#Es>dW)}x*nKs*A=Tpb1oC6%UCW#8s9A>-Y^B(b~U+UHv$jDn_yg)-|Y zsPF%icl@{^@SRew{`)>-xzDv3>)0UDVs&$189frGp^+_inq2tfv*TV1{HoS1udC+> z^EPsO?^?N8vu@G3#ejmI zl~=f&%4_X|ZL0|JW}xuz%v0ZRe=alcXym{4*j($>B9iEIB_koFwN)epV5yvB+08Nq63I+_36`$fJe6Jf47;`3aC{T7{b_z z!*fESa|j=Zwr@Ue8D6{{(ZRfB7WjQ2KL}CneAE<{6y!E_@I>XozyOd@w0!=hgz@s? zIPq}e04QXC>Mq|%a?5yqo>MZ4$?_LvC3*Vw!FZDxovb~kNVf^Tsp6qdG)MgO)5;GL zQWiwJo8^#zY{O?C#H+jhxh&K4=Z4O9SgW7mGr|ThC?bV*OM_+BSOkTy1F}?GR=#zK|_vw+Vmu_!5%&3=L1S))clqdi}QEpnm z&#$^rD)LY&kg7%sl;{DaaCxMtD1m~KB;a|H<$1VrY0OklVW-|)J+h?(BaQ;YcfFLD zoYrE`YlZABBpTV>ZM0SV7q+eM??%PaZ&&y8MeHiqgFfKoxAvJf`P>2lE+6#zH+3qk zg%gL)#AeUmkPG)In-sSUp3dC+o0yp*eXlr6aUpdt1D$r8_8((;~rN*y0QXF-U$p%3ss#$az5R786^*^_lIM@|2ff z+8OBA3=J?gKx~i;d{>09o_T`C=I_?)pm$x69bA=+T*6i%?m>FDdw-06?MJIyhCkSS zY=OX)V2Bi#Hs+)c@m_by$#{BdDs7--b$6D{e-Tl0Nq>t5-o!66H*DLlDvJCZ%ms%} zK?$AqB?a*DDk@6@DGds9^icvx>(~o`mVyYRCnRVt&_9XhBMIXgLmc6XY5jM=e(;sv z1ia-p1|opTNAqNFEOl+pihp$AgxQqW`h(Aap&1}Ug%!gpi>e2~f~g43ZcF9DD54^R z|BwLcD?hY-NK{#mc^l1$WXkMPr*4zYc7hI5JzY^~L{??4b>8j2BsCiDa<~7;@GHl-;$5EF?}21pkfAzJ|fBp`pdz@LH= z`@WpG$b6JmNLqHjl-n`ed_#$-w1A=RquuTd0(FR6%Jc~8QhOMPV+Z0Bgn~9FOs_-Ix2NW;$BP!u##~GH<=OXjC0AQ528%ix{`E`_D(~A#=@-4CC8{zwhNj3! z)+sT1T;gA+)!wpia5cULrabjQA$g(?%=z%GcmWn#vcXPgdYkqnh16TOS-+&xJ?d4n z+e}wLAB_SlMR&H*g}bjp76@VFq$*+{ILsWTa~VXHI)URTKW$;QBjn5+fI3hZ9018J zUI-4W{A*Z{N1d*_chyCq+@F+-%lEsx#1p>!cfPj2!4lAao73OeD>s!ucN3mO%2XQ^ zb)tee+`hm$U`}ZGNOAcHczBoW5{>wdmeul5Du|i!<~hVoeFfUlIVrnr8R@P?LuGxy z$>C)idqS)9fkGtpo8@`&(E5wmC?WQ60F8Yz%u7;-@s&m)LouY5*$bQ3>vylmp|6kP znpKvZEP-8e6~h%T#H4v*e-dM15=zkR>Ibc>sj#m0wDC33Sn$5L7J8cx8d{zFeKxu4 zZe8xJJL3r#-9=$AL#~H{dCdvSp_`_NA@N@su&3yzqQgW>C{kHFDE3oa*cYnHmylH`6n0>0i6{rJC?gyOn9r4Yf zEtPcAH;yi#28Y0brgbud9%Mz`933aOHbIKHTrCf|g>UVeZ{4<(o#TBKCkl3Nbo~9O zP?>&8Di=f-yf1ze#mlZ^;`9=0&VM>0K(zlNmHh>s9_&85|9l}iVf_WsMb+TPQLwGd z0g)sp!a==VBQcbwe8rq{OQ(YJ$GAZKjm^Lvlkr1cc`3lZ0dMwlrcN%t)cX;E_GbHp z`|mI9etp6DI8A%-Gff>=+i6;=0pCDm2xt{sLGUg?Xa#*=AWYzapnANaL{+F`P6RP9 zrnTTqsJ={vuapU>!XAEL6?F4*?bl)bJ6Mld*Vk2lt~d`)P+5W+g&dhS#{eTp){;)* zmyG}8tuA%cMAaK}@lPonSr1xr6AhvvO7Z0j{iT#w9WCvI!n&W>yn_q~u`=r}0(YB~R^@4$!5=RC^fw{VA^eEhZ$T`) z%t9&MD(X5pOgS2`r5b%Fj@k}Htuh+#cB<{ItxwALRZgojFG$nXL*DhFoNB8cl5@%W zkYWm7*i(LQCHG_mK-ILE!8?Q_Q){qePNBHV17yO(sK1c|ASu9AzlMJCMf?|#Ab+oe_}^+6Cyv)`416L62E?8$yG_=k z@b4(Ow>5?`#!=v5i$z6A^(92jeChG&x!`I^!HCIdg~4<3F$JJ5VSG#d>ETF6V8X-U zVB+M_P{Hzu2?7!)$$W%)z^y{y*B7y8(m$4cZabeeWp7W1Q+N-Wb3nGrvVoCn;T$KV ze!_8PP|-r>kLYQ1n`-1pP`LNU3zmix-Bh4B2waZj7rAF_OZMp=K@OHOSo%hf5ABzk z!LYGlCrh3d(~l4zRKg^Zj%qs*H9TEPe7Uw&`?Wg{dxNPzI`?l=ML^Y!r_NUZyX);Iqp;9Uj)cPW6e_)lk!U&!XN|dowg}Kh)bJvtNJfZk#+paJA={ zK<1Z3GR4W6EaJkA;;fC?Ra@@rD*zQj{ZIu_!P$NaA~}+XQWyj0TZz9@l+^kkT`3ao zNurDHBL~s=0pMt-@ETV9$lV_QUi~&?_A#ROst`Xs?eX(QFcx5DQx;NZ%MG8GcUX@@ z=Z+#54xc71b!{||t!kZpgDBa$PnX+`E-WI-?h6^GROz1#AGV(L$-iWLULL>u_-3k4 z_|^H1GUMZ`_R`5M%5vVN_1QpjZ~WN?x*VnL8_s6At^T414&2vqHr3U`&PZE(-qbb4 zX>AB{rdf?^edvt)O$`#nJ0z|FOGmFY7U zdNH(pm_pkp7$(%*#lA*~nF2T?WmfGL1BakY8!AbCfsPKGBKi2=D!5_$hF)DxEQct&#*SgY-Y|qAFjdy?l&bMQ^T|JX_ z*vkcYV6Q!BzLre0ak*#p<7~kiQ!bOt<3hzDs2D}0;wXXAVMte%&J{QooqZ|@XuaiS zj9X5f?b@~I4ZpIMA(2A6J@&1Au)g<4kDY2s14n;*Ety6rsqbq)Onu{3qEy5=x+R%X zcaD>(JNq$EbL8Aub51R+{hgT-3L?XEf825+ow$shjXhHqozAXE{?Ykni|A$dt5B)ccDc?D50a=yS*6cq(@KXihaZ$Npf8JcQE z(Owu}S7|8p`y+{p7tG)<{Rgduzo(ydG;6l4e&c!_=qm)7sKB$`!7#!#sv|`mW3~mq zESoJ;tCuz|U=jQ>`eb^zn~kA$#Z`03TEFz3_?t1zht`}_&AIldHtd27XfvN`B(hTX zZ4OqAa)#CIj^=B2|FXag^rh*-;kdDy-WMh^FS%MD^tF%i%*_4h_rs@ln-r`MDDQjN zO4Zk+{&)PnXE-HP5p(Q3saoHGpYnqlnJf6~@1>PCm2u$8WIBFEs>8@g8r{mc_u|-s zvDOdtoqNB!3cQs^`b?oL8~X{NWm`2+sG3|mGVh8_W_FnK#{87zA;F0GltYOl0C`{{ zz6DYR09^H%ZUSKueXyYtVqbrt7ywl`fS9yAO>i8=T=cD;{%sK_PNT017Ta|-lz@)| zOde7Q7QoVM3$h`qv^i`{0?xakd4QZ~re%&hJ+A5Z!(`Ttg0<26Ye4YlF(>N$-V~>! zeUWPJ1YVH(lU}co4BH7qi7TQ~j=aoBl#%QV#?QZxsNP?ZRh!YqYv%4(odbCH7k3^@~Pii+9}fs13{C?M&x<=}^^hLocA z@z#D|g_3lhUik1i8GKV*(;2x%{*zxVB`levz+AllQh^y8u)5$DDmj7~rJYo|Om5S; zygPb$VZSUhDlO*B?m006YEUa8TyWdiDQscsq0GrUD4(4{ z8}IomqLNL?F9Ij0g{6I5FFO5o1cdpfOz-cKH%&rkHRPdi5Q++bNOwb^Lj|UC!qkOK zxq(-6r}fIHS9IiMJK14$pI>eqM}3my8r|;VdFV+7&xdY0O?89RJixz`iG|UQtk>q02xLQSrjRUl{!E)LC6xQ zy!j(}wg_$As0?KE(0pA}fd-wmT(hWPV}0*_Z>{+)DSJ(MpSSX{VTQ`Sb^OB|vB&d{ZejeBnm>z_HkNoFCp&)nJkL_3Mr z0vxS)ARMp&EY{TTk~D~BFbsK4p!8u1M<%Y{D)!tNd<_pB45_o={cvpch?z%ibq=}R zfifqGM<^5z%4yC=J2xA+*m$^xe;V|pdyj;(yusJ4KHht`jWBgXUKXW`!OLR+ViMgY zr7R~BlJbu+b@Gt85OMhhp+l&?55*|bVr;^-zL-Kn%KhNDY%mfzfiVCaluh(S!u!+H zrQ6+S9lyR-T?pUOaF}pc`dQw;9zbGJaUd9E{fd(NKy9@1NfZv!%v{xI0h-|*zt7TO zeBBQh#AU{$QO3sP`VBl=EA$~eD52Ot$;=P$c45v_MOIHX>oN-bANd9-GmrIoc|ngS z%Rg^R@HUB77F99ArO!^7PrniUY zOSa?5{R$!K7lcHXj5QrvpmGM4)oyy|L%uv!?o(I~=^PVHJvnnhVZ$HX??H*TPw&RW zl8v|zbEaI1JF$?`>iWLnr0Ub+#%%>NEPm#f62&Sm4-=M%(~ZIn0Fy110!Sxy3m;Li z8&%u|{l;hWdluOe9-uBO&4WS)6NGeuKLfj@l|Y`x_lm3{V>h`}PyEY)`M657rf`TJ zh8%tW<(HVBFg5f}A$2aPAROiSAjirqhpyfo6YhdDOWn;3lQDHsZ#(FHZYlKkZ|-(%-t|ffy!`R57||&eXeT-9HYDw=oj0U0pyR9% zFN<}cR~ct#&l2v|1fkben+)B1WM{U>2Wg|kl z%bH1Px9#hj`Nwz_tx1Cf^!v)I0VB{|58lf96!U^7Ee3Kf%T6)-4|XD|7m&rGN{ZCI zI>HF?7Cnz4@^MTP@?KyJvO*V)W=<=@LP3u2J>s{%$p@sZ3UqL98nEilVSMk@fXT^V zUsuy+L_3;*>+Ta;K&U@}tS}5GBg84bB}&~i+`+Wsdjwu*F|P4ydkL&td!I&0rrNs7=k*xEmW7!P<_1@kqW5JnHTuUTo@eJ%xZ>K=@r z(6FulRC5Wi&)`~~b8bvegC}#Y=o%Q|?(1jt2^pdmPJx#wCQUEHUrt6s97o;vyh>FG zoLA}DTi4wT?k@L5$2P{CVNVQJ-?zO02YAw6XPci67QD5SnPz%K4=I~vf?Ev?n<#cY z9GeTw*|$RunO2fJ*74Gv_^qUUIwwxmKa3kR)V}`Q&ZA`6i=d&WG}xI)8aK=Iz9P5I ze43bf;R!|b4~9feAVvfELP;Vc`I3;#)bQZ#W25K$ankO(`szjccC2+@{(?A0$#41I z3V_-1yC8=yQNR!cLq)MNlrX>^>q@wBG#RAW2d-O%;xuFo9(!N3l=11l<4;CP6K}L8 zXG*^oNHnGc@ly0s;`0Qddj&BJSxE0^97$AT)aHxnofh|Ko!ChJR>Q5Es(--PLp*d^ z$xhJQ$RtU!gPZ4ACD77?c!rxt>;MG&;JW9)%s7kjp&x~UK{yd>uc67Kz8abtG}XAd zU#IhOtl|zZ3TjpqCx}Kx*f<}qE7zh4eo-a3@LkgJ(t^Sa@z8dj z9x?oHd&B$VG{z(tOucuk=gv2FY1w~H)79)Mwul}rmB;Ngmz?T2TUQks8K%?@!=-? zU<)|MWj+*>P?$RWC%c8~ltgrFE@`Of507{{K-Sb0DW!U$$r8T&*x5zwk@?w> zp+2o}0i!XX#ECSi; zt$72RaLCqvXi_tOIyztEwH#x>3qp1Dt?*Xtio^nN@9320noMcJe; zPi;WGayy+b)3m=-4l~Hr<`$HOmK+kkM!b0reSO;Yo=#4Xv%tZ7+zYs!->lMCx0ocb(h5e}UoYF&7@L)KrRc>N z(6n$vng|5@NJDT(6;ZpluRJ3$6NT~dN@^nqrA3u?v(1e5&NvB};fn5kw&u@iXfOvF z7yX#SvV$2*qB4M5PO~v)p|P5=1a!Sua12}b%12z3Vca3wBkSO2)U>z|0^)q4^sA*` z$bPeXCJy&sER{C6ibBKkMZOB;KaqLeDTD`*6u#wrZVVsMy4WFcwb5^DoVYZfPi_W9 zyp)Vs#qL@b8gF|)`M3DKZ6I2uMO&o`EZ@#G2;1vcvpQwKBeo=-IQ=ni@|LZjNYM+jm>zA7T30R4WgZ$-M;Ee(##-TZmE z$Q~JX(RRtV7uXq^t0}er`l9ROkvNEVmY$1S=3wjnt5vhn<6IR?Ipye8+OTW2K9UKI zt`XrSRv`Um+(M&bDFI!>*cemwwPd>{7V1r(@|Om@*gVV{WF?7cItF^cJ%aR&JfC=c z>ip#2ep)M0Lb0~rmL5st@MiJriV&jhRjDr};dEEeV;j|(;X zzG=tD;0?THdG{$NEk1W2pa-Ipw}*4HANP1A0%)T<$Ym_$P|cc%$m7Ff8@%)B7@G?- zuRtPtuqYg?o)`?A3sk zv?Ii`lp7mqbEZ^Tenw{grzBKoJlK_XY<@S8w|*uVPAIK-h_k`9S_Y}9WQn5J0Q=gssxi@`+TTKupBbWQ1F5r z7+60E?8(8 za<}*FYnCyIZY4X@Zn{+z^X~i#deqMeUD$MCN}HM&b`JR@#iIC8?8|{^hM7e=0&E9u z_WMJYY6`kP=kLVAET+3pmie59k~y_qAC5%IVn5j`J^5l$nYV)nT->5FgEwgA0rLJx zc~ny(K=J-5U1_wttGhijS46Pfwl|ExkNQ0WmsS8HK1^|Lae*_W$i2{X*wEXu5dVdz zbE;U!S}Q@QX&oV+5VLjfhT>U;$^=`l++_b_^8A&mYEu&B49AZIWJVwAi%R2HONciK zAVh%NKxy1?ozkPIFnCY?*y-dF-_m=&8bISkK140?F9nc|Y)62|!5Y%i%DvbL)_UU) zPE;O`sLaqAvqjnmL!u4b3n#0n=N94@EH*B?HPgm^48k}_9Nk!zb_QzignI(evavL6+Z7@D%l0?HIpk%0JEGxQ+^xK~m#Aa3} z@yCel?dkxou6(M;ipwo~vg~(>uge||EnNKx$a6;GqZt6{?b&k&w`cU#-F3J`Fo1Hy zlnA(L)ZXx(GfQt>{GXP@w_p0EOR@FUv`Ysmz=iDNpAb;D?h<9IOM=$r))vbQQ5bD4 zlIvZwHFk!Y>whCmnF(+%$j|09jG)H+0XfWizRgJaXxek4h)v1QsAF$!TBb(r zF_q@?Qkykmnq#$|=&OV$xakBEMNauI7CR3YQ0kuwFMU#&Ygj)58M7ZN(x)B1aUv?&8qqagY`eZe#trJ$eQ}R7)w!5QC@nF{hIJCMmU(NqD16!&-*EG;b}; zev?o46L>CjB$P7o&@s_D9xU{F+}9}{j9=u4j+mEMOnp$YK<56)?DZ^c<3g!6rp*Qw-XlENDzjEw0^()p#)btGisbxirg?sKX9~$j z5&zxuEV#ZRJJsY1%k~|e*V8N>ZgtvMj(N813x~~CBW6vc0qp2Na(yymjAv~=%?=t< zLxHSPg{jcFLE*9@-X4lNt+KwWmYW0&`4BN=9B-ZY0H#Vg2I1W84 z4z_Gj{@^C#=xlF4Q-!P*&bg$`n67i?+-H*=s~xZy=qMPB3U(#-a(m={kF!C z^-kVkl@bZhy}SsTbLPLFmqz%FUPEn_1TAa(&h@e-H)e_YKqtmrRFsBA@B2Wsy9`O7 zxUca$Prk}8aC4UV!21Mwre-2>(&qV> zfX62!n7T3D(Tk=GqrnhfL1gkYi4iO-@+lrKv4LMwURmn*5~=kfZFkn5V{LV+5W(Xx zepJ{hPa+vVcfh>YK5+B}O`wue$p)c}ODJAzVia%Vu2rRktNu%RWytt%#LNZ-6!f4~ ze#2Dy3$!Kd6Z`^kBI+9s1USh$dS05FJXsx=yVR7loXgDNb((!~5@PFO?6I}wvHP%x z(RmzRXAD@PwwzXcitd^)o)Z?7d-1ofLyYpyAj=e=tL)cgJ&-N$P!TCAsvm70EqMZo z9UGTxsSovEyNrz4M}>`tI|h0w#Miw#e0k?IZ5 z6m;m{>tg_bkiTG0mt76m%GHRIE9CFaWM-G)*)c0NNF}rM2|D1Uq-R?49(e?UO~II$ zhqkQ$6o7eP{*we`O~~szo{Q{~{x00LM25rw&meqS*S#d$oVWlsW@!Rws$BPG-+>C= zuhu|X%p`}DTS1(9u!dn3H?@Z{AskW{NK;Ti>{nJSRBK01nGkg~1bvz3tGr0R?!&1I z<0N5>lCr)TaTm4B)B>I=Lx&0u}hcZz{kNC zCN4%LzMrc@AZRHcjL^wTWuy3$r_*C5w|z#y0>OkQP;5FyVxG%35=mpwxO2cRH&LA- zuS14gL&33V+l+gUwzxJkRfN<@=e8BiA4l}2-3b41xy{8%h2-d-jV99BGkB@AeSSh! z>7D8IAaKP0PV({E={Fs=!omfqcjT+c)LfQ37KGgsEROZmdXvZYOxkDlCmO{C{h`R+ zUXM}lXxt(coYFus(&7XR7KJrMC1+@LmF@PTpuig9kSJxC_xYNeGm5h8Wx+COdnb6m zp%PQVzt=lQ!}d^Y2PbupyPkvh(8E#Nb^Kv>z|k1yvZ&O0akuTf=}tSRJ^~X-Xkgm( zJ?KsL_?9XAixOYKIv57Vp8OlrPIm*h4vs5li@-=oe62T=U@X1UEDEC%dx*`eMn_YX zopFm!oy~d95t==?0>!A8w4B~(KI%8BrWU_*DLsK+9m5~~CM-hsUquE39IvnMf6Vard7>OX z{7n{^WYa_}9{xkAg{fhUiZJaGgTu;dD+3oku{*SF7MO#bx8grClc^W;Rd!MUVbW%t z&v2;tVd_uyssXuvMC(eyih4mquQ&49@0ACQxFMXmr=G%kSU$?b+dorwk{iNO4SzMK z7@EupMMlQ~E;oPV0C7yMx4ukmZsP2&$VJXkj%87IGaX_OGns%eO<^7z3S!$Q}%$R z#UauV_I3eWm*g-l&ar<=O$yF4cZ98UIoh?yp|yT|H@yD6{7rZ;oSaFVD8@VCT?KI!sWbPPv6G17J?hXxpA}KE;+?UT8^(~is?4GNZ4_Rm*JLkp25l-s!hi_$k)A2_ExB&V-tkMMfLWC4!_}& zjkT`+7f`caYj!EY^0{QW*19h3FW;}m6vc@Nbfo2KC+$nvEie`SmRz0SyT6|cQ#X}F ziIJ>FAYNQG(MzXc+3En$F^5{B>Yp3#=XRyx?r%iLKybR3vgMn*<~U_m%MVtq?m zONx#CT%kqe;x{F!9fkv6oDvkj%}cJ?Sk{sKLUD~hjk!OeF0Dyl*EUxDRu>^{o$Z_+ z{c_&^VC=~8O^L0wMT5qr#oD$rPD?#2vwpVDnaA>!08tBcNL!9QheDdWbqK>eWzaUS z<9~OA`j(VhQ#GRxcQus?1(+)p38RKZB3M}}4ito?*)qsOZSo-Td1%m;RQvrLUEqpr zf4+3+Y+x1-rE3H9sDRj0H8lnqWk3(R5%ukveUCld8p`yhekXa9G+`yoynIP~-!Wuu zkN)ZU1ec`tcRKp%Pv14zl^1?(k9FQnH#(?7G}hAKnueVz*TnN0Oulfmp81JXO>#TA zv(HPOGkH0~#KAO}-a2;0i1~s?3Ia!g8SoQEKS^?bya^y;M(Y3q4_6TDNfNB*DcV-m zFw=L`|3YpP%gQVYVOHnY6e|^ncQ+3~(5aVz#$>R`o=c#p&CDO-9syydva#lXx>P_I zZzfo~5$hTNxzltxAm`&JYdh;{+{NeL;#8fQ0t1%x*p@BMzSE0C+95K@qwe<~iEgeE+OncO!tA*L_R;8B8qY=U{w2@x$oT-UqEG;76bg!5})z#W!Q+x#ZTWESpP z$>|iPl?zoXr61xH>**Hn-42V%XYCJ@qp0-Vl+WHNon`7oQN9NfjeEk3>_P808PC|Y zANa4*Ct~+-ugd+}$9IU!qX9I@MC!D4O`sPG3)UOk%D!63;^L02>7@iC*KG~wU6Z2q}&aEn6c7NGl-lFW?BN!2;EeckQ+#Rj2bNu^&VZ(N#x?bYM6?Y~OT}22MvHb-R?E@Vn z#?klf#_>s#Jro5N{b_^!4@G;5f&#_K4)ISVZog$d=hQWi$+5!)o)%A*K6}U!jSYJuDcbdep{`QNFbl%WXQT|a8^~7 znU084qBaGHwAZ)bM@)HoWJw@4c#ksk7s3ZlCdD}Z(fnEM)t-H}Q7GFx=IQOZLSq|m zcc}x(mz?(XuL<(adGmhET;t`mJ-P7N$Y4iPmQM_JPjMN)suWX8b8Hu@)uN%|Z>PY+ z0I(9n)R0y_XA4A`#$0dKn++w$;r&FT&zl>T-tRxZ){qo*M5hLL!i#}XVJWImqugsn zNe(JyWk66J{qz-+Vp&)W7c~jb62;-$-xbr1l3?}Ik@LbuU?vRUxV2~Sf8BWa4f`CB z%_i^!n<)@;90bqX(OiorH-?!yNuM1p?@=cyj~=7!qHv_zFVWZ!=Gb^8VXK0OR`WurB-b6S2Y&Ctv zBy%{$YxDMZRp_(j1YJTBY`&UQ3lIZVkcHE%X8hb$gNC*o<~Ru-!26VR!Rci-^SBl% zH&y`JrNN6aDNB!X4!F{A27R_`Ragw88U1FFeNJ&)j4p+O99@$*U{ySh|068)<&@I& zUc7m1hxhX4>A|Tvz?5mn`j{xu5fn${o##b1TQik{fl8?~=A|SkB0RD{aYyWNgeK~H zO>Pj<_#F++`?M#!Gd=>|K;wb8B;Xjf0tH3wBi7~}%gTFF?3j)Z# zN5vt(MB+A(weD_+&uq}5nUKf{MficDDyoviVS>nzU@=I1k&xxseGZ1t&H_V7>{0zW zJrpLKmGtG&20R$A4PPGtvQ+B0>AYvcxNLq(#_Q`Tcj{J^Mz!kc6cy3GF4R^Ir@^t&l!0p95n%9TO`yN(`e+n%&C$Q&;AR~5o zPd+$nUwf=8Yv~99cU)94GYQICZ->c;GCySgHBu=PwR?xOA*t6P7+~bk78bONYc5}n zy(|=xhPzc9qgcy9ha9!BVA7EDz%Q}Rp<``WrBhu)Kabu+8(=HSEWtP^iMXt6Y06^E zKX}eD&s)Bl%T@y_)NZ``k~BwzHF^!lHDc zq=lvZaawQ(JGdct5GQWXex2VuZly?632gR_Pqf# zEU^fa6C5ZxpVWeR!6FkzIk88`o(z&(UUIRh>u}CKZ}*spaMM%&d9R|OQ4B*u_jRTR z=-euIeTNijdu0B5wp=b^3}uD_@z+iuhQcw-T^9k$v*2+PUZw4~23J90N~m;Q_8+w0&CTo%qwR(g=)XrVs;PZ z>!X97Ny=yY?+~_aF(w8K-g=emY8*2L2A2p8j2%z2sVS1SN{JYti$8Fk2R490Xq1I> zrzoePL}c?Rel4g%g8`NSH$WtRMiGxD!tNKhkG%DU%o}Z#w=io>B@o4#@CMTV@7*`g zo7g@~MgKQU!*A4%IF9T^_$Hf;(X!GQ#zgtD^=a5PGH1#RN>C$1d@^_seFb@q<_|_hTj-DYEh3O)6OpzcXjW{H;LX z`@_m*((_A$5%6__?<1W^FI72ua6=$uLp)A>xfolNJb*NOCVgtfj7_W06EQ-G!F!ph zbzf6fE+=F97+M|!jzG$=OH*kDU!hzoTsaUlS_(!0!#RgXsIqPrIO{QMsi?1cjQj%? z-(11*g(Jww6PO)s`MzajdE@iiX2B^t^KL95US4EGO{zhqc-oR1!p(KEt1>BaM zj0-zIrQJP_n~q6{+{~?+Tq=3ivX`SgCeF&~0c?wKnw|J;O^xctnHo;`(*9u|F}riu z)TFcVKLAZYvcE2fy`|FxHN>8}WY{BkIcOgRe8VZ@Be(ra235a(F6?Lw-?XsPV|^N_ zl8AybA)*090tL~uhheKtIY5~za-&CCHEYTjx9g|vdYDvL<<>>+*93M<6RS3;T8{;p z)z%M<87&qt&aldGnnN{D<-}lz#2)Z4C|6B})hXdphG105NtTm^Ki{$1N8VeYZ0=``7V5Gdj_x}W^ImWGNuG~m;X=2?e zlfGEOs=@6In@qp^BpU&nuBmSUt(~2M71_K-lY@6ODsVEz`{!_TrR!_1HxPvrr8xC-BS11$~}3LmbzotV1bwMCzj!DHIW*ijoc%D^f=E>0&|C@>SVfe_1H2;F2A+yFhHUOe zbpBpVL$_`;%Kn;17izMRo!!IA2w#V=6^V`qcJ!-NrY*zAihLutp?ff zXp;dB$*fi|U!WD^RHJ|)G(g;oNj9bF?uGD0gXb>vqhS*$eB$1zhVse2?jzs$&}h04 zR~i#Eo;P)FN6EgK^Lk`-!5bo(A^_0mjqC7l&Q*L#6ZUqF?TC2`0walns;Gzp3TqNb zUR(kBRZ5m}Ql}uALm6j}IXn$R({2IHS$=xz^Bkc{vI)|LeUD2u#((o4L8Z!jMgX?Z z?V*o6owQ6$8dK09I*6u(V39I|YJhEwMjSZVQ>aUJ)=A7XFE9=&s4B*&A<>Wsyr)d} zJ>5Q~dLuE(wuRD|xy4E=45h&)FFQFmqbX=Kv%T3aUE8DaoQ=UzYOaSDzYunK|JyJg zY1+$X1H}v`_s}uoK(U6t(fySfHm0ytR2m0Jp!po*9$&qTCZqF5%K1Jf@!82}d}>X! zqqW_TPm<-zD6AoOB5J$Z8?=_GX>k)%8-n3P*jcAtj17?5Qqxv+$7 zt&4`O57VhYkP!MC%|^~xOQe8=awOUx_w-N%eQ<}4$@9NC5c{p7u;YmiJ)=PBNC{E^ zKr*19!k~v~Ma&YJq7swBNwgy-Dy%n_6wII;v$2j!C(YCs`SdYWQR7ykjmU{0?q&Cq zvJvLzhA*}6WQef8fygqS8hf7^+kSv%%Z&&-H5NiE^(so-6&X$4$!r=dyygUzh((PB zjB==3xV?m=fJWP(faup0SGrv4AQAy&z$&NlI7(Lb`>d}AENYueeu1QpUz>g>ax&yf zrJ9A=bCCY7N_?qE67Ge0wR3#8NPgpeNUBl)kp{7egLkq-Rjj= zO>raxi!`Oi|KK;u{^Zj`H?NkkDGQ#-zKqx$pZb8z! zygb}FM1KRltR^BvB({F+ zMuy9JbB)8^gP>jSv5$KrD}=;Z$(m^2zz|iUG%b)TM`u+&9*Ej@jn^+FdeDydm&}O;UCz#j zp}pSo0Mid9X3QLLbxYT;+(5zFU@{L8yA3DgQTz=45QA?8WM;*astyzw)^<}iYFt=#$2p7I;#@+ywv2O+mIzXS)}!IT{SWq`FRB? zMjEf? zC2j|4JI!*MPl$zIUE+Sv1)zx6nNmlt7G-BL|?+p21$ z3vnVY?#*M2*-0N4>WuS_>>`%c;FAh!R8Txjupg`xs1X)rb!HCBqO z@T0LQ#Bsd-3|?O&^nRS#!s&X?!K*Ei2j!Hwm$XG1!T8%aM%us9%dNCA&(8`!r)EdZ zE6FjI85VQz$E2*>0w)x}i&OgM2RJI=)ywp=pUZxWj?i0HO<+_BZdb@G#%dB(Fq!(? zj!$M)wXguGYay{XR8SoHN{X>@wp5?1%WYPcH1gW*biLQUM*)XnZkHL}8l@9AZQY|~ zINPM>0DnP4mx49q?!*2ptO&bkD+_wowqqU=VS%}qq6l6=<$DmRe@-cJ2M(l zeh;E&aGYgmZIz7g>rJ=S(z?v>5Ylc9QmV@#X1v`F5|j!tK)O-;0f!TN`4Lh}qq1lb zn(e+^n)a0rH{3P616M^bDC?CB9p=uCr(`%SuaGhvPxU(&I-Q`@7`B=%$asv&Bc}6* zJU!Lj(r#apu&I1$d=VJQBBDw(peAvwZ(j~SzSo~+dQOY!7NKjlkdL!(ewf^|wA(kG zrVvNN&P^bdOCx*m^;oXw`Ia(zba>b&hMQhZ?>UGH1s` zl7s;gKvYCgZAFya7 zB2p6J9)lWjOcpSJ3E<|N*kdOWcfH8`LMs!8S}jM9Y8;@Vh@Dh)z0!K+PVW2BLf5ZN zeT%~mjJoVZVIJ2?1dwF{*6bV1EKMh}2T4{;A!y^!#r;*^Zn7-17gc(yX*VdLW)pNJ zGNXVpqavW?u;=FAlK#>?c|!M|@XdA11Ivx>e@g2c8KMdy?13Y9JDgOunkuneUc>EP z&nD*E|HMD|6Ed1U``1#h!8u`|VHnNldj4orO;a`3u+y;S1PWqxFexTOjFyb0qDoZM z5??fzlWUY5_w6p;-sogB8lPoPsZQ5aueJ*%Gxj@3ef@mA`Sd|^DR$DC?g3wI z?Y4jcf|oWZrlo7-u-LC<(=2J|Z)M#8M*(p?B)lr8ViEgfc1ws@-@hE+?#Q?Ahk& z^gW)R$koSYxrCDkZZdYM3Cp#%5hfLuRa!pf%Vh=%vZdJw65=Vg6;wn9wJ7G8uzyo9_SXv#el8uq`QT1|5a=#`hXX6XSacrLK>|<*XbBDjJ}j^b zF@ky=flA_}!f2EbO6yMJc$RvLDYd(l*k&b4Z#XxW)OljWE=ZGjdM;dw(TZ%L6k$k8c5~hp?&zitqPMaG3?Yk;3y$LKhSid^LHql zqekvl?RICh_Z&^~2&kDIvOK!!)E6eE>*_4jx7rPxn|*Yts*2oA2FA$BHM5tC}S z;(DVthwKCOxwLK4Tqf@#j3K=QAF((gs&Mu!UUki@>*B$;d@)LqWz95nQV+aufvk;6 zt|VmGv+kF6Y!pYT8CC|8N2~xHr$OolhE5AdsGz}lPuT>FreT2Xsw&^dLEC1PNToC; z?(C~;*scY^kRlH$1ub&QGbOLt!dm0}XSsx}aMD6*ijOHo^h(G(LDpPDx71~65e7R%d^(%`iklo6TGpdpaNF%SWf zJ@orN(#`OYrGL{C{5PnfuQn?~Q33FX{vc)s3ndkas15*$2-V=Bb`_H-h?23Eh*33) z;=sn@g&of}%WDdP4nl}QQ(&D>$tqgXu0}I5l}A90O)N?QWJ9``S#nL+%BxQtCb+$k z>(@tvz3t%HppO^XADwBVk+KwC_g5RJvWNyE%g}&hayf-o`v!zb0D;IFJI=`G+QtN& zI5hQ@#BHcwa|+T7U|*Tt4!TAwZy(*mm|$nXj$+^GW)1$HxDu+dAJ1Vjf}2m$5CBxH z1E%CaaK(DuPO(MM;lm}0l@5`|6ewo9Ak5VtV{5YJ```MFPh zPPgXVg?g)>{WK4&iGgi~uSpl=9z>eg$cYA*0+BSy3_DYJ+|?P2RW^BnS&@x`sSy+j z>|qS4Art`72*)8OhSbnoLUCk%d|vSUMFIK>@^eJF5A9}%$Xb9xG#T~4f{^IYDntQM zR8b)z9mMiXVL zX#K?#JKDr;6Mp_9Gxmj{s3__b(IU{Gap*cD4=}^i$4mZx`>+46wrq8AUzu=-n1q}m z>!>J!0~#eov=-+NBrl}-%=ilPS-5#Bw^!J{1^_Ud;9>$f25wu-D6bqXAiG8)XqdaT_|r6+Vy=#Zh5@45 zVNgyPfls|GU-lwt@hwwaAeCeRV1~<2ZFh;X2cedron|nahlXj{x|9!vPsI>JuU(JI zRApu17K6YLx_(C-9_ggC+2QUNA!R@#M9h-pa2Kk9WE24m9CG8w3XV7a41U42`Dz1G z@0y|=$5$D&o?J#QGd4FSCn^zhKnGwz4IbtkD5xllsIUMFFk5+2OwViveXlWqQR6fV zy?gN#|MD+%U+aSl_FmSn0VDYwx&U3W<=CH}y0N3(p6g&2Q~&4`oY!8BqB*tDT@P2E znlwx>dgJ46o35_4>3}TS+^EGipb*&teFoO3h_Y~A#cY~btRH8Sd!{IXg<^CXEk{&_ zvM^O592scRvt;Tf!37w2+oMAZvFhlG&%mLLBf%eRh z_B>p^ZcNq9|I}3P_$)IfnxQY^FvoZ@wu_O?38WE$()iM=WzD({(u-%X-ibX=**svy zwlL)w3LAl}@g^$?yzK)>)al61&!%Njc^Zq(hj`v}lL$a)j9LT~RS^LOlh8!Oq#9Ye zBn@*55>?ZiDLMd$?DZF!VZQ?-@!)$O3)BD!Oo=ujFbaYky7LVHd>k69Z@Lo$8X`0T zDY2084`}>?1|g%%wOrNg@c(RaRYAH6Gm!=cgHlpJxrho;lY;(Tn+@5Nm|bb~>( zPwvaE$F*uOVH#n*EnjW=cWg+Lc=Zgc3-wls04!AnM%HevT~a{BK_wt10|{RIrRHNu zgqm3pGhM{u1*Dd;oC9l$Q!pe+ixc#yh{65x35WKYAZ{q8w#yL9s!zxl`L2v@h*4mirS z$e_zqg)wR0!LT7_@oej@@@FDG+z0f|)V)Q|)fh+CwKeW)YSv1*m<$XV^r3FUb_tpc zT1J4>6FHMj*kr5%iA9V;Nhw1v#8HG~1f7||$wL5;7~`(t^)~w34ev)oOA)jz2oar) zp7udwQPKSVslf@zYhzOP+VwB}gA383Lj^4j8=2%^xeHLBBF1 z@fgY5}%s5{E`VIGSvz&{G>mL!W3$8V?osMb0abs7t2!!t1Q-jE!!at z-kyRlX(ZNkl6dG1`_TYJ)YtQ~R|cql_HFJ#iwHu177kOQ;L`VMtl902Y!BV^v{nOxFgFSEdqfa5_L&6sxqM*dMN@b zpt7^;t9T7O35uBcy>ano} z5UO*S&mHBY35x=&g3#-rgk3(0#up-mu!XAdi?Q(#cWXPI<|k)-^@6vzcy^&x37T|h zb-N+TU2%@N10^1eAwp_0TxD3K2*Z8_-40bTHF&d4uUDz*5E)|(T?oYl#t*2RFoiw1 zS~VZKs3E9OvvKW9Pb)$)No?4_c3rp9SdYe^gulb~Ww<{U{%w z*EMbXPlMZu>W}}b8DHS&l=ipcN1EpVPBgI1&|avqEWM^c%?)iXyZ*-Bo7#TO*EcvB z8R_)JE1k~d{<}sj+}=W1tEe(58pe{cvB3iSrE*dN1_qO(CB+VmpdU+jFQhK-uEt=6 zTstoCbb@(i>+M(pk<@uRzn?z-Mf%0Rk=&ZHq@hik3}i$W$Rq_p^&IQ-iPpYm+d zRVO@N;}EG8VK7w*nuf?i2(yXKPhoT-Hj@~Ww83T_sw=Vq^X@WaDP+cS6o|Dhm-QZc z^EflAV9 zdl4&y)+i7u0Lq~T`3*r)kDE@vTWRxK&eWl286gQMq5ve(AP|8Lx<^Gpi2?cOHGx3^ zWmHh4G=q@|?04JTWXZW~nvH8{UDkos+hzN&{x9*#`&3P7egahm0W`-$Q+yaYg$|p< zaUWJ|UJm$tjp=o_9{e`CX+i>;PVM9bpwQJT?RJv3ks9$6+!{B4^gV8FkXoQ2$$+Kt zm}|SmuoQa|%sUbmv-YntRWrM%?|;krf|`|0%Y1s$7F7!gAKs_sT3=u3=?l0x!66D8 z5>ydQl9DR-Vz=q0Z+=RWrTb52+3dsJ(8lGB1;xeKW*NmncDFINaCR=^Iao>kUK=fJ zvlxwSW&*iEAgK)uCPHAVs}(Od!^!_BjlVDZpWf_#=|WJy1}redRy89Ffv$G<>11@q0u1l@qInkx2X`Qu^JW6jRu?j;6BGRB-4fKq77pWUpl zhmZ6B=|8ihkx{S~f$|V~>6)}!Q>=Y#!`TenhqGt@G~WKp27an$uFkaq8yJQf7(L79T~PFyc;ND;{5+Cv$YAQ%7&BFOf8ah69@;3Sea zdPk6k1KZ+FIDPbC6!fdKcllKrIu7{;KpBnv{y1ZWWD*t!VF7*J4FgNk0D zcIM}K)#Y3xo5}!kHu7KR{8H09P z2m>2uXOev{h|^Zu!k!hQ_nnkRIX9ZHVVk+^0oal8qdefSrvcuPdt<@wbzH^K;{i!H zAW6(}DMqP0!)$K5j`y!EMJ%|VOx^rpadMv4Kir*mm@WGu(LVSM$eZGL90y&#$x-CplD%>B?W z(NJMcIZ09i5Rqr_Y5!X5r5GY_&}7IK=OcSIP8|%w#-?dC&+QyE?BnGC;Bi7UaoNQJ zXg_MB&;8h!<4KmC z??-=9&q?x1_8XN@6#m}Oen&?c%v%XWXc2@ISwL993LuI>MuQ$*sm380g9OJZ;S9&N z;Kz+VNDu&^;_o^yOyP5+@(3`gA}JkaF(4?3vH%I7f@)GlRfj~xVmTNoRsKmI2kc&t z(~l?S-JN+%uF3fY?l#_|FLWf^fd$E)mvY<1pI^uNhxB38(G19%#eFlKt4B?}iJ@@N z38JXXN(e(})B`!^yqh3W+Pq3Y`rdo)TMsGwfz&s!Unx15C~B`UvCH|L?@{K>?MHwO z`4^AIngjN~973}`jq)Awvru^Nki>CkS)QvCW^D#B9giNF{K8P=<;Q$;C0z&esXafj zlPRlHA;hsQKoC2rm3-+Cg4P!D{A^~%2pJn+fEno-Hd_pz_+EV2#kNb$O09u>LX*c? zUU>|lZEUZleNGS|q`(7{>En7W^Kkz(*+F-!)a-?lO1<^|^~9aDIv&c5Giy8`iUJ+z ztN^NnYOO1b%@K}$$B)4CG0eI{U+zM%!%M%@yfAnJ1s#kf9u7p61z9Me1xmyMs(R=E zlR)4gwuo%CQOQLfi>xzRR(T*UTCu3cSz^qZrf=#SZ|lXVH;X{Iz$Fc9Sze2Xe)z}c zn}0SR&#cCEys5XZX{folz@nBAF(x{{@LF0gKA$)@kFTDltCceIS%>d_+k?<&KbE2f z?+u)q$e|2rHo|ZHX;GXN&rW#%myvhfDok$@8*N7KOHpP0x(uBPNu(U|8Tp;lEf2jk z(Dh&%PB)lpYPJMQ)0}d#+DNZTJ!lQx6!HZ)h}1{rxZ9bb(JYaFx3@kLBen$g#*)}F z+kOhWYw25XR-_fpK)`4hA%)b2ZjG@nXQ!Dv51u-TGVD{EfLQWe!vLwXl&D`ry~LCm z28(R)|KHx5HCvKh=V9Ns*4~+U<~vp0s_Lrh>JbA00;EVOL@{iIt+4!LKRCjA^xt!Y z?Fhg6#R^-L6(U8EfJiogMmM^;y5>8cIWzZO%MY37*6jh!2GAfS5bNPa-gE9fCx^B7 zn!fd|QmF!kfGRKn1PCexr4Stm%f4;B&&{x7r0UyB>95GA2snRL6UN<$)XtYOH{@hF zrJOTOC?X*%-OXW8Gq=_dyK#nsWCl7!Ol3cX$`FFLmSH|fp;<0ZHk-@oB)@*__rGa! zAfq3L%@2Li5rKDQca@7Rk2JbUhG6ZVhG*&WsiL~iHJ$wy3W z0PxXY=e$lqV;t)Ji4Sj8@9&|s`e4bCi)U`Ojcv?5pZfe~?H$5;gRHk7ySFa9eBnGbfs6)W6hdhf&-J>UZ_*;M-ayO_Zl#;=ST(@Kllttj zB2R7{rCcsX4bX%#w8cnL#V{=6UR|HH29_lUiYD1|uKBDUv8^}uVu}5O>gF5My|5Zr zTQQtI@yBO5iETEl=bE-fbS&nwSX5zez(H_pRpnd*1aC!}8iM%=nS4OmCe0g6OVo?FkIK{K}oD1m_^nS-pAvGtox6W|mz zr`Pp`$m7v)Q3hdb=1aEQgZsy6Qnjm>{Mkp&AgAZ}cmL=4yWcI|yjK?Pqy2giIlRFs zv0C`$xi41EWXqFg^Fl5z@#3twdn-zlo<6Dn<3kh`Zrs%UV}^|VbsaV?Ygt$6NAI66 zUuykqu)ZwTnFkYw!D|@W=Df+cZ90^ZYs%7oJj{zhyWh6AH>u8k5rZ7=X%MunYlVVf zleSH}vb1S!QFGJ6Qf@T2Ln}sM`>aYEPDTdi%TMI|Bj1Wuqvqg7SkxJ9_E|&FaA8AU53}cDX+iT zt`@egG7tRx0zdpWZS#8d`aKp5o<`c6qYc8_RYs^CzKhhQ(_f%{)CT zVhqEG=`;)~eLDAY+fIgUrp@QLypZ*ZsU3hr31M>2@7;S?j>7r&os;vJOp1^-X3rPy zmwCEcO&Uw>=xo2ZxZ`+Sxf~w3h30Z4X<%-za5w`8SfzCGkiL!gZ-lqs z-7GKh@B_|QXw@>X_ep;Jbzun?sfMm%iD+70o^k#{%Mzlpb>=lLQ$BmP&P$vpd-9l% zK9Zu4tg(oQr2$Oq!ooqEO;a4@FqNv}po1h!5M(+?(W~SjVPM{|a=h|$30%#G!;b%@ zbA^5(n%__9(3KMPBr^akxwU{hvY{0*c$>X-GO#2hAvIb%b8a1(gesND;+ZO$p(Fet zSi_sV1x#XP8icCrP4nJg6c4r$cPE&C{pNrYZD(kXhQMh_g|306jqST=ST? z)n;vDaZ>Pin?AzMSWmpCr#31L`fc$`GS64m2;> zT%ss*o6t7VnsU2MFF($!eLs82=g$;gj!T_QtOz+l+Er}pp_MZ!2kXlbqzZeA2c>i;nd~ca?7-Cy&_F-GWpTE?f zypK2U;@f{bSk-p^llJsUo`Tac^#p)Z$HC}uW)@gur$i=;t zhxO$X+5Fpsa9EbH96TTIjo0%V^Rt1Y@ulVM8N*8(nAL}7qs3~wK3k#5n>AiM(e+YR zmz8BXxZP^e&Y#QtgqC$X53$B4KjX!Da7#+hqSd~PW+`MDl^jl(T6_64Hp>v;Z4z(c zS;}0t457gOUNX^jlKLF8X*#|c_eL3Q^K5JFH+(9&{7>#Db1yH%CQP>tF-Mqqf@CFP z!BLC@QXxTENhnCM>&14r9uL%oJR%)~hr7wHdG%MQgrsJI|_RuiWrZ@oylusZv;r7#=wI%$$Pj&|eFj_+f2=^sAB zp5oqveBgNY%PTokc6zAc-D{Pg2GU2ebe2a}_37URl_MxU&0B`%{$*uN|H zHqH9s=CADHV{axG)1P@h8*CQumZRBlG<3O{k6*TYHfWZkIQ89HXqD z#+1f{z}KPOT0P3yLX4Le!}ANM3=^C3=CjFn>F2|jhJjhY{N)sxu!S$jNEi zoXr_Uz{^K0hqk}x2Y}Y0u3{0rZm_zv6pHE~=0MeSFwM^DN&2zb$I302b#r-MUw&xg^5$^*&frbP zP`6&@yd79)6cra{hh z|EH@-Tz>G{VqQ59tI@!UXO=#0+HG2NlPHc7E)X6MhE!t3SA>vd}Wtv`~u|J3$py!nl|4txn|s!){H zC|y*AP-PSufZE$7UZtC_Q@(UaZ|TR4btxNpwSWAw#nh_?=U3D+=nR+3`!14*_zK& z-ik8%%g5f`4 zD_hqKm(5^08I_a6i|v7jQCSA67(({rXFn~PkM4?%s=Zs`@F3f%ucf|tTwBqUWfhxp zvDsX-+a@Jx>#Z$T-kQ!H}3V`<_wIt^rp==lb}y>~lv( zb)^WuDpS4SieR`;L5YZ)IE2=vGBtRlwEt4;D|E%lGvPd*6i^=o&1v)0vV8RYh$yknz-O{}C0EMV3o z6SV(0e|#anh54v2hMVq}ld3>)}eU5*?db4=yjh1I= za7WxyqRvCg(PyT0-nwriBD**T?4RdVp@QtDQC`7FLEzI-*RKfYxW<`?9cg37g)Xi@ zHx)+3Gd(-WAmUITP_o638|Hm^Fi+EzHZvy4Cu#A6D*HR%FJ6BjPadV^!pGCegEz+G z@uqDz%Z+VppT+&6kYe%v<-^l@1Bupny10a-Jf5sZZ*WlP#e2<*_i?%id!raUj3rdX zV7-sjw2O7MeOwn>he7$|WxMCNIjSbdM6p>vE}lPm;HAV{o=OpDIex-o9r6R%i+cTM zi~Eb=?XvvqxAOey^8Ca0^usCEuf6G8VOz-FpshB|yxl)v55rBB!c*P0DNDIWAB!w8 zzHF>*p8ZU>CpjKu{PFPMXmn5`5ez!AfXxtjP!v9{5{mY0lusrsNHAB?iuYMt^oxR$b^$3PfF;o)yfR zpBLM+(hj!iaBW${=^l~=FOBecDT7tD9d8$iY|PeXG6eEzddzgWw9&A*^IEYtq!c+j z!Y~AiRcB3E*=Q1rgk^Jk57UR%USLzV64yG{JQGee&a9pLO2TNQwE}HB$bLDuvqx=c z2g7lcQ8O&tp=;R6e7=6#)=&7ID&Cvi5Gt6xm`>vGUETgnw~yRjPvfIzwP-#b4b+SF zQMrCtgw1G*i(Jmn+Tx&{9pn7jy>p#%<~kM_;90fsSW!>VK}8)57O>_O^1=K02%0 zVH{M+vy%7vbvXwXNow()`MB4qhd-ouE*i?x1@nkddBi^QiJN`)iQeX<`;o7e0U;C4I6Q z%<22Xi?wm>6}f-AT`nI#Z2e4L|4z7fN26YB7uwWTThnf(88nw_XLHx=11k|?I1GCs zz4)PTHrdy0dR*hu#lm!Ij+}DZ(h@eSrB(A3m)I^+v)#`dl>YSaz)Hnpv3#h z`tI>th0I(Ms=!bQ>|I;0r8(EhH+A+;!_)on;+7m)l+AdUOYyqliW$1zh@OahYus zZcayT&rmR53Nmz=?TQXQMJ)d11F4OG&gLWHoyLsHK&Vt^UjC^qS z=E{fPY~q7)g&-28&N%|flBpIN1C;KD1PF!w{1Xzkqni2xYQ)dJ6s}pdFCka>%)zV9 z#8)nKw*k30G)U1hCf_QHZ?(gF>ouiJ(iKwg1i^>S*ucC;z5CJ(qS6SRkNoS~9DDPOUmB{KjoL-)t|F*O1bYYFyf&**l)$TjiL=l+aj|AyibJ&X--n_9me0Kb7KW+SJ23{Lf#N^_oEuJkN-1^C|@@>9580>|EZP-lGTw9kOb>h zY3+k}_|EXI8}Dd!cXZecrfs_pAuB70xVNxGPwt6|TGD|`zi*?9wB(itVQ&@>3!PQ4 zS~8iF#3STCmK;j|8?*P$>>GJ-kF#5}$}j%>`1~xtS1g`Q(x}+_W^=iI_Osh6->wwV zpR{55Lf)DrVcydXT37sQl((JgieQ9v-AHl2jKMks_j` zxViVMJVA0sQ(5(HbrfA)*@h%gA_NGUZt%_iyYM(a$zp-`ef4_hNrqY8-6_Z;Z$HyjkXYV_QWW zYN#kgUZc6Nr6su$4ywS+)}iz+)8p3>f?q{`DExX z6_O;tEx5QKyKdpp^PRRVB?Jiw;+*|{u14unxVRlhLri4YniOX?dxSj4X^xqb65b^AYm^yIeNCHKUA#`yi|tx+Bgx#tXJ z8C@W`rK(6}5Q>q22|y1HOM)Cw2#3^Ql%zQlDK8#3r>A)pqukenX*hsOqGxbC9RJ>M znBB6|M5xmTdHO~^Na5&{>g05|nkjwJu2v#8(x#jSAI}0|w99{94UX2f_vA7a$Qrxg z3Rx=WTeUVRt@2i+$jpkI2r`O-(AS_l;_O`K4iTi3Kn-wZ4|szpY2qH7 z*-4s;_f%CBBUxCba0Z%qP7-AJdseA{kQN#h0xwYy(LQY2b6=tv+{&YM_8YKSYX5Iv z**fW3T5w)X5UVg4R&iEvcsf{s6Uo{xR%xByh}GSCaQSreIHpTRjl+HF6oY-AxkU!0 zxH$@jdl=r_+WE^xl~7lfhjz0bHmX_E%6-p^Qm4Y`5RgRZdi0=?PKZg*A!&3+4j>Vj zX-tG6FhqovuK&ZZen0xCz4)VM`;X#88>Tk35JjR$aO7_O z!DrmwzeRz5HT}8riTd5oK~N}>8j-Z$8=YC1qrzaxk-=_KuzREt;t(*9nSf~5t;k?1 z)C7lHG6+2CX5Ulk_@SY8l-XKGA%ml^my3<&jc;OGB}|T)Z%f{AV|B>w_(9AA))$-e z^RW)TIhZnx!+Lp{n@@_Yg})^+__*R&LqVsh1Bf}?Mkpw&)uyPQT^7va;kpP}^{>aH zu-Lr2NaI+D#0=0ysFVQg2G~k~cc>XRw=O`=N()&D<`kd>3qoF$Hs34jwt0Wujs_=1 zU4=Q0LRFb02k0t7XCrW-IUkPwC&R&7tAY5PxQX%N2f&4dKdh^&CK00!;IS#xxCx#D z6`~Y+7b2$sY81~zkz;lW3PQkFGu?Z@JnXBeQ21qnu+JWJ!=<`JxC_Nag#{(jYJmWO zbVG75_hDKH6wldV-giWIgpb*>cQ_#k0FCZ-ZU_+-VQeX4;rFH7sQj5&u>5Y2h81O$ z+4|6Y?KyUA{lMIV@+VIfY_)8`Z~YQ`F@sOhsbQQmJM@ z@EjpqUuUn0k(S@j`m9bTgM2>p%VPA?+32X{_g9Umhy-^-H^tVCqTOohJE>qU1{fT0 ziJ9g-aw-#zLbDv6)u%7&V(+loAO1~ox!L1nI{EKjWNj^JaKf`2A?`vcrMR#A|BvLl z9M(s}EkjDJ#%;T3j-S|f8^VLTnr{bgg@jCLkR7H`L&u_P?y%?_n5YS;f!;M=T;&e0 zm=nGzSo*921YD6(ef1#h^9Q@8=^o!fsz%o;dy{ekf?Li&cF(RVDxxA?-;Z0@f=DcImyfMvxB2e5q|$PeQPTP zbrmfp5i6N%F{dy~YXpcMe`rLAg-1Okhjk3==%bBB2_|q$ z4$pK+>1|hTR-5M8^5sb=_y3z#{($3)pqWw#ON+G^sUt%XDwHN_9qFJ1DT-F>lut&s zpBWl=N$$yAL3C6=eVfE*AMF>*uj)i!7w;!GcK{(!0;Qmo!Ih#=CPkE@u!8O|xC{LM6C{Tp05H z!JxGS*GA}YDy?4i2Hn@2tiu89t`jzH*6TRs4fDB`zocAfB~)n6vCuP z)l7>FC5w^8e{t`RA5RW1S53^fzFWNYItCvvE^qGNU5&l2AH8$*);}4)(Goc$$VdP} zgep=ZsM0#>B9Jg%c=}IW~DpO<=<|xB?JSaT?J9>Jb(0k_ygr_B|Q5 zmRkuKCKBKoo?&XDfY4N2A)aA$CA`u02ZP~%Y~^yX_`{cVRVC2@n8-{R;n$t${<#8I zi0D_tc&{taFOW0(at-QHYCVmV2;Chlgft0~0}&$(ux=`Y!vjHyq~x3_fH=^D>O0Ds z2%($7$RLC}BxI<$JG7EKRm%n|tHJjMN59*oX1hs#zi?e6m$TycD*b-;O;znhs_LTM z3}aP@HYpiYLn#tLP?Giia>(cu*j&u$;-SjoAz0yJPz3cL$<1h{gosBn5(*Jg*@MCR zgl=D7_Ks`9+^oM@PJ=;A+{MM=t+i(LQszJvtZ4G4NIXJW2Z%L|85mT%O^%t&?i-|1 z0yK(cLPco~&snG%R4sVUP8cB~m4wFXpOXK6eCx4M&OREQZ{vO|W7{=jBsT$qPEJONfWmY8XJ@l zprhur?(7Mt)0tqc(?#L*j@HkRw=R-J4GK%1jbT=mH?!xqnaf_5oGb|$G?Y=cxhNSS zDx_I9qf6JULQ!)CT>7R=L)#Ja2~+@=Y;>brfCoXKt5Hl4MWk~e=(LUrse=#uZdX!w zafo|Yf3h4J=Hx8_rqI5K=TGe7PTrfiWFo;~G#5alMW=!V7^y)i1k~y7jxN}Dhj)wD z395)Q8C6t7GFh6F@p%!?+M-%Md%&~XRWy4YG2i{>S7W|Dt1Z83 zW8oL+5CHaYS_nm*3?k;CdzSzeHzXPW84w5|N|%f1F(;kH?LSA*-yMK3ck3n;p$C9d z=+eiY0w9S?bO30~pfV{exwkoI&x@R%8*UXbQj_htOAN3s1K|*ebBE?e7gRY2^Gt|~ z93-4QcLqBTXIhQCo~WZS%?r z6KR9Bo(l^@FMt@W00+v76i_JM-zAcC&+ZO^)9a-zp7>Uv_fd|(b4ky|N2tEHRWv76 zUVLMAd=$naYP+HrrOVDGqVwDY9mb<4QMjf&pWcJM)+lVJLc1+|_qzxj0_{)0U4WTR z37VV1wSNa4Wr**3&WH{o=YYdIqAIbTe29Q_2CoahiR5O03)ONqGYcYAaf=QWZ!Lek zU4GK|+s8%gB25Mv#JYrRayK{ROc%Jql`4$vQdl{;2?U|HSwccZ0z|s$v`Xz*k#=6q zbqHUl{awb(*_Fzyur_UFy9%3>Q_gmbqQIb$X6tLuUPu*H8*i6hXEc=z2&Z+9BcV~) zjV0*W1OYRcz~E_No0pa*j6;MX;}Png>iYX>{JpxkEns!CkWpg*jqK^Q@rr!afY@8B zE9)fJLi$hdIA5~~yY@Bwl*aP0fk8H z{N=6(k0M3y>WGP>JELnC>mYhqsJJ^kdq;arsH-8p26YM_l`DPAj8`^jkqP1$S+(zZ2Y8MrBLQ-N>tg9LD5K2 zc<#oZz~Jog^W9JGR`M?Y^K;bX>kQ++y7WOIcTT=v-St;k$xkV^)4R4364oVV4am}^ zTU^ZhgfJZD=Exm5s@FmxkX`idWK@V|GSeBwjfrZc8r7T-hYN#9Bor{Xm_xb_e+H3) z63N{}$i5G*SK~f^A^mmq=Z&5ydspuP43-lt8(K@L$~L41$qP@xG|(gz$&r}Oed%rk za)2_BE}2eqWK%K-1f9M0u2$Cf;Ft!Y8fEXcPXp8+-q~jp1i+#F^k#+N< z3A%#af?_Z)#)Sv*+B$b$K(>WskwM*IIth9RK_t?}-ORE$*=2e}sj-_9w>#Zk&7uQ@ zcIosh>f=|}ZoRA0F@nL7TeI5PN}G<8#zHQO?ULI`s-lHLGzd0KC%I{@y@S~y%13!g zG&2qZ;NF@=RRy{pb%WmmAP~W0Zb}3QN&I)yj*v%LyeUz#M@Er3Z}d(u0JE?>1aUe<+>HQWCIK+?1*$$FBW~u_x$p$N>+f~|B0+m|fUY-O z2vLWLbrZ8(*kwMu0YyOHa6*zDU4O4t03gzPX}dC`yQRKJ*q54irvy#3mZ>n#RG)<0 zniR(90KE*dAB)tcb6?+(SlA#sM9nQ(mfSW7B;A>uxr-*nb9SeRAd+IpqM^qdx+wrr zK)EvlUHQU0e|(qyAq3Y66~0t{9Z}fVB>aMdS5IjdHFOqENQc0?(xIWN3OeB(EQfH4 z_X+1+Go*FF9VqMogpLkS;Jrr!g?C9mr*r38e#(6H-duM|S7&GF{N*nG@(fSjM_`>5 z%X9z%ZbT~poSLOnGg!<)1rS8R5OKx&lH1pC5D=Ya)^_x_um~a4vn865Vlbgwc4Z_8 zZvi?bbLR%I=P>B!qIQX^D`$dVbkF}b`Qmrb|| zQFj=&E>Y8kYaRNi@1NW0MpusRVdX-V-f_O>?8{DF=vUw64!FTG+`6g--09YBce|D}M@>CUa_QLEW$T@sQ~0g_DVR)ozqRSr?nPVFINCR^)5J8P2Xpan!qmqM{= zmY^45VlLhn*QM|DBzA`Pde!Sy2J2Hd`_;|=;-?e%YU0xuE&2bv4n8N>|Kw^VkkYTP z>yNziaIp*d$Zl$0e>ZwwKy+Ch>=I|4a(sRdyebd%Uwq{z6O;~vNo3y*=96wL4$X}Y zBMstkBb{A|l@g(1baixG?JhJI^8q6mtF+g5jpJ5h7YKG~HZX$(RVdf)$LDV~KljQPJe2>8P1r9iS7!Xv3+q#V z@R=R#Gk?`D(4Def|MzQ4b7wiPxC05g?|@?CTJ}=ECTnyL7wsH5;ml(-yEsJg9}%Qse4D z)FpIqef3ZV&5u8R`jairX5r5V^&7FdW7T)wx^o&L7(SG0KjpXJOF;lLwNEtk#lKf~ z<*Iu0i>kwKm;zn9{+;dmvW52ZZrG=@$)DNEdsXV`8|1jlOmYFd1p0O3+NW$+j>=&qIko5bsJ2PzuH7i*^0U#!>z0xZJ;c{^m{l zgT2w3uDLmjdzDrR1YjM59Y~6M*A7Ua?@Ik#z2K|LZ;}c7w0xDD@$>%X%m4RN=JARf z0K3!_;Pz_w+jUyex^>?fuVj`5J#duWUL|}5*s_kV9YJK4r19`$X_f6gRN^t48nUao zB^vJ?AAEcH_=6u`uKuR{;nU5Xnz##gddByTl!-=CGQ1l@Ebg9maU3KFJX?aeTR@>+WK^zuLC)(F zY}ajB#Uj*>8cr@;TRiXTZ9LBwe1eP@%K!v!MonN_gltuP%Y@ zqV7NmordsN>(jsav-81Vz54F>P7LmXY*CBIXbkQg+vK0^zwy04yfG5pB>!1@`9Z1s zg}AH34cRP9r?FR<8T6s+wb0;t(Ee5BYeOXdRz4%Ur?KN^BI%?DB0HgU(B0KLQWH{O z?k)@-lDpBZ%@|NVu+#tj{PE>UTzT;quV217X(Ps>R2D%)Mlkp$d+;!<_T5l$^FQ7> zm`j>k7}z*bkXsO-_60&*)q6i5iT%RL@OM!Q`-do>_DR{{aXZ|un}I~^h`w8NC|Wp- z1|x!sC4+DXJ3Bx5-!{*mj}N}_-~W@7_ul*WFW&o?x7vMp4%*dX2nvIRoZNET(BZCy z3~wNd&?pWQc%_B8)Sk_=s$AP_u4mVO8D02Ii^BeX<r5P4&M@RR5bBh5dcV^(_az4(+suebD8* z64ZuhnTL>pYx0mg(5!Wd;n28#;Fl+{eN*qQ>*14&pJ;gbM>lWJio+$6WK*gTCfVWc zLa3?&?r0NIh6|j~gyyf7Kl_vOC-02z{I>^Mg+0p#GiY}f+HX9&2=EupFaFkq{o3Wq zRIo4ec1T=~DA|K}H_%pt4-71=xq$5j{a{)D$;-#z9_{nKf8>8TMf>ge;J>OKtmtqS zAsPj)B%BlnoI){ohz1Y_gO!8$!zUm9uRr^%v+$jVX9w|g{?8vU6f<+7XYCopfo_b` zFJ;4iy951th2$0a7KP#xJ-C}A7YGI#J;O)|q!TH}$~lG%W&PdB;Ws9SWf9(n4>%a3 zGKP#c^fb-Vaf)?M-U)-C8+;50kl|`!SXD>k!;I->9sl)NQ%xTJ@vYaD2dy_^6j4GP zcvTVo1?BGsk@yc-cFl4?kEf?c_iWZT7Xa3C6pBDx$dSoo$)nNu56ZoaG9XS=9Y~Pu z-oyM|q_5jaR{-vE<6Rlw+(kgQHsKrNyZ_6(;~#C(znkZIjnmL%Z%dWdI

7bvdf8 z5a|AuJfBzcTNC!{mktcqk#!5*6-FVgL!bafr$EYvUcnuk|4Z7^@Gro94K2BK12u>$ zJ04z>S76l0lu^TGqI}?jvI2`+J z6!z;C@9V66EY=s$pgq#WwfC?|fPpC7E>d$+ueoh6bb353KuzW%s-g~O4=3C08X&-q zR^zI#oCI9Db}y32UE}QgsA}e+4BfJ47ZL2>w(MIXarKGdHNx>PmEZb6zh1ct$G980 zPISFoqJF*is#73O$TWSUWuWetm4_g%1?egzkq!Nf-0Q&1R~h81x>n~Ei>SF}I-wEM zXl|ArE+SnS1(v^{h{{)I{P_#uQyjoRNB?U7 zK0A6ScesmmJxx34S8u0YeRPjGyoNB`fi+zS?I;qFjZQ!jb|aEO3A>~xarF(K)gFGy z1qS?=gh>1^{@~Tfq@5mt*v;4O5ojusBnZ{aG8z|;eUh&m+9!e@IN4{AyXX5^-}mY< z3;LbOg%AkYv+8zrcmnWi>h{Gk)z7`I-J<8mXn=mM{Qst7lUACYgQNfe002ovPDHLk FV1hl2=>`A* literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/MR-Angio.png b/extensions/default/assets/images/MR-Angio.png new file mode 100644 index 0000000000000000000000000000000000000000..f54d6fa5a757cc7b612fd0827d456165f724c2d2 GIT binary patch literal 36759 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 literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/MR-Default.png b/extensions/default/assets/images/MR-Default.png new file mode 100644 index 0000000000000000000000000000000000000000..f8bf302c1c975cbd405713ca98a456911177c888 GIT binary patch literal 43410 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 N002ovPDHLkV1ldi?+yR} literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/MR-T2-Brain.png b/extensions/default/assets/images/MR-T2-Brain.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1f7a550f4f1518f5f4b12bafe735e5c5b46877 GIT binary patch literal 42997 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 AdH?_b literal 0 HcmV?d00001 diff --git a/extensions/default/assets/images/VolumeRendering.png b/extensions/default/assets/images/VolumeRendering.png new file mode 100644 index 0000000000000000000000000000000000000000..8d7313ea21e26c2ecac0b140ec39cccac748fd54 GIT binary patch literal 1506 zcmV<81s(c{P)004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00006 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

9v65)p3PPV%&YRbi3}*u3PdpMaU+ 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 N002ovPDHLkV1o9wJVpQj literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-AAA2.png b/platform/ui/assets/images/CT-AAA2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c51a6c2812d4b4bc8841983e9eb288b9321888d GIT binary patch literal 43074 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 U?HUOtx&QzG07*qoM6N<$f)!ljPXGV_ literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Bone.png b/platform/ui/assets/images/CT-Bone.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3f8c9efbf78273dca89413057863451275d201 GIT binary patch literal 38805 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 z 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±WgmH9AbO8tmS2crTYH3>eza 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%0D2oc843WX@NRx<>& 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

`~8H+Qpj@vwDv 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 M07*qoM6N<$g3XYsSO5S3 literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Cardiac2.png b/platform/ui/assets/images/CT-Cardiac2.png new file mode 100644 index 0000000000000000000000000000000000000000..a281b2425cb251a7b133bc2215a5a6e3c97711a0 GIT binary patch literal 51499 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

3j3A|IFzW5!HerRq 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

c5AYdDO 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 Qk^lez07*qoM6N<$g0Ax-#Q*>R literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Chest-Contrast-Enhanced.png b/platform/ui/assets/images/CT-Chest-Contrast-Enhanced.png new file mode 100644 index 0000000000000000000000000000000000000000..be165b4c083134ffb947a979a45ee6c41c66a7a4 GIT binary patch literal 51275 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 JPDHLkV1oaW1Tp{s literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Chest-Vessels.png b/platform/ui/assets/images/CT-Chest-Vessels.png new file mode 100644 index 0000000000000000000000000000000000000000..23f8732c56d7b2be74366955d2d4b6dfcbc2b1f1 GIT binary patch literal 52568 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 literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Coronary-Arteries-3.png b/platform/ui/assets/images/CT-Coronary-Arteries-3.png new file mode 100644 index 0000000000000000000000000000000000000000..088a286116799090ec9ebadd8869082114e71a3d GIT binary patch literal 53425 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 ezwOc<9%Isl8Lb%%LVQW004l+ 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

d3bn4SMrIvg{F0M&66z{ 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 nq#UzpN=2^@_T28z+wCOg<(sBTh!kT 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 VSTko_)dK+^eQhJHN)5+|{{!fPB98z7 literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Cropped-Volume-Bone.png b/platform/ui/assets/images/CT-Cropped-Volume-Bone.png new file mode 100644 index 0000000000000000000000000000000000000000..13c0922ed88cc0df8e1e875729a773f58e55610e GIT binary patch literal 31396 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≺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�awMtGfe2E8uqz{AQ3yZzn?JkVPWGlZXS3U; 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�YK?DDv>am%RH$wOX#Kyks%5(~=(518RkEDQwx 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 literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Lung.png b/platform/ui/assets/images/CT-Lung.png new file mode 100644 index 0000000000000000000000000000000000000000..158f3d7b2db33a3a05fe04f546f2f5130a222792 GIT binary patch literal 45938 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 QTmS$707*qoM6N<$g2j!HhX4Qo literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-MIP.png b/platform/ui/assets/images/CT-MIP.png new file mode 100644 index 0000000000000000000000000000000000000000..30a93561ecebe3ccc41991d60da0fa7e338dc1e2 GIT binary patch literal 26839 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 Ak^lez literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/CT-Muscle.png b/platform/ui/assets/images/CT-Muscle.png new file mode 100644 index 0000000000000000000000000000000000000000..76ecdc41d36051c725239ab39208543558cdde60 GIT binary patch literal 42848 zcmbTd2UJsC*DeYO3c*(hO;DsH5FykMiu7VaGeIB;f(l4UkdE{Y@=`(*f}jMDDiA_b z5Rk4Q5~)g+E?uNb6%jbR-~avJJ@<}t+sPO^d+oiRHTzuInQQG>VaP|EZXBH{-L9OpeG&^ zXoR&3bhcBr2We^usrjp%5pczO+X(r)y103%_^X5dMOWpl{m*R~kkG#%-p=YE?SB{w znWK$`Zn}Hog_NaXQg*VkFd?P0mb{|e4P|8|B_&BAIaxWljI5%JoPv}bTtz`i1tu@_ z?+@sVqo+MV#T23YZ+>T2>Y#_--X1D4GJbx3(tdDhcTWcyn6k36jI5lDoSf7dLdq+^ z&D+Lb%FPS>-xLsdFFQ|14{t|zH=%zh+St1Lc&mfXr2Q{7Ts{6n*3IkRraCj4jK7VC z3`|<~AGQ7kw72^Y&cnykCg5{eNO` zW?nS1{5tWWODzgSsi75EucQA$?f|A3waj=hby&HpRd-cE(! z?&)fCrm~}}jRRiB!_5IC^dCd2+;n$w_dH{KCLR1=QlQZ)25w&7Hg0x!1B5#0OlxUJ zM|%}JIYm2LIb{VYTbQzLPe{|n~jPVn}#@x*I8oLTGtLqN%#i7)d{F8-G$GXGa4 z|JC3n>2jEoF`$TrP)>L;w1?{6P?bc#ml05@Jgrsc+x_;MS+ zsPFaYsZI8-O$Y71?|}7FSID{!dkMF&aSpnKsQR&bJzVSa?bF|3N2hd5bjCswG2d@K zIhgswc6tzYR2TMhYdCCYSo3uA=r=(%TDbp3+r^|ffBvwaZ%#8ebsL&2YFM@-I-5@g zpVwIfs@((^eqD{f+)?pX{9L4`{7?7Lo%PdSm0`0uYmIX2rl1BFyNNoa$J9JNsU{wf z`D4(Q>rxT}4<<#hZoW)y?>s$68WO4G=!A5OIocY@5C_An8)BL3)B!gt*I(C>$T(e| zF7+UHYSq!NEl)%mOJ>)gqwwPV-oCG8_DFWxXvi86;!-3gFk3gXr_6saoINT2M5{0|Lzf9@Mx<)r_Vl+QD`)T z9~fWau&&2W$E+2Zv}}f(2^rVV@U+hk3JSV=NwBV+t-p*xKi4>$qJxnx5^4G|u{>pN z-4b$RQq$5`HRQNM^SG5F-9K|I;TL?Ib9&(3a&o!8m5wRJ9v|^xW(U86pR%^17h;x! zbLQT?e5LA*si+BpTWCmSyVNrDQSIuj1mHj~kM3|~K-n-4HBRG|ThCmu6pjwO(~eid zAW{&Et2xj%7ibYSjvZ_oC&Waf_T0_LgI3v}*aL*=OByukD>cud85ttTNMOF2*8wpC ziWP-d|L{#HRC@mh{1DoUr7=7s#HzKSxwUXW#3TDlmBhF*n$x!d#&8a%{UXpDpEKMP zcvWu})|;xP-cKEGaL-*^a42IzpV; zI2yG}pBc^oDz~^JkbUF<1c=IM-1mbA*j=+nShD$Xg}VWS8JF1tNy7@T6}^+8;C zS3=wJ^NA%`l|F?Q?7kGwV~9&PCW&vEObLBheQJ5(u_QNiISgmWEUv@OAfKn5<315< zhN}y??<+`ZE)jdop^dvHz}9OB1-XOKV~I2B?y-SEZeqa)p2z;`Ji}gac7qgJSs9cr zir8gX$-(trGGEJPvnquYa53pa{eTUoPF=T zw+;H%Yg;!!37#88hHwGBA3zcKEp8k;5E$LK>DVil9#tN$zs3S|gccT4^k<@v2DcIG zQB=dck>l;dpw&?|t;*tf$z;a&3AfTN%ReQ8OYqkV_ts@zx84Zl_^mgdVSe?G%3QzH ziIceh5*1lFAusJ{Hj7Ql`MNp#kGr`?Vk@tZ?6*R50{CR~ zUYwdA#X{Oozv7JknEml&G_!1o{D_|mG>n;4PnE70j38zEUw_mq& zX>TkMN3Q^NvKptJyj_$2Fut%gc`2v=-RzV6S4+ryIDsf?z?|L!5zF!NPLac7&#)~3 zMUq)d)NA^~oPhTEA4HMWp&G}Q$+pt+brU2=H&TYpIv>FIvXAgf^XtK%5YdF4N7~A^ z-Rz&f^t=E5?Qwr*`4Lv#KF?9zW9GQ>;Q3|EI3 zU0VJM^Rt>RJ3jQi|0DsNpjK1EaZVJP-{f{PGTsmmp>!2R=x}4dX5#wJ=d|wxMvBMd zX!^uY;|q<)#CzqpZsIV&2dZ6Igomn5Y>b;o60PgCo^&#FvPw<|+3@LjcPn&Ep43^0 z9D#Ypr~B+rE=>Mz*$iqMSGAnBPh20A(SH*oV@!bpg$tKr4%kv(jcyXoF#;lC6;^4o z-1x#=F)kqOW`1nKg+`y#iSEUA-czh#*!T!$)|H>t{WSV#f{Ip(t_mMFy=kw8dMo0C zqowu@ArN!`3zDD_ub80Y!^0V>(!+xQUlPcl1DekXp@tB~bcob;F9g@GhdK{bn@|~_ zYz=7}${=;11qk#qwyOV0Wj{YmL{OhaN?YGE}@oDxH!25=tcAs zXjCU-1(T;lB2+XpPK>VaNqQM!JTq`)!x0L$-3hLy#sNUwUf3th80Ed%MD6G}Iw4Vb zene#W=rK*7+oDklISqm)FH9qIGjfjXv8Jx83!4ggW@s;Og*dUro z5Hn%~|4LdgsWo=uHp=X^=tvGvrhxE?6flCCT2$kGve(~w=uscCw`B4chq17D<8_fz zYHYfJz%*`QI&msT^MPWf$SnklZxP4~^!fJ45p6#a!+yIso6Gi^pMXo_?AKGv?1*V28q@y=}`58gy z&t0%vGm>eF+#l01=-qjS`=nDvjZ7$`mocs>PtyFdxUxT6>6=tJeUe}-hrN=V`-jNN ztV?V5MZaXzaatsanHpZPm=#!&1(ZH4EFB?=X=Qe$OsxOXI5J42{&g(A%GPwLoAq_j zkNWOC-=j?H&>g~hQt^2mTqYsEO0F7(OACkEv;}MzbkQIjoNMBAL>h`&3`!#N)xGb) z>T`3*ra{dhEVdd&3ZQEJp#dyXM4ilu-YOgr~7w@ayxZj1M{S5H_* zNTR6n+cja&=i_+0!n5yZ8ydwfiRK>9Wje5(ZcmXT*~@FD(aUTv$1^xQ{lzxE8{wW1 zQOt~52n579dxa!~q%bg$9{rLfgWXuPusHt(SR1&JLN^*Rskycy8||%MtzGMLmxpG44uB zMwUJSVB55@EB9C@rBh_itw*;=zy7fw{L|jMIXdj=ospI90W+@rB$u9;n$4MJwXma; z!<|mJI2Xs$vWGhj;M@T2F&TtOCPhhB^)(}LSSzK| zlR$kFG>)u=3A(!%pz51c)bl~{KB9-xrq7d%TdYoc-)@V>GfLb-VuvN{u!KUnCf#Q& z742-dIrPk4#uHAW_svjh$3}kk}Dl|_QD|xDmW0;t=<78Qjsxk;@Gp^^Zh^3XG zh85sg>TPFyCvXi%&alsb;aDX_*H zCOf zA1LL?c^Pk#D(=(ddDQ|pAb@D{yg6+?J$&`jL9nlh;sB$x{ZQe@>s&NC!3qokRs ziqZb;KDx~{hA2q_RqlFPn$OrJ&Wdt+EgYvshUEdh2kab>PbapFCJ)TpkM0nWQ=hY0 z0o~Q2=S(qsOhKH5%?0ej`T);UkaP@q5LKSr25h-jP@<4V;TRsYrJ4%pteI@g0=c~5 zqB#e%z*}`4yKRqDKhC;t*LUi}O-MZmZWchzOAh6UzZ>9!mWvNisj`54W4x~KVBsfX z`mQVP_kxZIUG3X~UAamtQ>IZMr^2*aDwkY!@W97!k;PHW{Vy(v#qwvb&N~z_6$)|$bE;^hR{=L^Y8d$TtVcPqym=fQ|36Prm(S|Umi{n z&$myFZFtm5dzH-)H1)31XGI{-p6=*jtV1yfN;A*&8KkIywE4k3lp!D=Sw~GW1ktpn z2d6>-6TtXbY5%i~y4E5e;<7%uMpTo#F8vve6e+FfG)Y#zuFFH5Mi>B%JiFi<$^0y~ z2*fb6`}olAPUoUruxd05)%(&cNIpN#-ZgvEJ=CpM@fvOx$U+(i^DQb&w2VJVU#`5W zx1d1{hnPOV1{5+lNd;qGpKRf)(;kV>e4UYGvu5$k4p%jA3w!lA`vS3Yxmceb`SEM* zx~Q{}Qp#*-Q{;;WiCtG1u{ewNH$;7Ng56*9!v32D{E08AP4}%CUzdf{u6UI_k;F1! z6+}~;uB})!vk)h?EG~odKw^{oCS@47upT23ffI%!U-FRy?d7}>$@1JBB$iiXsVS5Q zy!l4w15Dp4Ae=d~BqdwCOM1>?6wFgS&Dc>~Xz~@6`9r|RU#%j<@6>++DGa$)M-rtF zIPX&}FOc)R6JOQEMC!uv982qS z5GPfLHG2#TX_nCeCQ^Y4w<~%+YIa9+%2xaSE+boNgm?v<6uoG@(R}FmF*jMR_y81! zVr85^9Mrhs3#I=M-L3Jn&3im{UA<)1)uSV z*UkI$`raLHA9zBey6E7flIEG|aS%JT>oTsOY~`w@Q&*sq3X{}5EGLkpe3M%U!MTDN zHLX#Uj(*ll&iS5R1t|H-_+@)tg1S*3#94aWrR0sTRh?D zkhOYmbw3sx?a8`Oo4EVp!LwXj!)AS$!YehkWQ9lFl1bl3^p$JwW>5^x{EOn6R-Rcr zckQ`eP@0WG-dGeQ+TsW=E(duzVY-z#iqfYV==6lck>*jPG4#1Ki|P-EA=h87Z23jf zJ&|Bf|G<|eh+&OCKZmXlEeJ%}vb>AquvHjq2Hh$&CrX->wLws+K`ft9X2b1X69wem zqO_XAbH)Juq^1p{s;ls#@bh|DT@#^~xoV)N@4F-;l=UE3xO6@=1(&^*uZM#GsEAa( z-wW3y04c}aEgI|nnysOKAaP0VC%HAEwwSnkpbM|I?f2(WN<5cUO6x-gZeH@sev~w!wP_UF-2`imoI$H z67Va1(**7a4GOT2`))hJRRFMJ(2)8oYAOV#><7jl5UCYUiOpU^0<$Dbyp`HK4dY%+ zII{w_kcVgRNcA~VC_mDr*X$|kVp2lJ-7lq`B{hTRVuBF+koc8>9*1+f82~x3DUyXA z4oM;NYM6jHJYxh*HiSiYjyhZ%JrltWw*e^IJfhqFR|#W*vqxi-TTg2aDm*vJ&;F8b zKr;ZOnB~$Rk4+4K=cu~RDw4u-BPL!uG&~FnKIqJsi~d_DB}&jBa@GgX$Y#5fxeIQi zuWbQ*+t|40bQ||r0a@)aQwJ`PuYZc;u(%{(_3)Ol>mDt@bi^hV7{nYbkD9>m;_v% zM%X$bu{k4Fz@P>G$!8EId#s_@*ifJnCOU=`KUTatd*D$0a(H}qkvJ=jeHx^x1fnbJ zm4nNWI_O%3vRQkaOJ-;vVqUo(bcNf(o#HG}Pqnpj7qZiAC*>#-wVC?4`bWOh}r=Ch`U zjgV9AZN?uu{9-1n6a&(53|ErBWyBa1|{N06wut1GM|iX?q1`xmMf-oE7P%6g7kmd0Q$ z1MH(uz|L~n6%Zv@!zG0o-8!vTyGSOs0-too;FC_Itw}0k2YS zdEj2?mN$KQseHww0}Fj1+a-;@HzL)y{#4j8|eYogVJhp*S*tqb_7^ z13d)Rv&XKJL<4%pZ^`}3#b6Jm~Yffh3+nJkzq zP>^B@d-s+}8m^kEb2pYrwEm%ML_&jGT|re3qiLEpf`^1OF#$@Mfo4DTaM?Op0(c7m z!*rA%YM(!7FWBj< z-?YFnHeGEkP=PV>u_+cGxtZ2p8k?12#MDjX%10z7P^XTof%l&5WeZ zq5ZGIM0eYpm0Wv^x*j1GM3(F%i!1xxPno0ilU|d4Z;c6(@A4oP{Gg*rE{`8z03i-I z6NdYB-OTRmYNtaeaZop~E{^>fZHrexQrc3#!HzpS4_Ht4gcq2?0ym8HE$!-}M3`#B za9U8fgh9$KMLa!UsJZBMNtN0UJR4ot(amSoUpdkWq1gdbY{0-?#cX*!o=p2 zo0B~zPoGEVp%y+tpIcc0W6Jeqts#;6l9-Z>!`X7Aje;X7WhUYv3$hp-Nb2fR4rhmE zvH!`$?ayW|D_55qz4x(CBodqc64di2DBZM~*3!w4zH(Xnh2ZI{7n+>ID$!1(p&IJP zTq5mzeeX`iel6EsU@j9BV-u#U{Ks$U%EG?R_1|CdHOE2ScbYS4S~Nutj>wOTNwY4 zM_*k%SR=+`IZ~EzNzYuJg~H(xQRyz z=~EEqK%1)?YDTUr%YJ1#W)b9y^(Kv`a%!2sx>Bp&IeE6vAM(xVjP2jM+kKlI8reff zgD>3$Tf8obd?2gG*!&q0X+!`-rlg~WzPiaEA8sO1UJK17&+#8%mo8`Uk!f^M*MYF| z$JC7V-Nxwq>x1+-9hRLv*mCjP%a1UNE0(eWo5i^~ds?u}!zb#($AwEeY5 zbI+~=Qzb6PQH(rFsrDI>0E-({ALfVT^FeY@bz$3)yUuI?5z?&ix_79TM%bkvr7J|r z9k*3Ifm~I08NWN`(Sj54l$vRSn?=UP7LV*UB004Qs0nanJzR!a{EApt&(_2`!PJ!E zVMg@$0R|VO5LjbbcAo+*%0C6HKVKb=Y+jKx&&KNjn_LP2&V${+Bcj{=2J#9&<{Xha zEf0n}{N2_&RRBRbgFx6}NCM^HNUCc3#ck)h?$G;en?*^^7?RzM$BL)t+7PG`h)m-q z_{|n!1rj`_rxXx$cZ6Ufx{x1uEp+18(N(M2Wq#cvgBl|U#x3jJ;P9<{PKpnAzvMR;->9Qdtm8{vP}SX0%wR8=l~fo7?xbN2aq9x4Vf5v} z3f;#s4D=_tB@ANAg+anq4PQ%Un%PIeBhTQ659}j`X~d?DP=rfkXY=SY;;uK&VhFWI zY)X^`!l&5uaMo{8M722@7eKq8PV{L|Uu|?uC*BLIA({A1slRTOc6$p-`DXKaB@T6) zyTa11vfaxP8%gSb=2Fn(c4mkB;`?mMzJiTMEq|WGF+b|B+4=7xbqBx(x^sbuJ0ec@ice+w zZ$YN5eZz|j14g5`R zs~`;|Ya0*wDIP$wFTJQ(Ar#!f3JSh|bda;3@S~`4=C5w(LlF4K)_p8iUQUJtaY0wc z#LM2Y+BczeU?T|wB|3y9jn5hC6z11KW-Q1CkG1&*wn1dT1x*4I{llV>Hwxv9%1`kg zX1wtOF9LC{)dv|beV=hgI0-1|{?%`2 zstxI85)mR#gr+97q~~vB4^R;-NHH*HZ<$3Pv!Qv2uZ0NUcJboiVpU^KLy3o~;miCV zfxm#ljODl`;ud3uFSn_j=S}griZU8JPjA#-m2e5rTd_s!4{3>N z$0fns>H_)JZf%-@3JkfX)4^Ro;dvMQopn-AAX}tS{Jra2z>G$g z^aQ=BI5-%=^#O%i*$`w4YpfWN3g~}0{^W*Sg4&Ct{JZID=Zdb314NQ$cRnZR)3M#^ zrmo=Tob}wh2v^9Rdn4Q!xe>I{ix`JVjM&@n_Il8GmcU6L1Ww-6d{iA^%neFZI~c)f zHMz_yPGZsCzs&(r5md9Z@eJ4i+mf+@5pSd)&u#_kxYA0F@ zqz@c=aLuw?a$x?43Jz!p-NxpB&{Gy?+%BolVJJA;bl{O&F-Cw&9|a>tt^c5C|I<* zig6nG7AGcuY3d{2asEs3B$~;gu4MQlnft^Zb+AO>AS8u!FO6LQh+8J)Kihh(hu7W2ysPSqJE(8#l^S>4m?Wo+nnQMiRdpqcgmMlF zJe^o9C=juC1*osM3lWm^tT#aF;OZt0_M}O8;u;!BGJ)^uic_|`DgrlZ%|pgNYBWi3 z4q95X+o(E-Mo|?%ZnQ`kz$O)lJNjH(c5A!`GGwSHfFvdLT~9RGp6{pGH=q1yv;K7cl1HDReL*kmVzyc#wW7%GFe@zrWHWj3l%=feb&Q(si0Ap8$7y>u(a_>xITUIcqRW(pDr_@KQ#v zM4K6~Kv93)amafw7FycP)fV?I}nSAeN)4ZoG^4s?5@LqZ3F6 z$eB=$aVXao7mNa_rwav?MjtQ(voofm&kbkV;~qOZ-*%RHfatv{Q&kajIl$^JE)fRT z(fS;Ds~WlnzLW&quy}e=P@qUn3N3a-JN$WnsyNs-q37NBT2n2VU8SjZc4AfpZU0tK zgVA`_TfnHz9MQlRTU3>9Hof>dwutWl?-b_)9s2@?bEN(?;g-L)~W0 zElO9ur~|JNd+rW?oPx4<}w)Y&M&`*Y#${#&TL+BlwT^ScU{% zMTGurYX^hK`;?{&fySO6d(gqi%ukQh)vC$<&w};~W0{ErYz@q&^Qa>Yfj+h%Aay@1 zj3975oPKh{@H}d^a!GIDJxufZBfiEA`NHI0L=;fpK26LXHsz}cVpQ(Ej_x4M1UC?L zm=CmYh(5v3kx10x*WDa;O4IG7T*Na#_Q-djfLf^h?Rvy1pi6SSC`JlV-4idS{bgzE>5$w>G9;#J_L z%*5@P7wR9pvUH+^-U zjIps)`Mj5G4GvWz6SoS(7Ln+;+{ zMWj2mUMe&v@@^PfDdv2--^u$}XV%7&kRt->+?v&xe}(YZi{W(dYxdirofVu-zmo=a zu*|p>LdeGvk&0}Nv5mRnETdeoVZIT%XgXgB*ZlX?&da5&$2bYovp}02OMr?1JIIFM zR46g>n*j8g1+WkV@rc!Ry64!9%GRHmf6Ib+UPo|ExSUJ)bMr)T+S|56Gx${SWNCMK4ET#z`~&nbG#QMjJlzV7ExVUfK3C3A^TQC zvFg`2`Y3{&L!`w3#x(WJ9-Er#NwbW(4f1E(Y>;-(&y#B#uxWe@!3R|%Q&w$3ayC5x z|0$g`wq}J6o}WK!H-pNip3s)Nf4=?NUefBKhhR|VgbM_!`t*LdxX-mX>j$1Fdp@`^ zn3{dKq9|98S+d1zmG0iVdug(o{RwlWJ;ON`e=|^{;|MBh?$7h*9U08us&o6V&wCUL z*`81Kv{$6Cc(rsyb$sBAX=I6lUy#aU|6I+Sky~YYd+3t?F#B|)m}NG0oz@gYIDH{= z64P?pIAi{pU0lW(+VrtHh^W51h($VHHv!~`R*V#>UlaZ@o6=M$FsbZaz-vkae++Z?*&h5NHQjwyi_Y! zBM6xHJ|vB+w}y-nUJhhptWiq+u#S{SEn^&IYV~Yqm~NabtfqO`C%RcEu_!PyW^}Hc zuju6S-y$3}iM$rKo!fyidKeg)B+Uy<`&^MdYk{_p#?fK(0Md;?yx}Ov;+T;>SOwGU zwn#Z{_^e=>Vw#qE=guIT*`nZqXfT?Y!DcR_j$*nB?;|K{W(%}X!iVyFNB;yE_hNHB z^5U^kNp|i|$wA^|V3-K)h&{H8N}~ns8?g*8&2r#OaNHQW0ITPkf96=ZUzkdoVsFGA zt#83Vs~S~-Lu@wJ4rb{OUN>cmiH9c-mIse{`YWUrV^qlsX*;%t`~o;4G%4%!l|u8i zpTSqN>krlDpoX|J`oS6>Yhz|gHb-!JL$fwehUs;75UKtzJ@g-0I(ZDKL>R(?^BpXH z+N``s;MZ{Lx_{Y3!>)N@L<`Qz%55>6#HY|$-w0(!jo)_0Q*+!77A~aOCWE>Z9+I_4_ zr`6XvhV9eb22lFaMayozLvSRuls*03?T`Gu-C$<#w6=@l(JZ)rts4qU?1?d^tY8g?BskLdp4MRtBiKGfpcy)KGxxQ`)D~q#D9uEN~!o6 z5~K4ymPmIaQ4_aCDVg5wVYHak%cZ`9QXeRYE-dnr$1I-!b86=URQt;D!z57_P9kkb zqXKwqP#TogYiJXyX3s4hbiYnExA#j8HGDz?`?)vT0ec?$MD1XI!{*R?;(#Wm;T_+# z?!n_kO{u;ORc+ zyRG(4bk}u#pF5ewL&3SrGe}vC!;(qSOR(M&4Um+8O0K^COIY6-Y8Ew|k)A8}j*C7X zyq&qJ*>rl+zEgYMFm)8j)S|psLG^3V0dL>X0mLlt5yyynOZ@dFK35-I^~2b4>wdVe z{yM111x)R`rS!rL#Lg90Qr7$;=pGjC?AE+OT^$(i0q0b97EjPWa2&ap`EKM|$+8y*zVc4tW#b+O?uNY*X9HO8dv4|Md}rq9{KzC@iX<^FHscU zSt%wTCbtEwL7);0c%(3uI8>XR9co*PSc}rv+&>;1Y}8bHF@sH1ZD9TrE_wCG2g1{m?9vtqn>&AG)N%T|{}oE$Nq z8SB~JDO~-rrDFIb0XT+>;3WfJD-JqB)Sy)vC2`4nZz!<>R(^9u_wbka;NfPk}C}}Gf zQk0n+-3beJauA1mF;{m|0bJM{_u?C+e4Z4B$Nlh@vESX9Se#`|Gt`78JqpPQRSP{S z#+LJ@`8Z_%49eHi{MA;(qHM>ihvQ)Im6PCnWbBJ2Xhj88G4^H<30k;9erDlP5Q*yr z$&+d;Hy;fi;FRZ%(2MN(A{nrZdkhr|xcYPI=s-X?pJ3k59OD1Aj+Zc+zfV9z3B z^E_h{At)z_CCVXD%-I}$x!MlPgGCw(q+!}F@RQJy$wY>;l-Cccc{n9XrAmdw=&ObZ z2X@VOU~%j1-F2gO!TX2(zpK`s!zx=G#ZNF80rg%l_ znR1aB1q7dstj)gBhuPm56tAwfoN0CG9}R(7^i7#O4!j#U_{U$h7ECaE3}{$!Qc*6D zJoozABY!RbjlU|zwBS=uzE%%m#hfulZNjf=dD3R{76u0dcsS+g#hH^AF8Yl>F~PB< zr+^^5?{)B|`mSB0Nxlu|w^Yu@V|!S#jQb`v%nq9{f}>VAnMQ|HF?hFnp~)xPUfEOX z4=Psz3)cfey}elgu0~HV$NPTIGu|V=*54ARJGj1PI%lM>YxjG1?ziLa{n-YIuPDHxiSuat zdR3BvtawSf%~y?e21VFpwFhUzj}*THQG=DBaqZt z?YW_GCr`dd{!NqnuwX=qA%^J@_UtVZ)Iy0fPjt*5vpR)x_rhcmqR7`sY~X@IG%9hC zG1SlW$}jg9j~77rCQn(r@j|6U<>Z^htRL;W-=oh8jI+B@glxBWw_ zMk?wi_5uf~XTQ)#9(P-gJdWR7bHClJaJ&(4uQ3A<+4~jYe#D+%30AU}~4jvXd+$nxb3azaZASEG!`g=b(E^r}YxB zY1j;v%6Ry2NUUEFY7zAN$L;dg$Gy!Oj;0QQx=uo&cGK@T zReQghh!M^8es5_j4u9MYV2u|~=W=edMKWpIM=s03gW?U(g&WpiFv*3&AsVb$B+ksx z0I`6*s(3ZW&F-xbGVNQ*%H^c%5dz{Mw&MNWt*wop!iK&{{WEF_TeoFKyVrS0N!MFl z<^v8CoTz%#uE^3cTg6-LG@*K`BB!w~0=r-9UCqb*9P{GBrQ2r!@=0Fk0&CC+nCyvb(B{$1UM9Ueqo~}%kK>ZPS()wHxhzuxzll_j-Fu*h*`J~x-WwfMHQD)jad@J;jx@iMbHeJ}4f8c! zY`GeFYISb+K#sSyP|o9yg+7PfB*Cf0qJP&eDEbBFvXGeA(nSE!64eWbK8@HW0VB$6 zmk^QHRnt9hPo;nCYZ9Egv-nP(ROqCu+V`@-R=vU(8cSJTU0=Ch>~s9Py3RV}M4ELb zw8>?{w`y_q>_x^eqt?NbAN#`&oloYTch9vRo-7{YPv;y>qJn$}35Ih`Z(I|~g8i(} z-z`i$wzgigsaB%T-pEAR^~@ef_TV~p_uNVH_9I(aB|&WQ<>)$Kr@o_0Tk_!;?oN4` z`ecEAMYFgvu1RG!RP^2LIv|Sl~Md2GRftJAa;K0C9 zn@FKjAu8$(fipD>=NLLhN_aNx!iv7{99iGJ*ZOBHEE@*0L>#iYjvUWO*hGm$G3Yj{ zwIT!-1_T94QLZeAYl4i8S^x~}CP^_d3Z!dF$j;L5%TK$+&siqZC4qfBX2mJ=H+(CR zE`2tJb?IK23#8Zk;P)FrcU{$k3t;KGb2DLo_Wb&1LVkU-Q_Fgm6MQn;UD^8U(;dy@ zvC-4TgRt!jVTYq(^S>5j*hVMb0XxSR@??ZML#o6$*L!PcpS#{MgsbiiZoEII3;0gz z&>t8w-uv0WnT{%FdHj0=f0f+p?P&PGpAMIP*(qR1<32arEq6=zI(9Q9GG7pAO{IRf zYYwPT#jHCbFwF%4$a%1BXDEM(t^b2W|MKJq&pWR8DAm|9h^DU&Q=zN0tT%4}nQ;zO zx~gULCvBQlm?%=h?X|k%;#}%czn;DK+3LlD zNwJ&qpT^A`J*|a;{AUmWZeUJ!<@4vO)~A0)t;60@F+mV2RD7my4UDdP|Lc|=!jKq!9lHe$XJY?JPwPNJk8$9;O2woCzHz# zPXfZmbd^HX_ByoWY0uhHaY4Nyy*?9`TEI1uUMhQhpD1O=)=tQ(_~7Wusv(5I#5YiaOZbh{fDv_l zee~2jz(45z%#3ncqsE?~&$*vQH>qtam$5u1^4iE7dCiW^YXaae*IgiG8CW?o&JN*! z@qYlUKvTaDB{{)F4~hs&SQTF3S%l0P6#(y^Qkg-c+(&%(@!2yMTh^wR{qW4kZimx^H_r<>7f4NwM}bk8VKgM0 z3i!jm&X_@nnFTT`eLz5(RF!9Txli=tRUPRO093ebV;kdfU6yv&;@Lg(TF6S&jOjdg zQ_w4f>?&S00tyNwDu?HYX{w5X+QaANBj!xwgOo3R_Fsx<_@L-N?&A6F0lGKScUIDo z2dR}&aNn=(^alMYQSKgCOhKVY5l&1Dkg77%uK_6>6;HBzJLCB+a8;pR_k3Z2T5MGI5m5_*pWq2DcAj&EWt8!n@Uc-9WO6`@h|_UKmOA{ z{%8N}pZ(dN|8sZ#&Ch?;nr)ee0{F$_8i{Shd0C3M4u4ooL_D#!hRWV_N=V&vvDTIe z!`#(BA1_BlHkHRyr|`0m+ja=$)SDSky_wvTjb_4|3T^EqhG%4&X>aC7oEFBd8DsQ5gf_Y6_7EN78H#cZKvhA5AQNYFGm?Lsi~?x=2+siKvNpiwLXCM2H^w zL-70B^kHeLx{WbLdPFll!hiAeU#Q9-{m~zN_0yl;Zd+vj^vgGwmm6m)svt5)xHapP zsX1)Q)^$JP@LZdodmEZUS-KH**@owRb>ALIU~NkB7WWAEtfadD@Wc_oX*`aNih{6kGpXV zy9Y()!^vq12B^!!+nHS9^AYk%mGRCp* zS5}FtT7#JOlhSLvuR2V-SzQB>B{@q`R0T>RyejJMfvje|7{kYXV4Zl@-H&m9X+q98 zKT*5hj+e{rWV)Kp38M;Cxy(4u@I}OwQ|WhJ`e|*)5o6@;ejkddA3i<%U;T~y_=BJQ z;nzR;`q*|=L-Mw5d-|ekDqFY+o7wen5zJ;;l*f^t`Pq3{nq9UX$ZlG=Z*_TG8i7yO z0|gaXOwRo@!Q##R7|H1%0!VDb0W~ACtm)e9Wgqj$xgDW%bwOstBoFQZWIw2?sZv!H zDHC*k)hI`zSlh@7G-08(;Q$u1LLKf?(3lwt!Q}f&3^g)kd3bvB)xAxwD$3iR{AVh9 z?6>(ryi%d_0{Y#*{@5F6GI>&QliX2d{Ur9-gd4yL6$VR~))ostN`Pcdcd42viAemg zA2Bn03{;3PA|k3c%L@0?5SG zd&Jd86p7Q)SeWPR`8tl{`PA&;@$n~LebtEH{N~rz?c0xby}nn^bs9xr3qTtZ!-;D65&wfVLLMoM_$oTQc zO*MlEcY#yobbW-bIK7}HG7Fur1d?s?hAskexn;(V34g_1Fs;@(q>O35Rl z0%SFv6&{OP2d3)71Dj`LO^RTC={=KT>JO1srzRv{Z9+vLDgE*5^XW0b{dT*&e7Bz7 zJih%&g-g{8u*6*o@Q>`J4fi<$6^FZLmXNGUKlc5SO{*dT24-T6OsGf$kE$7@pKG(* zzF%&)$5RKBuWInh5LHozrwZnKIv0Tyfh?qNM_#w%+_Z`AV|=Q+lQ( znof;NRoq>X?=Rcbv_!=!Cd76`WG2zgaQC?K@EDm7OD8$aC8i){JM!>+-pB54B1Y*= zUKM$BZDaZ!>Ov$i{q7W0vLa<&-u$GsMWtUZFZ=fL)gS*K)`xeMerGxAAAfXS572!p zQTe`&aiGxG&z9aI!uPA3m&`IM0WVGHOqY)oK$<``AJ+A}tiO5xq1n6MT2W@)!juTI zstMFI=Vm=1DnRO`D_??+I$noKFJXGzE)lBvQXw$j8rpxK^vwa+p+HNoF)8}u0^5+vMQfspz=m~qmT=}~jR;P8y7%KEe& z*TW-AURQ~oyJgk)&)f9~ot!yk?KZi;+3LsBd zy6LH_XYIpxcMmU=$wUJAc_tL&j?gGiRnE5z4V9w{x6w-su0YhrsGuB0z`X1zwKsHFCH_~XIfQR zP>7YRf%Qlkp%0IbBAUr*f}==5>b{W6BI`KZ-Sa;B=gj)wJw9D-Yg3@EyMsJ+6CyK@ z$m{O=h`d9q^{Q@94}aOl9JA~0VnNn)&!h?-`tp~5`_2F3|M~y=n}7Sa+LoXF!B4(; z_moGyJN1X&j!5@BFKumhJ;r{FOpgem%vA*W8aOniqHj*!BQE>##nXD~cG-O&et6uD zaXrSgmYOIEtTJI{Zo|p)h<$_#BkOq^^VadmkpWOCMR>-D%q*{(8}gP(07o>Fr}J_| zUiT0}L~4eORH@*;Rql0|2WH|QfQp>Po*a>_Kb)VwP+7va7`M~;v-88}sHlv48~XbT zfd0n|>smrw7v&ma1)Kk3WvPa~G5+skIeoAc6} zPR)(Yt=J+NF}2AflH}))>zmW^?aS?$QvWgb5ucyeW|lKfiYR3R_K~0VaWb7!9-l0K z)yK=;%uG~DJYpj8x8WJJG&^<6oCzD8b2vP1JD)FOL{f0>wvF5lU#H^{h>7g$%%3a~ zCTbgg^CVBKL1ugNlczVIp?JA{%F2Fz*VhL>t|B%!X8)rpu-_h_*Tsy8<9ZB-YKe{G z>W-R2LIzP}Vy-0sfteI81WX{Rem#`3tS4(7rJ_lxrpxOH*191xs^BqYcj?1Fyj&NP zrZO|z9=ejuDiyptEtnek!~N9~b;l~IW+tHsZ^v}7YaDJOUFBs2QIBhXz8!!4zy0d} z^xwH!e|-DdAN{%f)&D%+J$?N0vVD3vF1MlNo6|Z|@mAHDWC+4Un#h#wn8;=KChVs3 z%Da0%vKF(Z>N%N@8Ej1*Ipc+^DiSe~R+;`(07Zcn3$vd~BiAkwSu$7k*5NU!G4}i1Zg&^()VV4%Ga{RCt^!4sdxGd)Rb}@H z%*d&kD(7CVsv22jHQ`_X?XUjgU;afzCPe#EeO>zc#i^ecJv_F3eD=6J&e@lk$RTD% zNtI_Url;4KpTl!RtfucyUC2|jr?o}pWTxuA{HsO;1*^(xrmB^g6-q^xCT*&F?m9`W zD7~AJbDo>X+>UYGrYix5#}N+Jq=Ye%!y*MDG`(*g%OBP=5z{3im01IJ^|L3b6?M9>p>!%brAcsi+~knU^CNxO*T4FcKl_v8*njc!pKp7N ztefN9>{fmoe%X)5r57uzOyz0mmFcJ>?tv^>Wg>+#n=6P(AW`!V@+e>iyTIl~Hv*ml zv@RmtneKPu?=_}|cgU$gsonE=i&NL8Iycf~q3Mixt7GIo0yVR=OXlIYbMR;r5fX~z z;o*@PMZl)jrc8M{zx~5Jo{vwz@TxcOe!86BrXP3k=WYm`CFLLA3E91wuE4ldG1&U) zt!P8+La2nq5Y7<4s;a3!BFVWCQ04jg)4tu_JUyvM#hA-gPypv&7NQO zkC)?dwPy4^A69!tW&<%i=ISw_tc|mI zzg@4N-hcT1*S}#uy;h0Fvm&8Y@|vwQ1rr|0 zq|Sg*h6YqMqxQqc%q=BmSrWKNwe_>p(`Q6!KihtL^ZC!rdioChu-WPFFc|-+1H}7N zanQGnOiEkd0zkU3iBQssO3Z{Pg2>9bjmu2;V|?@7x4rc@4^QcH4@=F=5tW)N^h`OW zW)W`M3H|otr-Ie9gZeS z;Bp(ceavlym)$+G8`mZ}1F^}?bN6`Yv}P0(YWTzhDWq3MVseF9P|}5&XhKttOl0aS zpUL}jHBA0^nh8;LR1t*~5KQbIj66o{BVWVd?(0gLa1ibE+3De}X;PQo)~9zr&GgLR ztoQXFbMO4_0h+d?bU&U0(OA|WwTUINK&d&r7ZEcG2&@bs1e%$@`Q}%Zem=h`NFk;O z=DtD)Gh2kO$!SymozJ)1$4?)hmbR+?;`w%XMAI2wIMM3eU1wrfVLE$6*z7f*>b_V} zn&9+wnk!dsEY@6>DRG;di&MSY<-$Si#wZi|KEQ!5-p}E9sBn$mn&gvN(8b*RcS!vxQQw;JvtOA zMX1ozzx(dn>&wUUdKOls3(}R$sm)rR4aqVU*zk}*ltz8=l(oEhxt)~%H7@oIdnCe`7v5g?{ury#= zP)fB(G)f9Y2+}?LzI66J!A6w{HHjJ2M-sSirLD>gQle^eCut@E%;^KDN|=fOo;8&e zp7-hDh!9#gJ+|AP{j)Fs3CpjSkF@2@mw&F>DttCgvz7q(PtZiql-C^3$9|(2#D-sy zU4-XubMvPubFOnl5@`xTKYaRdefjjbuDux;0#r`TG-Y}%fx8E^Dl?>DT`$-D!~5sC zd+_DDSJj)78D$$`QccBFmpg+ocUBfq!&8+_VM zJ|eTLoz5MVj0hix$Kk=u<+Ma`-WkpA{mpCFLIA=kv0y|-)w#9DrCs+CiCz3EN z%?cQC*E&vlKgi6ANKia{AE^S?*gUvAeDU?4W(+{ik6%2z`KmIqLPY0F_>Vt2_X9Mm zi{{SUO%hx%z4?^YpurSYPU)Nc5CC%Bwte3oAI|4xi5!(NF$wpP?xH4Aa?fX#xsA-L z%H#X@FC*g7G%`P2j;FP)%{;1`RAp372sk5~P23GCT2=cos_D|StDw#8;CMNX%6zjl zs?MuLcyAq!tYV(jPQ3@jy%v)U*|Q?6t5k0>7p)Zz4;Bv(Dplp&?A&aRI6Tiwn^kEh zeh`Jspd2GStEnED|MtV}tHuiIb&hH*S|9U$3*QYP7 zpEAbW6gstl|B?9NZx4`(6nNQQfFet^E$b8V7-K7(im&uVO_n$*;t|KOFKubP1DLD3 z3joy=8As-r&{_eNKDQ2<@_O^{KV3xl?qPk|-K!qfcHhNxj}AaH>!zd@J+eHZ0##i| z;oZG;>W$=eJFX+n-CEQANVB`ZFS11C*fO)CYnEhXWGeAy?VH7Q8|z|A)BOk(j)>dl z>!S&|A2HoaGe%96$LrdcwHs0U@HeM^-F@@Oxqu>(g>8gKqDqw_^1L65*_3-v+yB~H zyz&*1nc%6J5?N%?OcQmCAjNb#y`aL|@ZD!tAApL4%xQ~r4`u;S(apo}HrE^;d+FOZ zU!9gUqg31DyPr_Vm>}0gi};U|(Es~iV%9)jp1*f@pscM+KUIcr&z=~*#mr_cMCE;; zjvW{l?2TW0RVn^1_k5;cL@*+k}Ki-7X1?TGyt?nBA7TQ}K<@5Ao` z9pZN6_br*&yIrj9g0)MHZ>Z2LGO%w#bg z9wWk3yUO7)4*@}s8kq?k9@k?`5@zP9olK_%c9H`|G{tpyAs?3+&PkDb;y3`j9;CzL z7>TKHMQz8}tH1r?PlebnA8k1==XbBFu~#wCf2#WjFp5ZcjN5)3NU9*}0J)srGCgB3 zDNUKE@{%?op6R9)=JZ_FedfI9O)DTw6{t$4qN<4f@b5l+P~wY+em#6U{PR<5sz+31 zn6RsK(=NP?@$tH&urwhsvL?_HNmE(6-L~4Ctz{`F_<-60en0)u?dh=XOjiSax zDQC*3oKh)-+@qgZb!s;G(eu)>>bm=F_)PI(K~=iRb@NO%W7I_Xad@7LbFK4{HOax& zBr^BC%(yl^4jvJAJb=uqNLH0pEoNQueuQZI!$1BP?!MhVz5D8)s7_sa@xI%tUPrM1 z6bEPq&R6cJJ2Y0~f+dd+q0;9vSOG?+1^2?sK0NM9_z|T76995w1R}DJ_;9%iu`X>y z9g#X+d6}M7p6$L>p2`1zZU53FTasmGVrxHC&oMK1zxPIDM%Dx9!ke!~6GAq+DS}B0 zCluj`e}M!3M{>dmg%k>ULV#=`geX!_XcqDr5%;>=;~drf;9wt*%xZR51DR14o+385 z5qaH?n(EfQ*ZP)6plb=xXhd$qBJ$L=E>q8^b~*JA({E#o1C@tj?QHWH|F5b<{QZ6W z=K3&?MGxoNxwnXH$_W}4AZo&ElgPa7vued{7Qcs2U708{Q8J9oDv&`m%`GCC32={4 znGtW>bkDVGk%Vg8mXYqEf&>je@Mv|lsj6O zo!&i(`1drx|8?H@L*wJ~i1(5OF*7(RD2QlQv%mup+_-^ypiGrn)2B-31cNx3GQBV^ z79pN)(=O}D&42mrt7l%i?w)VkSeshr9Mj|I%8y8&b4K*z2&8S=Zh3A}<$GlAb8a&p z!!Aqnh;4WU(Tr&T9N5ejVPzVYb9$5XAPAZJG@BlTWMUH9r>{*&<<#4UlZQvm_Um%K znJ^eKzH_D-)G{rwQ%D zqjo6|fA5RV>DAHMhu?=a6(Ky#W~4ATWhC4Wgb$T33e{80Vbv_7Y12WMr=N%_F`u4( z+Siv%$NTApr2Oq7_+btG{%?-hZy%3{09fS=StyK&NCb(%q|_2X=TZ1GNeSiy#Fb5S zm`ow6k^y&Xl9H|qgW}8U?QI*2pb3Az5A!@0EX z@CUFc5z+9fB*Hw#bRnqnjJ)j=gvKHa0><=FX^8|7EMV>yPDdNbEwZVo@^v#+7siKE z|8g7O-N*CV7nMvb%8khYipKFxhUd~H6HLAy@j`fvNleeD4&-T3B;L$L zxG^1pWlWUWltHx5FtaAyn{LyG$Mez`;k!GCx>REUN?g%(ER4XT#<#`813A*oGqDJI zqiIcBK0kdbT*B$;)BAshj$Pw-T0lR_OI2ha^X>M%hmkCOIY;Ea-;s{?L>cZ*N}!_? z2ueZ_Au<3b?#u<+(sX2oszNxX14+`gkvTqJAMXCt)go^Dcv;)?s;I98fP|SRQbpeT zY;bdcRD~<|+8tnzyzf((&ud$o-o`BEcSH_%O}Z?NfcrkJ!gWC&Nd#r~3Ze%WLbVCs zY>qw43*bOTPV>tmO_Yc%+{}f^tU^p7!Xj)QDpY%}g$ox3SQ1H@y@?9jL1iEoE-J(H zAgV@iDJe1|o2tsu%jr#-i#*S3Ys{D)TKoaPGMPw}M)-IaG&?Zd6IhxwrWm^+`||N; zfBHY{%acd4D*d+Y{2v^s`|q`YDjIc+M@CSiwk*Q3Z;zZec@{)nR*$SMW+f&Z3K&Q- z3s+h z9sr%Yylwk7{BmmNwT0*FeXd=FO%n9BjmS9n{_?aurdgnB&oB33 z77?*91KAt(wwU|%u~+vfvNE8+MAIXR$cQB1)O1m))su-;l_~GTXSjeLBUD_4l(`9K zrZ}EY?Xq$j6wc-kR_+kWU67B1Miklo=68qN2>G99kkU*>v+P z^?-W>Qb@M&F}=(C)|?=MfIx?kt+Eq|P?0|eoIkUzb+sf4+uwe*pU=9yXg@K_w0YD& z`Fj!+{<;Oklt|zAhevP{w^nO}m|55p5$H@zl+2Mw1HRaf#3(W|GkeK21&9FY0pdZ2s`MIM^|a>jfg4S`C(Ap#@PFf20Z`O>eCu???H#Usiw?h%c7cx>ifR5|Z+I^|=SFfOaM zMwuAyO=az37TVEpY2``?NlJYFn6VaFkl_u42KV;XD zX%WLB6J6E3hH-@qPm7ErFol|Mjp)m|Y_-cJGRYzuGcgA!0im${ZH_y)b8U7+r~n51 z4QxZoggNfl$2BvhE!s3bb>$DK&r&BGn6sAQr6Gt zZJ%XS4Mb+D2!jl^(=ptBURwDjgs7-Z9#P~d5$1?(8l$e+hsrZD?!#YHBV!wLX^kl# z)0X5#<>}l?kL~~kzItAN_TlvTJ~9vNTxGjX%ZNGMyDBm5yVXJOksi*(M5MxF+HD(` zb?M6YVaMN!FeA(&P($H&DJVdoa?3k1lYY>HSEmh79u5vg*VR+*MrWuk*%hVhsLFd|9M zt2Uy2I*xpT(s*E+7gi#X#g@CM7JqJ=bDP;zJ{)3D9+exaoXE8?k-9@!y1qBCks`v8 zix!ZERk;zVkY{>gTAD{?W0OZ9RH&;=j~YeYcDtO~^QpV%FazPVC}q0)htu-$v_AHE z9kVgMd0ML$G0)y8kd%3DO$0zP6ht20Rl0IS?iS`z00w461d#|+BAW1+K7F2-Mns9M zT5wow(@0o|-E*(m3MdnN1PCJ|JxPct#{J7LKFr6uK2=RvMk@mS!P<@gwgm)AVJD;~ zft8S=+S<}FG#*JiX%WPUiG?V0ASRIjsJ~cE@8TFBkf%gMMr2r$hUaF^BEozfv#B&y z&w~J5dMglhrs-~xmkOZtTvQ1(hT%xK`Qd9sN8EW4Hdq5@hKVRiJOGQRsFDP#RXr^r zq@qM{45cvx(n9Vt?oBfmA2 z9$du4?q0}uVa)xW<`uqvV2FXgp)-sT?ql2byC*VXHWMV=L_{&mvf>F)Ho|dZPY0aR zGKTxeFr?cY?p86CeB69QBZO+Ku{JPJ_ZXUq}PvnE|$3%-tZ`zxldI=bhk9(R| z-^}7jiU2@~nwU1#BF&hanR^6LX^I(uXHJXTHs|z={2_bQA}z9T-!-4AI`q=C3E#&k zgzrB6FMo6W?(NP<6)w)VsEANx%<#-S1lk^B+A!OOH<44*qrFT_oLVWC@7>=DBLmPmt`^IC?^6x2m`--=mU_lKgMt z2=lq`kJtNs5R0}h(%kOTtrHPPSh|yzIKC0VL5;W!ngnVQPBAGaB7p`Z4h3)$m`L{d z`0n-owCH_iCYaHc*d+k>+=i*}+GH~aXi>%?fz`+a!86awb9zLcds~}uae_OdR! znU(*hL6|vndH}fyZ-nU?5kM|o8nm`WN~|io#WtLnSXh~7#E3k#{BUab-KIwpD^qy< z^7G?una`&NfSJy{i5`f^RkdPM?qd+qD#{EI0wDJwso@bRh1b}{!J67%JX0a^#vWgH}?A!edQ!+_ab@V=d`0)bT1ugy3Ys!WidB1lSo*4!gCHcuG}&a7SRYa<;P>I zfFn^^nJ!CHmB*a*%Tyuhk(-4O7L^%UDf3Jf?M5CsrU_9i(jSo~FU*fIUmyF@^t^Pk zI6TwSm09!%$|9oYQ{OCZk9}2UhIs~2x)&9YDk3frfo;ZPcqWRkt6HTAx`;&{&d=j& zO~O3LSh$c-r>=z9%%{b9k<;2ey#`gnXu=hH=#fk$NKcq&Wk5HP0GLo@b|GRVB4m(A z0yHBJ$#Xe$6Ytl25+NXmhbNwUTNTqh!@_2atpMbIRl)INA7O>H6Bgyx`$|li)LLt8 ziEv71MR;TcKoNP>5OpGSn8<%}nisoz)8K>5jrHJ}ot;>3UM8^verdbwE6_}pP5T?Rf zm2`8Txd@*d2jK1jmbPSs+sK+zzJpzV+|>g>eQtuO6i!InZ47A*5}es`58^EE^0A0J z)1;%f!Nd}7)g)zRzy&7U=5(8*t4_=N7|QU7`!)qRl>@|O<3D%yMzHOAG0u{b= z9cA@eFfBdfLxJ(8yJu5cl&jAP&~RT=o|aapIT6*VG%RN1u)}8LS#je;DT(3>;=P{9 zvZxZ_<7KHoO_YyqO90x#M_JU$5b~pU5dr8N+t}`&8I|NA0w8=wM#Lz>9}@>SP%?2r zL~*HA^+>c#(x#ae??F_&W0h&$Qw63SqoR~_NQ<$IK!Xm5oHuw9MOKVLk8vJN_R}}Zov`@3ltn2`y0J>;| z@9vH`cP(B=g%54_DVnE6het$ql-iW-W_x%Nl_L}+;IUg$^_A`G6&WMD2 zTDZvJT;}rrCW`Vgyy6LSTBvesT=<8zxTgpL8gqn?`)j1vZRTC*_v5b~037o*#tpGk zy6AaXFXbB0CM-?>AQnvARnLHAD)B4PwjB1@|<| zk{DQ|5+dTd`#v*4Otf^V!=~)sDpKiU%Iu!gqbXL^ZOm&f0qCK)#&2s(gFhzuX4Z09<9C ze%c@#?|KFuP+D|-jn zEr@7UsqKe}&Rxu6AF(i<7O8H62Z|aKzNs!O^}*0@*U*psqws;8M<6P*&)udqmfjU( z%ZwxevaUqMPRl@22Xo|JPCSqTL68Jzj3jPdiR8WwVFH*uBC$^g;K)V9kGrgRmg?nb zbE&9Dqy-TPirXERE=^d3nzpsK+iut0n<@yk%}fiTjEsovU7i|myFG>r6H9G5f=YRY zdt!LZVdax%<}Pv@HZs=6iQJ|uab_NkX~I6;B41AJ%XL?l2s>9So^6d4yiFk*chHf+Ex|;fJ4k0c$d__n^J#x^9SreW}D3|-dmeChkGy)Q^58N zWCm9c!i^A=mSL1ZEF_JYi3B7GCKh4^sYqY?Vo8r}&jZ>=1neF}+(jzJiit~`TsdqJ z#|k*?^a;;+j9FpFbv-#RjX>Ysh6Bv?uO~6@HisSD2_fnt=dQ>cei-H#ZM`*>Vs+Q? zj4^$i<{nLmfnm{Fr30eE#Vlf*W|sAbPfearO;vi6$L_y*+jnyzx^CmP&*5>~=P)lE zRz+G;W>;RD5HMy?(y1vESww5HG)3YutlV&8Ix>~1JaJ7Vk8Em01Tq=qo~sgbet#Q8 z^wa0lr>CX7P>V`yEde*1`=g{2wSazSxzPLj-+lA@|LE=Q%l-NqVIr&c6G;OieR}rJ z4uB3tb|GCd!wcdi1aLA5K%R~areFn;a7rZYGw!!XL>du*MM;>ta7KI{{?zrnD3BRx zz>HJ@@(|M$&BY>bn^9s~5GsKXnb})1xZp3<9GF(-Ax#hx`>=h+4BR%qtZw0!cv+Re z(*R^7M$jGz4-paJrNv|HV^-f5k=Qe18iP)Yo|-BnBCe0oMW0XY({um%_xIO_b!7rI zC1NrQCTev66D)HxKgp5gb6MJ{X)<2-(U?^*%*U8VxV>j5Dvo4QRvH)q5wM8xY)oq- zCcf`(k&EbubGs~35h4g8Bm;mfWc&Tw2s_3c2%?%!9(&M_I1^KUe4F!D>H=Z{B4g^Z za$C$MGKDmmKtkL}BqA~g!Si^U00lBQqxiT4sPeMt{o5}QE<(fd5V|M!_Y`+x_IGec zCOpuD5;Ud0MF;#n$pjwmxy$$K)(*Bz-s<)?m3Q(^*@T`)W&&{$U0E{r^) z4$GMQn6pw`hQ&5aiOzZ`dMi+^de%u)ZHBJgn9cJ#=5TM!&ud$hGtrxT^|YK8HII5Q z(<70`R+FhBU1{65w_pE7HC*x?1@z-Bo8P|F#@&3n8@RD7Oq9uKBj*tIWC}_LE0V~o zCC!zrlAe^13n?FwhD1ye2xML#`}Wu}DU%oxM_fE8Wti>e#VG9}<_8wiDt4IZ(wC|7_aUOEg~BWAPhT$0-QVtB7^rQAR9nyU+w1;yg$ibleT>MZ zEw$D&!-$DMm=~}RxwY5{z z!XTMNIVy|M;gxs}h(iR$zh;pY=^i5@LBgEjUNchQHe4tHgkuqXUQ`H{0iv%j>kR+- z=lddZSz2Tcv#zaNg-)CiUtd<)a=X2`Z6p^Un6(zsk3J03eZP*e35$xheirR$3o8lj znE;Y0!zaW`d(IT)kWB(=o}N`Vs0d{`Wwkv$!i(2moUb~2nbB0|JBNElWM!TukZ8n9 zYa+axRgOe$B@vhw(nVFBNY$%J)P%cAYog5i^brZqk`+($Ci2o`pFSzMW!lS>xIf)cy}!vg{Ln4Xr=Ri2ee$TLn|!r?(D(!gQR2Bl{N3LYI) zcmQVi7-sCpEy&E1DsBqHU4?s-`#uxI4ENm4_Gw-DY0<6%Br~r~RroJI-y`y;9~UMb z)0m~YR*@iNeKI0+{r10}_b;uV2}gG4;gJ4Oiy(e`{eFMkl|_YGKg)9BwlwV`Jj1QB zsSyc(hoT*dj!HkFnCZK_Rf$%V2^2TaE1oeJsU=%Eut5P7SHSl%1If$`UR0h>y(y15 z_hHJ?m;nSZJj#6`%*=dQdRHQ3Q$8)aC=ZXO^0c%ur@5g3p-j(9Yswzs9!&hSwy!R0 z0ZxjIT6X3|<F2+!*_Zo`I! zWkz6FY}2jc=75@dT1E|D_c`}Dk1l|DDLD684OUF|FZVGmPfdilf)~2T)1tqA+rGc; zfBNC_)$?i*Ow@%v;y&j0k8vNCk@cBw*I&>3XJ#gmQc2M7-o1XLmp<-q9(7MrY0A_X z+C&{pz6T|ORhYn;L1jgaLi{NcsHC}s3=g!Us6kG1cUR`MizN|JKjO6GzS(rs5OY$h zm^2E`-kJz+V@4cGegH~EX~^eOUz%9N7%q$enR_BDKM=@8MN{wF4$!&vG556zGsbk$ zqv0VUOQ$aUm{zzk^LlL5gr2*M5$3@?nUWYxwA*2S+ihGQLx_@j-{&^tzE6O*VQ`$5 zhC{Pa)15SjxecP;s3{AP%5TNaOt>t4xZlQHL?UvZ4iFPfi_dp6&*!r$vt`E2E-Xy< z;XnU!|K@r9=HoeuPCdh8bGLWrP`=k*9#VF65@qH*knP7b6vBnQqjw* zo-xe3C=->jm_SYC<&~=_r6L?2^@-WkwWq5x{-eFh6%Khwd;(=GtUh{QUKPS@ci8eoD%H zIst(+%jxbB40IJH@{9mNUrx_o3nRnnDAj-T4G0`QBj)tz%SBbf&E3+6;Fj;H3e8Om^I)el#_6u6NGy9+cY9t zwAH2-o@Oz|=O*KKrR0;b2)sWs)2k6FYv=Vl&wA1q`l z7YzacHDMxD8UaA=`SG$oow|E4a9P@UY1=*`syR+;lTS~}skNGk3LW0dl3WUt5H}_P z?!z9_JdzoOd;anm)4U7U?W{hvX+A7gm8V6|O@%PcFRQl3zj%9i=HLJ6b7Po!HBoBD zSAx4sZ%>N~QHIa(nZ2)PO3$$4Y3Co>cmDr>>AsIKohU?G1`&n15ecz`M-XKy!HMYr zXoiJPsqS(ipNYb)#5HNg#L~DRWf@o(NzkNFW)@z7jrq2lYA#(+x1mTD62|bD(*ZCj zB2^CrPG*kqZMfI2mH?n!Wc%EPi9lH+B0R_R+ObNFrc4=Wna}6dA|CtLM~KL2X%WG~ zU3uDj0#haINE%W+#BSDvTk@EX>Dj_TTHe0*{pSbc_pz+rx1`_ajaJ;Nih2^Wko4A9R`RF@ zND0~mbsI-iLQygZjtmcFfROx-KMq8u0%`6u;WhJk2lf=oyD3LzF~3gj2)$z}(E_H2 zWpve3rB`HXlk?K-xC-TrlEw-Pk7@U9sIUre?wNUNZS6u#ag5@L1Ycgq>utN77Z63n z(x|J95t$h{1b%*i|H&ioW1gF?O}5=$?}N^GdyJ+c%&+?-AQSgJUOX>rPoUJgbqT6L z>^tj*JTX1aO`7tE;6tqK42py&UQUgfw&`?~Db!VkXd4qm-+VZM_`Cc5)n!>#zQ6Cn zyfod4m{!(X;>+5)(%sTC6eL6=a*TVQ3kkHJKtMQ{=smyYeF6PJZ@3IuM8w)jgji3P zXOV9E4ODK^;|fSbAQo-XdWkJE!)=6HoyAlZq=;}E!)E04*xe(-BGE)jxU)^KXK(HqSy?qrxB$Gh-T;ouFf8@H+cu3r=dQxIkKu_L60MCb^H-m* zkA2kd;SpwuqWi{gl~yABe$vH0U71u6$Zgntw@BzA=&G!)+@~`!3ypmXS>Tn0;(nyqvI0BxLkq+1#=`-DnT=Nb$qaRUOrXmy$M6BlzM1qXAoXAr0YP3XZ zrjW9TCP|Wrs_=A+fKaxYlX+H|T>!`F=J(rUCV{e~obI^|e@w4bf<0__g3yGs(qe($ zSeXPEo<5^1ZywXUvt;77&6%l8r!HC1Ph*zuY+X7sH_r;Q818PdsIXE|f7Yg7o%?1U zkt}SHJ}r?2QDb-{>b5JvtI!QVV)p>i<KFwhj?!?Hy_sz@a>-HEHNh7e?JoUa0 z+sv0$c1w%w6&Gh7;Q+O!qQYe(2M%p7B?rx!zkc0tG{S;_MHoaPd}<8fyX%;l|LBiD zzTWo7uutdKnoJKpn14AUNBNnBVOhDYED9EBtM)}oIR_RZ1{Who zSt4?VA8NhGF@2g>OVB;GX$7f_$Re~Wi;7H-&72dN*ru0@Z#Vz)81A{MfU2}FQcj+G zHU8^*0s!Z(k+^OnGiq)xeBjHNsjE~)1)_S^05Z{`V(<9A4~tY5fTsCv zpJgkfBrk9bGeDaa8w#~iZPR83ftrY_fGCq9Fw<*(Ql>NW9G=sXnF0FlI^MSNvbL`- zOH;W`3(z)fd$-GN79|xbZpuF9bYrFj`+imJx}HQek*FRe0fh(ok$!Y~21)N-T2CM% z%q)CUL^!1+CqR_c5)H9?xTk=q%mqc)0w@NKQ{(~m>bQpV}XQ5kQ-DtsSCZ~}W|gq!*9xi0O}#gRg+O!Kf= z2QywD4yV%;VQzHWm5$d40Q$ZQ6C4 zLXWj65p6S0T^Ge}w(S;KaS)7*+ct~D#fbnc(kobAcx_xue;8S$M^ff(qv1I%p3hpV ze^FMZ$F%x0LNL#=Hg_$`hu_AW9;*sxjJc&dbAcs6@7vCgJIm1ZbPnHR`u=zgyU&@| zZLai2b{7SZ1gm%+B8xO62`DLv0>qIN5gAU^q()?L5SbPKhJ?v77O)5dPK33!htAoeYf7^C(rAgWi-oz9@f-$Q6{3@i?f3uW=f4YAFq*rL}e@_Aded8 z&~)Tq9c%nvZ^z(IziKx(2inpFZalZXN|EHY3; zCuOMM)b!=NdgkphPQ5Alqv}?InP*~{->0q0UByeZ6&ZOrKABLhuk+f@ORKthX;K&d zm06iAGm_RO2bm4f#=S{>C6>lZ!*qFUb2nQWmo(9XGT`owxxXXsnyS5LwKODCu1&k} zbg#mxQV6@ssq360GgWw4c!XzEMdb+(YI0x@Ym(zOZ0;1vB%=C$cD-*$|BbHV@AXFa z$KBJCpP#?_+jWvIeHFh^Iv^SE&dNecfWasmMr5X2xRG{ZW;%9g<~(qGRN)o5NOR=$ zsB7Bv*k)BBRDA+w%m_-j`FHmr!Y7pxAxT6uBBz@$z2AUfei&=I9!!uQoR>;?TH4FH zi14?sk8Rq|K3p2}FwdD43-bATZ>^t~Rw1>Wg#>f@ZJW%@Oe$2u^|kBA=Toh@wXra+ z6$u0E)8`B!K6jm-O?YWq*<*fm6uHFtpRe2NV|+L*Yg2+*&@{J<(xFcC7Kb)o6MXcn zv#SWvW1FVjl*nnH7LoU1i^>9a^8>o5%#{FCmPhchq|@hiwYiapYG)h+ogZ zAq|r-d{QzeB_ot*5|To4U&Pjn$rDRR6rF}caodk}5= zWWv(gm=5|OnU+Dg5C7)GOV`_dJf<-LNyBV+J8SRC=ceED^oUc_PcQ4+bx)$oeb|O` zlXKTah?5iSA^T&W9*x5j4n$;Ei3|XX^0~`(o0qknng$Xxw+K&MItfuQ*W)f52?>Gd zx=$f$%3U}-My9H~ZS!rLXO+yHP5`M&X7=ggdPU$&sufLevpY^u9 zf5pl#@IyKDV=SPkexmk>imwM{2xr2l7d49k1_`r-=d3G?ATvQCl{^)OtN};3L$vkY zil0@82w_U(KHV&th=rBVnVSj~&doCg09W8mWkz`*4$(tINvE@<%2}uo4@BLn5(WM_ z_m;qYpM+>lB@47!%lps+s6(Hc zK!m$+7oHxwnJT_|UYDk?x1BjJtu4I`^T)7h`MmPE>vf+yM`VD)GKpA((`T0CfQpev zNk@O5=r{r1OQGLy0Yv}_?V=r-b8gx@U|}<&Djvzgm4RoJL0IV!AA*$tFV!uPCK;N9O1`DL5*cwKOWPkg5hesCa*#(*29gepACBZ% zreLNy+<{XoWHZXL)Rh^OglX~d(!aW#w&}vu8q8CfM!08;$pnaUMwt8B+NsMhyKb}U z%7xo*W)?5!4#qxhpI+$2*T-B`x@r)@qcU&tK4h8h)jNLb%{{hE0e6)VQL;#4O5ic( zjNsHvI`y{O%*@@4K@1w<5`>gFW6p@cZMRQP>mPqS-?u#pr&age(la=|`FPr=Z^J*H zmyEa%KM?H+0Bhr?-hOj^e0fYHFs-W)<(wWF&e9r^=(MOZKlZtqcVS_Ez0dnJkNkLQ zA5V+2TzA{unLuEvJRnk$RtSsyt;3Lj!gW+N{f8c9TAlpXRu*+i?d$n;;+eyYgb^_V@ttm0TYtdm=LeIP`I_$VKDN9?0h_-!h)7`T-RiQitIr-Qf?=YT9-fqeu zt#9WHS8ZcBGK6Jmyn6*`iU7j2b}^4X|I5#F*tc)H2X3347hP1g;U#UW5&F4HV)@DQ zTK_-SZ4%MB>9p8APQdWorZ;7?7?#?|9iCB}@osV3{pHlV@XtTr9N4BzizamHIRZ`P z!)5t&S+{AAeKsXeyzTS8n=sM2gNyqSN^F$wv0HeihPmw|!mPE&vT&VRAi@uZpFeB~ z>AN;{0TF9k&Yzy2pXoEZO_ElU0c2L_ClQX(R#@*!EIvIWL^D8W zIxMr~o0hqB`Rc>vb`l6yt#hW6o<#pIhl#5K4zxw|6`R!ga zjk-+}Lz#Qyis&-;rRmdYiHx_$XiXD#z3=VJk$D|+|KiHLblE&cAvvj-?a9Qq&A#0C zru_9~A)(jZ_A&1xJTa3BX0066r9C%!UiDYIZRVrC&Yt&Sr=@kGjHo$EkifVWCuqwT8`Xtb9x$TpZ7EvhHPLZ+C1DQ}>;3A$(OUod_ zxhoNdxiDSUX6D-r2G+)xwR>bB7l^!v1X3X0)7?}LAtDIpRv{ah=1h26bb3%`A?sB2 z>D=b9%xJ0~mNqlrc2A^xB5j)vf+u3w?jDH`A}^;thrd4d8rX6A<*ZMq?vYo@$L5FT zm&h}}Z2R|*{qKJLG(Gp-e)e+OcDX)gfGlFVuT7ZfyD#_Oygt5uJ~fry;=Wr1k`WOJ zoSJyRElW2QbR_yLz3KWaZ50(#sp^lUp<+965HA0~C8Tu>_T^N~B@(fHqj@KmIOhH+ z8eK4apWAM%y=2}$K)Avth>GN)Hx4R&>Y1@o-kx~;kq23greV9coO~L#azU}k0v?C0Ylb91cEtpA&EMrg8Zr>?y1)7;-4b69j`VJs>c7;y|i zw_yZ2FM8W&Mt0$*Y!UZ;HkDPCT27BV6eG4x|I?4BuU<~mJi^UsdVo==jeYuc+G9e1 zrRy-?r%j7RI5=N-Ys#N4ix4}!wip2m`95uWv}Ik^XBMfT?eZwSX8`^{oBBh~Fs%!E zTTj3tLGbwyyHS!KOprh(Q6lW|nA7sSu!^Jyktk=lnWajP46`ZB1j&pl6>Yj@GV{{Z zW{`7QSmju51%WsJoY35OUyv8hmD9bz6UYV3=n^6Hd(+=AMp~Csd zGYQ8X&5x;g&5YauWm0h0G^Z?vfxAa^VG%~c0>ZQ|ZLuKAeR=>t`*40)^t=0J9_OZS z_c1-zu1wj5nlc3`5fk3-W48l2RMWby;vR4J(Yq`nO@)Ye^V?>(IlsE}pM5wJ)7q4n zUT^#GI4!z1Df;5uV`k!c=}q;z+xKr#t;E%KRwa?^R~z7NrUrYLzhm(26?}R1u=SWO_(U7P9+jhFeM8U zcS?wghu`iu9MhLPuMLs=HXkEAlK>S$rYHaHKlw&l^Q3?NFaG@g*n~1YgmG3mDOaE= zfH7m6u1viNGfj`iM54QUBkIc2qbprjE%mW^zFg$eG&8@uKeibHoEmpwcN!LTwl<+A zI*c-N5n<6eZJ)jkS(@(VZ;$!u(w`UE-QR9gmCs$iep;GpQ%(<6X(|#~{pphYdIXS7 zMTjWkyvXyZ6+I&ZCFt7BpH}_J^C>dZoK?FBGk>-AmveheyFSb!UY1_S>F;cNOq&)A z%s?bWsPcYTh|2~8a?jmxprO+;1N3f2t$*?m1ic@mHCXulcOji-gtn|Ny)X7qW>M97 zs3R!eRR=)=X(~D$0hVJ6^hjntCcfb{m*8z5bGIf)Bnu1kea!nX71qq*-ifw-dZa`G z7}EqP8JR&ui%Ky8XZi7jRC$4B1~D;{=Ft-L2tm0+$UHNULZ$0KR;X5XQEFvbCyTsp zb5X$zv#1fe>cLOvpy#!l@55~E`bd8a`*dp8$M|yJg()Mi!-!y!bDxdLgX?n2py9Eb zC$M$}lHQ3kO?2sE76f-BWo+gm^pnfFHi^jLF{Wqc(<0|ZBjBD*c~P-Qb2o|^bZ+XB zk$E3JW}Hv$`MmTdAeslEmYFFkV1WQg3TJu-z||NhRxTGF)i(48SJFCd_I^1%eF%5+ z0K=^=3mi#@ER&hIB?)M&Oj$)|VLm`?N`#0bw1LC-Y36|{)Ii%l-?jnp(^B5ygyR># z`Xa#B&(GYKZMtSGg2y%z3{UdIz9O6wC|f`4Lyd2C}g&7xE*^lg|& zKCMkUR|Dd@Z})wE_0$I9KCE}Hj4%}rkH@sN>!Pwvt7-o}or$iSeRmyy=Vve1hh4X= za_K8=Gc$*W5Jkjex5#{2R1PR-L}o;RH8?YwC@A;oGvjB^%k$clX+-TzrM!~_N2CW% zP1h#Z%_5=+sWL#E6_S+G9LH}C6`2uZgvuc{Bm`v=2@$8yVB&01G2svbqWnEShAvSF zK`E?#yMDWmJ8XNvFpXJ>#i1$6x~epD59(Q#+l01Nq{lV_9z@E-qV6z@0z`sP9InT1 z5!pDe`}EA`wP(b)pRe0}fBR}*PU~%-Z(pt!j!cjA$hGUo^WyI17WIrdjlheD5R%CQ zk0g1|W?!II2!wo0zwh?x)PM4F zVy1oiW0;v=me#v^1QSGRgC}BM8b`=*c)7$0%Jk{nlz5N)&D+L=PnVMt36WV?ar}}q zJs6@3fr*HV6ypZ`jvV^8GqE3p9rzDbcxZqjl8L!r-Ap17JEhf$S<_u2KK#op%u1jL z3qyjz%o&KRA)+v;u&OX&A3kR&#iJAyGrsKOtIP7!r}fv@hlnuquRnkB&u_yb+}BnX zkCJ3?L{1MdsqlUHWBO%j72mN|T-@|7vi4pb8YVPhW@@UZuDgW@pBLSx_atQkNQE*v zfCLGXdq}UiL@*O6JIFHKgM|}tWF)qC4c9(vR4Jt)u}GOg9(%Yb!}7LIj^@Je0@2;(t{zY2Pj0ihat;gg4VGH{Gg&pci=AP-5&jW-ilHCp2 zvKr0l=AxN_%2KIYeZ@Hw%aL!y8Aj}?U7IA}9+qL57MYP|0Z^%H$`z{0_lNCnAV`+W z37N<6;XdXzEr1G_3_@g%>B6i{B62tHLQTcp0cyfc*#lif2xFLvJe|5-_sl9BNr-0R zm<$DqNKb?^)G{AIV`G{wy%fhk|LzuUA(YvB)hsdB|FXg@#iZ@2J= zGH>B=guf8@=mmu%G8xf?r8P67u&SB`1Z~D(-)pAqKvz9Tk-%mF;OnzCq1&)amjE7P zCZWhJ)w7-+ktso?4=h)MnG2B;MTDxJ7bU`Nx7XYF`e_;A)1#@J76r0c8SI=15mMpH zq7hl`&AQj_=KBnfe3+X%gSU65b0vBbNu>%h(QTg}F6&R9PfaO7t5mK9sX$q_iQOVS z&7+HaJon*opFZ6IT$W~Dl~9_wXRwe|dUqx)8_UxwpSS%nqqAh$S7vOsJumHP>1C`+ zCWAynZXXwzib-`nNmJAKr;3 zB4KH*mo%&Tez3{H$pUT%Lni~pt>}xih9l#cL7bIqn<>mlaSucY$O-N-h?>v_)Sfxr zD+GZVBEq1D`83xfk_?5l2N4r@r9+}+$%(Ftvh)%?hH;5UL3?CFdoxA@^orN&&Wi1#Gojqhcb!sWoblshy9XylwCh4g!$B)Sp`3! z`VPaK5<<0MgeIB!=V?ULyLJ@<`y>cs&l9S;)aIYeS@a_XXt8R&6dxk-sUv$ZCzv8rlAM%et_Rr8~m!`P>_<+Pq(h*eZs+erbC;ecHx z2_U5jsBMA>BrS>kAaAB{YfV9t0qxqB&O)APfy@#oWK&wY5Y=UZJaU*P&{!HsO7E4J z1w=^<^NIudvW;yzF|t~%KuyGmuzTEw1#)dI68ki%RhUV{7U>ylQ(_Rw%V{O1Z471J zJYTm-NQ?OXx^FYK5xeK9^CFT-O}Hy7aoLlFSy@D+$W$WybZV{INRmKKk9~%D5~zZC zROGU>f^vNI;rz|Z`T5kDX$%*pa~CAOzwX~%@0V4(%6-`P_YKHZrRA#xLqP(>B;k;f}HTQ^YDwLR6#Cx>f5ZLZt(v88y#I3Pt`oy6ceQyH&!9PkYt)GY( z;X*;oaLcf&7CD&-#2E!q%_C@82qcnHwr1zbO^>iSmo5Zqs>1Av-C}w);ipp*=B&n` z2ooZ6n_i&>y>U~X7IcsnQ&k?*AHykWZH$CjvT$82l&K3dNExE-vb5d&_Sm;ETagJf z&4Y-a&wZP|TSSB~MZ{yw0Gdh(FfF1*^^{qew#eEjRk$~l0<$%#2`5T|4OC#1XCCZN zP-#+?nV5y3N(}mR?$w}rI}*P&U>YsHsYp@2ld&i1Yw$r_KA^?-AbCOSsSNI=7oVeV`I4|IY3GcN&WS zVZ#k(Z6ZC~+-IR!=X``sfC80K9dsyt6NUY)mJ|`Qh%{yjA9L(slMyz?+(uVkRm<+g z;I%1A3?Eq@_^u)%(`s9;A_hcMEda`7LI%w9v`AM*(y(A6Wh(FR(j+r8-;+2qJz^Wv zJw)4q3@21$KQs12j4Ru;a9@={d}Oi^ox60Q&yW3WoAnC{QxghgWN@kI-Rg@MnZu&^ zYtzH6)P9J_Io<Nf=3S>MBHUkMWpRwbApbWyb4$yp7qLd^|56LCAB{%hJvA^)?6@ zz_2(s_3$tEeH(Tpr+N-^kJzW(#stx#%0$EbU~dprCN&`*_p95mu`_d9F31?;nwi8> zww{9F6W)8$$1?g4_)(TF%gQ1V4&u6S)u0N@AgkhsiJ5{q!v~{*bhu~uvM3^KTDS?b zEIr+}eWRq_)W)EUrkcn(vuRm1G9tjNL@wMiEbthyv|s`wh&YnmLxoOVH*@z~guQSf z!1uTP)LUb^?Q>YDaP2o{AzdsY%#=t)_Tg{a5aC6Y0Ob^7;k3v(?cDV~{ISndZ=9GO z*Ubv)U5@<-0uaEq&DU+~!mILQI1^62%?Jj{DX~Ws&t-Vdu#Y0;p|OarLW$Sg0MVzX zzVG&{>tmZCM5oS+%5JgSY{G<`?)PDqUVF$dzTB7#@I}MY-KNFbSX3VSjKtdXK5e)W zDbhFd^jw!t*V|)kx5xeT{L#k-%GUek!%w&E7Cx$q!tazr2X7a@gW~-6n~*6>({@sA z;WWY`L&ylFAv8)o{A(Ezo*Ak_B4%zjRY*iUf`~*9Q&OV%Qj;s{D^e*MD+vlDs0?Nb zfC9&jr1DOxRZLuAOLZC9r#*%(y=hZ3tKnA@p6*3BwahsjNEHSjam<-HGR-qG=k6lh zM3yGQ<2LN6>t;R;=dK`Z!yfzWO{S;tF{79s(~qLtJX_=EWeH%0ClL|3$FMwgQRcuz zz$ra)l$zUlzMuMIx(8J7v^Ic$`F5QiT}q2{oIBIQEtn{fDnvj;3=eodom*2urn#HP zaA%<utNg>3P+DQk!lA%c-=9Q3xnz zdUx8tL#2<^^WX3u{c7eHP)KSu#`*!4pXs;WMK+K+~L=8dGK@FfBZBSsEuE zyAe@W5jk%Dz~PWLv$w~%?b9MyDhzsV)AnJz`wTBgLnMTSh_^9kB(t2FmbZ1c*vxnH zeVTi$i+nnFskwxbM|{5TV_KaiD%6w&*em{>DL}W)9%E`>Ch?bTtW5~?{dF5=O;{Nx zl?aUKI8ulzE1ig`Hz|5x2~W*!n>Njfh=up*w|$!DX8z09`)%`Yp3kQ)vz$^*;L({^ zAn;99Ey;alf z-AV;ce#Du=BbKIX=V>|2eS|Pu`flEore3RSEzRE|7~BFlVS zTcsm5mCX;nj0LE&6FtU^8tD>|RaRHVBC>@OLO>OrZ0;aD_Bn z(t|vZ2w^(4c3B%`e%`jV>+{-gY-2iS!lKOZC4dA_b>cDf5Yz)(Rfos*F+Fl^oQ?=U zu$yO6SM|tYhQxVk+pxzlBt*Hg=$Rk{tt=l8AtuU#rki=e8&DU^i26nH=6w zl`QVjw8%(RAz+`ztWCHBK5a%mugfU%vd=KV)qP z4;#eXmy>9##|hFovt}I3b*h$%yv_yw?_WSqAHMGE*~ebJDIY^}vM5tdO99i7`<>>n z2&sMz5fG)ki13VL5n-g;j2vS$B}y@m87WBNlIK-VJCmuau1!Ih(~H#1M<6%Jp=il{ z+6=5pO$0>du{Jreet+GWxi=jnhMT(+;bmQxCXX>9aca7#+=mTM^Vys9CQbP<{jpnb z>=|zH@qF@(Sy@aG!}8EbAd6Ypm`PZLi+0>q6ZGZ2w^LtL_K_mo1l#a2otYX)^*BlE zj{5p~ll0l-x?6Ey+(SiFd7svsKAoDmYp`}k^8DeCK79IH+|{Q! zNJZb5NBs8|(t3IRs`b;fnGtO{_4DN*XrTplWg*sJiU@>9vXUy3XE+_&{><>geI*O= z9Q)WtM4FW@A5UxhLBzD#oYR$v1)e!9u8-k~=X0-EIAm58Wo7_s$Xwg$^w=gh=2fM4 z?#jb*ccaXuE0DvCfXmV=y?eJBoEbt~# zcsdc>mZyF0fAO#X1+n~tfBetB{OVu*#lQI9f2EIc{`lR?Km0rY)BpA9@-!Z=NKaB0 zE$YNye~_uDwDr8Kr`z?5gi#oL%iv%oUX!$}8q|nlG6icVVZu%o{m$u`5Mogf3aVVQ zLpwl$l*q2qL~7tgz?db!LI!%%VP2?4vy99pEKCM&n!RatEcWRtHFKafbP-;JKl|R9 zFRL=sbdSiTNsUUF_+{gDBSRU)>CYSWv~IZY)~EGz7CUSEIluU|iX+FpNS zbAI{!>;LM%{6GBq=l}M@AO9oo>$m^v|8o1)FaERt#XmTmpa0AM>YxA1FTegD{m=hb z&!7HuY_FL?#6O5%|C%MF?lU5!HM4q0^o!rQSvztDoe7@ z!9vXJ2bhWjIV_frl7wpGr7d?FkKHnJY5Ke_yG<)TS43T#6TwVK2=cUai@0s`wDwci z>d5tXECQv2Qn0XL&p;h&|PxoY^$8I(5!8qg=KCq} z<%^GG2jD(-+dO1>ez{zpFHc=W+rlC^fBNu8e}=Smk)MA3^-q5KzdW`4JOA-Nd->CU z{OAAA|I^l%kIz5-{*C3_zWMwA*?)Zf&A?xBpZ(K}w^G$bybsR)iewSL zRV4ns|M7o*e*S8G`s$lM`A4VAC;R-be*Wi=h~P$vR6*syk!U}Cbp3caKbT(EQdf6RRa(}%pP$Yb7`%Ge0#lLzW&?)jd4GNUqkpDbm~WjHsJwH9atm|rWIeqx!zMQU~f6c_p`6FqIFan1Se)_i)q?zt9 zBP*?ql{@p&6u>rox_4nMkW6B@%Q3-0MLdn^Du>9c(g=i!0VZ^&#-*1y>T7yu5eq;< z4Bsl{g=lw2h7d$Gi-XyKJQCXXVX3l>*+du!KZ0Nmln`JZ=D{EfOn3JPlx!JH5Qa0E zqc5lB;~&3XUwyodVJzJ}6Uhn6Y|KTWyAQwaPK>7X`EC(7H#W~{n4afFx=2O|IU*9J z)Ns#jnrNSnxBLCi{>lH~AN&{p+wtYskNaC&PEViyc;9YsU%vgLzxzM=@RPqKtZq~K z()vQgVf#G4w5LyfIj`qukZiXvKIi4bH^MZ=K7Gz)7CvC+Yf*-^)~)v;~c?%1|F_Rar%=R5DdH}2D| zF{)}+t>2oSv#M6D5Cu8$Pe^!35D*ZbBqcyfALp)*JrM!w;|Ono-tuumw3Ybo00DtT z{?866sYG@O0ReMsp`ziaAuGde1h%F(Fa{f%(7RgOexM;Bcm-T-4U8;J9ElB0%q(p9 zfETTuKw=AHKA<|AETgQgh>5v{guA_ovb&s$k-Mc4moZR)pP1K``-6bBiK79rtF@Jl z1Gg(5@LzPfKidD?W&jfZ3*u@92^Exx%W{R?Pp^dFq9lfBiym>U~0m{^%u zo7gxyd|;XWgS9mWJAxg|!T&d;|I__{V(?*JS=s;a_+QFmZT%k>4vwPEA8P#DApc9W zgNmE234@Y}1K7#l$VAlnLrl_tw6WzDu{SYr1ly~C!B+q6EQS9TnV6Z4o`sl7*1*WZ z<{u@f|ED1)AOlAeKHxuoqhsWvV`f%iV&rD~a2+chBP%x}<9|VA!NwM*ZvTOP^f7<< zSA~&_o8<$_M90YXe?UJ1$JoHp;QtkDY{YE}wzoF;P}#!Tz|4ff*2WA-{2xPdi-4`b z_8*Ktq+|J)6tc41k~R*G1~x_}k{~|dht~8K7RKD1rY5Y6Y-}8KtcD!ybgb-#taJvf zj0SWj#>Om0hD;nx#s;SUJst!$a{9-&|2^LL|L1sldy9|!GO+sJrt?qM{Sy@25*7|0 z?sEHgPAHq${kvslLHw^c;5IP&C%*ZBM*le0#2EPR+ZO-Z7Wgl+F6Jg5ME@V${a-K# zu&JYqfxU^4*@w0MKLixRhxiQt&0Ad8bg`KnD~W;j;@|=_`QH*CpqhW zgEP6w#A(M*C#>>YA{&p-eXPJ?$ zCSFrFVp_BwFM=G^2Mih+z9#mbaAb9QSfEw#zg^~L#%(Mn|BH@2 z){i5s@~kqKzFX7ANk6Swr@MNJL9TqBFR=kY;}U5d53s4w&Zg$R(hUOzu#OA7C6`d3s`NBl#VEv{N476svYQd4efrHqEDzAMrdqt!9=o%#G3pL-W5{2nV$I^zr+&) zkm!QI$SEYluxc-S^wluWs!ODfSVoaAwFwYsd(@GfK*HvW%<)T#%H&d| zov4?4%})~KgJlYd%-tShb_Gi%+xH!#^iK4NzYfL{WF+510K|yo^tXJNGPXzL5EoE4 z%c~2vJm$ik){^%LRX7}NbDq&JUbEC%Eh*F)$qh5~ zZ+>ctbOxZT{(2imO5dXUD<6m@kj!A3D4g+0Q5hwv5BK1>a*@8~<`)m=kEyw>n??6n zRqbum*R=eIZD`SWGYhsQ(O?Lrs(d8RxgXGCNq@*VtU<%hF>~K+R^?jx5$?0gIE(9z z(PH2vXbyj<7d)qK)S(-q;TC=G^Zl%tTMMuB*T%ZSr1a6&=0cOG@LHn}C1?-F#k-Bq zlmEu}FAR0w0)AmP;ms|N^a6LDMfB)deNi&eygPb$8i`P~3gRSnM6_x5zs(j21-6X~~kS<2j`)L(neHnFJSUUMW+je4{hW@6Zj23^Kxtm1i z>poFjP(D#4!LtoAGt9$CXhjfv9O8Mk;^$1{APOee&ot*aJ%C9NA67GFS7;Z1SNpM zEW1`3A~eER>ezt_-n(_Rfp8ZQ=`?mn(FnFGKt&T{hOi7N85W3Qkk)fx7-Ji^Nvc=^ zV03p3$U_L|9<|e&VO`5mzO`0Fm;fRFu2q)#5|g;oqADk9Nx7Eih6KY^qN`?uiV-|- zvN`m1UtEjh=OR(=y(L{~DKhP93fluoqP(8Q4LjJq92k8|+R z4FRswl2t)_BrQyPmw_2xQV7ZjFJwaZ?MSV*W?4}K;8V(pV(YSHVwr_Tzoo{IIsoyQ zP~3c6!Q&oTv|o&CuibTf{e{Gfh&Wy)4r1gjmn>V11YBM9@e0nIgEUw0FqmacNcS-9 z(&VhWO1$iqDZ?EhaePtezN`v)F5?@CUhCt_mO|EAOLkW#Y4M9fN!s+@+;RpV6HehK(W^^-cTzF2c~1AzD!>>BhB6NCFU{P+b?K;9@yT$YL6!+? z`xmgA{z&PwwVoDD>uVl?m*ydaC@5^dJ49cW+oN(iX_gij9t9EOd>lh2RKG1CLrc5a z3tkJ`JK`F!c)n z>- zzC7jrYbrD;3kG$L8;@CQQ+)Zh@fKb&jMQ%sfU^p??&LjvI;G?1F{*?(sO$83_V>Pw zV)7&icfg{xnTH^9G}a#r!R5Xv)*kn6mby(LMWxoYR<}JY>_>3N9My<)1ZgY44F~J0 z#hn(Im>tq(?6Wg)N|gxsY=_z@#1JfR;xNkz`WnpwE5uT}&cgL6w|R1q)bickfj_c4 zbfrqG$tS@TyMtIlyM(`ld0c@iE|elL=sRsWL6o=vZTqy)c=>(n9_PK7p_B-KORVkg zse}Hsw57aiNkoF2LsGdX6hYL-COXhEaj*q>gnIedwW)nIzNTTHCTYbYDUQcRGwr!K zUX8WPh`C*5*f-;V&Iu#S1ALAyNzdwN=&$Pwn*yUdcHE&g)M13u?>a!XPr>@G&r|fiSej$gJ)g;l_Uz3z_9+XXp3s zY^@4)+a%2|oYN<*TspLcvqqZc9M$M`lakfJBfMhYMcC>0b}b^Q2=SVCsHS~NClF)N z8|}(SzWt4kEBfOJ!Sbdz6By`vbXR=qB_Z390Vm%c}e>8@!TnIcFW?8 zAUQE)@j&t}=?!E~D>vv-0+kNRo+v*^9T7aX$*8Y9ZW(#qdVPyixyX&mF8e1rL0QUZWLfjZ#?Y+ZNcgy^VL)5Q zh`~an+=eBjijS01#$uKo;iou}U-6xTPTV3X&2-cuEL5IL)k@J2^$DX`&3e)%`(9ay zK54T3#G_4lt(!krvu0TsSiRyGLH3aH$V%Sw({?EdnPWg!{YJ59Ziej-eK@6Hdx~@S zi#eJx6tZi^`*Rp;?Ufx%r_``C~Q#byZq&h@XY9&j zqW35U@2fq#lM_NdSQfdd{`N*r74I)%`?TbmX}GCmJgY@p3o?cCdObv+Rt8O;m=4;9 zD2K4eIzvsWaflZrDys-rMT4eIiW;!1w=a%qf@(nvza}`77J>9776sV1ES-m=D~I{l zp~+OuXqK)>f@Fs0nra5?)6_*T)(vY5ImT(V$%t(Pr+h zNG~lO2^rbU`kIjGagUp`*Dv2HK3)`U<20o4KUaV%Wb6;;Z_U{$dGfq!s<0N&5hiKK z6@Z7YXJ>0%B+%4A%|@FiZ<@&o5Uew#gB}JUgb_KOP(o}h-2S?aRfqDmHJMU6uFS7} zszS&1a31N4TyMJ3wT4dIXODV1w~(J-dNH|K)-63K*$X)(SGyA#{o{rpoqV#9%+hl= z^!a}1%%beiV~4PKWL!)%^&Yx~<66%#^S?UYKlqJyUc>KsUxQa%h?dt{-5qM*wp^Yx#*4B!fQ*!-O23HYC({0zz)9&6;W;$LCPAk1u%ZpN z*O6vWDK5svZsc0xmODwF)J=PYu_70Z{ZSN{XY$LmKz|uV+Qs22ovEP2-jH^_A4OPM zXP#}(O<-F{HmhO=-V;H+%CBAg+K2N{x0TLzMkB6OED-&WV2js8AhKPG_RBcmp$bIV z`CQp|aCw@?eN{8z@|D=cuxg2q&G8r^F$cA3ves8+T>A-{`lUb1cyH@;s@fFiI#hqy z=8<$P26&DtH4dgn=<#eZ@is#^1TMVqj$cM+o(SmW>r>h427x3{E`<~ zeTCrPe%$+8QZLCzzL664OufxB78UJf?HR)=SL`TJ3OBw6>$vsjz?5A?H}GI{{tv;* zz}|$lGa5+<8Iuy+_PJ|^PJO(UF@EBeYtbJ(t~8FYjG_Fa6C289H!Bwp9y2iRax?AE zsdfdoN5;3ei_NRtn-|rm?UTK|73}MlirPd+gifaou@)*3sK|l&?Ey6r0x3e2Wsm%g z?*cBP(go(nCw`Jjrr-aFPTHp4=RiEb>6DRUqg9%g{!TLz$|0@}=`_CXV>T4nR5%$> zhC-V*gBFQ|gk*p*VoV*|=TMVhQ5%$K{u&U|q|l%bsUBm>@4SJrLOcJM)A+?RZqI&- ztQz?j?;mVeb=JBs2FLuaO97@R_wJH?VGWvsZA1ofqwB`XhXB|ffAVL*Yb5Iv(98SNQO6x^X0p%1VV2w z&!?phJ`P6~M4BqaR)57e0gD7?|*VXaUH-A!6`CXTIv9}_RhOjQv@CK+{X;CGvO|sG)OS)EM$Vo7}3(K+)Ol)t}B^%Q3GV8k#le8pvj{-cw!*&t6U#CiLEG z23u^DXX+YUF1)Xj^zgx%D=l&3d4_EJit7q0R~^wEytQ|&X;C-#-h~3M<#+E-7xilP zC&R*2sdeRF_nP)v>wkqUk@kM*@VuQ5an(K7-$+=`kyZA-tye!& z${wIQa%MM-oMn-Tpzdq##Pd{h%j}ARacp}}-x1udS5DOXt$Y-~6qIC}Z3D!%Csvap z_a`IPkNy-H+%AEFNIh{`9h|74`N@fmlL%+*G#9q8!H) z17KoZKz&C~JH%IszY-DcLEmN>Rbu4ea)_C65d3lIe`w+q&N|D8*AE;2}|&GN#F^<*0BiJ{>@J?+h=OMB<|M8M-A%)35( zCq^jPyrPP|K#WsZ<5frBmQO;AfTS`Ea^CA8QD0HO>kyq1kH^wU)69;c| zNlDI!scKd|_)M+j$Rce4@0}~7Xm7*bcYX`tW4#yS*CTm<5wA-H0XLOQ-sp|@wcE+J z*_E%&KI8&zI(OqK$vyzXT@24liSiI}RI^3dhv$A9GwfaxbSdmECkk$Dl6}G(f*I*z za1(7Xlu{2X)nbtqQq&gmB{B6tvSLgZMSdKJWX=N8uMsosVcv--=RIhRZ8#zfPS}|I z2TTCEvn>omv@yaKQy+b)fD`+X=Fy-UzV@dykwEi{`O6mgYTLrog)=-zz`NbP^*9+vtk<&ZKwCC8(}jFQT1tqv>@1MvT^a`x%E_0(MN0(%a(1YdGuH4u_XQ<1(fIQ@bVN`Rt}0 z?6UKCH@6Y*;+-m-${Soa>aIGXmWQ6o210FrJ59>k@Os;6S(kBPR|U7H?eoOmfgD>abWtJ88UqIx^cxihp&a-*{e+yZCu`@;=xq;QltJhoXV%8yLex z5-Uv%_XGim)@NkhL_tOiDVIRg@E3QyI+ym3pG(VUfS0$RAFQkqXhV@DWczuCwKSS1 zb4Uk-M&!B@`5LK+?PQIWtz+b?SH&A#Ev>=cq|HuOLV_OAv{)AX__`vn$MNpO)y~@l zQ_J`j1nZ+1Iw)Aq-EsAn)$ZBMxAAk~uS>ml|Nhd}Sy0e7>Lf;K_WD+3=V^j#OgAjM z;!8{>r3_S6AIfDsd{PrBH3Aj*-x!u%d`g@b-tKTXG*9O7;&C0hU^r9J^yq|MpCvyy z5^iAd5aa;_uE;)CVDxW5X8XaS;F|40W`RG;w)GixGK!6iq_qAS#n$f%Mnsn*%$wi< zFNs7L1=k#t&UoHfGdtMW>puF;O(ot`#bGAp5Qtb}p_ajEp0v|e;C3EwZF?5^#{7kx z`m^`W#^^%s>-a(SvPK36*n14y`;U63>~Q?AvRI%J48pBXRh-UdbR>dn*r5+PDNf{X z4Sgp)i}N)+nxIOTC*I??{wpZ1VnU2Tgc#d1k;@-*2Xtz#N|RH$kJuXYe0pvap4qbe zr*uT4)U(b9_KKHFc~LPzx|Kn7e5I<41}eD8iB$uPfng{>uEmUONGTX95={ZeiVVV{0>*nPle1o})O#0hlog6>9Vgd&q6?jcKu(JFE|C9NxV<(;S~6~X3*zhHEF?G z;y?3cx~{!cBASmAi42|O3kjBG9}n@Z1i-R}XP(0C68|#9WVA-=nL2UOV_^g)A1YL; zkOhBDCuw(kk$75cQUflaySVHfJ6+d>O!~@ygfXHz_62F=f(g50l2}t zom|c8LFiB*Vgy-$Z)Hw9;XFKDv&a^i)R2iEIpcF-BF!!w9;+&U(E0P8!fIJ23WQJN>YWbca(E74LXZy%JPb1;=4>>r zP|wi$mOm0l$=VcO31`IgHs=ml>DlmyfOp$lu6pZW;aWs6nwx&@a^&IQ?l2vqj$}6l zD=xkPM8ZPIvoC3O^n#+^?}$yW@wmQH*#!Sxp($WG6P$T+uljwSRrnOT5RwMS2qF3l zOS?rKgojTeVM85er=rKorygqqmCAYM`e^YB@kX6kT8!{7TcAcx$?(wfoQmns!bTQv z>yqWq0|mLC}yAY{6jSkX|Je;K^Or>yKM__h~4!f=N8YGX(o{XyDNUhFd1y@C4Ho{=;plJVhU0ynoNd<0s0ylN4% zqUs)3g1QYmes2mD0y1}mE>7gRZew0;;pUDUKfHI;+COF9(TLv`kAl)Ec_yy5Ql<1i zSsL&!+8GHDJ!u*#a6y^DNVHUfqN;pa*8q~7Jr`HjaOZj)gxy_&m;o@Q;_$0{YO8b) zwZng1?>jg6mw8{wLI+kj4w5QuMv4n?vMH;{w`u;OV)(9S_py^;D?vws>V_}s7-ZpQ zFpKtOt^{kptv6?lVfP7ouGV5mgAmA?+#Ls0TtVrng))+M&XwOLx@oiDujW)Y-`b!; zKp0g(pG8H9iyz#-a3iWEW_K$Pe39{tM0s%>bDK_>#6iSd4$*m%2r0h|5P+CEFR0al z7sLiN>CvSn!^_*wWeg1R0%2(aM}vA!>hifq=>Dy17n{F@SyV_Mv8FRnc~G&Lbx&@n zWYI=U;|BA%P>SdYgqXzHmtR`ms&1s2E5lyG@)481T)^5u{h+YiyD&KqU5?o=qEo-nArK&>%xk z_Af@_{?17jNt40pKOUSjMlwHzAwwlx=9+QZzxc=DE`y;UfG-`D{Uo(0Ap5WpnmrKUz1PdIMq!Xfe&1^*plR0 zoKM%KxAK*zCk~BE$`V(^XDEfC!nmeezErU=5*YM0f5^1^bn1QAPft|^n~FVvmO{A+ z->1kbj7Mf_#~<|DelDSQwz+v|ye_^XZ;P+=&QZ!QZ@jf$3%q?M8jY_E#qaz94=we_ zG$XQXF^u+jiwSp4Wa4jAg3MX?XF5y9opvDUMZJH#_>5_xg^+|{Zo2?M$rAB$d1vLV zr`E*$w;XYQ792SZe-d8e37L|IS2D)n)3nu!*G_?sw`Z=v{AK%zEYILOy7%F)r`*Ww zs_}|jrJH4ZBG^K4iz;@#mDBT8o

m6qsA|HF%b;=+r{-%gsGeH{~O0DrCZj5mkf+ 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 literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/DTI-FA-Brain.png b/platform/ui/assets/images/DTI-FA-Brain.png new file mode 100644 index 0000000000000000000000000000000000000000..9643546223c7745eaa551b3bb5409cb272271a4f GIT binary patch literal 38170 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

7bvdf8 z5a|AuJfBzcTNC!{mktcqk#!5*6-FVgL!bafr$EYvUcnuk|4Z7^@Gro94K2BK12u>$ zJ04z>S76l0lu^TGqI}?jvI2`+J z6!z;C@9V66EY=s$pgq#WwfC?|fPpC7E>d$+ueoh6bb353KuzW%s-g~O4=3C08X&-q zR^zI#oCI9Db}y32UE}QgsA}e+4BfJ47ZL2>w(MIXarKGdHNx>PmEZb6zh1ct$G980 zPISFoqJF*is#73O$TWSUWuWetm4_g%1?egzkq!Nf-0Q&1R~h81x>n~Ei>SF}I-wEM zXl|ArE+SnS1(v^{h{{)I{P_#uQyjoRNB?U7 zK0A6ScesmmJxx34S8u0YeRPjGyoNB`fi+zS?I;qFjZQ!jb|aEO3A>~xarF(K)gFGy z1qS?=gh>1^{@~Tfq@5mt*v;4O5ojusBnZ{aG8z|;eUh&m+9!e@IN4{AyXX5^-}mY< z3;LbOg%AkYv+8zrcmnWi>h{Gk)z7`I-J<8mXn=mM{Qst7lUACYgQNfe002ovPDHLk FV1hl2=>`A* literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/MR-Angio.png b/platform/ui/assets/images/MR-Angio.png new file mode 100644 index 0000000000000000000000000000000000000000..f54d6fa5a757cc7b612fd0827d456165f724c2d2 GIT binary patch literal 36759 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 literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/MR-Default.png b/platform/ui/assets/images/MR-Default.png new file mode 100644 index 0000000000000000000000000000000000000000..f8bf302c1c975cbd405713ca98a456911177c888 GIT binary patch literal 43410 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 N002ovPDHLkV1ldi?+yR} literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/MR-T2-Brain.png b/platform/ui/assets/images/MR-T2-Brain.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1f7a550f4f1518f5f4b12bafe735e5c5b46877 GIT binary patch literal 42997 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 AdH?_b literal 0 HcmV?d00001 diff --git a/platform/ui/assets/images/VolumeRendering.png b/platform/ui/assets/images/VolumeRendering.png new file mode 100644 index 0000000000000000000000000000000000000000..8d7313ea21e26c2ecac0b140ec39cccac748fd54 GIT binary patch literal 1506 zcmV<81s(c{P)004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00006 zVoOIv0RI600RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_00iVoL_t(I%XO8@Z=7cp z#((eoUB>gx&5k|3CAA&ZwbR^OR8&+P2_i@&P!`Yy3-%Rk5Ptw`Sg;3)4eFvGu>iy( zLLw+tEL#*O3bB*G6zAgDu|1diGUNGXzT5jAHZ28;&+?q}{G_8tdXD1cQdh5D{qfsX zd3UDl4~Lm+KCDNzdf)uK-|xS-y1LpwQTV@&8#iuzV^oJfSr~FJjRu*MD{1_R0CSuW zzl`Xlj%>$Xd~aWF_tWgBw{PFR^Ev31D_7iZx9gvKZTc7Iyy%@#C(NIDt)Ps57SDT0 zf1^X1TC}UkpUT0|S+o<<+t^{R{o~%fPTldTcQJDRJ@&UiCDE z`bXyPS^oX;@$tx2N>vn&3|#sW(b@_|J3PG`a=fs}bAO(iuAssk{=f{+bdz)4XH*ZL zGa8gor^hMJ4-q}yL;)i5hVT1{Dsy50^d8pP*=rMbgqWCI z!SMRD<~y$saB0L+@Sz>GdGT-^V=TdVfEYujG)gH8pp{a_XeBlUM{9!7Jk5H8PTb?5 z*TxA73>FoYQw3W6h~|EmR-?(_*dQp-t_GzLD_HpLVe#Xh$*q>I{v8 zlzOAVlZ_XAp{lvRwoa}TkT2(%92{q0cN3K=`t=x-WuS!rJl~3lXip>7lI$leZ2X3D z*kbnb1?Dc#Aqdm6Q_NmG$6=Hq|F}c3*TxtFfS3&IXHeH#+e^f@a)a(v7NsOf#_;Ap z`MTYvRrT1aF5s66I6;A(txcjwA23?Vk*f@X2W~;p>xKM{%C?9!wAPt3JUo2-v0MIq z6eiysQFb_}bDmP}4gW?F00v%2<7g0Xzk8>?XbTxEb_;4vH&nYp+? zX(*5B#k6VY3Y~$6@4O~x%LToLTf!EB4gDY z-~X~3ePw8DQrSY8`}KopqZ9urP18S%NCF&KYnv-8D|b$WehTh(yJg35MwL?2j^ljy zqMv+g*D1F4d+`U>+WR8X6_LjB^70@5U-G+3eJ=cCpmpuqwN4m@p@_V-LqxW%wVTG6n%4TGD2nz@(*6t3=ccjcjr&Ic z001R)MObuXVRU6WV{&C-bY%cCFflbPFgPtRHB>P)Ix#RhFf%PMG&(Raw&PN30000b zbVXQnWMOn=I&E)cX=Zr Date: Tue, 2 Apr 2024 13:46:18 +0000 Subject: [PATCH 209/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 11 ++++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 11 ++++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 284 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb48cac41..ce703ae68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 36e1501e1..9883f158c 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 40068010e..ce228bd44 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index c0859a812..8f25f08ee 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 85b2f9d03..d15ef7dc0 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 9f947409a..0c1b9ca1e 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index dbec493e9..edd230d50 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 898c39c79..4f6a5cfb1 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 6c6bda9e1..d5e446e32 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 59fce6d4e..14586acdf 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/extensions/default/package.json b/extensions/default/package.json index a9a8818fc..020a0d1aa 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 473ca5c4c..d6d3a3a46 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 5aa77b6f8..f1acb4c3e 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 5dceef247..7feffdd0c 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8da4c548b..3905e5143 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 043f4e746..b66bd3cc0 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index b9c530574..239a7d3ce 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 252961154..8bfbca4c7 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index e89154719..1a530ee8f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.66", + "@ohif/ui": "3.8.0-beta.67", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 7cf5490e8..3564269d9 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 0fcaef70d..6c1499026 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index b89be971c..e50f1ce2c 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index c83ace9a1..fa6779edc 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index a7c3546cf..163d03851 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 62522834e..68fc440c9 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 66402fd6d..dbe6eeba1 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 06037001d..3958f2c65 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 08d24c843..1f84eb2d7 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index ed2eb61a9..aabea7d55 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 35e0d8199..806d7ae3d 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index b29b300ec..2641d7ffb 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 3bec3b25c..52bd795c8 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index e1253f709..37623e693 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 76bd314c8..12b3812d8 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index f0184fe2a..13183e3e6 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 968dd34d8..6455d9d59 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 88da1a255..36ed7cc5b 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/platform/app/package.json b/platform/app/package.json index f2ae6998d..a2f2c134c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.66", - "@ohif/extension-cornerstone": "3.8.0-beta.66", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.66", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.66", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.66", - "@ohif/extension-default": "3.8.0-beta.66", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.66", - "@ohif/extension-dicom-pdf": "3.8.0-beta.66", - "@ohif/extension-dicom-video": "3.8.0-beta.66", - "@ohif/extension-test": "3.8.0-beta.66", - "@ohif/i18n": "3.8.0-beta.66", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.66", - "@ohif/mode-longitudinal": "3.8.0-beta.66", - "@ohif/mode-microscopy": "3.8.0-beta.66", - "@ohif/mode-test": "3.8.0-beta.66", - "@ohif/ui": "3.8.0-beta.66", + "@ohif/core": "3.8.0-beta.67", + "@ohif/extension-cornerstone": "3.8.0-beta.67", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.67", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.67", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", + "@ohif/extension-default": "3.8.0-beta.67", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.67", + "@ohif/extension-dicom-pdf": "3.8.0-beta.67", + "@ohif/extension-dicom-video": "3.8.0-beta.67", + "@ohif/extension-test": "3.8.0-beta.67", + "@ohif/i18n": "3.8.0-beta.67", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.67", + "@ohif/mode-longitudinal": "3.8.0-beta.67", + "@ohif/mode-microscopy": "3.8.0-beta.67", + "@ohif/mode-test": "3.8.0-beta.67", + "@ohif/ui": "3.8.0-beta.67", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8f949cc6e..d58760336 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 55b91015c..33b599333 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index e36ca01b4..6df4c794f 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/platform/core/package.json b/platform/core/package.json index 8a6dc7b2e..11e73f4dd 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index f014bcf4a..80658f1c9 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index ae285638e..b10b64802 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 148d423e7..22bdc4974 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 3d938b5ec..c9bd5dde4 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index f6d18f651..1e11ef026 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) + + +### Features + +* **ViewportActionMenu:** window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering ([#3963](https://github.com/OHIF/Viewers/issues/3963)) ([b7f90e3](https://github.com/OHIF/Viewers/commit/b7f90e3951845396f99b69f0a74fc56b2ffeada1)) + + + + + # [3.8.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.65...v3.8.0-beta.66) (2024-03-28) diff --git a/platform/ui/package.json b/platform/ui/package.json index c1c951bf2..9a3d96f1a 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.66", + "version": "3.8.0-beta.67", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 9f3235ff096636aafa88d8a42859e8dc85d9036d Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Tue, 2 Apr 2024 23:33:04 -0400 Subject: [PATCH 210/289] feat(segmentation): Enhanced segmentation panel design for TMTV (#3988) Co-authored-by: Alireza --- .../src/commandsModule.ts | 6 +- .../src/getPanelModule.tsx | 11 + .../src/getToolbarModule.ts | 4 +- .../src/panels/PanelSegmentation.tsx | 123 +++--- .../src/types/segmentation.tsx | 4 + .../cornerstone/src/getToolbarModule.tsx | 12 +- .../SegmentationService.ts | 1 + .../SegmentationServiceTypes.ts | 2 + extensions/default/src/Toolbar/Toolbar.tsx | 13 +- extensions/tmtv/.webpack/webpack.prod.js | 7 + extensions/tmtv/src/Panels/PanelPetSUV.tsx | 174 ++++---- .../LegacyPanelROIThresholdSegmentation.tsx | 287 +++++++++++++ .../PanelROIThresholdSegmentation.tsx | 396 ++++++++++-------- .../ROIThresholdConfiguration.tsx | 10 +- .../callInputDialog.tsx | 62 +++ .../colorPickerDialog.css | 3 + .../colorPickerDialog.tsx | 58 +++ .../tmtv/src/Panels/RectangleROIOptions.tsx | 214 ++++++++++ extensions/tmtv/src/commandsModule.js | 21 +- extensions/tmtv/src/getPanelModule.tsx | 31 +- extensions/tmtv/src/getToolbarModule.tsx | 10 + extensions/tmtv/src/index.tsx | 2 + .../RectangleROIStartEndThreshold.js | 4 - modes/longitudinal/src/toolbarButtons.ts | 10 +- modes/segmentation/src/segmentationButtons.ts | 3 +- modes/segmentation/src/toolbarButtons.ts | 10 +- modes/tmtv/src/index.js | 2 +- modes/tmtv/src/toolbarButtons.js | 40 +- platform/app/public/html-templates/index.html | 5 +- .../services/ToolBarService/ToolbarService.ts | 19 +- .../platform/extensions/modules/toolbar.md | 99 +++++ platform/ui/src/assets/styles/styles.css | 6 +- .../AdvancedToolbox/ToolSettings.tsx | 4 + .../components/ButtonGroup/ButtonGroup.tsx | 13 +- .../ui/src/components/Dropdown/Dropdown.tsx | 49 ++- platform/ui/src/components/Input/Input.tsx | 3 + .../components/PanelSection/PanelSection.tsx | 1 - .../SegmentationGroupTable/AddSegmentRow.tsx | 33 +- .../SegmentationDropDownRow.tsx | 22 +- .../SegmentationGroupSegment.tsx | 188 +++++---- .../SegmentationGroupTable.tsx | 4 +- .../SegmentationGroupTableExpanded.tsx | 211 ++++++++++ .../SegmentationItem.tsx | 211 ++++++++++ .../SegmentationGroupTable/index.js | 3 +- .../ToolbarButton/ToolbarButton.tsx | 3 +- .../ui/src/components/Toolbox/Toolbox.tsx | 25 +- .../ui/src/components/Toolbox/ToolboxUI.tsx | 26 +- .../ui/src/components/Tooltip/Tooltip.tsx | 122 ++++-- platform/ui/src/components/index.js | 3 +- platform/ui/src/index.js | 1 + yarn.lock | 2 +- 51 files changed, 2001 insertions(+), 572 deletions(-) create mode 100644 extensions/cornerstone-dicom-seg/src/types/segmentation.tsx create mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/LegacyPanelROIThresholdSegmentation.tsx create mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/callInputDialog.tsx create mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css create mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx create mode 100644 extensions/tmtv/src/Panels/RectangleROIOptions.tsx create mode 100644 extensions/tmtv/src/getToolbarModule.tsx create mode 100644 platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTableExpanded.tsx create mode 100644 platform/ui/src/components/SegmentationGroupTable/SegmentationItem.tsx diff --git a/extensions/cornerstone-dicom-seg/src/commandsModule.ts b/extensions/cornerstone-dicom-seg/src/commandsModule.ts index c311e82aa..5bff8aeef 100644 --- a/extensions/cornerstone-dicom-seg/src/commandsModule.ts +++ b/extensions/cornerstone-dicom-seg/src/commandsModule.ts @@ -206,6 +206,9 @@ const commandsModule = ({ loadSegmentationDisplaySetsForViewport: async ({ viewportId, displaySets }) => { // Todo: handle adding more than one segmentation const displaySet = displaySets[0]; + const referencedDisplaySet = displaySetService.getDisplaySetByUID( + displaySet.referencedDisplaySetInstanceUID + ); updateViewportsForSegmentationRendering({ viewportId, @@ -221,7 +224,8 @@ const commandsModule = ({ const boundFn = segmentationService[serviceFunction].bind(segmentationService); const segmentationId = await boundFn(segDisplaySet, null, suppressEvents); - + const segmentation = segmentationService.getSegmentation(segmentationId); + segmentation.description = `S${referencedDisplaySet.SeriesNumber}: ${referencedDisplaySet.SeriesDescription}`; return segmentationId; }, }); diff --git a/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx b/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx index 9227502af..12331caee 100644 --- a/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx +++ b/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx @@ -3,6 +3,7 @@ import React from 'react'; import { useAppConfig } from '@state'; import { Toolbox } from '@ohif/ui'; import PanelSegmentation from './panels/PanelSegmentation'; +import { SegmentationPanelMode } from './types/segmentation'; const getPanelModule = ({ commandsManager, @@ -17,6 +18,9 @@ const getPanelModule = ({ const [appConfig] = useAppConfig(); const disableEditingForMode = customizationService.get('segmentation.disableEditing'); + const segmentationPanelMode = + customizationService.get('segmentation.segmentationPanelMode')?.value || + SegmentationPanelMode.Dropdown; return ( ); }; const wrappedPanelSegmentationWithTools = configuration => { + const [appConfig] = useAppConfig(); + const segmentationPanelMode = + customizationService.get('segmentation.segmentationPanelMode')?.value || + SegmentationPanelMode.Dropdown; + return ( <> diff --git a/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts b/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts index c334e98a5..19390d2ac 100644 --- a/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts +++ b/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts @@ -3,7 +3,7 @@ export function getToolbarModule({ commandsManager, servicesManager }) { return [ { name: 'evaluate.cornerstone.segmentation', - evaluate: ({ viewportId, button, toolNames }) => { + evaluate: ({ viewportId, button, toolNames, disabledText }) => { // Todo: we need to pass in the button section Id since we are kind of // forcing the button to have black background since initially // it is designed for the toolbox not the toolbar on top @@ -13,6 +13,7 @@ export function getToolbarModule({ commandsManager, servicesManager }) { return { disabled: true, className: '!text-common-bright !bg-black opacity-50', + disabledText: disabledText ?? 'No segmentations available', }; } @@ -28,6 +29,7 @@ export function getToolbarModule({ commandsManager, servicesManager }) { return { disabled: true, className: '!text-common-bright ohif-disabled', + disabledText: disabledText ?? 'Not available on the current viewport', }; } diff --git a/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx b/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx index ea1ab1de6..1a63ecd3a 100644 --- a/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx +++ b/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx @@ -1,12 +1,17 @@ import { createReportAsync } from '@ohif/extension-default'; import React, { useEffect, useState, useCallback } from 'react'; import PropTypes from 'prop-types'; -import { SegmentationGroupTable } from '@ohif/ui'; - +import { SegmentationGroupTable, SegmentationGroupTableExpanded } from '@ohif/ui'; +import { SegmentationPanelMode } from '../types/segmentation'; import callInputDialog from './callInputDialog'; import callColorPickerDialog from './colorPickerDialog'; import { useTranslation } from 'react-i18next'; +const components = { + [SegmentationPanelMode.Expanded]: SegmentationGroupTableExpanded, + [SegmentationPanelMode.Dropdown]: SegmentationGroupTable, +}; + export default function PanelSegmentation({ servicesManager, commandsManager, @@ -170,6 +175,22 @@ export default function PanelSegmentation({ const onToggleSegmentationVisibility = segmentationId => { segmentationService.toggleSegmentationVisibility(segmentationId); + const segmentation = segmentationService.getSegmentation(segmentationId); + const isVisible = segmentation.isVisible; + const segments = segmentation.segments; + + const toolGroupIds = getToolGroupIds(segmentationId); + + toolGroupIds.forEach(toolGroupId => { + segments.forEach((segment, segmentIndex) => { + segmentationService.setSegmentVisibility( + segmentationId, + segmentIndex, + isVisible, + toolGroupId + ); + }); + }); }; const _setSegmentationConfiguration = useCallback( @@ -221,59 +242,53 @@ export default function PanelSegmentation({ }); }; + const SegmentationGroupTableComponent = components[configuration?.segmentationPanelMode]; + return ( - <> -

- - _setSegmentationConfiguration(selectedSegmentationId, 'renderOutline', value) - } - setOutlineOpacityActive={value => - _setSegmentationConfiguration(selectedSegmentationId, 'outlineOpacity', value) - } - setRenderFill={value => - _setSegmentationConfiguration(selectedSegmentationId, 'renderFill', value) - } - setRenderInactiveSegmentations={value => - _setSegmentationConfiguration( - selectedSegmentationId, - 'renderInactiveSegmentations', - value - ) - } - setOutlineWidthActive={value => - _setSegmentationConfiguration(selectedSegmentationId, 'outlineWidthActive', value) - } - setFillAlpha={value => - _setSegmentationConfiguration(selectedSegmentationId, 'fillAlpha', value) - } - setFillAlphaInactive={value => - _setSegmentationConfiguration(selectedSegmentationId, 'fillAlphaInactive', value) - } - /> -
- + + _setSegmentationConfiguration(selectedSegmentationId, 'renderOutline', value) + } + setOutlineOpacityActive={value => + _setSegmentationConfiguration(selectedSegmentationId, 'outlineOpacity', value) + } + setRenderFill={value => + _setSegmentationConfiguration(selectedSegmentationId, 'renderFill', value) + } + setRenderInactiveSegmentations={value => + _setSegmentationConfiguration(selectedSegmentationId, 'renderInactiveSegmentations', value) + } + setOutlineWidthActive={value => + _setSegmentationConfiguration(selectedSegmentationId, 'outlineWidthActive', value) + } + setFillAlpha={value => + _setSegmentationConfiguration(selectedSegmentationId, 'fillAlpha', value) + } + setFillAlphaInactive={value => + _setSegmentationConfiguration(selectedSegmentationId, 'fillAlphaInactive', value) + } + /> ); } diff --git a/extensions/cornerstone-dicom-seg/src/types/segmentation.tsx b/extensions/cornerstone-dicom-seg/src/types/segmentation.tsx new file mode 100644 index 000000000..170c09ca4 --- /dev/null +++ b/extensions/cornerstone-dicom-seg/src/types/segmentation.tsx @@ -0,0 +1,4 @@ +export enum SegmentationPanelMode { + Expanded = 'expanded', + Dropdown = 'dropdown', +} diff --git a/extensions/cornerstone/src/getToolbarModule.tsx b/extensions/cornerstone/src/getToolbarModule.tsx index e6cbbe41b..807eeb4f3 100644 --- a/extensions/cornerstone/src/getToolbarModule.tsx +++ b/extensions/cornerstone/src/getToolbarModule.tsx @@ -21,7 +21,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { // enabled or not { name: 'evaluate.cornerstoneTool', - evaluate: ({ viewportId, button }) => { + evaluate: ({ viewportId, button, disabledText }) => { const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); if (!toolGroup) { @@ -34,6 +34,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { return { disabled: true, className: '!text-common-bright ohif-disabled', + disabledText: disabledText ?? 'Not available on the current viewport', }; } @@ -109,7 +110,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { }, { name: 'evaluate.cornerstoneTool.toggle', - evaluate: ({ viewportId, button }) => { + evaluate: ({ viewportId, button, disabledText }) => { const toolGroup = toolGroupService.getToolGroupForViewport(viewportId); if (!toolGroup) { @@ -121,6 +122,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { return { disabled: true, className: '!text-common-bright ohif-disabled', + disabledText: disabledText ?? 'Not available on the current viewport', }; } @@ -168,13 +170,14 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { }, { name: 'evaluate.not3D', - evaluate: ({ viewportId, button }) => { + evaluate: ({ viewportId, disabledText }) => { const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); if (viewport?.type === 'volume3d') { return { disabled: true, className: '!text-common-bright ohif-disabled', + disabledText: disabledText ?? 'Not available on the current viewport', }; } }, @@ -211,7 +214,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { }, { name: 'evaluate.mpr', - evaluate: ({ viewportId, button }) => { + evaluate: ({ viewportId, disabledText = 'Selected viewport is not reconstructable' }) => { const { protocol } = hangingProtocolService.getActiveProtocol(); const displaySetUIDs = viewportGridService.getDisplaySetsUIDsForViewport(viewportId); @@ -230,6 +233,7 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { return { disabled: true, className: '!text-common-bright ohif-disabled', + disabledText: disabledText ?? 'Not available on the current viewport', }; } diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts index c073f3f13..97428eb35 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts @@ -988,6 +988,7 @@ class SegmentationService extends PubSubService { referencedVolumeId: volumeId, // Todo: this is so ugly }, }, + description: `S${displaySet.SeriesNumber}: ${displaySet.SeriesDescription}`, }; this.addOrUpdateSegmentation(segmentation); diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts index 7262b0e6d..cb65154d2 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationServiceTypes.ts @@ -20,6 +20,8 @@ type Segment = { isVisible: boolean; // whether the segment is locked isLocked: boolean; + // display texts + displayText?: string[]; }; type Segmentation = { diff --git a/extensions/default/src/Toolbar/Toolbar.tsx b/extensions/default/src/Toolbar/Toolbar.tsx index 4852026e9..000a2b1da 100644 --- a/extensions/default/src/Toolbar/Toolbar.tsx +++ b/extensions/default/src/Toolbar/Toolbar.tsx @@ -21,8 +21,6 @@ export function Toolbar({ servicesManager }) { } const { id, Component, componentProps } = toolDef; - const { disabled } = componentProps; - const tool = ( ); - return disabled ? ( - -
{tool}
-
- ) : ( + return (
{ const commonConfig = webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY }); @@ -42,6 +45,10 @@ module.exports = (env, argv) => { new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1, }), + new MiniCssExtractPlugin({ + filename: `./dist/${outputName}.css`, + chunkFilename: `./dist/${outputName}.css`, + }), ], }); }; diff --git a/extensions/tmtv/src/Panels/PanelPetSUV.tsx b/extensions/tmtv/src/Panels/PanelPetSUV.tsx index 618ff051c..3252a08ac 100644 --- a/extensions/tmtv/src/Panels/PanelPetSUV.tsx +++ b/extensions/tmtv/src/Panels/PanelPetSUV.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; -import { Input, Button } from '@ohif/ui'; +import { PanelSection, Input, Button } from '@ohif/ui'; import { DicomMetadataStore, ServicesManager } from '@ohif/core'; import { useTranslation } from 'react-i18next'; @@ -126,84 +126,102 @@ export default function PanelPetSUV({ servicesManager, commandsManager }) { }, 0); } return ( -
- { -
-
- { - handleMetadataChange({ - PatientSex: e.target.value, - }); - }} - /> - { - handleMetadataChange({ - PatientWeight: e.target.value, - }); - }} - /> - { - handleMetadataChange({ - RadiopharmaceuticalInformationSequence: { - RadionuclideTotalDose: e.target.value, - }, - }); - }} - /> - { - handleMetadataChange({ - RadiopharmaceuticalInformationSequence: { - RadionuclideHalfLife: e.target.value, - }, - }); - }} - /> - { - handleMetadataChange({ - RadiopharmaceuticalInformationSequence: { - RadiopharmaceuticalStartTime: e.target.value, - }, - }); - }} - /> - {}} - /> - +
+
+ +
+
+ { + handleMetadataChange({ + PatientSex: e.target.value, + }); + }} + /> + kg} + labelClassName="text-[13px] font-inter text-white" + className="!m-0 !h-[26px] !w-[117px]" + value={metadata.PatientWeight || ''} + onChange={e => { + handleMetadataChange({ + PatientWeight: e.target.value, + }); + }} + /> + bq} + labelClassName="text-[13px] font-inter text-white" + className="!m-0 !h-[26px] !w-[117px]" + value={metadata.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose || ''} + onChange={e => { + handleMetadataChange({ + RadiopharmaceuticalInformationSequence: { + RadionuclideTotalDose: e.target.value, + }, + }); + }} + /> + s} + labelClassName="text-[13px] font-inter text-white" + className="!m-0 !h-[26px] !w-[117px]" + value={metadata.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife || ''} + onChange={e => { + handleMetadataChange({ + RadiopharmaceuticalInformationSequence: { + RadionuclideHalfLife: e.target.value, + }, + }); + }} + /> + s} + labelClassName="text-[13px] font-inter text-white" + className="!m-0 !h-[26px] !w-[117px]" + value={ + metadata.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime || '' + } + onChange={e => { + handleMetadataChange({ + RadiopharmaceuticalInformationSequence: { + RadiopharmaceuticalStartTime: e.target.value, + }, + }); + }} + /> + s} + labelClassName="text-[13px] font-inter text-white" + className="!m-0 !h-[26px] !w-[117px]" + value={metadata.SeriesTime || ''} + onChange={() => {}} + /> + +
-
- } + +
); } diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/LegacyPanelROIThresholdSegmentation.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/LegacyPanelROIThresholdSegmentation.tsx new file mode 100644 index 000000000..ed20412ca --- /dev/null +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/LegacyPanelROIThresholdSegmentation.tsx @@ -0,0 +1,287 @@ +import React, { useEffect, useState, useCallback, useReducer } from 'react'; +import PropTypes from 'prop-types'; +import { SegmentationTable, Button, Icon } from '@ohif/ui'; + +import { useTranslation } from 'react-i18next'; +import segmentationEditHandler from './segmentationEditHandler'; +import ExportReports from './ExportReports'; +import ROIThresholdConfiguration, { ROI_STAT } from './ROIThresholdConfiguration'; + +const LOWER_CT_THRESHOLD_DEFAULT = -1024; +const UPPER_CT_THRESHOLD_DEFAULT = 1024; +const LOWER_PT_THRESHOLD_DEFAULT = 2.5; +const UPPER_PT_THRESHOLD_DEFAULT = 100; +const WEIGHT_DEFAULT = 0.41; // a default weight for suv max often used in the literature +const DEFAULT_STRATEGY = ROI_STAT; + +function reducer(state, action) { + const { payload } = action; + const { strategy, ctLower, ctUpper, ptLower, ptUpper, weight } = payload; + + switch (action.type) { + case 'setStrategy': + return { + ...state, + strategy, + }; + case 'setThreshold': + return { + ...state, + ctLower: ctLower ? ctLower : state.ctLower, + ctUpper: ctUpper ? ctUpper : state.ctUpper, + ptLower: ptLower ? ptLower : state.ptLower, + ptUpper: ptUpper ? ptUpper : state.ptUpper, + }; + case 'setWeight': + return { + ...state, + weight, + }; + default: + return state; + } +} + +export default function LegacyPanelRoiThresholdSegmentation({ servicesManager, commandsManager }) { + const { segmentationService } = servicesManager.services; + + const { t } = useTranslation('PanelSUV'); + const [showConfig, setShowConfig] = useState(false); + const [labelmapLoading, setLabelmapLoading] = useState(false); + const [selectedSegmentationId, setSelectedSegmentationId] = useState(null); + const [segmentations, setSegmentations] = useState(() => segmentationService.getSegmentations()); + + const [config, dispatch] = useReducer(reducer, { + strategy: DEFAULT_STRATEGY, + ctLower: LOWER_CT_THRESHOLD_DEFAULT, + ctUpper: UPPER_CT_THRESHOLD_DEFAULT, + ptLower: LOWER_PT_THRESHOLD_DEFAULT, + ptUpper: UPPER_PT_THRESHOLD_DEFAULT, + weight: WEIGHT_DEFAULT, + }); + + const [tmtvValue, setTmtvValue] = useState(null); + + const runCommand = useCallback( + (commandName, commandOptions = {}) => { + return commandsManager.runCommand(commandName, commandOptions); + }, + [commandsManager] + ); + + const handleTMTVCalculation = useCallback(() => { + const tmtv = runCommand('calculateTMTV', { segmentations }); + + if (tmtv !== undefined) { + setTmtvValue(tmtv.toFixed(2)); + } + }, [segmentations, runCommand]); + + const handleROIThresholding = useCallback(() => { + const labelmap = runCommand('thresholdSegmentationByRectangleROITool', { + segmentationId: selectedSegmentationId, + config, + }); + + const lesionStats = runCommand('getLesionStats', { labelmap }); + const suvPeak = runCommand('calculateSuvPeak', { labelmap }); + const lesionGlyoclysisStats = lesionStats.volume * lesionStats.meanValue; + + // update segDetails with the suv peak for the active segmentation + const segmentation = segmentationService.getSegmentation(selectedSegmentationId); + + const cachedStats = { + lesionStats, + suvPeak, + lesionGlyoclysisStats, + }; + + const notYetUpdatedAtSource = true; + segmentationService.addOrUpdateSegmentation( + { + ...segmentation, + ...Object.assign(segmentation.cachedStats, cachedStats), + displayText: [`SUV Peak: ${suvPeak.suvPeak.toFixed(2)}`], + }, + notYetUpdatedAtSource + ); + + handleTMTVCalculation(); + }, [selectedSegmentationId, config]); + + /** + * Update UI based on segmentation changes (added, removed, updated) + */ + useEffect(() => { + // ~~ Subscription + const added = segmentationService.EVENTS.SEGMENTATION_ADDED; + const updated = segmentationService.EVENTS.SEGMENTATION_UPDATED; + const subscriptions = []; + + [added, updated].forEach(evt => { + const { unsubscribe } = segmentationService.subscribe(evt, () => { + const segmentations = segmentationService.getSegmentations(); + setSegmentations(segmentations); + }); + subscriptions.push(unsubscribe); + }); + + return () => { + subscriptions.forEach(unsub => { + unsub(); + }); + }; + }, []); + + useEffect(() => { + const { unsubscribe } = segmentationService.subscribe( + segmentationService.EVENTS.SEGMENTATION_REMOVED, + () => { + const segmentations = segmentationService.getSegmentations(); + setSegmentations(segmentations); + + if (segmentations.length > 0) { + setSelectedSegmentationId(segmentations[0].id); + handleTMTVCalculation(); + } else { + setSelectedSegmentationId(null); + setTmtvValue(null); + } + } + ); + + return () => { + unsubscribe(); + }; + }, []); + + /** + * Whenever the segmentations change, update the TMTV calculations + */ + useEffect(() => { + if (!selectedSegmentationId && segmentations.length > 0) { + setSelectedSegmentationId(segmentations[0].id); + } + + handleTMTVCalculation(); + }, [segmentations, selectedSegmentationId]); + + return ( + <> +
+
+
+ + +
+
{ + setShowConfig(!showConfig); + }} + > +
{t('ROI Threshold Configuration')}
+
+ {showConfig && ( + + )} + {/* show segmentation table */} +
+ {segmentations?.length ? ( + { + runCommand('setSegmentationActiveForToolGroups', { + segmentationId: id, + }); + setSelectedSegmentationId(id); + }} + onToggleVisibility={id => { + segmentationService.toggleSegmentationVisibility(id); + }} + onToggleVisibilityAll={ids => { + ids.map(id => { + segmentationService.toggleSegmentationVisibility(id); + }); + }} + onDelete={id => { + segmentationService.remove(id); + }} + onEdit={id => { + segmentationEditHandler({ + id, + servicesManager, + }); + }} + /> + ) : null} +
+ {tmtvValue !== null ? ( +
+ + {'TMTV:'} + +
{`${tmtvValue} mL`}
+
+ ) : null} + +
+
+
{ + // navigate to a url in a new tab + window.open('https://github.com/OHIF/Viewers/blob/master/modes/tmtv/README.md', '_blank'); + }} + > + + {'User Guide'} +
+ + ); +} + +LegacyPanelRoiThresholdSegmentation.propTypes = { + commandsManager: PropTypes.shape({ + runCommand: PropTypes.func.isRequired, + }), + servicesManager: PropTypes.shape({ + services: PropTypes.shape({ + segmentationService: PropTypes.shape({ + getSegmentation: PropTypes.func.isRequired, + getSegmentations: PropTypes.func.isRequired, + toggleSegmentationVisibility: PropTypes.func.isRequired, + subscribe: PropTypes.func.isRequired, + EVENTS: PropTypes.object.isRequired, + }).isRequired, + }).isRequired, + }).isRequired, +}; diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdSegmentation.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdSegmentation.tsx index 306c39c94..dd5c0cdbb 100644 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdSegmentation.tsx +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdSegmentation.tsx @@ -1,67 +1,23 @@ -import React, { useEffect, useState, useCallback, useReducer } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; import PropTypes from 'prop-types'; -import { SegmentationTable, Button, Icon } from '@ohif/ui'; +import { SegmentationGroupTableExpanded, Icon } from '@ohif/ui'; +import { createReportAsync } from '@ohif/extension-default'; -import { useTranslation } from 'react-i18next'; import segmentationEditHandler from './segmentationEditHandler'; import ExportReports from './ExportReports'; -import ROIThresholdConfiguration, { ROI_STAT } from './ROIThresholdConfiguration'; +import callInputDialog from './callInputDialog'; +import callColorPickerDialog from './colorPickerDialog'; -const LOWER_CT_THRESHOLD_DEFAULT = -1024; -const UPPER_CT_THRESHOLD_DEFAULT = 1024; -const LOWER_PT_THRESHOLD_DEFAULT = 2.5; -const UPPER_PT_THRESHOLD_DEFAULT = 100; -const WEIGHT_DEFAULT = 0.41; // a default weight for suv max often used in the literature -const DEFAULT_STRATEGY = ROI_STAT; +export default function PanelRoiThresholdSegmentation({ + servicesManager, + commandsManager, + extensionManager, +}) { + const { segmentationService, viewportGridService, uiDialogService } = servicesManager.services; -function reducer(state, action) { - const { payload } = action; - const { strategy, ctLower, ctUpper, ptLower, ptUpper, weight } = payload; - - switch (action.type) { - case 'setStrategy': - return { - ...state, - strategy, - }; - case 'setThreshold': - return { - ...state, - ctLower: ctLower ? ctLower : state.ctLower, - ctUpper: ctUpper ? ctUpper : state.ctUpper, - ptLower: ptLower ? ptLower : state.ptLower, - ptUpper: ptUpper ? ptUpper : state.ptUpper, - }; - case 'setWeight': - return { - ...state, - weight, - }; - default: - return state; - } -} - -export default function PanelRoiThresholdSegmentation({ servicesManager, commandsManager }) { - const { segmentationService } = servicesManager.services; - - const { t } = useTranslation('PanelSUV'); - const [showConfig, setShowConfig] = useState(false); - const [labelmapLoading, setLabelmapLoading] = useState(false); const [selectedSegmentationId, setSelectedSegmentationId] = useState(null); const [segmentations, setSegmentations] = useState(() => segmentationService.getSegmentations()); - const [config, dispatch] = useReducer(reducer, { - strategy: DEFAULT_STRATEGY, - ctLower: LOWER_CT_THRESHOLD_DEFAULT, - ctUpper: UPPER_CT_THRESHOLD_DEFAULT, - ptLower: LOWER_PT_THRESHOLD_DEFAULT, - ptUpper: UPPER_PT_THRESHOLD_DEFAULT, - weight: WEIGHT_DEFAULT, - }); - - const [tmtvValue, setTmtvValue] = useState(null); - const runCommand = useCallback( (commandName, commandOptions = {}) => { return commandsManager.runCommand(commandName, commandOptions); @@ -69,46 +25,6 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command [commandsManager] ); - const handleTMTVCalculation = useCallback(() => { - const tmtv = runCommand('calculateTMTV', { segmentations }); - - if (tmtv !== undefined) { - setTmtvValue(tmtv.toFixed(2)); - } - }, [segmentations, runCommand]); - - const handleROIThresholding = useCallback(() => { - const labelmap = runCommand('thresholdSegmentationByRectangleROITool', { - segmentationId: selectedSegmentationId, - config, - }); - - const lesionStats = runCommand('getLesionStats', { labelmap }); - const suvPeak = runCommand('calculateSuvPeak', { labelmap }); - const lesionGlyoclysisStats = lesionStats.volume * lesionStats.meanValue; - - // update segDetails with the suv peak for the active segmentation - const segmentation = segmentationService.getSegmentation(selectedSegmentationId); - - const cachedStats = { - lesionStats, - suvPeak, - lesionGlyoclysisStats, - }; - - const notYetUpdatedAtSource = true; - segmentationService.addOrUpdateSegmentation( - { - ...segmentation, - ...Object.assign(segmentation.cachedStats, cachedStats), - displayText: [`SUV Peak: ${suvPeak.suvPeak.toFixed(2)}`], - }, - notYetUpdatedAtSource - ); - - handleTMTVCalculation(); - }, [selectedSegmentationId, config]); - /** * Update UI based on segmentation changes (added, removed, updated) */ @@ -116,9 +32,10 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command // ~~ Subscription const added = segmentationService.EVENTS.SEGMENTATION_ADDED; const updated = segmentationService.EVENTS.SEGMENTATION_UPDATED; + const removed = segmentationService.EVENTS.SEGMENTATION_REMOVED; const subscriptions = []; - [added, updated].forEach(evt => { + [added, updated, removed].forEach(evt => { const { unsubscribe } = segmentationService.subscribe(evt, () => { const segmentations = segmentationService.getSegmentations(); setSegmentations(segmentations); @@ -133,109 +50,222 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command }; }, []); - useEffect(() => { - const { unsubscribe } = segmentationService.subscribe( - segmentationService.EVENTS.SEGMENTATION_REMOVED, - () => { - const segmentations = segmentationService.getSegmentations(); - setSegmentations(segmentations); + const onSegmentationClick = (segmentationId: string) => { + segmentationService.setActiveSegmentationForToolGroup(segmentationId); + setSelectedSegmentationId(segmentationId); + }; - if (segmentations.length > 0) { - setSelectedSegmentationId(segmentations[0].id); - handleTMTVCalculation(); - } else { - setSelectedSegmentationId(null); - setTmtvValue(null); - } + const onSegmentationAdd = async () => { + runCommand('createNewLabelmapFromPT').then(segmentationId => { + setSelectedSegmentationId(segmentationId); + }); + }; + + const onSegmentAdd = segmentationId => { + segmentationService.addSegment(segmentationId); + }; + + const getToolGroupIds = segmentationId => { + const toolGroupIds = segmentationService.getToolGroupIdsWithSegmentation(segmentationId); + + return toolGroupIds; + }; + + const onSegmentClick = (segmentationId, segmentIndex) => { + segmentationService.setActiveSegment(segmentationId, segmentIndex); + + const toolGroupIds = getToolGroupIds(segmentationId); + + toolGroupIds.forEach(toolGroupId => { + // const toolGroupId = + segmentationService.setActiveSegmentationForToolGroup(segmentationId, toolGroupId); + segmentationService.jumpToSegmentCenter(segmentationId, segmentIndex, toolGroupId); + }); + }; + + const _setSegmentationConfiguration = useCallback( + (segmentationId, key, value) => { + segmentationService.setConfiguration({ + segmentationId, + [key]: value, + }); + }, + [segmentationService] + ); + + const onToggleSegmentVisibility = (segmentationId, segmentIndex) => { + const segmentation = segmentationService.getSegmentation(segmentationId); + const segmentInfo = segmentation.segments[segmentIndex]; + const isVisible = !segmentInfo.isVisible; + const toolGroupIds = getToolGroupIds(segmentationId); + toolGroupIds.forEach(toolGroupId => { + segmentationService.setSegmentVisibility( + segmentationId, + segmentIndex, + isVisible, + toolGroupId + ); + }); + }; + + const onSegmentDelete = (segmentationId, segmentIndex) => { + segmentationService.removeSegment(segmentationId, segmentIndex); + }; + + const onSegmentEdit = (segmentationId, segmentIndex) => { + const segmentation = segmentationService.getSegmentation(segmentationId); + + const segment = segmentation.segments[segmentIndex]; + const { label } = segment; + + callInputDialog(uiDialogService, label, (label, actionId) => { + if (label === '') { + return; } - ); - return () => { - unsubscribe(); + segmentationService.setSegmentLabel(segmentationId, segmentIndex, label); + }); + }; + + const onToggleSegmentLock = (segmentationId, segmentIndex) => { + segmentationService.toggleSegmentLocked(segmentationId, segmentIndex); + }; + + const onSegmentColorClick = (segmentationId, segmentIndex) => { + const segmentation = segmentationService.getSegmentation(segmentationId); + + const segment = segmentation.segments[segmentIndex]; + const { color, opacity } = segment; + + const rgbaColor = { + r: color[0], + g: color[1], + b: color[2], + a: opacity / 255.0, }; - }, []); - /** - * Whenever the segmentations change, update the TMTV calculations - */ - useEffect(() => { - if (!selectedSegmentationId && segmentations.length > 0) { - setSelectedSegmentationId(segmentations[0].id); + callColorPickerDialog(uiDialogService, rgbaColor, (newRgbaColor, actionId) => { + if (actionId === 'cancel') { + return; + } + + segmentationService.setSegmentRGBAColor(segmentationId, segmentIndex, [ + newRgbaColor.r, + newRgbaColor.g, + newRgbaColor.b, + newRgbaColor.a * 255.0, + ]); + }); + }; + + const storeSegmentation = async segmentationId => { + const datasources = extensionManager.getActiveDataSource(); + + const displaySetInstanceUIDs = await createReportAsync({ + servicesManager, + getReport: () => + commandsManager.runCommand('storeSegmentation', { + segmentationId, + dataSource: datasources[0], + }), + reportType: 'Segmentation', + }); + + // Show the exported report in the active viewport as read only (similar to SR) + if (displaySetInstanceUIDs) { + // clear the segmentation that we exported, similar to the storeMeasurement + // where we remove the measurements and prompt again the user if they would like + // to re-read the measurements in a SR read only viewport + segmentationService.remove(segmentationId); + + viewportGridService.setDisplaySetsForViewport({ + viewportId: viewportGridService.getActiveViewportId(), + displaySetInstanceUIDs, + }); } + }; - handleTMTVCalculation(); - }, [segmentations, selectedSegmentationId]); + const onSegmentationDownloadRTSS = segmentationId => { + commandsManager.runCommand('downloadRTSS', { + segmentationId, + }); + }; + + const onSegmentationDownload = segmentationId => { + commandsManager.runCommand('downloadSegmentation', { + segmentationId, + }); + }; + + const tmtvValue = segmentations?.[0]?.cachedStats?.tmtv?.value || null; + const config = segmentations?.[0]?.cachedStats?.tmtv?.config || {}; return ( <>
-
- - -
-
{ - setShowConfig(!showConfig); - }} - > -
{t('ROI Threshold Configuration')}
-
- {showConfig && ( - + _setSegmentationConfiguration(selectedSegmentationId, 'renderOutline', value) + } + setOutlineOpacityActive={value => + _setSegmentationConfiguration(selectedSegmentationId, 'outlineOpacity', value) + } + setRenderFill={value => + _setSegmentationConfiguration(selectedSegmentationId, 'renderFill', value) + } + setRenderInactiveSegmentations={value => + _setSegmentationConfiguration( + selectedSegmentationId, + 'renderInactiveSegmentations', + value + ) + } + setOutlineWidthActive={value => + _setSegmentationConfiguration(selectedSegmentationId, 'outlineWidthActive', value) + } + setFillAlpha={value => + _setSegmentationConfiguration(selectedSegmentationId, 'fillAlpha', value) + } + setFillAlphaInactive={value => + _setSegmentationConfiguration(selectedSegmentationId, 'fillAlphaInactive', value) + } /> - )} - {/* show segmentation table */} -
- {segmentations?.length ? ( - { - runCommand('setSegmentationActiveForToolGroups', { - segmentationId: id, - }); - setSelectedSegmentationId(id); - }} - onToggleVisibility={id => { - segmentationService.toggleSegmentationVisibility(id); - }} - onToggleVisibilityAll={ids => { - ids.map(id => { - segmentationService.toggleSegmentationVisibility(id); - }); - }} - onDelete={id => { - segmentationService.remove(id); - }} - onEdit={id => { - segmentationEditHandler({ - id, - servicesManager, - }); - }} - /> - ) : null}
{tmtvValue !== null ? ( -
+
{'TMTV:'} @@ -251,7 +281,7 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command
{ // navigate to a url in a new tab window.open('https://github.com/OHIF/Viewers/blob/master/modes/tmtv/README.md', '_blank'); diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/ROIThresholdConfiguration.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/ROIThresholdConfiguration.tsx index 274ae720d..1f650b1c2 100644 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/ROIThresholdConfiguration.tsx +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/ROIThresholdConfiguration.tsx @@ -14,7 +14,7 @@ function ROIThresholdConfiguration({ config, dispatch, runCommand }) { const { t } = useTranslation('ROIThresholdConfiguration'); return ( -
+
{ + event.persist(); + setValue(value => ({ ...value, label: event.target.value })); + }} + onKeyPress={event => { + if (event.key === 'Enter') { + onSubmitHandler({ value, action: { id: 'save' } }); + } + }} + /> + ); + }, + }, + }); + } +} + +export default callInputDialog; diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css new file mode 100644 index 000000000..1c6bb2067 --- /dev/null +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css @@ -0,0 +1,3 @@ +.chrome-picker { + background: #090c29 !important; +} diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx new file mode 100644 index 000000000..38e85efb2 --- /dev/null +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx @@ -0,0 +1,58 @@ +import React from 'react'; +import { Dialog } from '@ohif/ui'; +import { ChromePicker } from 'react-color'; + +import './colorPickerDialog.css'; + +function callColorPickerDialog(uiDialogService, rgbaColor, callback) { + const dialogId = 'pick-color'; + + const onSubmitHandler = ({ action, value }) => { + switch (action.id) { + case 'save': + callback(value.rgbaColor, action.id); + break; + case 'cancel': + callback('', action.id); + break; + } + uiDialogService.dismiss({ id: dialogId }); + }; + + if (uiDialogService) { + uiDialogService.create({ + id: dialogId, + centralize: true, + isDraggable: false, + showOverlay: true, + content: Dialog, + contentProps: { + title: 'Segment Color', + value: { rgbaColor }, + noCloseButton: true, + onClose: () => uiDialogService.dismiss({ id: dialogId }), + actions: [ + { id: 'cancel', text: 'Cancel', type: 'primary' }, + { id: 'save', text: 'Save', type: 'secondary' }, + ], + onSubmit: onSubmitHandler, + body: ({ value, setValue }) => { + const handleChange = color => { + setValue({ rgbaColor: color.rgb }); + }; + + return ( + + ); + }, + }, + }); + } +} + +export default callColorPickerDialog; diff --git a/extensions/tmtv/src/Panels/RectangleROIOptions.tsx b/extensions/tmtv/src/Panels/RectangleROIOptions.tsx new file mode 100644 index 000000000..602bb5531 --- /dev/null +++ b/extensions/tmtv/src/Panels/RectangleROIOptions.tsx @@ -0,0 +1,214 @@ +import React, { useState, useCallback, useReducer, useEffect } from 'react'; +import { Button } from '@ohif/ui'; +import ROIThresholdConfiguration, { + ROI_STAT, +} from './PanelROIThresholdSegmentation/ROIThresholdConfiguration'; +import * as cs3dTools from '@cornerstonejs/tools'; + +const LOWER_CT_THRESHOLD_DEFAULT = -1024; +const UPPER_CT_THRESHOLD_DEFAULT = 1024; +const LOWER_PT_THRESHOLD_DEFAULT = 2.5; +const UPPER_PT_THRESHOLD_DEFAULT = 100; +const WEIGHT_DEFAULT = 0.41; // a default weight for suv max often used in the literature +const DEFAULT_STRATEGY = ROI_STAT; + +function reducer(state, action) { + const { payload } = action; + const { strategy, ctLower, ctUpper, ptLower, ptUpper, weight } = payload; + + switch (action.type) { + case 'setStrategy': + return { + ...state, + strategy, + }; + case 'setThreshold': + return { + ...state, + ctLower: ctLower ? ctLower : state.ctLower, + ctUpper: ctUpper ? ctUpper : state.ctUpper, + ptLower: ptLower ? ptLower : state.ptLower, + ptUpper: ptUpper ? ptUpper : state.ptUpper, + }; + case 'setWeight': + return { + ...state, + weight, + }; + default: + return state; + } +} + +function RectangleROIOptions({ servicesManager, commandsManager }) { + const { segmentationService } = servicesManager.services; + const [selectedSegmentationId, setSelectedSegmentationId] = useState(null); + + const runCommand = useCallback( + (commandName, commandOptions = {}) => { + return commandsManager.runCommand(commandName, commandOptions); + }, + [commandsManager] + ); + + const [config, dispatch] = useReducer(reducer, { + strategy: DEFAULT_STRATEGY, + ctLower: LOWER_CT_THRESHOLD_DEFAULT, + ctUpper: UPPER_CT_THRESHOLD_DEFAULT, + ptLower: LOWER_PT_THRESHOLD_DEFAULT, + ptUpper: UPPER_PT_THRESHOLD_DEFAULT, + weight: WEIGHT_DEFAULT, + }); + + const handleROIThresholding = useCallback(() => { + const segmentationId = selectedSegmentationId; + + const segmentation = segmentationService.getSegmentation(segmentationId); + const activeSegmentIndex = + cs3dTools.segmentation.segmentIndex.getActiveSegmentIndex(segmentationId); + + // run the threshold based on the active segment index + // Todo: later find a way to associate each rectangle with a segment (e.g., maybe with color?) + const labelmap = runCommand('thresholdSegmentationByRectangleROITool', { + segmentationId, + config, + segmentIndex: activeSegmentIndex, + }); + + // re-calculating the cached stats for the active segmentation + const updatedPerSegmentCachedStats = {}; + segmentation.segments = segmentation.segments.map(segment => { + if (!segment || !segment.segmentIndex) { + return segment; + } + + const segmentIndex = segment.segmentIndex; + + const lesionStats = runCommand('getLesionStats', { labelmap, segmentIndex }); + const suvPeak = runCommand('calculateSuvPeak', { labelmap, segmentIndex }); + const lesionGlyoclysisStats = lesionStats.volume * lesionStats.meanValue; + + // update segDetails with the suv peak for the active segmentation + const cachedStats = { + lesionStats, + suvPeak, + lesionGlyoclysisStats, + }; + + segment.cachedStats = cachedStats; + segment.displayText = [ + `SUV Peak: ${suvPeak.suvPeak.toFixed(2)}`, + `Volume: ${lesionStats.volume.toFixed(2)} mm3`, + ]; + updatedPerSegmentCachedStats[segmentIndex] = cachedStats; + + return segment; + }); + + const notYetUpdatedAtSource = true; + + const segmentations = segmentationService.getSegmentations(); + const tmtv = runCommand('calculateTMTV', { segmentations }); + + segmentation.cachedStats = Object.assign( + segmentation.cachedStats, + updatedPerSegmentCachedStats, + { + tmtv: { + value: tmtv.toFixed(3), + config: { ...config }, + }, + } + ); + + segmentationService.addOrUpdateSegmentation( + { + ...segmentation, + }, + false, // don't suppress events + notYetUpdatedAtSource + ); + }, [selectedSegmentationId, config]); + + useEffect(() => { + const segmentations = segmentationService.getSegmentations(); + + if (!segmentations.length) { + return; + } + + const isActive = segmentations.find(seg => seg.isActive); + setSelectedSegmentationId(isActive.id); + }, []); + + /** + * Update UI based on segmentation changes (added, removed, updated) + */ + useEffect(() => { + // ~~ Subscription + const added = segmentationService.EVENTS.SEGMENTATION_ADDED; + const updated = segmentationService.EVENTS.SEGMENTATION_UPDATED; + const subscriptions = []; + + [added, updated].forEach(evt => { + const { unsubscribe } = segmentationService.subscribe(evt, () => { + const segmentations = segmentationService.getSegmentations(); + + if (!segmentations.length) { + return; + } + + const isActive = segmentations.find(seg => seg.isActive); + setSelectedSegmentationId(isActive.id); + }); + subscriptions.push(unsubscribe); + }); + + return () => { + subscriptions.forEach(unsub => { + unsub(); + }); + }; + }, []); + + useEffect(() => { + const { unsubscribe } = segmentationService.subscribe( + segmentationService.EVENTS.SEGMENTATION_REMOVED, + () => { + const segmentations = segmentationService.getSegmentations(); + + if (segmentations.length > 0) { + setSelectedSegmentationId(segmentations[0].id); + handleROIThresholding(); + } else { + setSelectedSegmentationId(null); + handleROIThresholding(); + } + } + ); + + return () => { + unsubscribe(); + }; + }, []); + + return ( +
+ + {selectedSegmentationId !== null && ( + + )} +
+ ); +} + +export default RectangleROIOptions; diff --git a/extensions/tmtv/src/commandsModule.js b/extensions/tmtv/src/commandsModule.js index d00b33c89..765ab7f5b 100644 --- a/extensions/tmtv/src/commandsModule.js +++ b/extensions/tmtv/src/commandsModule.js @@ -112,6 +112,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) // Create a segmentation of the same resolution as the source data // using volumeLoader.createAndCacheDerivedVolume. const { viewportMatchDetails } = hangingProtocolService.getMatchDetails(); + const ptDisplaySet = actions.getMatchingPTDisplaySet({ viewportMatchDetails, }); @@ -121,8 +122,11 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) return; } + const currentSegmentations = segmentationService.getSegmentations(); + const segmentationId = await segmentationService.createSegmentationForDisplaySet( - ptDisplaySet.displaySetInstanceUID + ptDisplaySet.displaySetInstanceUID, + { label: `Segmentation ${currentSegmentations.length + 1}` } ); // Add Segmentation to all toolGroupIds in the viewer @@ -141,6 +145,12 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) segmentationService.setActiveSegmentationForToolGroup(segmentationId, toolGroupId); } + segmentationService.addSegment(segmentationId, { + segmentIndex: 1, + properties: { + label: 'Segment 1', + }, + }); return segmentationId; }, setSegmentationActiveForToolGroups: ({ segmentationId }) => { @@ -150,7 +160,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) segmentationService.setActiveSegmentationForToolGroup(segmentationId, toolGroupId); }); }, - thresholdSegmentationByRectangleROITool: ({ segmentationId, config }) => { + thresholdSegmentationByRectangleROITool: ({ segmentationId, config, segmentIndex }) => { const segmentation = csTools.segmentation.state.getSegmentation(segmentationId); const { representationData } = segmentation; @@ -201,12 +211,11 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) { volume: referencedVolume, lower: ptLower, upper: ptUpper }, { volume: ctReferencedVolume, lower: ctLower, upper: ctUpper }, ], - { overwrite: true } + { overwrite: true, segmentIndex } ); }, - calculateSuvPeak: ({ labelmap }) => { + calculateSuvPeak: ({ labelmap, segmentIndex }) => { const { referencedVolumeId } = labelmap; - const referencedVolume = cs.cache.getVolume(referencedVolumeId); const annotationUIDs = csTools.annotation.selection.getAnnotationsSelectedByToolName( @@ -217,7 +226,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) csTools.annotation.state.getAnnotation(annotationUID) ); - const suvPeak = calculateSuvPeak(labelmap, referencedVolume, annotations); + const suvPeak = calculateSuvPeak(labelmap, referencedVolume, annotations, segmentIndex); return { suvPeak: suvPeak.mean, suvMax: suvPeak.max, diff --git a/extensions/tmtv/src/getPanelModule.tsx b/extensions/tmtv/src/getPanelModule.tsx index 0449ebe48..39a955df3 100644 --- a/extensions/tmtv/src/getPanelModule.tsx +++ b/extensions/tmtv/src/getPanelModule.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { PanelPetSUV, PanelROIThresholdSegmentation } from './Panels'; +import { Toolbox } from '@ohif/ui'; // TODO: // - No loading UI exists yet @@ -12,18 +13,26 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }) ); }; const wrappedROIThresholdSeg = () => { return ( - + <> + + + ); }; @@ -31,15 +40,15 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }) { name: 'petSUV', iconName: 'tab-patient-info', - iconLabel: 'PET SUV', - label: 'PET SUV', + iconLabel: 'Patient Info', + label: 'Patient Info', component: wrappedPanelPetSuv, }, { name: 'ROIThresholdSeg', - iconName: 'tab-roi-threshold', - iconLabel: 'ROI Threshold', - label: 'ROI Threshold', + iconName: 'tab-segmentation', + iconLabel: 'Segmentation', + label: 'Segmentation', component: wrappedROIThresholdSeg, }, ]; diff --git a/extensions/tmtv/src/getToolbarModule.tsx b/extensions/tmtv/src/getToolbarModule.tsx new file mode 100644 index 000000000..33c178bd9 --- /dev/null +++ b/extensions/tmtv/src/getToolbarModule.tsx @@ -0,0 +1,10 @@ +import RectangleROIOptions from './Panels/RectangleROIOptions'; + +export default function getToolbarModule({ commandsManager, servicesManager }) { + return [ + { + name: 'tmtv.RectangleROIThresholdOptions', + defaultComponent: () => RectangleROIOptions({ commandsManager, servicesManager }), + }, + ]; +} diff --git a/extensions/tmtv/src/index.tsx b/extensions/tmtv/src/index.tsx index 3922955bb..9d853c996 100644 --- a/extensions/tmtv/src/index.tsx +++ b/extensions/tmtv/src/index.tsx @@ -3,6 +3,7 @@ import getHangingProtocolModule from './getHangingProtocolModule'; import getPanelModule from './getPanelModule'; import init from './init'; import commandsModule from './commandsModule'; +import getToolbarModule from './getToolbarModule'; /** * @@ -15,6 +16,7 @@ const tmtvExtension = { preRegistration({ servicesManager, commandsManager, extensionManager, configuration = {} }) { init({ servicesManager, commandsManager, extensionManager, configuration }); }, + getToolbarModule, getPanelModule, getHangingProtocolModule, getCommandsModule({ servicesManager, commandsManager, extensionManager }) { diff --git a/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js b/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js index a6131e2ac..539f45f85 100644 --- a/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js +++ b/extensions/tmtv/src/utils/measurementServiceMappings/RectangleROIStartEndThreshold.js @@ -43,8 +43,6 @@ const RectangleROIStartEndThreshold = { displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { cachedStats } = data; - return { uid: annotationUID, SOPInstanceUID, @@ -56,10 +54,8 @@ const RectangleROIStartEndThreshold = { toolName: metadata.toolName, displaySetInstanceUID: displaySet.displaySetInstanceUID, label: metadata.label, - // displayText: displayText, data: data.cachedStats, type: 'RectangleROIStartEndThreshold', - // getReport, }; }, }; diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index bce66af83..ebb6b7654 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -119,7 +119,10 @@ const toolbarButtons: Button[] = [ icon: 'tool-3d-rotate', label: '3D Rotate', commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', + evaluate: { + name: 'evaluate.cornerstoneTool', + disabledText: 'Select a 3D viewport to enable this tool', + }, }, }, { @@ -154,7 +157,10 @@ const toolbarButtons: Button[] = [ toolGroupIds: ['mpr'], }, }, - evaluate: 'evaluate.cornerstoneTool', + evaluate: { + name: 'evaluate.cornerstoneTool', + disabledText: 'Select an MPR viewport to enable this tool', + }, }, }, ]; diff --git a/modes/segmentation/src/segmentationButtons.ts b/modes/segmentation/src/segmentationButtons.ts index 012988ea2..51de3487d 100644 --- a/modes/segmentation/src/segmentationButtons.ts +++ b/modes/segmentation/src/segmentationButtons.ts @@ -25,6 +25,7 @@ const toolbarButtons: Button[] = [ evaluate: { name: 'evaluate.cornerstone.segmentation', options: { toolNames: ['CircularBrush', 'SphereBrush'] }, + disabledText: 'Create new segmentation to enable this tool.', }, commands: _createSetToolActiveCommands('CircularBrush'), options: [ @@ -95,7 +96,7 @@ const toolbarButtons: Button[] = [ { id: 'Threshold', icon: 'icon-tool-threshold', - label: 'Eraser', + label: 'Threshold Tool', evaluate: { name: 'evaluate.cornerstone.segmentation', options: { toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'] }, diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index 3255570d1..b732aff8e 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -75,7 +75,10 @@ const toolbarButtons: Button[] = [ icon: 'tool-3d-rotate', label: '3D Rotate', commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', + evaluate: { + name: 'evaluate.cornerstoneTool', + disabledText: 'Select a 3D viewport to enable this tool', + }, }, }, { @@ -110,7 +113,10 @@ const toolbarButtons: Button[] = [ toolGroupIds: ['mpr'], }, }, - evaluate: 'evaluate.cornerstoneTool', + evaluate: { + name: 'evaluate.cornerstoneTool', + disabledText: 'Select an MPR viewport to enable this tool', + }, }, }, { diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index 9643fa971..e3cbb1967 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -89,8 +89,8 @@ function modeFactory({ modeConfiguration }) { 'Crosshairs', 'Pan', 'SyncToggle', - 'RectangleROIStartEndThreshold', ]); + toolbarService.createButtonSection('tmtvToolbox', ['RectangleROIStartEndThreshold']); // For the hanging protocol we need to decide on the window level // based on whether the SUV is corrected or not, hence we can't hard diff --git a/modes/tmtv/src/toolbarButtons.js b/modes/tmtv/src/toolbarButtons.js index c605b4966..042a54b59 100644 --- a/modes/tmtv/src/toolbarButtons.js +++ b/modes/tmtv/src/toolbarButtons.js @@ -1,42 +1,8 @@ import { defaults, ToolbarService } from '@ohif/core'; -import { WindowLevelMenuItem } from '@ohif/ui'; import { toolGroupIds } from './initToolGroups'; const { windowLevelPresets } = defaults; -function _createColormap(label, colormap) { - return { - id: label, - label, - type: 'action', - commands: [ - { - commandName: 'setFusionPTColormap', - commandOptions: { - toolGroupId: toolGroupIds.Fusion, - colormap, - }, - }, - ], - }; -} -function _createWwwcPreset(preset, title, subtitle) { - return { - id: preset.toString(), - title, - subtitle, - commands: [ - { - commandName: 'setWindowLevel', - commandOptions: { - ...windowLevelPresets[preset], - }, - context: 'CORNERSTONE', - }, - ], - }; -} - const setToolActiveToolbar = { commandName: 'setToolActiveToolbar', commandOptions: { @@ -141,7 +107,11 @@ const toolbarButtons = [ icon: 'tool-create-threshold', label: 'Rectangle ROI Threshold', commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', + evaluate: { + name: 'evaluate.cornerstoneTool', + disabledText: 'Select the PT Axial to enable this tool', + }, + options: 'tmtv.RectangleROIThresholdOptions', }, }, ]; diff --git a/platform/app/public/html-templates/index.html b/platform/app/public/html-templates/index.html index eb53fc851..dd61a8af9 100644 --- a/platform/app/public/html-templates/index.html +++ b/platform/app/public/html-templates/index.html @@ -233,7 +233,8 @@ - -
+
+
+
diff --git a/platform/core/src/services/ToolBarService/ToolbarService.ts b/platform/core/src/services/ToolBarService/ToolbarService.ts index 6fce58d2b..0f84b0b6e 100644 --- a/platform/core/src/services/ToolBarService/ToolbarService.ts +++ b/platform/core/src/services/ToolBarService/ToolbarService.ts @@ -204,6 +204,7 @@ export default class ToolbarService extends PubSubService { const evaluated = props.evaluate?.({ ...refreshProps, button }); const updatedProps = { ...props, + ...evaluated, disabled: evaluated?.disabled || false, className: evaluated?.className || '', isActive: evaluated?.isActive, // isActive will be undefined for buttons without this prop @@ -386,7 +387,9 @@ export default class ToolbarService extends PubSubService { const { id, uiType, component } = btn; const { groupId } = btn.props; - const buttonType = this._getButtonUITypes()[uiType]; + const buttonTypes = this._getButtonUITypes(); + + const buttonType = buttonTypes[uiType]; if (!buttonType) { return; @@ -414,7 +417,16 @@ export default class ToolbarService extends PubSubService { }; handleEvaluate = props => { - const { evaluate } = props; + const { evaluate, options } = props; + + if (typeof options === 'string') { + // get the custom option component from the extension manager and set it as the optionComponent + const buttonTypes = this._getButtonUITypes(); + const optionComponent = buttonTypes[options]?.defaultComponent; + props.options = { + optionComponent, + }; + } if (typeof evaluate === 'function') { return; @@ -462,9 +474,8 @@ export default class ToolbarService extends PubSubService { } if (typeof evaluate === 'object') { - const { name, options } = evaluate; + const { name, ...options } = evaluate; const evaluateFunction = this._evaluateFunction[name]; - if (evaluateFunction) { props.evaluate = args => evaluateFunction({ ...args, ...options }); return; diff --git a/platform/docs/docs/platform/extensions/modules/toolbar.md b/platform/docs/docs/platform/extensions/modules/toolbar.md index a735b2daf..cf8ba27ea 100644 --- a/platform/docs/docs/platform/extensions/modules/toolbar.md +++ b/platform/docs/docs/platform/extensions/modules/toolbar.md @@ -97,6 +97,7 @@ Let's look at one of the evaluators (for `evaluate.cornerstoneTool`) return { disabled: true, className: '!text-common-bright ohif-disabled', + disabledText: 'Tool not available', }; } @@ -371,6 +372,104 @@ state will get synchronized with the toolbar service automatically. ![alt text](../../../assets/img/toolbox-modal.png) +## Toolbox With Options + +Your toolbox toolbar buttons can have options, this is really useful +for advanced tools that require to change some parameters. For example, the brush tool that requires the brush size to change or the mode (2D or 3D). + +currently we support three types of options + +### Radio option + +We use this in segmentation shapes to let the user choose between +three different modes + +```js +{ + id: 'Shapes', + uiType: 'ohif.radioGroup', + props: { + label: 'Shapes', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['CircleScissor', 'SphereScissor', 'RectangleScissor'] }, + }, + icon: 'icon-tool-shape', + commands: _createSetToolActiveCommands('CircleScissor'), + options: [ + { + name: 'Shape', + type: 'radio', + value: 'CircleScissor', + id: 'shape-mode', + values: [ + { value: 'CircleScissor', label: 'Circle' }, + { value: 'SphereScissor', label: 'Sphere' }, + { value: 'RectangleScissor', label: 'Rectangle' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, +}, +``` + +### Range option + +We use this for brush radius change + +```js +{ + id: 'Brush', + icon: 'icon-tool-brush', + label: 'Brush', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['CircularBrush', 'SphereBrush'] }, + disabledText: 'Create new segmentation to enable this tool.', + }, + commands: _createSetToolActiveCommands('CircularBrush'), + options: [ + { + name: 'Radius (mm)', + id: 'brush-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 25, + commands: { + commandName: 'setBrushSize', + commandOptions: { toolNames: ['CircularBrush', 'SphereBrush'] }, + }, + }, + ], +}, +``` + +### Custom option + +We use this pattern inside `tmtv` mode for `RectangleROIThreshold` + +```js +{ + id: 'RectangleROIStartEndThreshold', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-create-threshold', + label: 'Rectangle ROI Threshold', + commands: setToolActiveToolbar, + evaluate: { + name: 'evaluate.cornerstoneTool', + disabledText: 'Select the PT Axial to enable this tool', + }, + options: 'tmtv.RectangleROIThresholdOptions', + }, +}, +``` + +Note that it is your job to provide the `tmvt.RectangleROIThresholdOptions` in the getToolbarModule of your extension + ## Change Toolbar with hanging protocols diff --git a/platform/ui/src/assets/styles/styles.css b/platform/ui/src/assets/styles/styles.css index 05abcb151..0dc42514f 100644 --- a/platform/ui/src/assets/styles/styles.css +++ b/platform/ui/src/assets/styles/styles.css @@ -1,9 +1,7 @@ /* CUSTOM OHIF SCROLLBAR */ .ohif-scrollbar { - scrollbar-color: #041c4a transparent; - scrollbar-gutter: stable; - scrollbar-width: thin; - + scrollbar-color: #173239 transparent; + overflow-y: auto; } .study-min-height { diff --git a/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx b/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx index fc587157e..26b20b89d 100644 --- a/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx +++ b/platform/ui/src/components/AdvancedToolbox/ToolSettings.tsx @@ -13,6 +13,10 @@ function ToolSettings({ options }) { return null; } + if (typeof options === 'function') { + return options(); + } + return (
{options?.map(option => { diff --git a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx index ca080a138..916b72ad0 100644 --- a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx +++ b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx @@ -27,15 +27,14 @@ const ButtonGroup = ({ vertical: 'flex-col', }; - const wrapperClasses = classnames('inline-flex', orientationClasses[orientation], className); + const wrapperClasses = classnames( + 'items-stretch inline-flex', + orientationClasses[orientation], + className + ); return ( -
+
{Children.map(children, (child, index) => { if (React.isValidElement(child)) { return cloneElement(child, { diff --git a/platform/ui/src/components/Dropdown/Dropdown.tsx b/platform/ui/src/components/Dropdown/Dropdown.tsx index fc7d91803..2e9a44144 100644 --- a/platform/ui/src/components/Dropdown/Dropdown.tsx +++ b/platform/ui/src/components/Dropdown/Dropdown.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useCallback, useState, useRef } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; +import ReactDOM from 'react-dom'; import Icon from '../Icon'; import Typography from '../Typography'; @@ -21,7 +22,9 @@ const Dropdown = ({ maxCharactersPerLine, }) => { const [open, setOpen] = useState(false); - const element = useRef(null); + const elementRef = useRef(null); + const dropdownRef = useRef(null); + const [coords, setCoords] = useState({ x: 0, y: 0 }); // choose the max characters per line based on the longest title const longestTitle = list.reduce((acc, item) => { @@ -107,23 +110,54 @@ const Dropdown = ({ }; const handleClick = e => { - if (element.current && !element.current.contains(e.target)) { + if (elementRef.current && !elementRef.current.contains(e.target)) { setOpen(false); } }; + useEffect(() => { + if (elementRef.current && dropdownRef.current) { + const triggerRect = elementRef.current.getBoundingClientRect(); + const dropdownRect = dropdownRef.current.getBoundingClientRect(); + let x, y; + + switch (alignment) { + case 'right': + x = triggerRect.right + window.scrollX - dropdownRect.width; + y = triggerRect.bottom + window.scrollY; + break; + case 'left': + x = triggerRect.left + window.scrollX; + y = triggerRect.bottom + window.scrollY; + break; + default: + x = triggerRect.left + window.scrollX; + y = triggerRect.bottom + window.scrollY; + break; + } + setCoords({ x, y }); + } + }, [open, alignment, elementRef.current, dropdownRef.current]); + const renderList = () => { - return ( + const portalElement = document.getElementById('react-portal'); + + const listElement = (
{list.map((item, idx) => ( @@ -137,6 +171,7 @@ const Dropdown = ({ ))}
); + return ReactDOM.createPortal(listElement, portalElement); }; useEffect(() => { @@ -150,7 +185,7 @@ const Dropdown = ({ return (
{ return ( @@ -40,6 +41,7 @@ const Input = ({ {
{areChildrenVisible && ( <> -
{children}
)} diff --git a/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx b/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx index c50714955..817a9fba2 100644 --- a/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/AddSegmentRow.tsx @@ -2,15 +2,14 @@ import React from 'react'; import Icon from '../Icon'; import { useTranslation } from 'react-i18next'; -function AddSegmentRow({ onClick }) { +function AddSegmentRow({ onClick, onToggleSegmentationVisibility = null, segmentation = null }) { const { t } = useTranslation('SegmentationTable'); return ( -
-
-
+
+
@@ -18,6 +17,26 @@ function AddSegmentRow({ onClick }) { {t('Add segment')}
+ {segmentation && ( +
+
onToggleSegmentationVisibility(segmentation.id)} + > + {segmentation.isVisible ? ( + + ) : ( + + )} +
+
+ )}
); } diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationDropDownRow.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationDropDownRow.tsx index f83d29625..8db52a5e1 100644 --- a/platform/ui/src/components/SegmentationGroupTable/SegmentationDropDownRow.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationDropDownRow.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Select, Icon, Dropdown } from '../../components'; +import { Select, Icon, Dropdown, Tooltip } from '../../components'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; @@ -31,7 +31,7 @@ function SegmentationDropDownRow({ } return ( -
+
{ e.stopPropagation(); @@ -97,7 +97,7 @@ function SegmentationDropDownRow({ ], ]} > -
+
@@ -122,8 +122,22 @@ function SegmentationDropDownRow({ /> )}
+ +
Series:
+
{activeSegmentation.description}
+
+ } + > + +
onToggleSegmentationVisibility(activeSegmentation.id)} > {activeSegmentation.isVisible ? ( diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupSegment.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupSegment.tsx index 1256efb34..cda962421 100644 --- a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupSegment.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupSegment.tsx @@ -20,6 +20,7 @@ const SegmentItem = ({ onColor, onToggleVisibility, onToggleLocked, + displayText, }) => { const [isNumberBoxHovering, setIsNumberBoxHovering] = useState(false); @@ -27,7 +28,9 @@ const SegmentItem = ({ return (
{ e.stopPropagation(); onClick(segmentationId, segmentIndex); @@ -35,114 +38,140 @@ const SegmentItem = ({ tabIndex={0} data-cy={'segment-item'} > -
setIsNumberBoxHovering(true)} - onMouseLeave={() => setIsNumberBoxHovering(false)} - > - {isNumberBoxHovering && showDelete ? ( - { - if (disableEditing) { - return; - } - e.stopPropagation(); - onDelete(segmentationId, segmentIndex); - }} - /> - ) : ( -
{segmentIndex}
- )} -
-
-
-
-
+
setIsNumberBoxHovering(true)} + onMouseLeave={() => setIsNumberBoxHovering(false)} + > + {isNumberBoxHovering && showDelete ? ( + { if (disableEditing) { return; } e.stopPropagation(); - onColor(segmentationId, segmentIndex); + onDelete(segmentationId, segmentIndex); }} /> -
-
{label}
+ ) : ( +
{segmentIndex}
+ )}
+
-
- {!isVisible && ( - +
+
{ + if (disableEditing) { + return; + } e.stopPropagation(); - onToggleVisibility(segmentationId, segmentIndex); + onColor(segmentationId, segmentIndex); }} /> - )} +
+
{label}
- - {/* Icon for 'row-lock' that shows when NOT hovering and 'isLocked' is true */} -
- {isLocked && ( -
+
+
+ {!isVisible && ( { e.stopPropagation(); - onToggleLocked(segmentationId, segmentIndex); + onToggleVisibility(segmentationId, segmentIndex); }} /> + )} +
- {/* This icon is visible when 'isVisible' is true */} - {isVisible && ( + {/* Icon for 'row-lock' that shows when NOT hovering and 'isLocked' is true */} +
+ {isLocked && ( +
{ + e.stopPropagation(); + onToggleLocked(segmentationId, segmentIndex); + }} /> - )} -
- )} -
- {/* Icons that show only when hovering */} -
- + {/* This icon is visible when 'isVisible' is true */} + {isVisible && ( + + )} +
+ )} +
+ + {/* Icons that show only when hovering */} +
+ +
+ {Array.isArray(displayText) ? ( +
+ {displayText.map(text => ( +
+ {text} +
+ ))} +
+ ) : ( + displayText && ( +
+ {displayText} +
+ ) + )}
); }; @@ -205,6 +234,7 @@ SegmentItem.propTypes = { onDelete: PropTypes.func.isRequired, onToggleVisibility: PropTypes.func.isRequired, onToggleLocked: PropTypes.func, + displayText: PropTypes.string, }; SegmentItem.defaultProps = { diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx index 2ea0bcb00..7bbe8b37d 100644 --- a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTable.tsx @@ -100,7 +100,7 @@ const SegmentationGroupTable = ({ )}
{segmentations?.length === 0 ? ( -
+
{showAddSegmentation && !disableEditing && ( )} @@ -127,7 +127,7 @@ const SegmentationGroupTable = ({ )}
{activeSegmentation && ( -
+
{activeSegmentation?.segments?.map(segment => { if (!segment) { return null; diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTableExpanded.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTableExpanded.tsx new file mode 100644 index 000000000..1cbeb8e17 --- /dev/null +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationGroupTableExpanded.tsx @@ -0,0 +1,211 @@ +import React, { useEffect, useState } from 'react'; +import PropTypes from 'prop-types'; +import { PanelSection } from '../../components'; +import SegmentationConfig from './SegmentationConfig'; +import NoSegmentationRow from './NoSegmentationRow'; +import { useTranslation } from 'react-i18next'; +import SegmentationItem from './SegmentationItem'; + +const SegmentationGroupTableExpanded = ({ + segmentations, + // segmentation initial config + segmentationConfig, + // UI show/hide + disableEditing, + showAddSegmentation, + showAddSegment, + showDeleteSegment, + // segmentation/segment handlers + onSegmentationAdd, + onSegmentationEdit, + onSegmentationClick, + onSegmentationDelete, + onSegmentationDownload, + onSegmentationDownloadRTSS, + storeSegmentation, + // segment handlers + onSegmentClick, + onSegmentAdd, + onSegmentDelete, + onSegmentEdit, + onToggleSegmentationVisibility, + onToggleSegmentVisibility, + onToggleSegmentLock, + onSegmentColorClick, + // segmentation config handlers + setFillAlpha, + setFillAlphaInactive, + setOutlineWidthActive, + setOutlineOpacityActive, + setRenderFill, + setRenderInactiveSegmentations, + setRenderOutline, +}) => { + const [isConfigOpen, setIsConfigOpen] = useState(false); + const [activeSegmentationId, setActiveSegmentationId] = useState(null); + + useEffect(() => { + // find the first active segmentation to set + let activeSegmentationIdToSet = segmentations?.find(segmentation => segmentation.isActive)?.id; + + // If there is no active segmentation, set the first one to be active + if (!activeSegmentationIdToSet && segmentations?.length > 0) { + activeSegmentationIdToSet = segmentations[0].id; + } + + // If there is no segmentation, set the active segmentation to null + if (segmentations?.length === 0) { + activeSegmentationIdToSet = null; + } + + setActiveSegmentationId(activeSegmentationIdToSet); + }, [segmentations]); + + const activeSegmentation = segmentations?.find( + segmentation => segmentation.id === activeSegmentationId + ); + const { t } = useTranslation('SegmentationTable'); + + return ( +
+ setIsConfigOpen(isOpen => !isOpen), + }, + ] + } + > + {isConfigOpen && ( + + )} +
+
+ {showAddSegmentation && !disableEditing && ( + + )} +
+ {segmentations?.length > 0 && ( +
+ {segmentations?.map(segmentation => { + return ( +
+ +
+ ); + })} +
+ )} +
+
+
+ ); +}; + +SegmentationGroupTableExpanded.propTypes = { + segmentations: PropTypes.arrayOf( + PropTypes.shape({ + id: PropTypes.string.isRequired, + isActive: PropTypes.bool.isRequired, + segments: PropTypes.arrayOf( + PropTypes.shape({ + segmentIndex: PropTypes.number.isRequired, + color: PropTypes.array.isRequired, + label: PropTypes.string.isRequired, + isVisible: PropTypes.bool.isRequired, + isLocked: PropTypes.bool.isRequired, + }) + ), + }) + ), + segmentationConfig: PropTypes.object.isRequired, + disableEditing: PropTypes.bool, + showAddSegmentation: PropTypes.bool, + showAddSegment: PropTypes.bool, + showDeleteSegment: PropTypes.bool, + onSegmentationAdd: PropTypes.func.isRequired, + onSegmentationEdit: PropTypes.func.isRequired, + onSegmentationClick: PropTypes.func.isRequired, + onSegmentationDelete: PropTypes.func.isRequired, + onSegmentationDownload: PropTypes.func.isRequired, + onSegmentationDownloadRTSS: PropTypes.func, + storeSegmentation: PropTypes.func.isRequired, + onSegmentClick: PropTypes.func.isRequired, + onSegmentAdd: PropTypes.func.isRequired, + onSegmentDelete: PropTypes.func.isRequired, + onSegmentEdit: PropTypes.func.isRequired, + onToggleSegmentationVisibility: PropTypes.func.isRequired, + onToggleSegmentVisibility: PropTypes.func.isRequired, + onToggleSegmentLock: PropTypes.func.isRequired, + onSegmentColorClick: PropTypes.func.isRequired, + setFillAlpha: PropTypes.func.isRequired, + setFillAlphaInactive: PropTypes.func.isRequired, + setOutlineWidthActive: PropTypes.func.isRequired, + setOutlineOpacityActive: PropTypes.func.isRequired, + setRenderFill: PropTypes.func.isRequired, + setRenderInactiveSegmentations: PropTypes.func.isRequired, + setRenderOutline: PropTypes.func.isRequired, +}; + +SegmentationGroupTableExpanded.defaultProps = { + segmentations: [], + disableEditing: false, + showAddSegmentation: true, + showAddSegment: true, + showDeleteSegment: true, + onSegmentationAdd: () => {}, + onSegmentationEdit: () => {}, + onSegmentationClick: () => {}, + onSegmentationDelete: () => {}, + onSegmentationDownload: () => {}, + onSemgnetationDownloadRTSS: () => {}, + storeSegmentation: () => {}, + onSegmentClick: () => {}, + onSegmentAdd: () => {}, + onSegmentDelete: () => {}, + onSegmentEdit: () => {}, + onToggleSegmentationVisibility: () => {}, + onToggleSegmentVisibility: () => {}, + onToggleSegmentLock: () => {}, + onSegmentColorClick: () => {}, + setFillAlpha: () => {}, + setFillAlphaInactive: () => {}, + setOutlineWidthActive: () => {}, + setOutlineOpacityActive: () => {}, + setRenderFill: () => {}, + setRenderInactiveSegmentations: () => {}, + setRenderOutline: () => {}, +}; +export default SegmentationGroupTableExpanded; diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationItem.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationItem.tsx new file mode 100644 index 000000000..8741c338f --- /dev/null +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationItem.tsx @@ -0,0 +1,211 @@ +import React, { useState } from 'react'; +import { Icon, Dropdown } from '../../components'; +import classNames from 'classnames'; +import PropTypes from 'prop-types'; +import { useTranslation } from 'react-i18next'; +import AddSegmentRow from './AddSegmentRow'; +import SegmentationGroupSegment from './SegmentationGroupSegment'; +import { Tooltip } from '../../components'; + +function SegmentationItem({ + segmentation, + disableEditing, + onSegmentationEdit, + onSegmentationDownload, + onSegmentationDownloadRTSS, + storeSegmentation, + onSegmentationDelete, + showAddSegment, + onToggleSegmentationVisibility, + onSegmentAdd, + onSegmentClick, + onSegmentDelete, + onSegmentEdit, + showDeleteSegment, + onSegmentColorClick, + onToggleSegmentVisibility, + onToggleSegmentLock, + activeSegmentationId, +}) { + const { t } = useTranslation('SegmentationTable'); + + const [areChildrenVisible, setChildrenVisible] = useState(true); + + const handleHeaderClick = () => { + setChildrenVisible(!areChildrenVisible); + }; + + return ( + <> +
+
{ + e.stopPropagation(); + }} + className="flex" + > + { + onSegmentationEdit(segmentation.id); + }, + }, + ] + : []), + { + title: t('Delete'), + onClick: () => { + onSegmentationDelete(segmentation.id); + }, + }, + ...(!disableEditing + ? [ + { + title: t('Export DICOM SEG'), + onClick: () => { + storeSegmentation(segmentation.id); + }, + }, + ] + : []), + ...[ + { + title: t('Download DICOM SEG'), + onClick: () => { + onSegmentationDownload(segmentation.id); + }, + }, + { + title: t('Download DICOM RTSTRUCT'), + onClick: () => { + onSegmentationDownloadRTSS(segmentation.id); + }, + }, + ], + ]} + > +
+ +
+
+
+
+
+
{segmentation.label}
+
+ +
Series:
+
{segmentation.description}
+
+ } + > + + +
+ +
+
+
+
+ {areChildrenVisible && ( + <> + {!disableEditing && showAddSegment && ( + onSegmentAdd(segmentation.id)} + onToggleSegmentationVisibility={onToggleSegmentationVisibility} + segmentation={segmentation} + /> + )} +
+ {segmentation?.segments?.map(segment => { + if (!segment) { + return null; + } + + const { segmentIndex, color, label, isVisible, isLocked, displayText } = segment; + return ( +
+ +
+ ); + })} +
+ + )} + + ); +} + +SegmentationItem.propTypes = { + segmentation: PropTypes.object, + disableEditing: PropTypes.bool, + onToggleSegmentationVisibility: PropTypes.func, + onSegmentationEdit: PropTypes.func, + onSegmentationDownload: PropTypes.func, + onSegmentationDownloadRTSS: PropTypes.func, + storeSegmentation: PropTypes.func, + onSegmentationDelete: PropTypes.func, + showAddSegment: PropTypes.bool, + onSegmentAdd: PropTypes.func, + onSegmentClick: PropTypes.func, + onSegmentDelete: PropTypes.func, + onSegmentEdit: PropTypes.func, + showDeleteSegment: PropTypes.bool, + onSegmentColorClick: PropTypes.func, + onToggleSegmentVisibility: PropTypes.func, + onToggleSegmentLock: PropTypes.func, + activeSegmentationId: PropTypes.string, +}; + +SegmentationItem.defaultProps = { + segmentation: null, + disableEditing: false, +}; + +export default SegmentationItem; diff --git a/platform/ui/src/components/SegmentationGroupTable/index.js b/platform/ui/src/components/SegmentationGroupTable/index.js index c798973b1..6b4885983 100644 --- a/platform/ui/src/components/SegmentationGroupTable/index.js +++ b/platform/ui/src/components/SegmentationGroupTable/index.js @@ -1,3 +1,4 @@ import SegmentationGroupTable from './SegmentationGroupTable'; +import SegmentationGroupTableExpanded from './SegmentationGroupTableExpanded'; -export default SegmentationGroupTable; +export { SegmentationGroupTable, SegmentationGroupTableExpanded }; diff --git a/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx b/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx index a9b44cb9b..226b1aeae 100644 --- a/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx +++ b/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx @@ -16,6 +16,7 @@ const ToolbarButton = ({ // className, disabled, + disabledText, size, toolTipClassName, disableToolTip = false, @@ -38,7 +39,7 @@ const ToolbarButton = ({ { const { id: buttonId, componentProps } = toolbarButton; - const createEnhancedOptions = (options, parentId) => - options.map(option => { + const createEnhancedOptions = (options, parentId) => { + const optionsToUse = Array.isArray(options) ? options : [options]; + + return optionsToUse.map(option => { + if (typeof option.optionComponent === 'function') { + return option; + } + return { ...option, value: @@ -72,13 +78,18 @@ function Toolbox({ servicesManager, buttonSectionId, commandsManager, title, ... }, }; }); + }; - if (componentProps.items?.length) { - componentProps.items.forEach(item => { - accumulator[item.id] = createEnhancedOptions(item.options, item.id); + const { items, options } = componentProps; + + if (items?.length) { + items.forEach(({ options, id }) => { + accumulator[id] = createEnhancedOptions(options, id); }); - } else if (componentProps.options?.length) { - accumulator[buttonId] = createEnhancedOptions(componentProps.options, buttonId); + } else if (options?.length) { + accumulator[buttonId] = createEnhancedOptions(options, buttonId); + } else if (options?.optionComponent) { + accumulator[buttonId] = options.optionComponent; } return accumulator; diff --git a/platform/ui/src/components/Toolbox/ToolboxUI.tsx b/platform/ui/src/components/Toolbox/ToolboxUI.tsx index 653dc7946..4ee2e3fe0 100644 --- a/platform/ui/src/components/Toolbox/ToolboxUI.tsx +++ b/platform/ui/src/components/Toolbox/ToolboxUI.tsx @@ -53,8 +53,21 @@ function ToolboxUI(props) { +
+ +
+
+ ) : ( +
- - ) : ( - +
)}
); diff --git a/platform/ui/src/components/Tooltip/Tooltip.tsx b/platform/ui/src/components/Tooltip/Tooltip.tsx index 7c588c0e8..509114cb2 100644 --- a/platform/ui/src/components/Tooltip/Tooltip.tsx +++ b/platform/ui/src/components/Tooltip/Tooltip.tsx @@ -1,7 +1,8 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect, useRef } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { useTranslation } from 'react-i18next'; +import ReactDOM from 'react-dom'; import './tooltip.css'; @@ -42,6 +43,10 @@ const Tooltip = ({ }) => { const [isActive, setIsActive] = useState(false); const { t } = useTranslation('Buttons'); + const tooltipContainer = document.getElementById('react-portal'); + const [coords, setCoords] = useState({ x: 999999, y: 999999 }); + const parentRef = useRef(null); + const tooltipRef = useRef(null); const handleMouseOver = () => { if (!isActive) { @@ -57,8 +62,90 @@ const Tooltip = ({ const isOpen = (isSticky || isActive) && !isDisabled; + useEffect(() => { + if (parentRef.current && tooltipRef.current) { + const parentRect = parentRef.current.getBoundingClientRect(); + const tooltipRect = tooltipRef.current.getBoundingClientRect(); + const parentWidth = parentRect.width; + const parentHeight = parentRect.height; + const tooltipWidth = tooltipRect.width; + + let newX = 0; + let newY = 0; + + switch (position) { + case 'bottom': + newX = parentRect.left + parentWidth / 2; + newY = parentRect.top + parentHeight; + break; + case 'top': + newX = parentRect.left + parentWidth / 2; + newY = parentRect.top - parentHeight * 2; + break; + case 'right': + newX = parentRect.left + parentWidth; + newY = parentRect.top + parentHeight / 2; + break; + case 'left': + newX = parentRect.left - tooltipWidth - 10; + newY = parentRect.top + parentHeight / 2; + break; + case 'bottom-left': + newX = parentRect.left; + newY = parentRect.top + parentHeight; + break; + case 'bottom-right': + newX = parentRect.left - tooltipWidth + parentWidth; + newY = parentRect.top + parentHeight; + break; + default: + break; + } + + setCoords({ x: newX, y: newY }); + } + }, [isOpen, position, parentRef.current, tooltipRef.current]); + + const tooltipContent = ( +
+
+
{typeof content === 'string' ? t(content) : content}
+
+ {typeof secondaryContent === 'string' ? t(secondaryContent) : secondaryContent} +
+ + + +
+
+ ); + return (
{children} -
-
-
{typeof content === 'string' ? t(content) : content}
-
- {typeof secondaryContent === 'string' ? t(secondaryContent) : secondaryContent} -
- - - -
-
+ {tooltipContainer && ReactDOM.createPortal(tooltipContent, tooltipContainer)}
); }; @@ -110,7 +167,6 @@ Tooltip.defaultProps = { }; Tooltip.propTypes = { - /** prevents tooltip from rendering despite hover/active/sticky */ isDisabled: PropTypes.bool, content: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), position: PropTypes.oneOf(['bottom', 'bottom-left', 'bottom-right', 'left', 'right', 'top']), diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index b8c8c0f9d..feda4c36a 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -29,7 +29,7 @@ import NavBar from './NavBar'; import Notification from './Notification'; import Select from './Select'; import SegmentationTable from './SegmentationTable'; -import SegmentationGroupTable from './SegmentationGroupTable'; +import { SegmentationGroupTable, SegmentationGroupTableExpanded } from './SegmentationGroupTable'; import SidePanel from './SidePanel'; import SplitButton from './SplitButton'; import StudyBrowser from './StudyBrowser'; @@ -144,6 +144,7 @@ export { Select, SegmentationTable, SegmentationGroupTable, + SegmentationGroupTableExpanded, SidePanel, SplitButton, StudyBrowser, diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index dff5e3278..b275d67a6 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -81,6 +81,7 @@ export { Select, SegmentationTable, SegmentationGroupTable, + SegmentationGroupTableExpanded, SidePanel, SplitButton, LegacySplitButton, diff --git a/yarn.lock b/yarn.lock index f409007a5..414b9c706 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2420,7 +2420,7 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== -"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0", "@emotion/use-insertion-effect-with-fallbacks@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== From 9c39689451efb72bf44d32044c47f1907572e1db Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 3 Apr 2024 03:44:05 +0000 Subject: [PATCH 211/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 76 insertions(+), 76 deletions(-) diff --git a/commit.txt b/commit.txt index 54d66d7c6..ad7502228 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -b7f90e3951845396f99b69f0a74fc56b2ffeada1 \ No newline at end of file +9f3235ff096636aafa88d8a42859e8dc85d9036d \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index ce228bd44..ceafc867e 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/i18n": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/i18n": "3.8.0-beta.68", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index d15ef7dc0..b6a583a98 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/i18n": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/i18n": "3.8.0-beta.68", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index edd230d50..e7d184ece 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-measurement-tracking": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-measurement-tracking": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index d5e446e32..b36b7cb42 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 020a0d1aa..8daa777d2 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/i18n": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/i18n": "3.8.0-beta.68", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index f1acb4c3e..2d077bdda 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/i18n": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/i18n": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 3905e5143..cdfdc6f41 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 239a7d3ce..a13d5e5c8 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 1a530ee8f..bb13aa982 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.67.0", "@cornerstonejs/tools": "^1.67.0", - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 6c1499026..97d73ba10 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index fa6779edc..679c70a98 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index dbe6eeba1..cf1d957ed 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/extension-dicom-pdf": "3.8.0-beta.67", - "@ohif/extension-dicom-video": "3.8.0-beta.67" + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/extension-dicom-pdf": "3.8.0-beta.68", + "@ohif/extension-dicom-video": "3.8.0-beta.68" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 1f84eb2d7..5bdaa4166 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/extension-dicom-pdf": "3.8.0-beta.67", - "@ohif/extension-dicom-video": "3.8.0-beta.67", - "@ohif/extension-measurement-tracking": "3.8.0-beta.67", - "@ohif/extension-test": "3.8.0-beta.67" + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/extension-dicom-pdf": "3.8.0-beta.68", + "@ohif/extension-dicom-video": "3.8.0-beta.68", + "@ohif/extension-measurement-tracking": "3.8.0-beta.68", + "@ohif/extension-test": "3.8.0-beta.68" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 806d7ae3d..df7c22636 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/extension-dicom-pdf": "3.8.0-beta.67", - "@ohif/extension-dicom-video": "3.8.0-beta.67", - "@ohif/extension-measurement-tracking": "3.8.0-beta.67" + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/extension-dicom-pdf": "3.8.0-beta.68", + "@ohif/extension-dicom-video": "3.8.0-beta.68", + "@ohif/extension-measurement-tracking": "3.8.0-beta.68" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 52bd795c8..07d0794fb 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.67" + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.68" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 12b3812d8..acc1e5a6e 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/extension-dicom-pdf": "3.8.0-beta.67", - "@ohif/extension-dicom-video": "3.8.0-beta.67" + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/extension-dicom-pdf": "3.8.0-beta.68", + "@ohif/extension-dicom-video": "3.8.0-beta.68" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 6455d9d59..f2a1b2ac5 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/extension-dicom-pdf": "3.8.0-beta.67", - "@ohif/extension-dicom-video": "3.8.0-beta.67", - "@ohif/extension-measurement-tracking": "3.8.0-beta.67" + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/extension-dicom-pdf": "3.8.0-beta.68", + "@ohif/extension-dicom-video": "3.8.0-beta.68", + "@ohif/extension-measurement-tracking": "3.8.0-beta.68" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 11e73f4dd..2c6d5ded7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/ui": "3.8.0-beta.68", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 726645624..014865ead 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.67", - "commit": "b7f90e3951845396f99b69f0a74fc56b2ffeada1" + "version": "3.8.0-beta.68", + "commit": "9f3235ff096636aafa88d8a42859e8dc85d9036d" } \ No newline at end of file diff --git a/version.txt b/version.txt index 9e12b1fe6..72a289038 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.67 \ No newline at end of file +3.8.0-beta.68 \ No newline at end of file From d8f66856ccc03fc8cfb0bf67315a3068c96c39bb Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 3 Apr 2024 03:44:14 +0000 Subject: [PATCH 212/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 11 ++++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 269 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce703ae68..f3fd0b27f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 9883f158c..bead2b9bc 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index ceafc867e..9f55f2ccc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 8f25f08ee..642fa9cb2 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b6a583a98..b00c426e5 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 0c1b9ca1e..f4e710430 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index e7d184ece..00560f0c1 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 4f6a5cfb1..2bfffd122 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index b36b7cb42..3790b6a61 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 14586acdf..9c66e8308 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/default/package.json b/extensions/default/package.json index 8daa777d2..77d84601f 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index d6d3a3a46..f07459596 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 2d077bdda..e07b8dfa1 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 7feffdd0c..9923a9c53 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index cdfdc6f41..630f419ad 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index b66bd3cc0..a4eeb6c02 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index a13d5e5c8..91c11fd1c 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 8bfbca4c7..db9b6a1bd 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index bb13aa982..1d981bbe1 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/ui": "3.8.0-beta.68", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 3564269d9..a01154fb6 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 97d73ba10..a1e307380 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index e50f1ce2c..5b1df1e37 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 679c70a98..1a86a65e6 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 163d03851..deb04f0d6 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 68fc440c9..1f7a66aeb 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index cf1d957ed..1e89602c9 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 3958f2c65..124910f2f 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5bdaa4166..29d50337c 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index aabea7d55..038300919 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index df7c22636..644059d0a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 2641d7ffb..a481195a8 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 07d0794fb..a988bc843 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 37623e693..3ff5ef99c 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index acc1e5a6e..ff6c49e5c 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 13183e3e6..c0dbb7998 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f2a1b2ac5..9bb3c4f1b 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 36ed7cc5b..72de2b6b7 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/platform/app/package.json b/platform/app/package.json index a2f2c134c..121a1ca34 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.67", - "@ohif/extension-cornerstone": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.67", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.67", - "@ohif/extension-default": "3.8.0-beta.67", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.67", - "@ohif/extension-dicom-pdf": "3.8.0-beta.67", - "@ohif/extension-dicom-video": "3.8.0-beta.67", - "@ohif/extension-test": "3.8.0-beta.67", - "@ohif/i18n": "3.8.0-beta.67", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.67", - "@ohif/mode-longitudinal": "3.8.0-beta.67", - "@ohif/mode-microscopy": "3.8.0-beta.67", - "@ohif/mode-test": "3.8.0-beta.67", - "@ohif/ui": "3.8.0-beta.67", + "@ohif/core": "3.8.0-beta.68", + "@ohif/extension-cornerstone": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.68", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", + "@ohif/extension-default": "3.8.0-beta.68", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.68", + "@ohif/extension-dicom-pdf": "3.8.0-beta.68", + "@ohif/extension-dicom-video": "3.8.0-beta.68", + "@ohif/extension-test": "3.8.0-beta.68", + "@ohif/i18n": "3.8.0-beta.68", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.68", + "@ohif/mode-longitudinal": "3.8.0-beta.68", + "@ohif/mode-microscopy": "3.8.0-beta.68", + "@ohif/mode-test": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.68", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index d58760336..3615306a0 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 33b599333..40052fe69 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 6df4c794f..500a84ac8 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/platform/core/package.json b/platform/core/package.json index 2c6d5ded7..111e0c4a3 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 80658f1c9..926a9c3c5 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/platform/docs/package.json b/platform/docs/package.json index b10b64802..77b704dc8 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 22bdc4974..bd75c3a8b 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/platform/i18n/package.json b/platform/i18n/package.json index c9bd5dde4..6fb483293 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 1e11ef026..e8a7b0bd4 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) + + +### Features + +* **segmentation:** Enhanced segmentation panel design for TMTV ([#3988](https://github.com/OHIF/Viewers/issues/3988)) ([9f3235f](https://github.com/OHIF/Viewers/commit/9f3235ff096636aafa88d8a42859e8dc85d9036d)) + + + + + # [3.8.0-beta.67](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.66...v3.8.0-beta.67) (2024-04-02) diff --git a/platform/ui/package.json b/platform/ui/package.json index 9a3d96f1a..6883e5dde 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.67", + "version": "3.8.0-beta.68", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From fa38e6a07a259d8cb33277922884e722414ac548 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Wed, 3 Apr 2024 08:53:29 -0400 Subject: [PATCH 213/289] fix(presentation-state): Iterate over map properly to restore the presentation state (#4013) --- .../ViewportService/CornerstoneViewportService.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index d0cb075bb..a89901bfa 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -182,13 +182,14 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi const { lutPresentation, positionPresentation } = presentations; if (lutPresentation) { const { presentation } = lutPresentation; - - if (viewport instanceof BaseVolumeViewport) { - Object.entries(presentation).forEach( - ([volumeId, properties]: [string, Types.ViewportProperties]) => { + if (viewport instanceof VolumeViewport) { + if (presentation instanceof Map) { + presentation.forEach((properties, volumeId) => { viewport.setProperties(properties, volumeId); - } - ); + }); + } else { + viewport.setProperties(presentation); + } } else { viewport.setProperties(presentation); } From 5f494598bbc428f1fbc1c808515b65ea01e4ee83 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 3 Apr 2024 13:04:21 +0000 Subject: [PATCH 214/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 76 insertions(+), 76 deletions(-) diff --git a/commit.txt b/commit.txt index ad7502228..61bbf2adb 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -9f3235ff096636aafa88d8a42859e8dc85d9036d \ No newline at end of file +fa38e6a07a259d8cb33277922884e722414ac548 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9f55f2ccc..c13eb12a2 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/i18n": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/i18n": "3.8.0-beta.69", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b00c426e5..6f3c0bf2a 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/i18n": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/i18n": "3.8.0-beta.69", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 00560f0c1..c9d8fd51d 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-measurement-tracking": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-measurement-tracking": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 3790b6a61..b6588ad60 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 77d84601f..547ff7ca2 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/i18n": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/i18n": "3.8.0-beta.69", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index e07b8dfa1..86d86402a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/i18n": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/i18n": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 630f419ad..79e91f9fd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 91c11fd1c..5a3028dc4 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 1d981bbe1..4c5de352b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.67.0", "@cornerstonejs/tools": "^1.67.0", - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index a1e307380..befa322e4 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 1a86a65e6..0af3cfa75 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 1e89602c9..3bf495e7d 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/extension-dicom-pdf": "3.8.0-beta.68", - "@ohif/extension-dicom-video": "3.8.0-beta.68" + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/extension-dicom-pdf": "3.8.0-beta.69", + "@ohif/extension-dicom-video": "3.8.0-beta.69" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 29d50337c..aed17d35f 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/extension-dicom-pdf": "3.8.0-beta.68", - "@ohif/extension-dicom-video": "3.8.0-beta.68", - "@ohif/extension-measurement-tracking": "3.8.0-beta.68", - "@ohif/extension-test": "3.8.0-beta.68" + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/extension-dicom-pdf": "3.8.0-beta.69", + "@ohif/extension-dicom-video": "3.8.0-beta.69", + "@ohif/extension-measurement-tracking": "3.8.0-beta.69", + "@ohif/extension-test": "3.8.0-beta.69" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 644059d0a..ac476a709 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/extension-dicom-pdf": "3.8.0-beta.68", - "@ohif/extension-dicom-video": "3.8.0-beta.68", - "@ohif/extension-measurement-tracking": "3.8.0-beta.68" + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/extension-dicom-pdf": "3.8.0-beta.69", + "@ohif/extension-dicom-video": "3.8.0-beta.69", + "@ohif/extension-measurement-tracking": "3.8.0-beta.69" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index a988bc843..18a571bea 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.68" + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.69" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index ff6c49e5c..907d14734 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/extension-dicom-pdf": "3.8.0-beta.68", - "@ohif/extension-dicom-video": "3.8.0-beta.68" + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/extension-dicom-pdf": "3.8.0-beta.69", + "@ohif/extension-dicom-video": "3.8.0-beta.69" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 9bb3c4f1b..82ee73867 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/extension-dicom-pdf": "3.8.0-beta.68", - "@ohif/extension-dicom-video": "3.8.0-beta.68", - "@ohif/extension-measurement-tracking": "3.8.0-beta.68" + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/extension-dicom-pdf": "3.8.0-beta.69", + "@ohif/extension-dicom-video": "3.8.0-beta.69", + "@ohif/extension-measurement-tracking": "3.8.0-beta.69" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 111e0c4a3..c5d3fceaa 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.69", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 014865ead..d1a7a2b53 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.68", - "commit": "9f3235ff096636aafa88d8a42859e8dc85d9036d" + "version": "3.8.0-beta.69", + "commit": "fa38e6a07a259d8cb33277922884e722414ac548" } \ No newline at end of file diff --git a/version.txt b/version.txt index 72a289038..44d9fb4eb 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.68 \ No newline at end of file +3.8.0-beta.69 \ No newline at end of file From 807afb8ce5bb3bfd956d85fa977fd319c458f8ad Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 3 Apr 2024 13:04:29 +0000 Subject: [PATCH 215/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 239 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3fd0b27f..34432ebb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + + +### Bug Fixes + +* **presentation-state:** Iterate over map properly to restore the presentation state ([#4013](https://github.com/OHIF/Viewers/issues/4013)) ([fa38e6a](https://github.com/OHIF/Viewers/commit/fa38e6a07a259d8cb33277922884e722414ac548)) + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index bead2b9bc..c5226cbd0 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index c13eb12a2..f4f32143d 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 642fa9cb2..844964ae0 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 6f3c0bf2a..6442b7285 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index f4e710430..081afb387 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c9d8fd51d..f3b1e5dde 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 2bfffd122..ed6f332ea 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + + +### Bug Fixes + +* **presentation-state:** Iterate over map properly to restore the presentation state ([#4013](https://github.com/OHIF/Viewers/issues/4013)) ([fa38e6a](https://github.com/OHIF/Viewers/commit/fa38e6a07a259d8cb33277922884e722414ac548)) + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index b6588ad60..64fd7a699 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 9c66e8308..cf7536b13 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/extensions/default/package.json b/extensions/default/package.json index 547ff7ca2..d8a13330b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index f07459596..a90b6ac54 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 86d86402a..6306ab1c2 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 9923a9c53..35a946924 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 79e91f9fd..6a1a6e357 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index a4eeb6c02..8cc350bae 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 5a3028dc4..1cbe9e5c0 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index db9b6a1bd..fd3bdade2 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 4c5de352b..8639439fa 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/ui": "3.8.0-beta.69", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index a01154fb6..cf40b3ed8 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index befa322e4..76edff668 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 5b1df1e37..43a5c0100 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0af3cfa75..4c885a10d 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index deb04f0d6..b7eb4186b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 1f7a66aeb..578fa93ae 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 3bf495e7d..2f803e2de 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 124910f2f..d7569809d 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index aed17d35f..010687bc6 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 038300919..e4d5ba62c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index ac476a709..f02f7b8d1 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index a481195a8..97727f3c9 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 18a571bea..e27eeb170 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 3ff5ef99c..b3d5471a5 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 907d14734..874885f5f 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index c0dbb7998..3e532c4f8 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 82ee73867..1d0d9444b 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 72de2b6b7..6cb48f751 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/platform/app/package.json b/platform/app/package.json index 121a1ca34..53f4e4543 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.68", - "@ohif/extension-cornerstone": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.68", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.68", - "@ohif/extension-default": "3.8.0-beta.68", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.68", - "@ohif/extension-dicom-pdf": "3.8.0-beta.68", - "@ohif/extension-dicom-video": "3.8.0-beta.68", - "@ohif/extension-test": "3.8.0-beta.68", - "@ohif/i18n": "3.8.0-beta.68", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.68", - "@ohif/mode-longitudinal": "3.8.0-beta.68", - "@ohif/mode-microscopy": "3.8.0-beta.68", - "@ohif/mode-test": "3.8.0-beta.68", - "@ohif/ui": "3.8.0-beta.68", + "@ohif/core": "3.8.0-beta.69", + "@ohif/extension-cornerstone": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.69", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", + "@ohif/extension-default": "3.8.0-beta.69", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.69", + "@ohif/extension-dicom-pdf": "3.8.0-beta.69", + "@ohif/extension-dicom-video": "3.8.0-beta.69", + "@ohif/extension-test": "3.8.0-beta.69", + "@ohif/i18n": "3.8.0-beta.69", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.69", + "@ohif/mode-longitudinal": "3.8.0-beta.69", + "@ohif/mode-microscopy": "3.8.0-beta.69", + "@ohif/mode-test": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.69", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 3615306a0..8ba6a973c 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 40052fe69..5b287daa0 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 500a84ac8..4f413bc3b 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/platform/core/package.json b/platform/core/package.json index c5d3fceaa..a2e52667d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 926a9c3c5..a5a2783bb 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/platform/docs/package.json b/platform/docs/package.json index 77b704dc8..6d445236b 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index bd75c3a8b..461415d50 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 6fb483293..d5b827dd4 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index e8a7b0bd4..cb86cbf99 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.68](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.67...v3.8.0-beta.68) (2024-04-03) diff --git a/platform/ui/package.json b/platform/ui/package.json index 6883e5dde..7c785b399 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.68", + "version": "3.8.0-beta.69", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 56b1eae6356a6534960df1196bdd1e95b0a9a470 Mon Sep 17 00:00:00 2001 From: nithin-trenser <107548822+nithin-trenser@users.noreply.github.com> Date: Fri, 5 Apr 2024 08:12:48 +0530 Subject: [PATCH 216/289] feat(measurement): Add support measurement label autocompletion (#3855) --- extensions/cornerstone/src/commandsModule.ts | 35 ++- extensions/cornerstone/src/index.tsx | 2 + .../cornerstone/src/utils/callInputDialog.tsx | 72 ++++- .../TrackedMeasurementsContext.tsx | 19 +- .../measurementTrackingMachine.js | 95 ++++++- .../promptBeginTracking.js | 4 +- .../promptLabelAnnotation.js | 33 +++ .../promptTrackNewSeries.js | 4 +- .../promptTrackNewStudy.js | 4 +- .../PanelMeasurementTableTracking/index.tsx | 77 ++---- .../viewports/TrackedCornerstoneViewport.tsx | 5 +- modes/longitudinal/src/index.js | 18 +- modes/longitudinal/src/initToolGroups.js | 86 +++--- modes/tmtv/src/index.js | 8 +- modes/tmtv/src/initToolGroups.js | 34 ++- platform/docs/docs/platform/modes/index.md | 2 +- .../components/Labelling/LabellingFlow.tsx | 104 +++++++ .../Labelling/LabellingTransition.tsx | 28 ++ platform/ui/src/components/Labelling/index.js | 2 + .../src/components/SelectTree/InputRadio.tsx | 41 +++ .../src/components/SelectTree/SelectTree.tsx | 253 ++++++++++++++++++ .../SelectTree/SelectTreeBreadcrumb.tsx | 36 +++ .../ui/src/components/SelectTree/index.js | 2 + platform/ui/src/components/index.js | 3 +- platform/ui/src/index.js | 1 + 25 files changed, 830 insertions(+), 138 deletions(-) create mode 100644 extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptLabelAnnotation.js create mode 100644 platform/ui/src/components/Labelling/LabellingFlow.tsx create mode 100644 platform/ui/src/components/Labelling/LabellingTransition.tsx create mode 100644 platform/ui/src/components/Labelling/index.js create mode 100644 platform/ui/src/components/SelectTree/InputRadio.tsx create mode 100644 platform/ui/src/components/SelectTree/SelectTree.tsx create mode 100644 platform/ui/src/components/SelectTree/SelectTreeBreadcrumb.tsx create mode 100644 platform/ui/src/components/SelectTree/index.js diff --git a/extensions/cornerstone/src/commandsModule.ts b/extensions/cornerstone/src/commandsModule.ts index d70da2b6e..38aa50366 100644 --- a/extensions/cornerstone/src/commandsModule.ts +++ b/extensions/cornerstone/src/commandsModule.ts @@ -16,7 +16,7 @@ import { Types as OhifTypes } from '@ohif/core'; import { vec3, mat4 } from 'gl-matrix'; import CornerstoneViewportDownloadForm from './utils/CornerstoneViewportDownloadForm'; -import callInputDialog from './utils/callInputDialog'; +import { callLabelAutocompleteDialog, showLabelAnnotationPopup } from './utils/callInputDialog'; import toggleImageSliceSync from './utils/imageSliceSync/toggleImageSliceSync'; import { getFirstAnnotationSelected } from './utils/measurementServiceMappings/utils/selection'; import getActiveViewportEnabledElement from './utils/getActiveViewportEnabledElement'; @@ -40,6 +40,7 @@ function commandsModule({ cornerstoneViewportService, uiNotificationService, measurementService, + customizationService, colorbarService, hangingProtocolService, syncGroupService, @@ -140,23 +141,18 @@ function commandsModule({ * on the measurement with a response if not cancelled. */ setMeasurementLabel: ({ uid }) => { + const labelConfig = customizationService.get('measurementLabels'); const measurement = measurementService.getMeasurement(uid); - - callInputDialog( - uiDialogService, - measurement, - (label, actionId) => { - if (actionId === 'cancel') { - return; - } - - const updatedMeasurement = Object.assign({}, measurement, { - label, - }); - - measurementService.update(updatedMeasurement.uid, updatedMeasurement, true); - }, - false + showLabelAnnotationPopup(measurement, uiDialogService, labelConfig).then( + (val: Map) => { + measurementService.update( + uid, + { + ...val, + }, + true + ); + } ); }, @@ -232,8 +228,9 @@ function commandsModule({ viewportGridService.setActiveViewportId(viewportId); }, - arrowTextCallback: ({ callback, data }) => { - callInputDialog(uiDialogService, data, callback); + arrowTextCallback: ({ callback, data, uid }) => { + const labelConfig = customizationService.get('measurementLabels'); + callLabelAutocompleteDialog(uiDialogService, callback, {}, labelConfig); }, toggleCine: () => { const { viewports } = viewportGridService.getState(); diff --git a/extensions/cornerstone/src/index.tsx b/extensions/cornerstone/src/index.tsx index 6a4fdffc1..eb403d3d1 100644 --- a/extensions/cornerstone/src/index.tsx +++ b/extensions/cornerstone/src/index.tsx @@ -31,6 +31,7 @@ import { id } from './id'; import { measurementMappingUtils } from './utils/measurementServiceMappings'; import type { PublicViewportOptions } from './services/ViewportService/Viewport'; import ImageOverlayViewerTool from './tools/ImageOverlayViewerTool'; +import { showLabelAnnotationPopup } from './utils/callInputDialog'; import ViewportActionCornersService from './services/ViewportActionCornersService/ViewportActionCornersService'; import { ViewportActionCornersProvider } from './contextProviders/ViewportActionCornersProvider'; @@ -126,6 +127,7 @@ const cornerstoneExtension: Types.Extensions.Extension = { }, getEnabledElement, dicomLoaderService, + showLabelAnnotationPopup }, }, { diff --git a/extensions/cornerstone/src/utils/callInputDialog.tsx b/extensions/cornerstone/src/utils/callInputDialog.tsx index 37d5021c5..e450536ea 100644 --- a/extensions/cornerstone/src/utils/callInputDialog.tsx +++ b/extensions/cornerstone/src/utils/callInputDialog.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Input, Dialog, ButtonEnums } from '@ohif/ui'; +import { Input, Dialog, ButtonEnums, LabellingFlow } from '@ohif/ui'; /** * @@ -13,6 +13,7 @@ import { Input, Dialog, ButtonEnums } from '@ohif/ui'; * @param {string?} dialogConfig.dialogTitle - title of the input dialog * @param {string?} dialogConfig.inputLabel - show label above the input */ + function callInputDialog( uiDialogService, data, @@ -88,4 +89,73 @@ function callInputDialog( } } +export function callLabelAutocompleteDialog(uiDialogService, callback, dialogConfig, labelConfig) { + const exclusive = labelConfig ? labelConfig.exclusive : false; + const dropDownItems = labelConfig ? labelConfig.items : []; + + const { validateFunc = value => true } = dialogConfig; + + const labellingDoneCallback = value => { + if (typeof value === 'string') { + if (typeof validateFunc === 'function' && !validateFunc(value)) { + return; + } + callback(value, 'save'); + } else { + callback('', 'cancel'); + } + uiDialogService.dismiss({ id: 'select-annotation' }); + }; + + uiDialogService.create({ + id: 'select-annotation', + isDraggable: false, + showOverlay: true, + content: LabellingFlow, + defaultPosition: { + x: window.innerWidth / 2, + y: window.innerHeight / 2, + }, + contentProps: { + labellingDoneCallback: labellingDoneCallback, + measurementData: { label: '' }, + componentClassName: {}, + labelData: dropDownItems, + exclusive: exclusive, + }, + }); +} + +export function showLabelAnnotationPopup(measurement, uiDialogService, labelConfig) { + const exclusive = labelConfig ? labelConfig.exclusive : false; + const dropDownItems = labelConfig ? labelConfig.items : []; + return new Promise>((resolve, reject) => { + const labellingDoneCallback = value => { + uiDialogService.dismiss({ id: 'select-annotation' }); + if (typeof value === 'string') { + measurement.label = value; + } + resolve(measurement); + }; + + uiDialogService.create({ + id: 'select-annotation', + isDraggable: false, + showOverlay: true, + content: LabellingFlow, + defaultPosition: { + x: window.innerWidth / 2, + y: window.innerHeight / 2, + }, + contentProps: { + labellingDoneCallback: labellingDoneCallback, + measurementData: measurement, + componentClassName: {}, + labelData: dropDownItems, + exclusive: exclusive, + }, + }); + }); +} + export default callInputDialog; diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx index bc83efa7d..4aa2cee42 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { Machine } from 'xstate'; import { useMachine } from '@xstate/react'; import { useViewportGrid } from '@ohif/ui'; -import { machineConfiguration, defaultOptions } from './measurementTrackingMachine'; +import { machineConfiguration, defaultOptions, RESPONSE } from './measurementTrackingMachine'; import promptBeginTracking from './promptBeginTracking'; import promptTrackNewSeries from './promptTrackNewSeries'; import promptTrackNewStudy from './promptTrackNewStudy'; @@ -11,6 +11,7 @@ import promptSaveReport from './promptSaveReport'; import promptHydrateStructuredReport from './promptHydrateStructuredReport'; import hydrateStructuredReport from './hydrateStructuredReport'; import { useAppConfig } from '@state'; +import promptLabelAnnotation from './promptLabelAnnotation'; const TrackedMeasurementsContext = React.createContext(); TrackedMeasurementsContext.displayName = 'TrackedMeasurementsContext'; @@ -30,7 +31,7 @@ function TrackedMeasurementsContextProvider( const [viewportGrid, viewportGridService] = useViewportGrid(); const { activeViewportId, viewports } = viewportGrid; - const { measurementService, displaySetService } = servicesManager.services; + const { measurementService, displaySetService, customizationService } = servicesManager.services; const machineOptions = Object.assign({}, defaultOptions); machineOptions.actions = Object.assign({}, machineOptions.actions, { @@ -142,6 +143,20 @@ function TrackedMeasurementsContextProvider( extensionManager, appConfig, }), + promptLabelAnnotation: promptLabelAnnotation.bind(null, { + servicesManager, + extensionManager, + }), + }); + machineOptions.guards = Object.assign({}, machineOptions.guards, { + isLabelOnMeasure: (ctx, evt, condMeta) => { + const labelConfig = customizationService.get('measurementLabels'); + return labelConfig?.labelOnMeasure; + }, + isLabelOnMeasureAndShouldKillMachine: (ctx, evt, condMeta) => { + const labelConfig = customizationService.get('measurementLabels'); + return evt.data && evt.data.userResponse === RESPONSE.NO_NEVER && labelConfig?.labelOnMeasure; + }, }); // TODO: IMPROVE diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js index 2b0b65ca1..fce9930d3 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js @@ -31,10 +31,33 @@ const machineConfiguration = { off: { type: 'final', }, + labellingOnly: { + on: { + TRACK_SERIES: [ + { + target: 'promptLabelAnnotation', + actions: ['setPreviousState'], + }, + { + target: 'off', + }, + ], + }, + }, idle: { entry: 'clearContext', on: { - TRACK_SERIES: 'promptBeginTracking', + TRACK_SERIES: [ + { + target: 'promptLabelAnnotation', + cond: 'isLabelOnMeasure', + actions: ['setPreviousState'], + }, + { + target: 'promptBeginTracking', + actions: ['setPreviousState'], + }, + ], // Unused? We may only do PROMPT_HYDRATE_SR now? SET_TRACKED_SERIES: [ { @@ -64,6 +87,10 @@ const machineConfiguration = { actions: ['setTrackedStudyAndSeries', 'setIsDirty'], cond: 'shouldSetStudyAndSeries', }, + { + target: 'labellingOnly', + cond: 'isLabelOnMeasureAndShouldKillMachine', + }, { target: 'off', cond: 'shouldKillMachine', @@ -80,6 +107,11 @@ const machineConfiguration = { tracking: { on: { TRACK_SERIES: [ + { + target: 'promptLabelAnnotation', + cond: 'isLabelOnMeasure', + actions: ['setPreviousState'], + }, { target: 'promptTrackNewStudy', cond: 'isNewStudy', @@ -252,6 +284,36 @@ const machineConfiguration = { }, }, }, + promptLabelAnnotation: { + invoke: { + src: 'promptLabelAnnotation', + onDone: [ + { + target: 'labellingOnly', + cond: 'wasLabellingOnly', + }, + { + target: 'promptBeginTracking', + cond: 'wasIdle', + }, + { + target: 'promptTrackNewStudy', + cond: 'wasTrackingAndIsNewStudy', + }, + { + target: 'promptTrackNewSeries', + cond: 'wasTrackingAndIsNewSeries', + }, + { + target: 'tracking', + cond: 'wasTracking', + }, + { + target: 'off', + }, + ], + }, + }, }, strict: true, }; @@ -337,6 +399,11 @@ const defaultOptions = { prevTrackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID), trackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID), })), + setPreviousState: assign((ctx, evt, meta) => { + return { + prevState: meta.state.value, + }; + }), }, guards: { // We set dirty any time we performan an action that: @@ -362,6 +429,30 @@ const defaultOptions = { evt.SeriesInstanceUID === undefined || ctx.trackedSeries.includes(evt.SeriesInstanceUID) ); }, + wasLabellingOnly: (ctx, evt, condMeta) => { + return ctx.prevState === 'labellingOnly'; + }, + wasIdle: (ctx, evt, condMeta) => { + return ctx.prevState === 'idle'; + }, + wasTracking: (ctx, evt, condMeta) => { + return ctx.prevState === 'tracking'; + }, + wasTrackingAndIsNewStudy: (ctx, evt, condMeta) => { + return ( + ctx.prevState === 'tracking' && + !ctx.ignoredSeries.includes(evt.data.SeriesInstanceUID) && + ctx.trackedStudy !== evt.data.StudyInstanceUID + ); + }, + wasTrackingAndIsNewSeries: (ctx, evt, condMeta) => { + return ( + ctx.prevState === 'tracking' && + !ctx.ignoredSeries.includes(evt.data.SeriesInstanceUID) && + !ctx.trackedSeries.includes(evt.data.SeriesInstanceUID) + ); + }, + shouldKillMachine: (ctx, evt) => evt.data && evt.data.userResponse === RESPONSE.NO_NEVER, shouldAddSeries: (ctx, evt) => evt.data && evt.data.userResponse === RESPONSE.ADD_SERIES, shouldSetStudyAndSeries: (ctx, evt) => @@ -397,4 +488,4 @@ const defaultOptions = { }, }; -export { defaultOptions, machineConfiguration }; +export { defaultOptions, machineConfiguration, RESPONSE }; diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js index 41fa0baca..acf298146 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js @@ -11,7 +11,9 @@ const RESPONSE = { function promptBeginTracking({ servicesManager, extensionManager }, ctx, evt) { const { uiViewportDialogService } = servicesManager.services; - const { viewportId, StudyInstanceUID, SeriesInstanceUID } = evt; + // When the state change happens after a promise, the state machine sends the retult in evt.data; + // In case of direct transition to the state, the state machine sends the data in evt; + const { viewportId, StudyInstanceUID, SeriesInstanceUID } = evt.data || evt; return new Promise(async function (resolve, reject) { let promptResult = await _askTrackMeasurements(uiViewportDialogService, viewportId); diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptLabelAnnotation.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptLabelAnnotation.js new file mode 100644 index 000000000..b244ccead --- /dev/null +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptLabelAnnotation.js @@ -0,0 +1,33 @@ +function promptLabelAnnotation({ servicesManager, extensionManager }, ctx, evt) { + const { measurementService, customizationService } = servicesManager.services; + const { viewportId, StudyInstanceUID, SeriesInstanceUID, measurementId } = evt; + const utilityModule = extensionManager.getModuleEntry( + '@ohif/extension-cornerstone.utilityModule.common' + ); + const { showLabelAnnotationPopup } = utilityModule.exports; + return new Promise(async function (resolve) { + const labelConfig = customizationService.get('measurementLabels'); + const measurement = measurementService.getMeasurement(measurementId); + const value = await showLabelAnnotationPopup( + measurement, + servicesManager.services.uiDialogService, + labelConfig + ); + + measurementService.update( + measurementId, + { + ...value, + }, + true + ); + + resolve({ + StudyInstanceUID, + SeriesInstanceUID, + viewportId, + }); + }); +} + +export default promptLabelAnnotation; diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewSeries.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewSeries.js index 8a54598ea..d5e5575c5 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewSeries.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewSeries.js @@ -11,7 +11,9 @@ const RESPONSE = { function promptTrackNewSeries({ servicesManager, extensionManager }, ctx, evt) { const { UIViewportDialogService } = servicesManager.services; - const { viewportId, StudyInstanceUID, SeriesInstanceUID } = evt; + // When the state change happens after a promise, the state machine sends the retult in evt.data; + // In case of direct transition to the state, the state machine sends the data in evt; + const { viewportId, StudyInstanceUID, SeriesInstanceUID } = evt.data || evt; return new Promise(async function (resolve, reject) { let promptResult = await _askShouldAddMeasurements(UIViewportDialogService, viewportId); diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js index 23ea2b11e..2837de7cb 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js @@ -11,7 +11,9 @@ const RESPONSE = { function promptTrackNewStudy({ servicesManager, extensionManager }, ctx, evt) { const { UIViewportDialogService } = servicesManager.services; - const { viewportId, StudyInstanceUID, SeriesInstanceUID } = evt; + // When the state change happens after a promise, the state machine sends the retult in evt.data; + // In case of direct transition to the state, the state machine sends the data in evt; + const { viewportId, StudyInstanceUID, SeriesInstanceUID } = evt.data || evt; return new Promise(async function (resolve, reject) { let promptResult = await _askTrackMeasurements(UIViewportDialogService, viewportId); diff --git a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx index 3605995c6..e0f73d601 100644 --- a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx +++ b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx @@ -29,7 +29,7 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { const [viewportGrid] = useViewportGrid(); const [measurementChangeTimestamp, setMeasurementsUpdated] = useState(Date.now().toString()); const debouncedMeasurementChangeTimestamp = useDebounce(measurementChangeTimestamp, 200); - const { measurementService, uiDialogService, displaySetService } = servicesManager.services; + const { measurementService, uiDialogService, displaySetService, customizationService } = servicesManager.services; const [trackedMeasurements, sendTrackedMeasurementsEvent] = useTrackedMeasurements(); const { trackedStudy, trackedSeries } = trackedMeasurements.context; const [displayStudySummary, setDisplayStudySummary] = useState( @@ -134,67 +134,24 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) { }; const onMeasurementItemEditHandler = ({ uid, isActive }) => { - const measurement = measurementService.getMeasurement(uid); jumpToImage({ uid, isActive }); - - const onSubmitHandler = ({ action, value }) => { - switch (action.id) { - case 'save': { - measurementService.update( - uid, - { - ...measurement, - ...value, - }, - true - ); - } + const labelConfig = customizationService.get('measurementLabels'); + const measurement = measurementService.getMeasurement(uid); + const utilityModule = extensionManager.getModuleEntry( + '@ohif/extension-cornerstone.utilityModule.common' + ); + const { showLabelAnnotationPopup } = utilityModule.exports; + showLabelAnnotationPopup(measurement, uiDialogService, labelConfig).then( + (val: Map) => { + measurementService.update( + uid, + { + ...val, + }, + true + ); } - uiDialogService.dismiss({ id: 'enter-annotation' }); - }; - - uiDialogService.create({ - id: 'enter-annotation', - centralize: true, - isDraggable: false, - showOverlay: true, - content: Dialog, - contentProps: { - title: 'Annotation', - noCloseButton: true, - value: { label: measurement.label || '' }, - body: ({ value, setValue }) => { - const onChangeHandler = event => { - event.persist(); - setValue(value => ({ ...value, label: event.target.value })); - }; - - const onKeyPressHandler = event => { - if (event.key === 'Enter') { - onSubmitHandler({ value, action: { id: 'save' } }); - } - }; - return ( - - ); - }, - actions: [ - { id: 'cancel', text: 'Cancel', type: ButtonEnums.type.secondary }, - { id: 'save', text: 'Save', type: ButtonEnums.type.primary }, - ], - onSubmit: onSubmitHandler, - }, - }); + ); }; const onMeasurementItemClickHandler = ({ uid, isActive }) => { diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx index e8400d4a9..3c55e8f68 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx @@ -140,7 +140,9 @@ function TrackedCornerstoneViewport(props) { // Only send the tracked measurements event for the active viewport to avoid // sending it more than once. if (viewportId === activeViewportId) { - const { referenceStudyUID: StudyInstanceUID, referenceSeriesUID: SeriesInstanceUID } = + const { referenceStudyUID: StudyInstanceUID, + referenceSeriesUID: SeriesInstanceUID, + uid: measurementId } = measurement; sendTrackedMeasurementsEvent('SET_DIRTY', { SeriesInstanceUID }); @@ -148,6 +150,7 @@ function TrackedCornerstoneViewport(props) { viewportId, StudyInstanceUID, SeriesInstanceUID, + measurementId }); } }).unsubscribe diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index a04a7d301..6925384fb 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -70,14 +70,28 @@ function modeFactory({ modeConfiguration }) { /** * Lifecycle hooks */ - onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => { + onModeEnter: function ({ servicesManager, extensionManager, commandsManager }) { const { measurementService, toolbarService, toolGroupService, customizationService } = servicesManager.services; measurementService.clearMeasurements(); + // customizationService.addModeCustomizations([ + // { + // id: 'measurementLabels', + // labelOnMeasure: true, + // exclusive: true, + // items: [ + // { value: 'Head', label: 'Head' }, + // { value: 'Shoulder', label: 'Shoulder' }, + // { value: 'Knee', label: 'Knee' }, + // { value: 'Toe', label: 'Toe' }, + // ], + // }, + // ]); + // Init Default and SR ToolGroups - initToolGroups(extensionManager, toolGroupService, commandsManager); + initToolGroups(extensionManager, toolGroupService, commandsManager, this.labelConfig); toolbarService.addButtons([...toolbarButtons, ...moreTools]); toolbarService.createButtonSection('primary', [ diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js index bb9f0fcd3..293729ccf 100644 --- a/modes/longitudinal/src/initToolGroups.js +++ b/modes/longitudinal/src/initToolGroups.js @@ -1,4 +1,10 @@ -function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) { +function initDefaultToolGroup( + extensionManager, + toolGroupService, + commandsManager, + toolGroupId, + modeLabelConfig +) { const utilityModule = extensionManager.getModuleEntry( '@ohif/extension-cornerstone.utilityModule.tools' ); @@ -26,18 +32,25 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage { toolName: toolNames.ArrowAnnotate, configuration: { - getTextCallback: (callback, eventDetails) => - commandsManager.runCommand('arrowTextCallback', { - callback, - eventDetails, - }), - - changeTextCallback: (data, eventDetails, callback) => - commandsManager.runCommand('arrowTextCallback', { - callback, - data, - eventDetails, - }), + getTextCallback: (callback, eventDetails) => { + if (modeLabelConfig) { + callback(' '); + } else { + commandsManager.runCommand('arrowTextCallback', { + callback, + eventDetails, + }); + } + }, + changeTextCallback: (data, eventDetails, callback) => { + if (modeLabelConfig === undefined) { + commandsManager.runCommand('arrowTextCallback', { + callback, + data, + eventDetails, + }); + } + }, }, }, { toolName: toolNames.Bidirectional }, @@ -126,7 +139,7 @@ function initSRToolGroup(extensionManager, toolGroupService) { toolGroupService.createToolGroupAndAddTools(toolGroupId, tools); } -function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) { +function initMPRToolGroup(extensionManager, toolGroupService, commandsManager, modeLabelConfig) { const utilityModule = extensionManager.getModuleEntry( '@ohif/extension-cornerstone.utilityModule.tools' ); @@ -154,18 +167,25 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) { { toolName: toolNames.ArrowAnnotate, configuration: { - getTextCallback: (callback, eventDetails) => - commandsManager.runCommand('arrowTextCallback', { - callback, - eventDetails, - }), - - changeTextCallback: (data, eventDetails, callback) => - commandsManager.runCommand('arrowTextCallback', { - callback, - data, - eventDetails, - }), + getTextCallback: (callback, eventDetails) => { + if (modeLabelConfig) { + callback(''); + } else { + commandsManager.runCommand('arrowTextCallback', { + callback, + eventDetails, + }); + } + }, + changeTextCallback: (data, eventDetails, callback) => { + if (modeLabelConfig === undefined) { + commandsManager.runCommand('arrowTextCallback', { + callback, + data, + eventDetails, + }); + } + }, }, }, { toolName: toolNames.Bidirectional }, @@ -227,10 +247,16 @@ function initVolume3DToolGroup(extensionManager, toolGroupService) { toolGroupService.createToolGroupAndAddTools('volume3d', tools); } -function initToolGroups(extensionManager, toolGroupService, commandsManager) { - initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default'); - initSRToolGroup(extensionManager, toolGroupService); - initMPRToolGroup(extensionManager, toolGroupService, commandsManager); +function initToolGroups(extensionManager, toolGroupService, commandsManager, modeLabelConfig) { + initDefaultToolGroup( + extensionManager, + toolGroupService, + commandsManager, + 'default', + modeLabelConfig + ); + initSRToolGroup(extensionManager, toolGroupService, commandsManager); + initMPRToolGroup(extensionManager, toolGroupService, commandsManager, modeLabelConfig); initVolume3DToolGroup(extensionManager, toolGroupService); } diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index e3cbb1967..6f4fb65f5 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -44,8 +44,12 @@ function modeFactory({ modeConfiguration }) { * Lifecycle hooks */ onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => { - const { toolbarService, toolGroupService, hangingProtocolService, displaySetService } = - servicesManager.services; + const { + toolbarService, + toolGroupService, + hangingProtocolService, + displaySetService, + } = servicesManager.services; const utilityModule = extensionManager.getModuleEntry( '@ohif/extension-cornerstone.utilityModule.tools' diff --git a/modes/tmtv/src/initToolGroups.js b/modes/tmtv/src/initToolGroups.js index 6585de299..75cedca46 100644 --- a/modes/tmtv/src/initToolGroups.js +++ b/modes/tmtv/src/initToolGroups.js @@ -7,7 +7,7 @@ export const toolGroupIds = { // MPR: 'mpr', }; -function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { +function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig) { const tools = { active: [ { @@ -30,18 +30,24 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { toolName: toolNames.ArrowAnnotate, configuration: { getTextCallback: (callback, eventDetails) => { - commandsManager.runCommand('arrowTextCallback', { - callback, - eventDetails, - }); + if (modeLabelConfig) { + callback(' '); + } else { + commandsManager.runCommand('arrowTextCallback', { + callback, + eventDetails, + }); + } + }, + changeTextCallback: (data, eventDetails, callback) => { + if (modeLabelConfig === undefined) { + commandsManager.runCommand('arrowTextCallback', { + callback, + data, + eventDetails, + }); + } }, - - changeTextCallback: (data, eventDetails, callback) => - commandsManager.runCommand('arrowTextCallback', { - callback, - data, - eventDetails, - }), }, }, { toolName: toolNames.Bidirectional }, @@ -102,8 +108,8 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { toolGroupService.createToolGroupAndAddTools(toolGroupIds.MIP, mipTools); } -function initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { - _initToolGroups(toolNames, Enums, toolGroupService, commandsManager); +function initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig) { + _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig); } export default initToolGroups; diff --git a/platform/docs/docs/platform/modes/index.md b/platform/docs/docs/platform/modes/index.md index e62c8c931..35678edc7 100644 --- a/platform/docs/docs/platform/modes/index.md +++ b/platform/docs/docs/platform/modes/index.md @@ -79,7 +79,7 @@ function modeFactory() { extensions: extensionDependencies, hangingProtocol: [], sopClassHandlers: [], - hotkeys: [], + hotkeys: [] }; } diff --git a/platform/ui/src/components/Labelling/LabellingFlow.tsx b/platform/ui/src/components/Labelling/LabellingFlow.tsx new file mode 100644 index 000000000..8d1dfe75f --- /dev/null +++ b/platform/ui/src/components/Labelling/LabellingFlow.tsx @@ -0,0 +1,104 @@ +import SelectTree from '../SelectTree'; +import React, { Component } from 'react'; +import LabellingTransition from './LabellingTransition'; +import cloneDeep from 'lodash.clonedeep'; + +interface PropType { + labellingDoneCallback: (label: string) => void; + measurementData: any; + labelData: any; + exclusive: boolean; + componentClassName: any; +} + +interface StateType { + location: Location; + label: string; + componentClassName: any; + confirmationState: boolean; + displayComponent: boolean; +} + +export interface LabelInfo { + label: string; + value: string; +} + +class LabellingFlow extends Component { + currentItems: Array = []; + state: StateType; + mainElement; + + constructor(props) { + super(props); + const { label } = props.measurementData; + const className = props.componentClassName; + + this.state = { + location, + label, + componentClassName: className, + confirmationState: false, + displayComponent: true, + }; + this.mainElement = React.createRef(); + } + + render() { + if (this.props.labelData) { + this.currentItems = cloneDeep(this.props.labelData); + } + + const className = Object.assign({}, this.state.componentClassName); + + return ( + + <> +
+ {this.labellingStateFragment()} +
+ +
+ ); + } + + closePopup = () => { + this.setState({ + displayComponent: false, + }); + + setTimeout(() => { + this.setState({ + displayComponent: false, + }); + }, 2000); + }; + + selectTreeSelectCalback = (event, itemSelected) => { + const label = itemSelected.value; + this.closePopup(); + return this.props.labellingDoneCallback(label); + }; + + labellingStateFragment = () => { + return ( + + ); + }; +} + +export default LabellingFlow; diff --git a/platform/ui/src/components/Labelling/LabellingTransition.tsx b/platform/ui/src/components/Labelling/LabellingTransition.tsx new file mode 100644 index 000000000..359282627 --- /dev/null +++ b/platform/ui/src/components/Labelling/LabellingTransition.tsx @@ -0,0 +1,28 @@ +import React, { Component } from 'react'; +import { CSSTransition } from 'react-transition-group'; + +const transitionDuration = 0; +const transitionClassName = 'labelling'; +const transitionOnAppear = true; + +interface PropType { + children: React.ReactNode; + displayComponent: boolean; + onTransitionExit: any; +} + +export default class LabellingTransition extends Component { + render() { + return ( + + {this.props.children} + + ); + } +} diff --git a/platform/ui/src/components/Labelling/index.js b/platform/ui/src/components/Labelling/index.js new file mode 100644 index 000000000..77a5fe795 --- /dev/null +++ b/platform/ui/src/components/Labelling/index.js @@ -0,0 +1,2 @@ +import LabellingFlow from './LabellingFlow'; +export default LabellingFlow; diff --git a/platform/ui/src/components/SelectTree/InputRadio.tsx b/platform/ui/src/components/SelectTree/InputRadio.tsx new file mode 100644 index 000000000..85ee4c7e4 --- /dev/null +++ b/platform/ui/src/components/SelectTree/InputRadio.tsx @@ -0,0 +1,41 @@ +import { Component } from 'react'; +import React from 'react'; + +interface PropsType { + value: string; + label: string; + itemData: { label: string; value: string }; + id: string; + onSelected: Function; + index: number; + selectTree: any; +} + +export default class InputRadio extends Component { + render() { + const { focusedIndex } = this.props.selectTree.state; + const isFocused = this.props.index === focusedIndex; + + return ( + + ); + } + + onSelected = evt => { + this.props.onSelected(evt, this.props.itemData); + }; +} diff --git a/platform/ui/src/components/SelectTree/SelectTree.tsx b/platform/ui/src/components/SelectTree/SelectTree.tsx new file mode 100644 index 000000000..cd92244af --- /dev/null +++ b/platform/ui/src/components/SelectTree/SelectTree.tsx @@ -0,0 +1,253 @@ +import React, { Component } from 'react'; +import InputRadio from './InputRadio'; +import SelectTreeBreadcrumb from './SelectTreeBreadcrumb'; +import cloneDeep from 'lodash.clonedeep'; +import Icon from '../Icon'; +import Button, { ButtonEnums } from '../Button'; +import { LabelInfo } from '../Labelling/LabellingFlow'; + +interface PropType { + autoFocus: boolean; + searchEnabled: boolean; + selectTreeFirstTitle: string; + items: Array; + onSelected: Function; + exclusive: boolean; + closePopup: Function; + label: string; + columns: number; +} + +interface StateProps { + searchTerm: string | null; + currentNode: any; + value: string | null; + focusedIndex: number; +} + +export class SelectTree extends Component { + state: StateProps; + static defaultProps = { + searchEnabled: true, + autoFocus: true, + selectTreeFirstTitle: 'First Level itens', + items: [], + }; + + constructor(props) { + super(props); + + this.state = { + searchTerm: this.props.items.length > 0 ? null : this.props.label, + currentNode: null, + value: null, + focuseIndex: 0, + }; + } + + render() { + const treeItems = this.getTreeItems(); + + return ( +
+
+ {this.headerItem()} + + {this.props.items.length > 0 && ( +
+ {this.state.currentNode && ( + + )} +
+
{treeItems}
+
+
+ )} +
+
+ ); + } + + isLeafSelected = item => item && !Array.isArray(item.items); + + filterItems() { + const filteredItems = []; + const rawItems = cloneDeep(this.props.items); + rawItems.forEach(item => { + if (Array.isArray(item.items)) { + item.items.forEach(item => { + const label = item.label.toLowerCase(); + const searchTerm = this.state.searchTerm.toLowerCase(); + if (label.indexOf(searchTerm) !== -1) { + filteredItems.push(item); + } + }); + } else { + const label = item.label.toLowerCase(); + const searchTerm = this.state.searchTerm.toLowerCase(); + if (label.indexOf(searchTerm) !== -1) { + filteredItems.push(item); + } + } + }); + return filteredItems; + } + + getTreeItems() { + const storageKey = 'SelectTree'; + let treeItems: Array; + + if (this.state.searchTerm) { + const filterItems = this.filterItems(); + if ( + this.props.exclusive === false && + filterItems.find(item => item.label === this.state.searchTerm) === undefined + ) { + treeItems = [ + { label: this.state.searchTerm, value: this.state.searchTerm }, + ...filterItems, + ]; + } else { + treeItems = filterItems; + } + } else if (this.state.currentNode) { + treeItems = cloneDeep(this.state.currentNode.items); + } else { + treeItems = cloneDeep(this.props.items); + } + + return treeItems.map((item, index) => { + const itemKey = index; + return ( + + ); + }); + } + + handleKeyDown = event => { + const { key } = event; + const { focusedIndex } = this.state; + const treeItems = this.getTreeItems(); + + if (key === 'ArrowUp') { + this.setState(prevState => ({ + focusedIndex: + prevState.focusedIndex > 0 ? prevState.focusedIndex - 1 : treeItems.length - 1, + })); + } else if (key === 'ArrowDown') { + this.setState(prevState => ({ + focusedIndex: + prevState.focusedIndex < treeItems.length - 1 ? prevState.focusedIndex + 1 : 0, + })); + } else if (key === 'Enter') { + const selectedItem = this.state.searchTerm + ? { label: this.state.searchTerm, value: this.state.searchTerm } + : treeItems[focusedIndex].props.itemData; + this.onSelected(event, selectedItem); + } + }; + + onSubmitHandler = evt => { + this.props.onSelected(evt, { + label: this.state.searchTerm, + value: this.state.searchTerm, + }); + }; + + headerItem = () => { + const inputLeftPadding = this.props.items.length > 0 ? 'pl-8' : 'pl-4'; + const title = this.props.selectTreeFirstTitle; + + return ( +
+
+ {title} +
+ this.props.closePopup()} + fill="#a3a3a3" + /> +
+
+ {this.props.searchEnabled && ( +
+ {this.props.items.length > 0 && ( +
+ +
+ )} + 0 ? 'Search labels' : 'Enter label'} + autoFocus={this.props.autoFocus} + onChange={this.searchLocations} + value={this.state.searchTerm ? this.state.searchTerm : ''} + onKeyDown={this.handleKeyDown} + /> +
+ )} + {this.props.items.length === 0 && ( +
+ +
+ )} +
+ ); + }; + + searchLocations = evt => { + this.setState({ + currentNode: null, + searchTerm: evt.currentTarget.value, + }); + }; + + onSelected = (event, item) => { + if (this.isLeafSelected(item)) { + this.setState({ + searchTerm: null, + currentNode: null, + value: null, + }); + } else { + this.setState({ + currentNode: item, + }); + } + return this.props.onSelected(event, item); + }; + + onBreadcrumbSelected = () => { + this.setState({ + currentNode: null, + }); + }; +} diff --git a/platform/ui/src/components/SelectTree/SelectTreeBreadcrumb.tsx b/platform/ui/src/components/SelectTree/SelectTreeBreadcrumb.tsx new file mode 100644 index 000000000..ee19ba6a6 --- /dev/null +++ b/platform/ui/src/components/SelectTree/SelectTreeBreadcrumb.tsx @@ -0,0 +1,36 @@ +import { Component } from 'react'; +import React from 'react'; +import Icon from '../Icon'; + +interface PropType { + value: string; + label: string; + onSelected: (event: any) => void; +} + +export default class SelectTreeBreadcrumb extends Component { + render() { + return ( +
+ +
+ ); + } +} diff --git a/platform/ui/src/components/SelectTree/index.js b/platform/ui/src/components/SelectTree/index.js new file mode 100644 index 000000000..a8b1f6f40 --- /dev/null +++ b/platform/ui/src/components/SelectTree/index.js @@ -0,0 +1,2 @@ +import { SelectTree } from './SelectTree'; +export default SelectTree; diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index feda4c36a..0dc9438da 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -80,6 +80,7 @@ import PanelSection from './PanelSection'; import AdvancedToolbox from './AdvancedToolbox'; import InputDoubleRange from './InputDoubleRange'; import LegacyButtonGroup from './LegacyButtonGroup'; +import LabellingFlow from './Labelling'; import SwitchButton, { SwitchLabelLocation } from './SwitchButton'; import * as AllInOneMenu from './AllInOneMenu'; import ViewportActionArrows from './ViewportActionArrows'; @@ -89,7 +90,6 @@ import { ToolSettings } from './AdvancedToolbox'; import { Toolbox } from './Toolbox'; import InvestigationalUseDialog from './InvestigationalUseDialog'; import MeasurementItem from './MeasurementTable/MeasurementItem'; - import LayoutPreset from './LayoutPreset'; export { @@ -182,6 +182,7 @@ export { ViewportPane, ViewportOverlay, WindowLevelMenuItem, + LabellingFlow, HeaderPatientInfo, LayoutPreset, LegacySplitButton, diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index b275d67a6..704f27302 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -121,6 +121,7 @@ export { WindowLevelMenuItem, ImageScrollbar, ViewportOverlay, + LabellingFlow, HeaderPatientInfo, ToolSettings, Toolbox, From f7c9a5cb649e72857fb1669753816183948a94b8 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 5 Apr 2024 02:53:45 +0000 Subject: [PATCH 217/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 76 insertions(+), 76 deletions(-) diff --git a/commit.txt b/commit.txt index 61bbf2adb..7df888949 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -fa38e6a07a259d8cb33277922884e722414ac548 \ No newline at end of file +56b1eae6356a6534960df1196bdd1e95b0a9a470 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index f4f32143d..2e89c2e66 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/i18n": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/i18n": "3.8.0-beta.70", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 6442b7285..ce90c609b 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/i18n": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/i18n": "3.8.0-beta.70", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index f3b1e5dde..4be832a90 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-measurement-tracking": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-measurement-tracking": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 64fd7a699..e9b02d523 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index d8a13330b..a49ae231a 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/i18n": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/i18n": "3.8.0-beta.70", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 6306ab1c2..b698ed9d3 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/i18n": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/i18n": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 6a1a6e357..3de6d1517 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 1cbe9e5c0..edbac3342 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 8639439fa..b9114b96c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.67.0", "@cornerstonejs/tools": "^1.67.0", - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 76edff668..ca42853cb 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 4c885a10d..72d8e38f8 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 2f803e2de..ab2efd335 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/extension-dicom-pdf": "3.8.0-beta.69", - "@ohif/extension-dicom-video": "3.8.0-beta.69" + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/extension-dicom-pdf": "3.8.0-beta.70", + "@ohif/extension-dicom-video": "3.8.0-beta.70" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 010687bc6..40f0dae00 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/extension-dicom-pdf": "3.8.0-beta.69", - "@ohif/extension-dicom-video": "3.8.0-beta.69", - "@ohif/extension-measurement-tracking": "3.8.0-beta.69", - "@ohif/extension-test": "3.8.0-beta.69" + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/extension-dicom-pdf": "3.8.0-beta.70", + "@ohif/extension-dicom-video": "3.8.0-beta.70", + "@ohif/extension-measurement-tracking": "3.8.0-beta.70", + "@ohif/extension-test": "3.8.0-beta.70" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index f02f7b8d1..db8f6704d 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/extension-dicom-pdf": "3.8.0-beta.69", - "@ohif/extension-dicom-video": "3.8.0-beta.69", - "@ohif/extension-measurement-tracking": "3.8.0-beta.69" + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/extension-dicom-pdf": "3.8.0-beta.70", + "@ohif/extension-dicom-video": "3.8.0-beta.70", + "@ohif/extension-measurement-tracking": "3.8.0-beta.70" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index e27eeb170..638acd1c6 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.69" + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.70" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 874885f5f..c157a8062 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/extension-dicom-pdf": "3.8.0-beta.69", - "@ohif/extension-dicom-video": "3.8.0-beta.69" + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/extension-dicom-pdf": "3.8.0-beta.70", + "@ohif/extension-dicom-video": "3.8.0-beta.70" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 1d0d9444b..e8fc3845e 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/extension-dicom-pdf": "3.8.0-beta.69", - "@ohif/extension-dicom-video": "3.8.0-beta.69", - "@ohif/extension-measurement-tracking": "3.8.0-beta.69" + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/extension-dicom-pdf": "3.8.0-beta.70", + "@ohif/extension-dicom-video": "3.8.0-beta.70", + "@ohif/extension-measurement-tracking": "3.8.0-beta.70" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index a2e52667d..c2ca7fc4d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.70", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index d1a7a2b53..300276335 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.69", - "commit": "fa38e6a07a259d8cb33277922884e722414ac548" + "version": "3.8.0-beta.70", + "commit": "56b1eae6356a6534960df1196bdd1e95b0a9a470" } \ No newline at end of file diff --git a/version.txt b/version.txt index 44d9fb4eb..13dd77ef7 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.69 \ No newline at end of file +3.8.0-beta.70 \ No newline at end of file From 78fd8cce86bb838f52291f94491e7d7c159db089 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 5 Apr 2024 02:53:53 +0000 Subject: [PATCH 218/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 254 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34432ebb8..670739045 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index c5226cbd0..c8a39c69c 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 2e89c2e66..f2ba35fe9 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 844964ae0..2cccc362b 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index ce90c609b..cf97c5c37 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 081afb387..12818119d 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 4be832a90..7c6ed4431 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index ed6f332ea..5f676deea 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e9b02d523..bb7b4cb93 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index cf7536b13..9c5f54955 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index a49ae231a..c9404179b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index a90b6ac54..d0ee964d9 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b698ed9d3..eb7fe5b8c 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 35a946924..dd0b66e3e 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 3de6d1517..b1491d811 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 8cc350bae..f9bb460a3 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index edbac3342..caed335b5 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index fd3bdade2..09f6f30b3 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b9114b96c..9c0d4590b 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/ui": "3.8.0-beta.70", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index cf40b3ed8..d39bf3b1b 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index ca42853cb..f71e92b1f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 43a5c0100..f996a013b 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 72d8e38f8..247468da4 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index b7eb4186b..8d1d3a011 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 578fa93ae..0b2f1397f 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index ab2efd335..035f3bec6 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index d7569809d..7ff52d418 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 40f0dae00..306ab5a3d 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index e4d5ba62c..ebfc3137c 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index db8f6704d..ef32c1d63 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 97727f3c9..2249d4494 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 638acd1c6..18c085729 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index b3d5471a5..00ecd90ee 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index c157a8062..1bfc5809e 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 3e532c4f8..3d4a003f0 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index e8fc3845e..45b18d76a 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 6cb48f751..7a01f9a50 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 53f4e4543..38e83780a 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.69", - "@ohif/extension-cornerstone": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.69", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.69", - "@ohif/extension-default": "3.8.0-beta.69", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.69", - "@ohif/extension-dicom-pdf": "3.8.0-beta.69", - "@ohif/extension-dicom-video": "3.8.0-beta.69", - "@ohif/extension-test": "3.8.0-beta.69", - "@ohif/i18n": "3.8.0-beta.69", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.69", - "@ohif/mode-longitudinal": "3.8.0-beta.69", - "@ohif/mode-microscopy": "3.8.0-beta.69", - "@ohif/mode-test": "3.8.0-beta.69", - "@ohif/ui": "3.8.0-beta.69", + "@ohif/core": "3.8.0-beta.70", + "@ohif/extension-cornerstone": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.70", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", + "@ohif/extension-default": "3.8.0-beta.70", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.70", + "@ohif/extension-dicom-pdf": "3.8.0-beta.70", + "@ohif/extension-dicom-video": "3.8.0-beta.70", + "@ohif/extension-test": "3.8.0-beta.70", + "@ohif/i18n": "3.8.0-beta.70", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.70", + "@ohif/mode-longitudinal": "3.8.0-beta.70", + "@ohif/mode-microscopy": "3.8.0-beta.70", + "@ohif/mode-test": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.70", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 8ba6a973c..800c679fc 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 5b287daa0..2aa3c92d0 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 4f413bc3b..db3169f96 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index c2ca7fc4d..cea82588b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index a5a2783bb..f5d03562e 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 6d445236b..051f809ce 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 461415d50..daabb630e 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index d5b827dd4..3144096ba 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index cb86cbf99..bc55ad5bb 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) + + +### Features + +* **measurement:** Add support measurement label autocompletion ([#3855](https://github.com/OHIF/Viewers/issues/3855)) ([56b1eae](https://github.com/OHIF/Viewers/commit/56b1eae6356a6534960df1196bdd1e95b0a9a470)) + + + + + # [3.8.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.68...v3.8.0-beta.69) (2024-04-03) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 7c785b399..9d27b3df8 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.69", + "version": "3.8.0-beta.70", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Thu, 4 Apr 2024 23:00:11 -0400 Subject: [PATCH 219/289] feat(advanced-roi-tools): new tools and icon updates and overlay bug fixes (#4014) --- .../Overlays/CustomizableViewportOverlay.tsx | 129 +++++++++++------- .../cornerstone/src/getToolbarModule.tsx | 20 +++ .../cornerstone/src/initCornerstoneTools.js | 18 ++- extensions/default/src/Toolbar/Toolbar.tsx | 9 +- modes/basic-test-mode/src/initToolGroups.ts | 5 + modes/basic-test-mode/src/moreTools.ts | 20 ++- modes/basic-test-mode/src/toolbarButtons.ts | 24 ++++ modes/longitudinal/src/initToolGroups.js | 6 +- modes/longitudinal/src/moreTools.ts | 20 ++- modes/longitudinal/src/toolbarButtons.ts | 24 ++++ modes/segmentation/src/initToolGroups.ts | 2 + modes/segmentation/src/toolbarButtons.ts | 20 ++- .../src/assets/icons/focus-frame-target.svg | 13 ++ .../ui/src/assets/icons/icon-tool-brush.svg | 15 +- .../ui/src/assets/icons/icon-tool-eraser.svg | 17 ++- .../ui/src/assets/icons/icon-tool-shape.svg | 7 +- .../src/assets/icons/icon-tool-threshold.svg | 17 ++- platform/ui/src/assets/icons/pencil.svg | 5 +- platform/ui/src/assets/icons/tool-angle.svg | 17 ++- .../ui/src/assets/icons/tool-annotate.svg | 14 +- .../src/assets/icons/tool-bidirectional.svg | 26 +++- .../ui/src/assets/icons/tool-calibrate.svg | 19 +++ platform/ui/src/assets/icons/tool-capture.svg | 15 +- platform/ui/src/assets/icons/tool-cine.svg | 13 +- platform/ui/src/assets/icons/tool-circle.svg | 11 +- .../ui/src/assets/icons/tool-crosshair.svg | 28 ++-- .../assets/icons/tool-dicom-tag-browser.svg | 15 ++ .../src/assets/icons/tool-flip-horizontal.svg | 15 +- .../ui/src/assets/icons/tool-freehand-roi.svg | 12 ++ platform/ui/src/assets/icons/tool-invert.svg | 14 +- .../src/assets/icons/tool-layout-default.svg | 21 +++ platform/ui/src/assets/icons/tool-length.svg | 20 ++- .../ui/src/assets/icons/tool-magnetic-roi.svg | 17 +++ platform/ui/src/assets/icons/tool-magnify.svg | 11 +- .../src/assets/icons/tool-measure-elipse.svg | 12 ++ platform/ui/src/assets/icons/tool-move.svg | 19 ++- .../src/assets/icons/tool-quick-magnify.svg | 11 ++ .../ui/src/assets/icons/tool-rectangle.svg | 16 ++- .../src/assets/icons/tool-reference-lines.svg | 13 ++ platform/ui/src/assets/icons/tool-reset.svg | 13 +- .../ui/src/assets/icons/tool-rotate-right.svg | 17 ++- .../ui/src/assets/icons/tool-spline-roi.svg | 14 ++ .../assets/icons/tool-stack-image-sync.svg | 10 ++ .../ui/src/assets/icons/tool-stack-scroll.svg | 15 +- .../icons/tool-toggle-dicom-overlay.svg | 9 ++ .../icons/tool-ultrasound-bidirectional.svg | 15 ++ .../ui/src/assets/icons/tool-window-level.svg | 13 +- platform/ui/src/assets/icons/tool-zoom.svg | 13 +- platform/ui/src/components/Icon/getIcon.js | 30 ++-- .../src/components/IconButton/IconButton.tsx | 4 +- .../components/SplitButton/SplitButton.tsx | 7 +- .../ToolbarButton/ToolbarButton.tsx | 2 +- 52 files changed, 662 insertions(+), 210 deletions(-) create mode 100644 platform/ui/src/assets/icons/focus-frame-target.svg create mode 100644 platform/ui/src/assets/icons/tool-calibrate.svg create mode 100644 platform/ui/src/assets/icons/tool-dicom-tag-browser.svg create mode 100644 platform/ui/src/assets/icons/tool-freehand-roi.svg create mode 100644 platform/ui/src/assets/icons/tool-layout-default.svg create mode 100644 platform/ui/src/assets/icons/tool-magnetic-roi.svg create mode 100644 platform/ui/src/assets/icons/tool-measure-elipse.svg create mode 100644 platform/ui/src/assets/icons/tool-quick-magnify.svg create mode 100644 platform/ui/src/assets/icons/tool-reference-lines.svg create mode 100644 platform/ui/src/assets/icons/tool-spline-roi.svg create mode 100644 platform/ui/src/assets/icons/tool-stack-image-sync.svg create mode 100644 platform/ui/src/assets/icons/tool-toggle-dicom-overlay.svg create mode 100644 platform/ui/src/assets/icons/tool-ultrasound-bidirectional.svg diff --git a/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx b/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx index 5349481a8..3f2f7474b 100644 --- a/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx +++ b/extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx @@ -80,9 +80,9 @@ function CustomizableViewportOverlay({ 'cornerstoneOverlayBottomRight' ); - const instance = useMemo(() => { + const instances = useMemo(() => { if (viewportData != null) { - return _getViewportInstance(viewportData, imageIndex); + return _getViewportInstances(viewportData); } else { return null; } @@ -177,7 +177,7 @@ function CustomizableViewportOverlay({ formatTime: formatDICOMTime, formatNumberPrecision, }, - instance, + instance: instances ? instances[item?.instanceIndex] : null, voi, scale, instanceNumber, @@ -207,7 +207,7 @@ function CustomizableViewportOverlay({ viewportId, servicesManager, customizationService, - instance, + instances, voi, scale, instanceNumber, @@ -217,13 +217,15 @@ function CustomizableViewportOverlay({ const getContent = useCallback( (customization, defaultItems, keyPrefix) => { const items = customization?.items ?? defaultItems; - return ( <> {items.map((item, index) => (
{item?.condition - ? item.condition({ instance, formatters: { formatDate: formatDICOMDate } }) + ? item.condition({ + instance: instances ? instances[item?.instanceIndex] : null, + formatters: { formatDate: formatDICOMDate }, + }) ? _renderOverlayItem(item) : null : _renderOverlayItem(item)} @@ -235,35 +237,50 @@ function CustomizableViewportOverlay({ [_renderOverlayItem] ); + const studyDateItem = { + id: 'StudyDate', + customizationType: 'ohif.overlayItem', + label: '', + title: 'Study date', + condition: ({ instance }) => instance && instance.StudyDate, + contentF: ({ instance, formatters: { formatDate } }) => formatDate(instance.StudyDate), + }; + + const seriesDescriptionItem = { + id: 'SeriesDescription', + customizationType: 'ohif.overlayItem', + label: '', + title: 'Series description', + attribute: 'SeriesDescription', + condition: ({ instance }) => { + return instance && instance.SeriesDescription; + }, + }; + + const topLeftItems = instances + ? instances + .map((instance, index) => { + return [ + { + ...studyDateItem, + instanceIndex: index, + }, + { + ...seriesDescriptionItem, + instanceIndex: index, + }, + ]; + }) + .flat() + : []; + return ( instance && instance.StudyDate, - contentF: ({ instance, formatters: { formatDate } }) => - formatDate(instance.StudyDate), - }, - { - id: 'SeriesDescription', - customizationType: 'ohif.overlayItem', - label: '', - title: 'Series description', - attribute: 'SeriesDescription', - condition: ({ instance }) => instance && instance.SeriesDescription, - }, - ], - 'topLeftOverlayItem' - ) + getContent(topLeftCustomization, [...topLeftItems], 'topLeftOverlayItem') } topRight={getContent(topRightCustomization, [], 'topRightOverlayItem')} bottomLeft={getContent( @@ -298,18 +315,26 @@ function CustomizableViewportOverlay({ ); } -function _getViewportInstance(viewportData, imageIndex) { - let imageId = null; +function _getViewportInstances(viewportData) { + const imageIds = []; if (viewportData.viewportType === Enums.ViewportType.STACK) { - imageId = viewportData.data.imageIds[imageIndex]; + imageIds.push(viewportData.data.imageIds[0]); } else if (viewportData.viewportType === Enums.ViewportType.ORTHOGRAPHIC) { const volumes = viewportData.data; - if (volumes && volumes.length == 1) { - const volume = volumes[0]; - imageId = volume.imageIds[imageIndex]; - } + volumes.forEach(volume => { + if (!volume?.imageIds) { + return; + } + imageIds.push(volume.imageIds[0]); + }); } - return imageId ? metaData.get('instance', imageId) || {} : {}; + const instances = []; + + imageIds.forEach(imageId => { + const instance = metaData.get('instance', imageId) || {}; + instances.push(instance); + }); + return instances; } const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneViewportService) => { @@ -323,7 +348,8 @@ const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneView instanceNumber = _getInstanceNumberFromVolume( viewportData, viewportId, - cornerstoneViewportService + cornerstoneViewportService, + imageIndex ); break; } @@ -354,15 +380,20 @@ function _getInstanceNumberFromStack(viewportData, imageIndex) { // Since volume viewports can be in any view direction, they can render // a reconstructed image which don't have imageIds; therefore, no instance and instanceNumber // Here we check if viewport is in the acquisition direction and if so, we get the instanceNumber -function _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService) { - const volumes = viewportData.volumes; +function _getInstanceNumberFromVolume( + viewportData, + viewportId, + cornerstoneViewportService, + imageIndex +) { + const volumes = viewportData.data; - // Todo: support fusion of acquisition plane which has instanceNumber - if (!volumes || volumes.length > 1) { + if (!volumes) { return; } - const volume = volumes[0]; + // Todo: support fusion of acquisition plane which has instanceNumber + const { volume } = volumes[0]; const { direction, imageIds } = volume; const cornerstoneViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); @@ -445,11 +476,15 @@ function InstanceNumberOverlayItem({ className="overlay-item flex flex-row" style={{ color: (customization && customization.color) || undefined }} > - I: - {instanceNumber !== undefined && instanceNumber !== null - ? `${instanceNumber} (${imageIndex + 1}/${numberOfSlices})` - : `${imageIndex + 1}/${numberOfSlices}`} + {instanceNumber !== undefined && instanceNumber !== null ? ( + <> + I: + {`${instanceNumber} (${imageIndex + 1}/${numberOfSlices})`} + + ) : ( + `${imageIndex + 1}/${numberOfSlices}` + )}
); diff --git a/extensions/cornerstone/src/getToolbarModule.tsx b/extensions/cornerstone/src/getToolbarModule.tsx index 807eeb4f3..565eb2a6b 100644 --- a/extensions/cornerstone/src/getToolbarModule.tsx +++ b/extensions/cornerstone/src/getToolbarModule.tsx @@ -182,6 +182,26 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { } }, }, + { + name: 'evaluate.isUS', + evaluate: ({ viewportId, disabledText }) => { + const displaySetUIDs = viewportGridService.getDisplaySetsUIDsForViewport(viewportId); + + if (!displaySetUIDs?.length) { + return; + } + + const displaySets = displaySetUIDs.map(displaySetService.getDisplaySetByUID); + const isUS = displaySets.some(displaySet => displaySet.Modality === 'US'); + if (!isUS) { + return { + disabled: true, + className: '!text-common-bright ohif-disabled', + disabledText: disabledText ?? 'Not available on the current viewport', + }; + } + }, + }, { name: 'evaluate.viewportProperties.toggle', evaluate: ({ viewportId, button }) => { diff --git a/extensions/cornerstone/src/initCornerstoneTools.js b/extensions/cornerstone/src/initCornerstoneTools.js index 767b607a7..a4599201e 100644 --- a/extensions/cornerstone/src/initCornerstoneTools.js +++ b/extensions/cornerstone/src/initCornerstoneTools.js @@ -16,7 +16,6 @@ import { ProbeTool, AngleTool, CobbAngleTool, - PlanarFreehandROITool, MagnifyTool, CrosshairsTool, SegmentationDisplayTool, @@ -28,6 +27,11 @@ import { CircleScissorsTool, RectangleScissorsTool, SphereScissorsTool, + AdvancedMagnifyTool, + UltrasoundDirectionalTool, + PlanarFreehandROITool, + SplineROITool, + LivewireContourTool, } from '@cornerstonejs/tools'; import CalibrationLineTool from './tools/CalibrationLineTool'; @@ -55,7 +59,6 @@ export default function initCornerstoneTools(configuration = {}) { addTool(DragProbeTool); addTool(AngleTool); addTool(CobbAngleTool); - addTool(PlanarFreehandROITool); addTool(MagnifyTool); addTool(CrosshairsTool); addTool(SegmentationDisplayTool); @@ -66,6 +69,11 @@ export default function initCornerstoneTools(configuration = {}) { addTool(RectangleScissorsTool); addTool(SphereScissorsTool); addTool(ImageOverlayViewerTool); + addTool(AdvancedMagnifyTool); + addTool(UltrasoundDirectionalTool); + addTool(PlanarFreehandROITool); + addTool(SplineROITool); + addTool(LivewireContourTool); // Modify annotation tools to use dashed lines on SR const annotationStyle = { @@ -100,7 +108,6 @@ const toolNames = { Bidirectional: BidirectionalTool.toolName, Angle: AngleTool.toolName, CobbAngle: CobbAngleTool.toolName, - PlanarFreehandROI: PlanarFreehandROITool.toolName, Magnify: MagnifyTool.toolName, Crosshairs: CrosshairsTool.toolName, SegmentationDisplay: SegmentationDisplayTool.toolName, @@ -111,6 +118,11 @@ const toolNames = { RectangleScissors: RectangleScissorsTool.toolName, SphereScissors: SphereScissorsTool.toolName, ImageOverlayViewer: ImageOverlayViewerTool.toolName, + AdvancedMagnify: AdvancedMagnifyTool.toolName, + UltrasoundDirectional: UltrasoundDirectionalTool.toolName, + SplineROI: SplineROITool.toolName, + LivewireContour: LivewireContourTool.toolName, + PlanarFreehandROI: PlanarFreehandROITool.toolName, }; export { toolNames }; diff --git a/extensions/default/src/Toolbar/Toolbar.tsx b/extensions/default/src/Toolbar/Toolbar.tsx index 000a2b1da..26be1263b 100644 --- a/extensions/default/src/Toolbar/Toolbar.tsx +++ b/extensions/default/src/Toolbar/Toolbar.tsx @@ -31,14 +31,7 @@ export function Toolbar({ servicesManager }) { /> ); - return ( -
- {tool} -
- ); + return
{tool}
; })} ); diff --git a/modes/basic-test-mode/src/initToolGroups.ts b/modes/basic-test-mode/src/initToolGroups.ts index 97caed87a..a791d6ab0 100644 --- a/modes/basic-test-mode/src/initToolGroups.ts +++ b/modes/basic-test-mode/src/initToolGroups.ts @@ -49,6 +49,11 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage { toolName: toolNames.Angle }, { toolName: toolNames.Magnify }, { toolName: toolNames.SegmentationDisplay }, + { toolName: toolNames.AdvancedMagnify }, + { toolName: toolNames.UltrasoundDirectional }, + { toolName: toolNames.PlanarFreehandROI }, + { toolName: toolNames.SplineROI }, + { toolName: toolNames.LivewireContour }, ], // enabled enabled: [{ toolName: toolNames.ImageOverlayViewer }], diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts index e7da76369..1369bc629 100644 --- a/modes/basic-test-mode/src/moreTools.ts +++ b/modes/basic-test-mode/src/moreTools.ts @@ -124,7 +124,7 @@ const moreTools = [ evaluate: 'evaluate.viewportProperties.toggle', }), createButton({ - id: 'Probe', + id: 'DragProbe', icon: 'tool-probe', label: 'Probe', tooltip: 'Probe', @@ -173,11 +173,27 @@ const moreTools = [ }), createButton({ id: 'TagBrowser', - icon: 'list-bullets', + icon: 'dicom-tag-browser', label: 'Dicom Tag Browser', tooltip: 'Dicom Tag Browser', commands: 'openDICOMTagViewer', }), + createButton({ + id: 'AdvancedMagnify', + icon: 'icon-tool-loupe', + label: 'Loupe', + tooltip: 'Loupe', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'UltrasoundDirectionalTool', + icon: 'icon-tool-ultrasound-bidirectional', + label: 'Ultrasound Directional', + tooltip: 'Ultrasound Directional', + commands: setToolActiveToolbar, + evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS'], + }), ], }, }, diff --git a/modes/basic-test-mode/src/toolbarButtons.ts b/modes/basic-test-mode/src/toolbarButtons.ts index 988e639f7..59e5bf59c 100644 --- a/modes/basic-test-mode/src/toolbarButtons.ts +++ b/modes/basic-test-mode/src/toolbarButtons.ts @@ -101,6 +101,30 @@ const toolbarButtons: Button[] = [ commands: setToolActiveToolbar, evaluate: 'evaluate.cornerstoneTool', }), + createButton({ + id: 'PlanarFreehandROI', + icon: 'icon-tool-freehand-roi', + label: 'Freehand ROI', + tooltip: 'Freehand ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'SplineROI', + icon: 'icon-tool-spline-roi', + label: 'Spline ROI', + tooltip: 'Spline ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'LivewireContour', + icon: 'icon-tool-livewire', + label: 'Livewire tool', + tooltip: 'Livewire tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), ], }, }, diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js index 293729ccf..cb1eb8c8b 100644 --- a/modes/longitudinal/src/initToolGroups.js +++ b/modes/longitudinal/src/initToolGroups.js @@ -61,10 +61,14 @@ function initDefaultToolGroup( { toolName: toolNames.StackScroll }, { toolName: toolNames.Angle }, { toolName: toolNames.CobbAngle }, - { toolName: toolNames.PlanarFreehandROI }, { toolName: toolNames.Magnify }, { toolName: toolNames.SegmentationDisplay }, { toolName: toolNames.CalibrationLine }, + { toolName: toolNames.AdvancedMagnify }, + { toolName: toolNames.UltrasoundDirectional }, + { toolName: toolNames.PlanarFreehandROI }, + { toolName: toolNames.SplineROI }, + { toolName: toolNames.LivewireContour }, ], // enabled enabled: [{ toolName: toolNames.ImageOverlayViewer }, { toolName: toolNames.ReferenceLines }], diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts index 8b0e0c9e0..d523418cd 100644 --- a/modes/longitudinal/src/moreTools.ts +++ b/modes/longitudinal/src/moreTools.ts @@ -124,7 +124,7 @@ const moreTools = [ evaluate: 'evaluate.viewportProperties.toggle', }), createButton({ - id: 'Probe', + id: 'DragProbe', icon: 'tool-probe', label: 'Probe', tooltip: 'Probe', @@ -173,11 +173,27 @@ const moreTools = [ }), createButton({ id: 'TagBrowser', - icon: 'list-bullets', + icon: 'dicom-tag-browser', label: 'Dicom Tag Browser', tooltip: 'Dicom Tag Browser', commands: 'openDICOMTagViewer', }), + createButton({ + id: 'AdvancedMagnify', + icon: 'icon-tool-loupe', + label: 'Loupe', + tooltip: 'Loupe', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'UltrasoundDirectionalTool', + icon: 'icon-tool-ultrasound-bidirectional', + label: 'Ultrasound Directional', + tooltip: 'Ultrasound Directional', + commands: setToolActiveToolbar, + evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS'], + }), ], }, }, diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index ebb6b7654..79d0297e9 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -75,6 +75,30 @@ const toolbarButtons: Button[] = [ commands: setToolActiveToolbar, evaluate: 'evaluate.cornerstoneTool', }), + createButton({ + id: 'PlanarFreehandROI', + icon: 'icon-tool-freehand-roi', + label: 'Freehand ROI', + tooltip: 'Freehand ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'SplineROI', + icon: 'icon-tool-spline-roi', + label: 'Spline ROI', + tooltip: 'Spline ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'LivewireContour', + icon: 'icon-tool-livewire', + label: 'Livewire tool', + tooltip: 'Livewire tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), ], }, }, diff --git a/modes/segmentation/src/initToolGroups.ts b/modes/segmentation/src/initToolGroups.ts index 026cecdbf..f6d7556e0 100644 --- a/modes/segmentation/src/initToolGroups.ts +++ b/modes/segmentation/src/initToolGroups.ts @@ -58,6 +58,8 @@ function createTools(utilityModule) { { toolName: toolNames.StackScroll }, { toolName: toolNames.Magnify }, { toolName: toolNames.SegmentationDisplay }, + { toolName: toolNames.AdvancedMagnify }, + { toolName: toolNames.UltrasoundDirectional }, ], disabled: [{ toolName: toolNames.ReferenceLines }], }; diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index b732aff8e..5232312cc 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -212,7 +212,7 @@ const toolbarButtons: Button[] = [ evaluate: 'evaluate.viewportProperties.toggle', }), createButton({ - id: 'Probe', + id: 'DragProbe', icon: 'tool-probe', label: 'Probe', tooltip: 'Probe', @@ -261,11 +261,27 @@ const toolbarButtons: Button[] = [ }), createButton({ id: 'TagBrowser', - icon: 'list-bullets', + icon: 'dicom-tag-browser', label: 'Dicom Tag Browser', tooltip: 'Dicom Tag Browser', commands: 'openDICOMTagViewer', }), + createButton({ + id: 'AdvancedMagnify', + icon: 'icon-tool-loupe', + label: 'Loupe', + tooltip: 'Loupe', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'UltrasoundDirectionalTool', + icon: 'icon-tool-ultrasound-bidirectional', + label: 'Ultrasound Directional', + tooltip: 'Ultrasound Directional', + commands: setToolActiveToolbar, + evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS'], + }), ], }, }, diff --git a/platform/ui/src/assets/icons/focus-frame-target.svg b/platform/ui/src/assets/icons/focus-frame-target.svg new file mode 100644 index 000000000..1139d858c --- /dev/null +++ b/platform/ui/src/assets/icons/focus-frame-target.svg @@ -0,0 +1,13 @@ + + + focus-frame-target + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/icon-tool-brush.svg b/platform/ui/src/assets/icons/icon-tool-brush.svg index 2258260d9..a489624ee 100644 --- a/platform/ui/src/assets/icons/icon-tool-brush.svg +++ b/platform/ui/src/assets/icons/icon-tool-brush.svg @@ -1,9 +1,14 @@ - + tool-seg-brush - - - + + + - \ No newline at end of file + diff --git a/platform/ui/src/assets/icons/icon-tool-eraser.svg b/platform/ui/src/assets/icons/icon-tool-eraser.svg index a1f78fed4..0f4b3facc 100644 --- a/platform/ui/src/assets/icons/icon-tool-eraser.svg +++ b/platform/ui/src/assets/icons/icon-tool-eraser.svg @@ -1,10 +1,15 @@ - + tool-seg-eraser - - - - + + + + - \ No newline at end of file + diff --git a/platform/ui/src/assets/icons/icon-tool-shape.svg b/platform/ui/src/assets/icons/icon-tool-shape.svg index 290d156e6..2b6279025 100644 --- a/platform/ui/src/assets/icons/icon-tool-shape.svg +++ b/platform/ui/src/assets/icons/icon-tool-shape.svg @@ -1,9 +1,10 @@ - + tool-seg-shape - + - \ No newline at end of file + diff --git a/platform/ui/src/assets/icons/icon-tool-threshold.svg b/platform/ui/src/assets/icons/icon-tool-threshold.svg index 4870fa5a4..e1f3ed8e0 100644 --- a/platform/ui/src/assets/icons/icon-tool-threshold.svg +++ b/platform/ui/src/assets/icons/icon-tool-threshold.svg @@ -1,17 +1,22 @@ - + tool-seg-threshold - + - - + + + + - + - \ No newline at end of file + diff --git a/platform/ui/src/assets/icons/pencil.svg b/platform/ui/src/assets/icons/pencil.svg index 1f76dcd3b..1b643bfec 100644 --- a/platform/ui/src/assets/icons/pencil.svg +++ b/platform/ui/src/assets/icons/pencil.svg @@ -1,3 +1,4 @@ - - + + diff --git a/platform/ui/src/assets/icons/tool-angle.svg b/platform/ui/src/assets/icons/tool-angle.svg index 08d55baa8..064a1502f 100644 --- a/platform/ui/src/assets/icons/tool-angle.svg +++ b/platform/ui/src/assets/icons/tool-angle.svg @@ -1,7 +1,12 @@ - - - - - + + + tool-angle + + + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-annotate.svg b/platform/ui/src/assets/icons/tool-annotate.svg index 34787d5d5..b10a8ad52 100644 --- a/platform/ui/src/assets/icons/tool-annotate.svg +++ b/platform/ui/src/assets/icons/tool-annotate.svg @@ -1,5 +1,11 @@ - - - + + + tool-annotate + + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-bidirectional.svg b/platform/ui/src/assets/icons/tool-bidirectional.svg index da047bf71..4f77aa51b 100644 --- a/platform/ui/src/assets/icons/tool-bidirectional.svg +++ b/platform/ui/src/assets/icons/tool-bidirectional.svg @@ -1,9 +1,21 @@ - - - - - + + + tool-bidirectional + + + + + + + + + + + + + + + - - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-calibrate.svg b/platform/ui/src/assets/icons/tool-calibrate.svg new file mode 100644 index 000000000..7fd8966db --- /dev/null +++ b/platform/ui/src/assets/icons/tool-calibrate.svg @@ -0,0 +1,19 @@ + + + tool-calibrate + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-capture.svg b/platform/ui/src/assets/icons/tool-capture.svg index 405d53c8c..391cb892e 100644 --- a/platform/ui/src/assets/icons/tool-capture.svg +++ b/platform/ui/src/assets/icons/tool-capture.svg @@ -1,7 +1,10 @@ - - - - - + + + tool- + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-cine.svg b/platform/ui/src/assets/icons/tool-cine.svg index 2c442a9f2..e3da518d3 100644 --- a/platform/ui/src/assets/icons/tool-cine.svg +++ b/platform/ui/src/assets/icons/tool-cine.svg @@ -1,6 +1,9 @@ - - - - + + + tool-cine + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-circle.svg b/platform/ui/src/assets/icons/tool-circle.svg index e94375564..011ec5507 100644 --- a/platform/ui/src/assets/icons/tool-circle.svg +++ b/platform/ui/src/assets/icons/tool-circle.svg @@ -1,3 +1,8 @@ - - - + + + tool-circle + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-crosshair.svg b/platform/ui/src/assets/icons/tool-crosshair.svg index a03906e79..ebbd617f2 100644 --- a/platform/ui/src/assets/icons/tool-crosshair.svg +++ b/platform/ui/src/assets/icons/tool-crosshair.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + tool-crosshair + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-dicom-tag-browser.svg b/platform/ui/src/assets/icons/tool-dicom-tag-browser.svg new file mode 100644 index 000000000..f87608015 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-dicom-tag-browser.svg @@ -0,0 +1,15 @@ + + + tool-dicom-tag-browser + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-flip-horizontal.svg b/platform/ui/src/assets/icons/tool-flip-horizontal.svg index adf1de555..f3ab15fe5 100644 --- a/platform/ui/src/assets/icons/tool-flip-horizontal.svg +++ b/platform/ui/src/assets/icons/tool-flip-horizontal.svg @@ -1,7 +1,10 @@ - - - - - + + + tool-flip-horizontal + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-freehand-roi.svg b/platform/ui/src/assets/icons/tool-freehand-roi.svg new file mode 100644 index 000000000..42160326e --- /dev/null +++ b/platform/ui/src/assets/icons/tool-freehand-roi.svg @@ -0,0 +1,12 @@ + + + tool-freehand-roi + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-invert.svg b/platform/ui/src/assets/icons/tool-invert.svg index 0f92a4c37..9b5047ca2 100644 --- a/platform/ui/src/assets/icons/tool-invert.svg +++ b/platform/ui/src/assets/icons/tool-invert.svg @@ -1,6 +1,10 @@ - - - - + + + tool-invert + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-layout-default.svg b/platform/ui/src/assets/icons/tool-layout-default.svg new file mode 100644 index 000000000..b8721853d --- /dev/null +++ b/platform/ui/src/assets/icons/tool-layout-default.svg @@ -0,0 +1,21 @@ + + + tool-layout-default + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-length.svg b/platform/ui/src/assets/icons/tool-length.svg index 873460e7e..5ede3069d 100644 --- a/platform/ui/src/assets/icons/tool-length.svg +++ b/platform/ui/src/assets/icons/tool-length.svg @@ -1,6 +1,16 @@ - - - - + + + tool-length + + + + + + + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-magnetic-roi.svg b/platform/ui/src/assets/icons/tool-magnetic-roi.svg new file mode 100644 index 000000000..fbcb25bce --- /dev/null +++ b/platform/ui/src/assets/icons/tool-magnetic-roi.svg @@ -0,0 +1,17 @@ + + + tool-livewire + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-magnify.svg b/platform/ui/src/assets/icons/tool-magnify.svg index e26496594..cb3ad1e61 100644 --- a/platform/ui/src/assets/icons/tool-magnify.svg +++ b/platform/ui/src/assets/icons/tool-magnify.svg @@ -1,6 +1,7 @@ - - - - + + + tool-magnify-area + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-measure-elipse.svg b/platform/ui/src/assets/icons/tool-measure-elipse.svg new file mode 100644 index 000000000..5198db687 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-measure-elipse.svg @@ -0,0 +1,12 @@ + + + tool-measure-elipse + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-move.svg b/platform/ui/src/assets/icons/tool-move.svg index 095a22527..411e95194 100644 --- a/platform/ui/src/assets/icons/tool-move.svg +++ b/platform/ui/src/assets/icons/tool-move.svg @@ -1,8 +1,13 @@ - - - - - - + + + tool-move + + + + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-quick-magnify.svg b/platform/ui/src/assets/icons/tool-quick-magnify.svg new file mode 100644 index 000000000..7a4766a7e --- /dev/null +++ b/platform/ui/src/assets/icons/tool-quick-magnify.svg @@ -0,0 +1,11 @@ + + + tool-zoom-in + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-rectangle.svg b/platform/ui/src/assets/icons/tool-rectangle.svg index 58f95cc95..d534c8ad5 100644 --- a/platform/ui/src/assets/icons/tool-rectangle.svg +++ b/platform/ui/src/assets/icons/tool-rectangle.svg @@ -1,8 +1,12 @@ - - - - + + + tool-rectangle + + + + + - + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-reference-lines.svg b/platform/ui/src/assets/icons/tool-reference-lines.svg new file mode 100644 index 000000000..6329d81cb --- /dev/null +++ b/platform/ui/src/assets/icons/tool-reference-lines.svg @@ -0,0 +1,13 @@ + + + tool-reference-lines + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-reset.svg b/platform/ui/src/assets/icons/tool-reset.svg index 4360043c0..5c6d49fe4 100644 --- a/platform/ui/src/assets/icons/tool-reset.svg +++ b/platform/ui/src/assets/icons/tool-reset.svg @@ -1,6 +1,9 @@ - - - - + + + tool-reset + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-rotate-right.svg b/platform/ui/src/assets/icons/tool-rotate-right.svg index a30a64971..7ee994219 100644 --- a/platform/ui/src/assets/icons/tool-rotate-right.svg +++ b/platform/ui/src/assets/icons/tool-rotate-right.svg @@ -1,9 +1,12 @@ - - - - - - + + + tool-rotate-right + + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-spline-roi.svg b/platform/ui/src/assets/icons/tool-spline-roi.svg new file mode 100644 index 000000000..9266c536c --- /dev/null +++ b/platform/ui/src/assets/icons/tool-spline-roi.svg @@ -0,0 +1,14 @@ + + + tool-spline-roi + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-stack-image-sync.svg b/platform/ui/src/assets/icons/tool-stack-image-sync.svg new file mode 100644 index 000000000..d09d4861b --- /dev/null +++ b/platform/ui/src/assets/icons/tool-stack-image-sync.svg @@ -0,0 +1,10 @@ + + + tool-stack-image-sync + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-stack-scroll.svg b/platform/ui/src/assets/icons/tool-stack-scroll.svg index ea717b660..795da7701 100644 --- a/platform/ui/src/assets/icons/tool-stack-scroll.svg +++ b/platform/ui/src/assets/icons/tool-stack-scroll.svg @@ -1,7 +1,10 @@ - - - - - + + + tool-stack-scroll + + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-toggle-dicom-overlay.svg b/platform/ui/src/assets/icons/tool-toggle-dicom-overlay.svg new file mode 100644 index 000000000..6cd55e57a --- /dev/null +++ b/platform/ui/src/assets/icons/tool-toggle-dicom-overlay.svg @@ -0,0 +1,9 @@ + + + tool-toggle-dicom-overlay + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-ultrasound-bidirectional.svg b/platform/ui/src/assets/icons/tool-ultrasound-bidirectional.svg new file mode 100644 index 000000000..8ec735b1a --- /dev/null +++ b/platform/ui/src/assets/icons/tool-ultrasound-bidirectional.svg @@ -0,0 +1,15 @@ + + + tool-ultrasound-bidirectional + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-window-level.svg b/platform/ui/src/assets/icons/tool-window-level.svg index d423da4cb..fd63f1b6e 100644 --- a/platform/ui/src/assets/icons/tool-window-level.svg +++ b/platform/ui/src/assets/icons/tool-window-level.svg @@ -1,6 +1,9 @@ - - - - + + + tool-window-level + + + + - + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-zoom.svg b/platform/ui/src/assets/icons/tool-zoom.svg index b6b35814a..c6fbfebc6 100644 --- a/platform/ui/src/assets/icons/tool-zoom.svg +++ b/platform/ui/src/assets/icons/tool-zoom.svg @@ -1,6 +1,9 @@ - - - - + + + tool-zoom + + + + - + \ No newline at end of file diff --git a/platform/ui/src/components/Icon/getIcon.js b/platform/ui/src/components/Icon/getIcon.js index e02d77b20..7bd5c5042 100644 --- a/platform/ui/src/components/Icon/getIcon.js +++ b/platform/ui/src/components/Icon/getIcon.js @@ -29,7 +29,7 @@ import infoAction from './../../assets/icons/info-action.svg'; import infoLink from './../../assets/icons/info-link.svg'; import launchArrow from './../../assets/icons/launch-arrow.svg'; import launchInfo from './../../assets/icons/launch-info.svg'; -import link from './../../assets/icons/link.svg'; +import link from './../../assets/icons/tool-stack-image-sync.svg'; import listBullets from './../../assets/icons/list-bullets.svg'; import lock from './../../assets/icons/lock.svg'; import logoOhifSmall from './../../assets/icons/logo-ohif-small.svg'; @@ -90,32 +90,32 @@ import prevArrow from './../../assets/icons/prev-arrow.svg'; import viewportStatusTracked from './../../assets/icons/viewport-status-tracked.svg'; /** Tools */ -import toggleDicomOverlay from './../../assets/icons/toggle-dicom-overlay.svg'; +import toggleDicomOverlay from './../../assets/icons/tool-toggle-dicom-overlay.svg'; import toolZoom from './../../assets/icons/tool-zoom.svg'; import toolCapture from './../../assets/icons/tool-capture.svg'; -import toolLayout from './../../assets/icons/tool-layout.svg'; +import toolLayout from './../../assets/icons/tool-layout-default.svg'; import toolMore from './../../assets/icons/tool-more-menu.svg'; import toolMove from './../../assets/icons/tool-move.svg'; import toolWindow from './../../assets/icons/tool-window-level.svg'; import toolAnnotate from './../../assets/icons/tool-annotate.svg'; import toolBidirectional from './../../assets/icons/tool-bidirectional.svg'; -import toolElipse from './../../assets/icons/tool-ellipse.svg'; +import toolElipse from './../../assets/icons/tool-measure-elipse.svg'; import toolCircle from './../../assets/icons/tool-circle.svg'; import toolLength from './../../assets/icons/tool-length.svg'; import toolStackScroll from './../../assets/icons/tool-stack-scroll.svg'; -import toolMagnify from './../../assets/icons/tool-magnify.svg'; +import toolMagnify from './../../assets/icons/tool-quick-magnify.svg'; import toolFlipHorizontal from './../../assets/icons/tool-flip-horizontal.svg'; import toolInvert from './../../assets/icons/tool-invert.svg'; import toolRotateRight from './../../assets/icons/tool-rotate-right.svg'; import toolCine from './../../assets/icons/tool-cine.svg'; import toolCrosshair from './../../assets/icons/tool-crosshair.svg'; -import toolProbe from './../../assets/icons/tool-probe.svg'; +import toolProbe from './../../assets/icons/focus-frame-target.svg'; import toolAngle from './../../assets/icons/tool-angle.svg'; import toolReset from './../../assets/icons/tool-reset.svg'; import toolRectangle from './../../assets/icons/tool-rectangle.svg'; import toolFusionColor from './../../assets/icons/tool-fusion-color.svg'; import toolCreateThreshold from './../../assets/icons/tool-create-threshold.svg'; -import toolCalibration from './../../assets/icons/tool-calibration.svg'; +import toolCalibration from './../../assets/icons/tool-calibrate.svg'; import toolFreehand from './../../assets/icons/tool-freehand.svg'; import toolFreehandPolygon from './../../assets/icons/tool-freehand-polygon.svg'; import toolPolygon from './../../assets/icons/tool-polygon.svg'; @@ -131,7 +131,7 @@ import rowUnlock from './../../assets/icons/row-unlock.svg'; import iconMPR from './../../assets/icons/icon-mpr-alt.svg'; import checkboxDefault from './../../assets/icons/checkbox-default.svg'; import checkboxActive from './../../assets/icons/checkbox-active.svg'; -import referenceLines from './../../assets/icons/reference-lines.svg'; +import referenceLines from './../../assets/icons/tool-reference-lines.svg'; import chevronDownNew from './../../assets/icons/icon-disclosure-close.svg'; import chevronLeftNew from './../../assets/icons/icon-disclosure-open.svg'; import settingsBars from './../../assets/icons/icon-display-settings.svg'; @@ -145,7 +145,12 @@ import iconToolScissor from './../../assets/icons/icon-tool-scissor.svg'; import iconToolShape from './../../assets/icons/icon-tool-shape.svg'; import iconToolThreshold from './../../assets/icons/icon-tool-threshold.svg'; import viewportWindowLevel from './../../assets/icons/viewport-window-level.svg'; - +import dicomTagBrowser from './../../assets/icons/tool-dicom-tag-browser.svg'; +import iconToolFreehandRoi from './../../assets/icons/tool-freehand-roi.svg'; +import iconToolLivewire from './../../assets/icons/tool-magnetic-roi.svg'; +import iconToolSplineRoi from './../../assets/icons/tool-spline-roi.svg'; +import iconToolUltrasoundBidirectional from './../../assets/icons/tool-ultrasound-bidirectional.svg'; +import iconToolLoupe from './../../assets/icons/tool-magnify.svg'; /** Old OHIF */ import oldTrash from './../../assets/icons/old-trash.svg'; import oldPlay from './../../assets/icons/old-play.svg'; @@ -355,6 +360,13 @@ const ICONS = { 'prev-arrow': prevArrow, 'viewport-status-tracked': viewportStatusTracked, 'viewport-window-level': viewportWindowLevel, + 'dicom-tag-browser': dicomTagBrowser, + /** New Tools */ + 'icon-tool-freehand-roi': iconToolFreehandRoi, + 'icon-tool-livewire': iconToolLivewire, + 'icon-tool-spline-roi': iconToolSplineRoi, + 'icon-tool-ultrasound-bidirectional': iconToolUltrasoundBidirectional, + 'icon-tool-loupe': iconToolLoupe, /** Old OHIF */ 'old-trash': oldTrash, 'old-play': oldPlay, diff --git a/platform/ui/src/components/IconButton/IconButton.tsx b/platform/ui/src/components/IconButton/IconButton.tsx index 6637bd06e..ea6922455 100644 --- a/platform/ui/src/components/IconButton/IconButton.tsx +++ b/platform/ui/src/components/IconButton/IconButton.tsx @@ -63,7 +63,7 @@ const iconSizeClasses = { small: 'w-4 h-4', medium: 'w-5 h-5', large: 'w-6 h-6', - toolbar: 'w-[24px] h-[24px]', + toolbar: 'w-[28px] h-[28px]', }; const fullWidthClasses = { @@ -92,7 +92,7 @@ const IconButton = ({ onClick(e); }; - const padding = size === 'toolbar' ? '8px' : size === 'toolbox' ? '4px' : null; + const padding = size === 'toolbar' ? '6px' : size === 'toolbox' ? '6px' : null; return ( )} diff --git a/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx b/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx index 226b1aeae..3d3938191 100644 --- a/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx +++ b/platform/ui/src/components/ToolbarButton/ToolbarButton.tsx @@ -32,7 +32,7 @@ const ToolbarButton = ({ ? toolTipClassName : sizeToUse === 'toolbar' ? 'w-[40px] h-[40px]' - : 'w-[32px] h-[32px]'; + : 'w-[40px] h-[40px]'; return (
From 9d8997ad84ad198599abc90a3748d2e296198d03 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 5 Apr 2024 03:10:20 +0000 Subject: [PATCH 220/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 76 insertions(+), 76 deletions(-) diff --git a/commit.txt b/commit.txt index 7df888949..5addb1cf0 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -56b1eae6356a6534960df1196bdd1e95b0a9a470 \ No newline at end of file +cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index f2ba35fe9..cd9df4a76 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/i18n": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/i18n": "3.8.0-beta.71", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index cf97c5c37..615b1c866 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/i18n": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/i18n": "3.8.0-beta.71", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 7c6ed4431..5b8e59595 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-measurement-tracking": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-measurement-tracking": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index bb7b4cb93..392c98380 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index c9404179b..fa2ceb1ef 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/i18n": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/i18n": "3.8.0-beta.71", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index eb7fe5b8c..3c96d3bdc 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/i18n": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/i18n": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index b1491d811..338b1e9bd 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index caed335b5..efe7ce2b2 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 9c0d4590b..0583029df 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.67.0", "@cornerstonejs/tools": "^1.67.0", - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f71e92b1f..ebb81cf46 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 247468da4..66ea31801 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 035f3bec6..059a6e4ad 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/extension-dicom-pdf": "3.8.0-beta.70", - "@ohif/extension-dicom-video": "3.8.0-beta.70" + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/extension-dicom-pdf": "3.8.0-beta.71", + "@ohif/extension-dicom-video": "3.8.0-beta.71" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 306ab5a3d..5a71491c7 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/extension-dicom-pdf": "3.8.0-beta.70", - "@ohif/extension-dicom-video": "3.8.0-beta.70", - "@ohif/extension-measurement-tracking": "3.8.0-beta.70", - "@ohif/extension-test": "3.8.0-beta.70" + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/extension-dicom-pdf": "3.8.0-beta.71", + "@ohif/extension-dicom-video": "3.8.0-beta.71", + "@ohif/extension-measurement-tracking": "3.8.0-beta.71", + "@ohif/extension-test": "3.8.0-beta.71" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index ef32c1d63..e9d2b4e11 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/extension-dicom-pdf": "3.8.0-beta.70", - "@ohif/extension-dicom-video": "3.8.0-beta.70", - "@ohif/extension-measurement-tracking": "3.8.0-beta.70" + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/extension-dicom-pdf": "3.8.0-beta.71", + "@ohif/extension-dicom-video": "3.8.0-beta.71", + "@ohif/extension-measurement-tracking": "3.8.0-beta.71" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 18c085729..187f3bb72 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.70" + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.71" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 1bfc5809e..e70ba18b7 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/extension-dicom-pdf": "3.8.0-beta.70", - "@ohif/extension-dicom-video": "3.8.0-beta.70" + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/extension-dicom-pdf": "3.8.0-beta.71", + "@ohif/extension-dicom-video": "3.8.0-beta.71" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 45b18d76a..fd974342a 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/extension-dicom-pdf": "3.8.0-beta.70", - "@ohif/extension-dicom-video": "3.8.0-beta.70", - "@ohif/extension-measurement-tracking": "3.8.0-beta.70" + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/extension-dicom-pdf": "3.8.0-beta.71", + "@ohif/extension-dicom-video": "3.8.0-beta.71", + "@ohif/extension-measurement-tracking": "3.8.0-beta.71" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index cea82588b..405ad697e 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.67.0", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.71", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 300276335..990008352 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.70", - "commit": "56b1eae6356a6534960df1196bdd1e95b0a9a470" + "version": "3.8.0-beta.71", + "commit": "cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1" } \ No newline at end of file diff --git a/version.txt b/version.txt index 13dd77ef7..9dc56d9d0 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.70 \ No newline at end of file +3.8.0-beta.71 \ No newline at end of file From 6e5892d202fb2e16a37ff6eca5b19890c2a0df8d Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 5 Apr 2024 03:10:27 +0000 Subject: [PATCH 221/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 48 files changed, 254 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 670739045..8db6ebf88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index c8a39c69c..9eb3d4627 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index cd9df4a76..9b73b9ef9 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 2cccc362b..5b23f8694 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 615b1c866..4694aff80 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 12818119d..8a687ce70 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 5b8e59595..a0d75ffb9 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 5f676deea..dcc4f834f 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 392c98380..f832c0a0b 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 9c5f54955..6ffe91279 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index fa2ceb1ef..846767114 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index d0ee964d9..f85a4fd94 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 3c96d3bdc..f5afab7ec 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index dd0b66e3e..5b3c127a3 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 338b1e9bd..ac2f6a313 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index f9bb460a3..755cd306d 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index efe7ce2b2..9cc7cba35 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 09f6f30b3..464b16546 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 0583029df..aefca82ef 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/ui": "3.8.0-beta.71", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index d39bf3b1b..e2ce75151 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index ebb81cf46..361f0fbf2 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index f996a013b..ac1d869e3 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 66ea31801..78cfc9dcd 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 8d1d3a011..1ef9349c0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 0b2f1397f..aae5fc58e 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 059a6e4ad..00991fe74 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 7ff52d418..561b1ce7e 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5a71491c7..525d96941 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index ebfc3137c..c146289e0 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e9d2b4e11..60e6a6cb3 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 2249d4494..9199443d6 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 187f3bb72..0c78ff163 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 00ecd90ee..ec43c0476 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index e70ba18b7..562be6afd 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 3d4a003f0..c4989677b 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index fd974342a..ce02a8c68 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 7a01f9a50..405becc0f 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 38e83780a..ccd67212c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.67.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.70", - "@ohif/extension-cornerstone": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.70", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.70", - "@ohif/extension-default": "3.8.0-beta.70", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.70", - "@ohif/extension-dicom-pdf": "3.8.0-beta.70", - "@ohif/extension-dicom-video": "3.8.0-beta.70", - "@ohif/extension-test": "3.8.0-beta.70", - "@ohif/i18n": "3.8.0-beta.70", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.70", - "@ohif/mode-longitudinal": "3.8.0-beta.70", - "@ohif/mode-microscopy": "3.8.0-beta.70", - "@ohif/mode-test": "3.8.0-beta.70", - "@ohif/ui": "3.8.0-beta.70", + "@ohif/core": "3.8.0-beta.71", + "@ohif/extension-cornerstone": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.71", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", + "@ohif/extension-default": "3.8.0-beta.71", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.71", + "@ohif/extension-dicom-pdf": "3.8.0-beta.71", + "@ohif/extension-dicom-video": "3.8.0-beta.71", + "@ohif/extension-test": "3.8.0-beta.71", + "@ohif/i18n": "3.8.0-beta.71", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.71", + "@ohif/mode-longitudinal": "3.8.0-beta.71", + "@ohif/mode-microscopy": "3.8.0-beta.71", + "@ohif/mode-test": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.71", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 800c679fc..4ed252324 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 2aa3c92d0..b40631ce9 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index db3169f96..c0a7c9250 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index 405ad697e..2346a2f7d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index f5d03562e..cb35cbac2 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/platform/docs/package.json b/platform/docs/package.json index 051f809ce..cc8134d78 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index daabb630e..229b86b05 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 3144096ba..1ba8e8a51 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index bc55ad5bb..68ab16fc9 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) + + +### Features + +* **advanced-roi-tools:** new tools and icon updates and overlay bug fixes ([#4014](https://github.com/OHIF/Viewers/issues/4014)) ([cea27d4](https://github.com/OHIF/Viewers/commit/cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1)) + + + + + # [3.8.0-beta.70](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.69...v3.8.0-beta.70) (2024-04-05) diff --git a/platform/ui/package.json b/platform/ui/package.json index 9d27b3df8..b05cc2441 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.70", + "version": "3.8.0-beta.71", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 5645ac1b271e1ed8c57f5d71100809362447267e Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Fri, 5 Apr 2024 06:42:43 -0300 Subject: [PATCH 222/289] fix(cornerstone-dicom-sr): Freehand SR hydration support (#3996) Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Co-authored-by: IbrahimCSAE --- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +- .../src/getSopClassHandlerModule.ts | 49 +++- extensions/cornerstone-dicom-sr/src/index.tsx | 2 +- extensions/cornerstone-dicom-sr/src/init.ts | 14 +- .../src/tools/DICOMSRDisplayTool.ts | 14 +- ...ment.ts => addDICOMSRDisplayAnnotation.ts} | 47 ++-- .../viewports/OHIFCornerstoneSRViewport.tsx | 32 +-- extensions/cornerstone/package.json | 10 +- .../cornerstone/src/initMeasurementService.js | 11 +- .../PlanarFreehandROI.ts | 210 ++++++++++++------ extensions/measurement-tracking/package.json | 4 +- .../TrackedMeasurementsContext.tsx | 113 +++++----- .../PanelStudyBrowserTracking.tsx | 8 +- modes/longitudinal/src/initToolGroups.js | 2 + modes/longitudinal/src/moreTools.ts | 8 - modes/longitudinal/src/toolbarButtons.ts | 16 ++ platform/app/package.json | 2 +- platform/core/package.json | 2 +- .../MeasurementService/MeasurementService.ts | 1 + yarn.lock | 48 ++-- 21 files changed, 366 insertions(+), 237 deletions(-) rename extensions/cornerstone-dicom-sr/src/utils/{addMeasurement.ts => addDICOMSRDisplayAnnotation.ts} (83%) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4694aff80..f8df6cb0e 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.67.0", - "@cornerstonejs/core": "^1.67.0", + "@cornerstonejs/adapters": "^1.68.1", + "@cornerstonejs/core": "^1.68.1", "@kitware/vtk.js": "29.7.0", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index a0d75ffb9..da1c19934 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.67.0", - "@cornerstonejs/core": "^1.67.0", - "@cornerstonejs/tools": "^1.67.0", + "@cornerstonejs/adapters": "^1.68.1", + "@cornerstonejs/core": "^1.68.1", + "@cornerstonejs/tools": "^1.68.1", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts b/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts index fbeaa5316..be946bcfb 100644 --- a/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts +++ b/extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts @@ -1,6 +1,6 @@ import { SOPClassHandlerName, SOPClassHandlerId } from './id'; import { utils, classes, DisplaySetService, Types } from '@ohif/core'; -import addMeasurement from './utils/addMeasurement'; +import addDICOMSRDisplayAnnotation from './utils/addDICOMSRDisplayAnnotation'; import isRehydratable from './utils/isRehydratable'; import { adaptersSR } from '@cornerstonejs/adapters'; @@ -150,13 +150,37 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) return [displaySet]; } -function _load(displaySet, servicesManager, extensionManager) { +async function _load(displaySet, servicesManager, extensionManager) { const { displaySetService, measurementService } = servicesManager.services; const dataSources = extensionManager.getDataSources(); const dataSource = dataSources[0]; const { ContentSequence } = displaySet.instance; + async function retrieveBulkData(obj, parentObj = null, key = null) { + for (const prop in obj) { + if (typeof obj[prop] === 'object' && obj[prop] !== null) { + await retrieveBulkData(obj[prop], obj, prop); + } else if (Array.isArray(obj[prop])) { + await Promise.all(obj[prop].map(item => retrieveBulkData(item, obj, prop))); + } else if (prop === 'BulkDataURI') { + const value = await dataSource.retrieve.bulkDataURI({ + BulkDataURI: obj[prop], + StudyInstanceUID: displaySet.instance.StudyInstanceUID, + SeriesInstanceUID: displaySet.instance.SeriesInstanceUID, + SOPInstanceUID: displaySet.instance.SOPInstanceUID, + }); + if (parentObj && key) { + parentObj[key] = new Float32Array(value); + } + } + } + } + + if (displaySet.isLoaded !== true) { + await retrieveBulkData(ContentSequence); + } + displaySet.referencedImages = _getReferencedImagesList(ContentSequence); displaySet.measurements = _getMeasurements(ContentSequence); @@ -211,7 +235,7 @@ function _checkIfCanAddMeasurementsToDisplaySet( return; } - if (!newDisplaySet instanceof ImageSet) { + if ((!newDisplaySet) instanceof ImageSet) { // This also filters out _this_ displaySet, as it is not an ImageSet. return; } @@ -275,7 +299,22 @@ function _checkIfCanAddMeasurementsToDisplaySet( } if (_measurementReferencesSOPInstanceUID(measurement, SOPInstanceUID, frameNumber)) { - addMeasurement(measurement, imageId, newDisplaySet.displaySetInstanceUID); + const frame = + (measurement.coords[0].ReferencedSOPSequence && + measurement.coords[0].ReferencedSOPSequence?.ReferencedFrameNumber) || + 1; + + /** Add DICOMSRDisplay annotation for the SR viewport (only) */ + addDICOMSRDisplayAnnotation(measurement, imageId, frame); + + /** Update measurement properties */ + measurement.loaded = true; + measurement.imageId = imageId; + measurement.displaySetInstanceUID = newDisplaySet.displaySetInstanceUID; + measurement.ReferencedSOPInstanceUID = + measurement.coords[0].ReferencedSOPSequence.ReferencedSOPInstanceUID; + measurement.frameNumber = frame; + delete measurement.coords; unloadedMeasurements.splice(j, 1); } @@ -291,7 +330,7 @@ function _measurementReferencesSOPInstanceUID(measurement, SOPInstanceUID, frame // Standard. But for now, we will support only one ReferenceFrameNumber. const ReferencedFrameNumber = (measurement.coords[0].ReferencedSOPSequence && - measurement.coords[0].ReferencedSOPSequence[0]?.ReferencedFrameNumber) || + measurement.coords[0].ReferencedSOPSequence?.ReferencedFrameNumber) || 1; if (frameNumber && Number(frameNumber) !== Number(ReferencedFrameNumber)) { diff --git a/extensions/cornerstone-dicom-sr/src/index.tsx b/extensions/cornerstone-dicom-sr/src/index.tsx index 9b0700481..b0b5e7abb 100644 --- a/extensions/cornerstone-dicom-sr/src/index.tsx +++ b/extensions/cornerstone-dicom-sr/src/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import getSopClassHandlerModule from './getSopClassHandlerModule'; -import getHangingProtocolModule, { srProtocol } from './getHangingProtocolModule'; +import { srProtocol } from './getHangingProtocolModule'; import onModeEnter from './onModeEnter'; import getCommandsModule from './commandsModule'; import preRegistration from './init'; diff --git a/extensions/cornerstone-dicom-sr/src/init.ts b/extensions/cornerstone-dicom-sr/src/init.ts index 1ab3300d7..949b4de2e 100644 --- a/extensions/cornerstone-dicom-sr/src/init.ts +++ b/extensions/cornerstone-dicom-sr/src/init.ts @@ -1,5 +1,4 @@ import { - addTool, AngleTool, annotation, ArrowAnnotateTool, @@ -9,6 +8,7 @@ import { CircleROITool, LengthTool, PlanarFreehandROITool, + RectangleROITool, } from '@cornerstonejs/tools'; import DICOMSRDisplayTool from './tools/DICOMSRDisplayTool'; import addToolInstance from './utils/addToolInstance'; @@ -19,24 +19,25 @@ import toolNames from './tools/toolNames'; * @param {object} configuration */ export default function init({ configuration = {} }: Types.Extensions.ExtensionParams): void { - addTool(DICOMSRDisplayTool); - addToolInstance(toolNames.SRLength, LengthTool, {}); + addToolInstance(toolNames.DICOMSRDisplay, DICOMSRDisplayTool); + addToolInstance(toolNames.SRLength, LengthTool); addToolInstance(toolNames.SRBidirectional, BidirectionalTool); addToolInstance(toolNames.SREllipticalROI, EllipticalROITool); addToolInstance(toolNames.SRCircleROI, CircleROITool); addToolInstance(toolNames.SRArrowAnnotate, ArrowAnnotateTool); addToolInstance(toolNames.SRAngle, AngleTool); + addToolInstance(toolNames.SRPlanarFreehandROI, PlanarFreehandROITool); + addToolInstance(toolNames.SRRectangleROI, RectangleROITool); + // TODO - fix the SR display of Cobb Angle, as it joins the two lines addToolInstance(toolNames.SRCobbAngle, CobbAngleTool); - // TODO - fix the rehydration of Freehand, as it throws an exception - // on a missing polyline. The fix is probably in CS3D - addToolInstance(toolNames.SRPlanarFreehandROI, PlanarFreehandROITool); // Modify annotation tools to use dashed lines on SR const dashedLine = { lineDash: '4,4', }; annotation.config.style.setToolGroupToolStyles('SRToolGroup', { + [toolNames.DICOMSRDisplay]: dashedLine, SRLength: dashedLine, SRBidirectional: dashedLine, SREllipticalROI: dashedLine, @@ -45,6 +46,7 @@ export default function init({ configuration = {} }: Types.Extensions.ExtensionP SRCobbAngle: dashedLine, SRAngle: dashedLine, SRPlanarFreehandROI: dashedLine, + SRRectangleROI: dashedLine, global: {}, }); } diff --git a/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts b/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts index 7b14b107f..278eed828 100644 --- a/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts +++ b/extensions/cornerstone-dicom-sr/src/tools/DICOMSRDisplayTool.ts @@ -22,14 +22,14 @@ export default class DICOMSRDisplayTool extends AnnotationTool { } _getTextBoxLinesFromLabels(labels) { - // TODO -> max 3 for now (label + shortAxis + longAxis), need a generic solution for this! + // TODO -> max 5 for now (label + shortAxis + longAxis), need a generic solution for this! - const labelLength = Math.min(labels.length, 3); + const labelLength = Math.min(labels.length, 5); const lines = []; for (let i = 0; i < labelLength; i++) { const labelEntry = labels[i]; - lines.push(`${_labelToShorthand(labelEntry.label)}${labelEntry.value}`); + lines.push(`${_labelToShorthand(labelEntry.label)}: ${labelEntry.value}`); } return lines; @@ -77,6 +77,7 @@ export default class DICOMSRDisplayTool extends AnnotationTool { toolName: this.getToolName(), viewportId: enabledElement.viewport.id, }; + const { style: annotationStyle } = annotation.config; for (let i = 0; i < filteredAnnotations.length; i++) { const annotation = filteredAnnotations[i]; @@ -87,6 +88,10 @@ export default class DICOMSRDisplayTool extends AnnotationTool { styleSpecifier.annotationUID = annotationUID; + const groupStyle = annotationStyle.getToolGroupToolStyles(this.toolGroupId)[ + this.getToolName() + ]; + const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation); const lineDash = this.getStyle('lineDash', styleSpecifier, annotation); const color = @@ -98,6 +103,7 @@ export default class DICOMSRDisplayTool extends AnnotationTool { color, lineDash, lineWidth, + ...groupStyle, }; Object.keys(renderableData).forEach(GraphicType => { @@ -160,6 +166,7 @@ export default class DICOMSRDisplayTool extends AnnotationTool { const drawingOptions = { color: options.color, width: options.lineWidth, + lineDash: options.lineDash, }; let allCanvasCoordinates = []; renderableData.map((data, index) => { @@ -307,6 +314,7 @@ export default class DICOMSRDisplayTool extends AnnotationTool { { color: options.color, width: options.lineWidth, + lineDash: options.lineDash, } ); }); diff --git a/extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts b/extensions/cornerstone-dicom-sr/src/utils/addDICOMSRDisplayAnnotation.ts similarity index 83% rename from extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts rename to extensions/cornerstone-dicom-sr/src/utils/addDICOMSRDisplayAnnotation.ts index 348a7a79d..fc0eda76c 100644 --- a/extensions/cornerstone-dicom-sr/src/utils/addMeasurement.ts +++ b/extensions/cornerstone-dicom-sr/src/utils/addDICOMSRDisplayAnnotation.ts @@ -1,15 +1,13 @@ import { vec3 } from 'gl-matrix'; import { Types, annotation } from '@cornerstonejs/tools'; import { metaData, utilities, Types as csTypes } from '@cornerstonejs/core'; + import toolNames from '../tools/toolNames'; import SCOORD_TYPES from '../constants/scoordTypes'; const EPSILON = 1e-4; -const supportedLegacyCornerstoneTags = ['cornerstoneTools@^4.0.0']; - -export default function addMeasurement(measurement, imageId, displaySetInstanceUID) { - // TODO -> Render rotated ellipse . +export default function addDICOMSRDisplayAnnotation(measurement, imageId, frameNumber) { const toolName = toolNames.DICOMSRDisplay; const measurementData = { @@ -27,26 +25,25 @@ export default function addMeasurement(measurement, imageId, displaySetInstanceU } measurementData.renderableData[GraphicType].push( - _getRenderableData(GraphicType, GraphicData, imageId, measurement.TrackingIdentifier) + _getRenderableData(GraphicType, GraphicData, imageId) ); }); - // Use the metadata provider to grab its imagePlaneModule metadata const imagePlaneModule = metaData.get('imagePlaneModule', imageId); - const annotationManager = annotation.state.getAnnotationManager(); - - // Create Cornerstone3D Annotation from measurement - const frameNumber = - (measurement.coords[0].ReferencedSOPSequence && - measurement.coords[0].ReferencedSOPSequence[0]?.ReferencedFrameNumber) || - 1; - + /** + * This annotation (DICOMSRDisplay) is only used by the SR viewport. + * This is used before the annotation is hydrated. If hydrated the measurement will be added + * to the measurement service and will be available for the other viewports. + */ const SRAnnotation: Types.Annotation = { annotationUID: measurement.TrackingUniqueIdentifier, + highlighted: false, + isLocked: false, + invalidated: false, metadata: { - FrameOfReferenceUID: imagePlaneModule.frameOfReferenceUID, toolName: toolName, + FrameOfReferenceUID: imagePlaneModule.frameOfReferenceUID, referencedImageId: imageId, }, data: { @@ -58,28 +55,14 @@ export default function addMeasurement(measurement, imageId, displaySetInstanceU TrackingUniqueIdentifier: measurementData.TrackingUniqueIdentifier, renderableData: measurementData.renderableData, }, - frameNumber: frameNumber, + frameNumber, }, }; - + const annotationManager = annotation.state.getAnnotationManager(); annotationManager.addAnnotation(SRAnnotation); - - measurement.loaded = true; - measurement.imageId = imageId; - measurement.displaySetInstanceUID = displaySetInstanceUID; - - // Remove the unneeded coord now its processed, but keep the SOPInstanceUID. - // NOTE: We assume that each SCOORD in the MeasurementGroup maps onto one frame, - // It'd be super weird if it didn't anyway as a SCOORD. - measurement.ReferencedSOPInstanceUID = - measurement.coords[0].ReferencedSOPSequence.ReferencedSOPInstanceUID; - measurement.frameNumber = frameNumber; - delete measurement.coords; } -function _getRenderableData(GraphicType, GraphicData, imageId, TrackingIdentifier) { - const [cornerstoneTag, toolName] = TrackingIdentifier.split(':'); - +function _getRenderableData(GraphicType, GraphicData, imageId) { let renderableData: csTypes.Point3[]; switch (GraphicType) { diff --git a/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx b/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx index 849813c57..951644aa9 100644 --- a/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx +++ b/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx @@ -125,6 +125,10 @@ function OHIFCornerstoneSRViewport(props) { console.warn('More than one SOPClassUID in the same series is not yet supported.'); } + // if (!srDisplaySet.measurements || !srDisplaySet.measurements.length) { + // return; + // } + _getViewportReferencedDisplaySetData( srDisplaySet, newMeasurementSelected, @@ -253,12 +257,16 @@ function OHIFCornerstoneSRViewport(props) { * if it is hydrated we don't even use the SR viewport. */ useEffect(() => { - if (!srDisplaySet.isLoaded) { - srDisplaySet.load(); - } - const numMeasurements = srDisplaySet.measurements.length; - setMeasurementCount(numMeasurements); - }, [srDisplaySet]); + const loadSR = async () => { + if (!srDisplaySet.isLoaded) { + await srDisplaySet.load(); + } + const numMeasurements = srDisplaySet.measurements.length; + setMeasurementCount(numMeasurements); + updateViewport(measurementSelected); + }; + loadSR(); + }, [dataSource, srDisplaySet]); /** * Hook to update the tracking identifiers when the selected measurement changes or @@ -275,19 +283,11 @@ function OHIFCornerstoneSRViewport(props) { * Todo: what is this, not sure what it does regarding the react aspect, * it is updating a local variable? which is not state. */ - let isLocked = trackedMeasurements?.context?.trackedSeries?.length > 0; + const [isLocked, setIsLocked] = useState(trackedMeasurements?.context?.trackedSeries?.length > 0); useEffect(() => { - isLocked = trackedMeasurements?.context?.trackedSeries?.length > 0; + setIsLocked(trackedMeasurements?.context?.trackedSeries?.length > 0); }, [trackedMeasurements]); - /** - * Data fetching for the SR displaySet, which updates the measurements and - * also gets the referenced image displaySet that SR is based on. - */ - useEffect(() => { - updateViewport(measurementSelected); - }, [dataSource, srDisplaySet]); - useEffect(() => { viewportActionCornersService.setComponents([ { diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index f832c0a0b..e096b7d28 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.67.0", + "@cornerstonejs/dicom-image-loader": "^1.68.1", "@icr/polyseg-wasm": "^0.4.0", "@ohif/core": "3.8.0-beta.71", "@ohif/ui": "3.8.0-beta.71", @@ -55,10 +55,10 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.67.0", - "@cornerstonejs/core": "^1.67.0", - "@cornerstonejs/streaming-image-volume-loader": "^1.67.0", - "@cornerstonejs/tools": "^1.67.0", + "@cornerstonejs/adapters": "^1.68.1", + "@cornerstonejs/core": "^1.68.1", + "@cornerstonejs/streaming-image-volume-loader": "^1.68.1", + "@cornerstonejs/tools": "^1.68.1", "@kitware/vtk.js": "29.7.0", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", diff --git a/extensions/cornerstone/src/initMeasurementService.js b/extensions/cornerstone/src/initMeasurementService.js index 2ab5cce55..8801089c6 100644 --- a/extensions/cornerstone/src/initMeasurementService.js +++ b/extensions/cornerstone/src/initMeasurementService.js @@ -357,6 +357,10 @@ const connectMeasurementServiceToTools = ( imageId = dataSource.getImageIdsForInstance({ instance }); } + /** + * This annotation is used by the cornerstone viewport. + * This is not the read-only annotation rendered by the SR viewport. + */ const annotationManager = annotation.state.getAnnotationManager(); annotationManager.addAnnotation({ annotationUID: measurement.uid, @@ -369,11 +373,16 @@ const connectMeasurementServiceToTools = ( referencedImageId: imageId, }, data: { + /** + * Don't remove this destructuring of data here. + * This is used to pass annotation specific data forward e.g. contour + */ + ...(data.annotation.data || {}), text: data.annotation.data.text, handles: { ...data.annotation.data.handles }, cachedStats: { ...data.annotation.data.cachedStats }, label: data.annotation.data.label, - frameNumber: frameNumber, + frameNumber, }, }); } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts index d1322e484..3820522b1 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts @@ -1,14 +1,22 @@ import SUPPORTED_TOOLS from './constants/supportedTools'; import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes'; +import { getDisplayUnit } from './utils'; +import { utils } from '@ohif/core'; +/** + * Represents a mapping utility for Planar Freehand ROI measurements. + */ const PlanarFreehandROI = { toAnnotation: measurement => {}, /** * Maps cornerstone annotation event data to measurement service format. * - * @param {Object} cornerstone Cornerstone event data - * @return {Measurement} Measurement instance + * @param {Object} csToolsEventDetail Cornerstone event data + * @param {DisplaySetService} DisplaySetService Service for managing display sets + * @param {CornerstoneViewportService} CornerstoneViewportService Service for managing viewports + * @param {Function} getValueTypeFromToolType Function to get value type from tool type + * @returns {Measurement} Measurement instance */ toMeasurement: ( csToolsEventDetail, @@ -16,7 +24,7 @@ const PlanarFreehandROI = { CornerstoneViewportService, getValueTypeFromToolType ) => { - const { annotation, viewportId } = csToolsEventDetail; + const { annotation } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; if (!metadata || !data) { @@ -26,19 +34,14 @@ const PlanarFreehandROI = { const { toolName, referencedImageId, FrameOfReferenceUID } = metadata; const validToolType = SUPPORTED_TOOLS.includes(toolName); - if (!validToolType) { - throw new Error('Tool not supported'); + throw new Error(`Tool ${toolName} not supported`); } - const { SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID } = getSOPInstanceAttributes( - referencedImageId, - CornerstoneViewportService, - viewportId - ); + const { SOPInstanceUID, SeriesInstanceUID, frameNumber, StudyInstanceUID } = + getSOPInstanceAttributes(referencedImageId); let displaySet; - if (SOPInstanceUID) { displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID( SOPInstanceUID, @@ -48,92 +51,151 @@ const PlanarFreehandROI = { displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID); } - const { points, textBox } = data.handles; - - const mappedAnnotations = getMappedAnnotations(annotation, DisplaySetService); - - const displayText = getDisplayText(mappedAnnotations); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); - return { uid: annotationUID, SOPInstanceUID, FrameOfReferenceUID, - points, - textBox, + points: data.contour.polyline, + textBox: data.handles.textBox, metadata, + frameNumber, referenceSeriesUID: SeriesInstanceUID, referenceStudyUID: StudyInstanceUID, toolName: metadata.toolName, displaySetInstanceUID: displaySet.displaySetInstanceUID, label: data.label, - displayText: displayText, - data: { ...data, ...data.cachedStats }, + displayText: getDisplayText(annotation, displaySet), + data: data.cachedStats, type: getValueTypeFromToolType(toolName), - getReport, + getReport: () => getColumnValueReport(annotation), }; }, }; /** - * It maps an imaging library annotation to a list of simplified annotation properties. - * - * @param {Object} annotationData - * @param {Object} DisplaySetService - * @returns - */ -function getMappedAnnotations(annotationData, DisplaySetService) { - const { metadata, data } = annotationData; - const { label } = data; - const { referencedImageId } = metadata; - - const annotations = []; - - const { SOPInstanceUID: _SOPInstanceUID, SeriesInstanceUID: _SeriesInstanceUID } = - getSOPInstanceAttributes(referencedImageId) || {}; - - if (!_SOPInstanceUID || !_SeriesInstanceUID) { - return annotations; - } - - const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID( - _SOPInstanceUID, - _SeriesInstanceUID - ); - - const { SeriesNumber, SeriesInstanceUID } = displaySet; - - annotations.push({ - SeriesInstanceUID, - SeriesNumber, - label, - data, - }); - - return annotations; -} - -/** - * TBD - * This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). + * This function is used to convert the measurement data to a + * format that is suitable for report generation (e.g. for the csv report). * The report returns a list of columns and corresponding values. - * @param {*} mappedAnnotations - * @param {*} points - * @param {*} FrameOfReferenceUID - * @returns Object representing the report's content for this tool. + * + * @param {object} annotation + * @returns {object} Report's content from this tool */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function getColumnValueReport(annotation) { const columns = []; const values = []; - return { - columns, - values, - }; + /** Add type */ + columns.push('AnnotationType'); + values.push('Cornerstone:PlanarFreehandROI'); + + /** Add cachedStats */ + const { metadata, data } = annotation; + const { mean, stdDev, max, area, unit, areaUnit, perimeter } = + data.cachedStats[`imageId:${metadata.referencedImageId}`]; + columns.push(`Maximum`, `Mean`, `Std Dev`, 'Pixel Unit', `Area`, 'Unit', 'Perimeter'); + values.push(max, mean, stdDev, unit, area, areaUnit, perimeter); + + /** Add FOR */ + if (metadata.FrameOfReferenceUID) { + columns.push('FrameOfReferenceUID'); + values.push(metadata.FrameOfReferenceUID); + } + + /** Add points */ + if (data.contour.polyline) { + /** + * Points has the form of [[x1, y1, z1], [x2, y2, z2], ...] + * convert it to string of [[x1 y1 z1];[x2 y2 z2];...] + * so that it can be used in the CSV report + */ + columns.push('points'); + values.push(data.contour.polyline.map(p => p.join(' ')).join(';')); + } + + return { columns, values }; } -function getDisplayText(mappedAnnotations) { - return ''; +/** + * Retrieves the display text for an annotation in a display set. + * + * @param {Object} annotation - The annotation object. + * @param {Object} displaySet - The display set object. + * @returns {string[]} - An array of display text. + */ +function getDisplayText(annotation, displaySet) { + const { metadata, data } = annotation; + + if (!data.cachedStats || !data.cachedStats[`imageId:${metadata.referencedImageId}`]) { + return []; + } + + const { mean, stdDev, max, area, modalityUnit, areaUnit, perimeter } = + data.cachedStats[`imageId:${metadata.referencedImageId}`]; + + const { SOPInstanceUID, frameNumber } = getSOPInstanceAttributes(metadata.referencedImageId); + + const displayText = []; + + const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); + let InstanceNumber; + if (instance) { + InstanceNumber = instance.InstanceNumber; + } + + const instanceText = InstanceNumber ? ` I: ${InstanceNumber}` : ''; + const frameText = displaySet.isMultiFrame ? ` F: ${frameNumber}` : ''; + + const { SeriesNumber } = displaySet; + if (SeriesNumber) { + displayText.push(`S: ${SeriesNumber}${instanceText}${frameText}`); + } + + if (area) { + /** + * Add Area + * Area sometimes becomes undefined if `preventHandleOutsideImage` is off + */ + const roundedArea = utils.roundNumber(area || 0, 2); + displayText.push(`Area: ${roundedArea} ${getDisplayUnit(areaUnit)}`); + } + + if (mean) { + if (Array.isArray(mean)) { + const meanValues = mean.map(value => utils.roundNumber(value)); + displayText.push(`Mean: ${meanValues.join(', ')} ${modalityUnit}`); + } else { + displayText.push(`Mean: ${utils.roundNumber(mean)} ${modalityUnit}`); + } + } + + if (max) { + if (Array.isArray(max)) { + const maxValues = max.map(value => utils.roundNumber(value, 2)); + displayText.push(`Max: ${maxValues.join(', ')} ${modalityUnit}`); + } else { + displayText.push(`Max: ${utils.roundNumber(max, 2)} ${modalityUnit}`); + } + } + + if (stdDev) { + if (Array.isArray(stdDev)) { + const stdDevValues = stdDev.map(value => utils.roundNumber(value)); + displayText.push(`Std Dev: ${stdDevValues.join(', ')} ${modalityUnit}`); + } else { + displayText.push(`Std Dev: ${utils.roundNumber(stdDev)} ${modalityUnit}`); + } + } + + if (perimeter) { + if (Array.isArray(perimeter)) { + const perimeterValues = perimeter.map(value => utils.roundNumber(value)); + displayText.push(`Perimeter: ${perimeterValues.join(', ')} ${modalityUnit}`); + } else { + displayText.push(`Perimeter: ${utils.roundNumber(perimeter)} ${modalityUnit}`); + } + } + + return displayText; } export default PlanarFreehandROI; diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index aefca82ef..eff286d81 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.67.0", - "@cornerstonejs/tools": "^1.67.0", + "@cornerstonejs/core": "^1.68.1", + "@cornerstonejs/tools": "^1.68.1", "@ohif/core": "3.8.0-beta.71", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", "@ohif/ui": "3.8.0-beta.71", diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx index 4aa2cee42..74657e85d 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx @@ -183,60 +183,69 @@ function TrackedMeasurementsContextProvider( // ~~ Listen for changes to ViewportGrid for potential SRs hung in panes when idle useEffect(() => { - if (viewports.size > 0) { - const activeViewport = viewports.get(activeViewportId); + const triggerPromptHydrateFlow = async () => { + if (viewports.size > 0) { + const activeViewport = viewports.get(activeViewportId); - if (!activeViewport || !activeViewport?.displaySetInstanceUIDs?.length) { - return; + if (!activeViewport || !activeViewport?.displaySetInstanceUIDs?.length) { + return; + } + + // Todo: Getting the first displaySetInstanceUID is wrong, but we don't have + // tracking fusion viewports yet. This should change when we do. + const { displaySetService } = servicesManager.services; + const displaySet = displaySetService.getDisplaySetByUID( + activeViewport.displaySetInstanceUIDs[0] + ); + + if (!displaySet) { + return; + } + + // If this is an SR produced by our SR SOPClassHandler, + // and it hasn't been loaded yet, do that now so we + // can check if it can be rehydrated or not. + // + // Note: This happens: + // - If the viewport is not currently an OHIFCornerstoneSRViewport + // - If the displaySet has never been hung + // + // Otherwise, the displaySet will be loaded by the useEffect handler + // listening to displaySet changes inside OHIFCornerstoneSRViewport. + // The issue here is that this handler in TrackedMeasurementsContext + // ends up occurring before the Viewport is created, so the displaySet + // is not loaded yet, and isRehydratable is undefined unless we call load(). + if ( + displaySet.SOPClassHandlerId === SR_SOPCLASSHANDLERID && + !displaySet.isLoaded && + displaySet.load + ) { + await displaySet.load(); + } + + // Magic string + // load function added by our sopClassHandler module + if ( + displaySet.SOPClassHandlerId === SR_SOPCLASSHANDLERID && + displaySet.isRehydratable === true + ) { + console.log('sending event...', trackedMeasurements); + sendTrackedMeasurementsEvent('PROMPT_HYDRATE_SR', { + displaySetInstanceUID: displaySet.displaySetInstanceUID, + SeriesInstanceUID: displaySet.SeriesInstanceUID, + viewportId: activeViewportId, + }); + } } - - // Todo: Getting the first displaySetInstanceUID is wrong, but we don't have - // tracking fusion viewports yet. This should change when we do. - const { displaySetService } = servicesManager.services; - const displaySet = displaySetService.getDisplaySetByUID( - activeViewport.displaySetInstanceUIDs[0] - ); - - if (!displaySet) { - return; - } - - // If this is an SR produced by our SR SOPClassHandler, - // and it hasn't been loaded yet, do that now so we - // can check if it can be rehydrated or not. - // - // Note: This happens: - // - If the viewport is not currently an OHIFCornerstoneSRViewport - // - If the displaySet has never been hung - // - // Otherwise, the displaySet will be loaded by the useEffect handler - // listening to displaySet changes inside OHIFCornerstoneSRViewport. - // The issue here is that this handler in TrackedMeasurementsContext - // ends up occurring before the Viewport is created, so the displaySet - // is not loaded yet, and isRehydratable is undefined unless we call load(). - if ( - displaySet.SOPClassHandlerId === SR_SOPCLASSHANDLERID && - !displaySet.isLoaded && - displaySet.load - ) { - displaySet.load(); - } - - // Magic string - // load function added by our sopClassHandler module - if ( - displaySet.SOPClassHandlerId === SR_SOPCLASSHANDLERID && - displaySet.isRehydratable === true - ) { - console.log('sending event...', trackedMeasurements); - sendTrackedMeasurementsEvent('PROMPT_HYDRATE_SR', { - displaySetInstanceUID: displaySet.displaySetInstanceUID, - SeriesInstanceUID: displaySet.SeriesInstanceUID, - viewportId: activeViewportId, - }); - } - } - }, [activeViewportId, sendTrackedMeasurementsEvent, servicesManager.services, viewports]); + }; + triggerPromptHydrateFlow(); + }, [ + trackedMeasurements, + activeViewportId, + sendTrackedMeasurementsEvent, + servicesManager.services, + viewports, + ]); return ( { + if (m.referenceSeriesUID === displaySet.SeriesInstanceUID) { + measurementService.remove(m.uid); + } + }); }} onClickThumbnail={() => {}} onDoubleClickThumbnail={onDoubleClickThumbnailHandler} diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js index cb1eb8c8b..d1dfe3324 100644 --- a/modes/longitudinal/src/initToolGroups.js +++ b/modes/longitudinal/src/initToolGroups.js @@ -129,6 +129,8 @@ function initSRToolGroup(extensionManager, toolGroupService) { { toolName: SRToolNames.SRBidirectional }, { toolName: SRToolNames.SREllipticalROI }, { toolName: SRToolNames.SRCircleROI }, + { toolName: SRToolNames.SRPlanarFreehandROI }, + { toolName: SRToolNames.SRRectangleROI }, ], enabled: [ { diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts index d523418cd..f9b1189c6 100644 --- a/modes/longitudinal/src/moreTools.ts +++ b/modes/longitudinal/src/moreTools.ts @@ -155,14 +155,6 @@ const moreTools = [ commands: setToolActiveToolbar, evaluate: 'evaluate.cornerstoneTool', }), - createButton({ - id: 'RectangleROI', - icon: 'tool-rectangle', - label: 'Rectangle', - tooltip: 'Rectangle', - commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', - }), createButton({ id: 'CalibrationLine', icon: 'tool-calibration', diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index 79d0297e9..7abe57f2c 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -67,6 +67,22 @@ const toolbarButtons: Button[] = [ commands: setToolActiveToolbar, evaluate: 'evaluate.cornerstoneTool', }), + createButton({ + id: 'PlanarFreehandROI', + icon: 'tool-freehand-polygon', + label: 'Freehand', + tooltip: 'Freehand ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + createButton({ + id: 'RectangleROI', + icon: 'tool-rectangle', + label: 'Rectangle', + tooltip: 'Rectangle ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), createButton({ id: 'CircleROI', icon: 'tool-circle', diff --git a/platform/app/package.json b/platform/app/package.json index ccd67212c..7285b4f37 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -53,7 +53,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.67.0", + "@cornerstonejs/dicom-image-loader": "^1.68.1", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.71", "@ohif/extension-cornerstone": "3.8.0-beta.71", diff --git a/platform/core/package.json b/platform/core/package.json index 2346a2f7d..7769a624e 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.67.0", + "@cornerstonejs/dicom-image-loader": "^1.68.1", "@ohif/ui": "3.8.0-beta.71", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/platform/core/src/services/MeasurementService/MeasurementService.ts b/platform/core/src/services/MeasurementService/MeasurementService.ts index 49ce726f0..7f8c97489 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.ts +++ b/platform/core/src/services/MeasurementService/MeasurementService.ts @@ -53,6 +53,7 @@ const MEASUREMENT_SCHEMA_KEYS = [ 'area', // TODO: Add concept names instead (descriptor) 'mean', 'stdDev', + 'perimeter', 'length', 'shortestDiameter', 'longestDiameter', diff --git a/yarn.lock b/yarn.lock index 414b9c706..35b0f8631 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1582,13 +1582,13 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.67.0": - version "1.67.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.67.0.tgz#84c881a2b1c7bc3cec2ae55df869d82740cc6049" - integrity sha512-EnIpdMD7kx42eJYGHsqjahWTZj/ZTkP+5XCWXpLp0BY0p+O53oSV9aYZXvyjd/kWQPr+30L+010zPuE5oQzIxA== +"@cornerstonejs/adapters@^1.68.1": + version "1.68.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.68.1.tgz#9f4fa768f85759bb49e8f252c9a4e5b4acd09b1f" + integrity sha512-p4pKMX70/COLf1dSIDUonEBHhSPYklH2OkS9yOmdjOVYzvWxyaQWuczd1V+2cWYanD5WGqRzarl4KpJAK9W+zQ== dependencies: "@babel/runtime-corejs2" "^7.17.8" - "@cornerstonejs/tools" "^1.67.0" + "@cornerstonejs/tools" "^1.68.1" buffer "^6.0.3" dcmjs "^0.29.8" gl-matrix "^3.4.3" @@ -1635,10 +1635,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.67.0": - version "1.67.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.67.0.tgz#711a915b70b5273d8838b59c8c06c553079b0ee7" - integrity sha512-t8VI5acGGu0wN51UzHyEXOjlBjoAJjIVcbBOQejC0yOWfGoy+I9y/h5de41pZyhfbXYNNXA1dHZDDtLi9sauBg== +"@cornerstonejs/core@^1.68.1": + version "1.68.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.68.1.tgz#f5d366924b791b117d77e2fe83cee82dced0f3fa" + integrity sha512-F+ptRQ4kYPLS1buDvpQhy3ckdJa4K4B7uz3Ujq3BaEw1AZPB01S6OFw6HtbYs8i+kIi8ZF1fdWvDheO0bpefBQ== dependencies: "@kitware/vtk.js" "29.7.0" comlink "^4.4.1" @@ -1646,34 +1646,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.67.0": - version "1.67.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.67.0.tgz#9e70858100821682105f88a927aa4dff96e75cda" - integrity sha512-ZhziYYKcci1X11iWA4qOzEVxtVUbDUKqx9ustsAD9vv9P7WfDOI4EHflUhW+X1hIAG5vl7xv6LAG0aRkVnwrrw== +"@cornerstonejs/dicom-image-loader@^1.68.1": + version "1.68.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.68.1.tgz#fd2cda6de4060ade8092a0fc887f32d4ce979684" + integrity sha512-xjmp2Izy4KMPUTZVutdnx0TXhFrLmlJP3ZZ54ypjJyKGdv4EIGyDvGmCHkD7G37dYROTbZJVBNtjukCrfvJ1Zg== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.67.0" + "@cornerstonejs/core" "^1.68.1" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.67.0": - version "1.67.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.67.0.tgz#5e22c828e5a5c9932e728314edbfa95abf81982e" - integrity sha512-W5+CKSxkLI4BbcdXYVb/M+yeN6Z+G8AWOQISR8qX9NGnK3GR/Id7+9OH+HP6FmIZ4YBXew9/DOqRgEtTtyDZGQ== +"@cornerstonejs/streaming-image-volume-loader@^1.68.1": + version "1.68.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.68.1.tgz#93ab87a0b77717200c7ea35ddb832651f02882de" + integrity sha512-4n0oNuf+SNxVfZ6gr5CwSgKpu5f3S3+uFxzRcvUH5DMXwVGxwU1XF8CTFfvEnw9xBn3x6Dg4ckR1a682CyuwXA== dependencies: - "@cornerstonejs/core" "^1.67.0" + "@cornerstonejs/core" "^1.68.1" comlink "^4.4.1" -"@cornerstonejs/tools@^1.67.0": - version "1.67.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.67.0.tgz#47c6459859cc5122f780a7ec67c2b9d41b067b38" - integrity sha512-CPFWRF4IePxHV8KoXE6PBY0Q3jw8riJ7ZaJajAzXLpgvTSvIYu0m7tNuFG8iKVppq6KTgSywO4r9VbfcvZXOyw== +"@cornerstonejs/tools@^1.68.1": + version "1.68.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.68.1.tgz#17e177be628bd633391566d8110b2799be7d5068" + integrity sha512-fbXIqcgJKa2RUmwLvxbbISSvwkfwZBoKCjtI/j0AMowpV/gpm86Br6/MomNmPQvdfuF5HfQRdBHjZS71Vid1pQ== dependencies: - "@cornerstonejs/core" "^1.67.0" + "@cornerstonejs/core" "^1.68.1" "@icr/polyseg-wasm" "0.4.0" "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1" From 1c9fee1bec3fb1fcffb348ed066cc8caae18dcf0 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 5 Apr 2024 10:00:52 +0000 Subject: [PATCH 223/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 76 insertions(+), 76 deletions(-) diff --git a/commit.txt b/commit.txt index 5addb1cf0..2c5a63421 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1 \ No newline at end of file +5645ac1b271e1ed8c57f5d71100809362447267e \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9b73b9ef9..ed8a2cea1 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/i18n": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/i18n": "3.8.0-beta.72", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index f8df6cb0e..f0af1ed37 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/i18n": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/i18n": "3.8.0-beta.72", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index da1c19934..3240dbf12 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-measurement-tracking": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-measurement-tracking": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index e096b7d28..420a36c3e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.68.1", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 846767114..afe483e5b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/i18n": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/i18n": "3.8.0-beta.72", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index f5afab7ec..917b38825 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/i18n": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/i18n": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index ac2f6a313..26dd4301c 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 9cc7cba35..2a76ad52b 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index eff286d81..a536e6e92 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.68.1", "@cornerstonejs/tools": "^1.68.1", - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 361f0fbf2..e090578dc 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 78cfc9dcd..f4e68455f 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 00991fe74..f362b787f 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/extension-dicom-pdf": "3.8.0-beta.71", - "@ohif/extension-dicom-video": "3.8.0-beta.71" + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/extension-dicom-pdf": "3.8.0-beta.72", + "@ohif/extension-dicom-video": "3.8.0-beta.72" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 525d96941..19c0a01d1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/extension-dicom-pdf": "3.8.0-beta.71", - "@ohif/extension-dicom-video": "3.8.0-beta.71", - "@ohif/extension-measurement-tracking": "3.8.0-beta.71", - "@ohif/extension-test": "3.8.0-beta.71" + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/extension-dicom-pdf": "3.8.0-beta.72", + "@ohif/extension-dicom-video": "3.8.0-beta.72", + "@ohif/extension-measurement-tracking": "3.8.0-beta.72", + "@ohif/extension-test": "3.8.0-beta.72" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 60e6a6cb3..0a45e6e5d 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/extension-dicom-pdf": "3.8.0-beta.71", - "@ohif/extension-dicom-video": "3.8.0-beta.71", - "@ohif/extension-measurement-tracking": "3.8.0-beta.71" + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/extension-dicom-pdf": "3.8.0-beta.72", + "@ohif/extension-dicom-video": "3.8.0-beta.72", + "@ohif/extension-measurement-tracking": "3.8.0-beta.72" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 0c78ff163..205ef1369 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.71" + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.72" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 562be6afd..d38e451a4 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/extension-dicom-pdf": "3.8.0-beta.71", - "@ohif/extension-dicom-video": "3.8.0-beta.71" + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/extension-dicom-pdf": "3.8.0-beta.72", + "@ohif/extension-dicom-video": "3.8.0-beta.72" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index ce02a8c68..0b00eca00 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/extension-dicom-pdf": "3.8.0-beta.71", - "@ohif/extension-dicom-video": "3.8.0-beta.71", - "@ohif/extension-measurement-tracking": "3.8.0-beta.71" + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/extension-dicom-pdf": "3.8.0-beta.72", + "@ohif/extension-dicom-video": "3.8.0-beta.72", + "@ohif/extension-measurement-tracking": "3.8.0-beta.72" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 7769a624e..b21f3d060 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.68.1", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.72", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 990008352..b3ca232af 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.71", - "commit": "cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1" + "version": "3.8.0-beta.72", + "commit": "5645ac1b271e1ed8c57f5d71100809362447267e" } \ No newline at end of file diff --git a/version.txt b/version.txt index 9dc56d9d0..3c5625fbc 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.71 \ No newline at end of file +3.8.0-beta.72 \ No newline at end of file From 894a22797886db26c450e4761ad80cd1ea49c4d2 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Fri, 5 Apr 2024 10:00:59 +0000 Subject: [PATCH 224/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 257 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8db6ebf88..a9a0d34ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 9eb3d4627..2a57f36ac 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index ed8a2cea1..6a0378548 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 5b23f8694..802aed461 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index f0af1ed37..bc5b63567 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 8a687ce70..b97b6abc1 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3240dbf12..f2631f682 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index dcc4f834f..b120fa7c8 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 420a36c3e..a613ac26e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 6ffe91279..387e3316b 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/extensions/default/package.json b/extensions/default/package.json index afe483e5b..27838aa3b 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index f85a4fd94..3d5138bac 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 917b38825..59760e804 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 5b3c127a3..d2c0ab24f 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 26dd4301c..80a963df3 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 755cd306d..ac34d0ee8 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 2a76ad52b..93239fd58 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 464b16546..b166a85c9 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index a536e6e92..3bb6d587a 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/ui": "3.8.0-beta.72", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index e2ce75151..83e9e4cad 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index e090578dc..8003dda19 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index ac1d869e3..b598b4f2c 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index f4e68455f..1a6e76a14 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 1ef9349c0..11e8c5c21 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index aae5fc58e..9431aef88 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index f362b787f..b22249139 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 561b1ce7e..e0fde4b57 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 19c0a01d1..7c8917372 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index c146289e0..057bd41e5 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 0a45e6e5d..746d54456 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 9199443d6..e911b77e0 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 205ef1369..b59cda38d 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index ec43c0476..03b269abd 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d38e451a4..aa83abfa7 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index c4989677b..f66c2b90e 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 0b00eca00..daadbe060 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 405becc0f..700c0b0e5 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 7285b4f37..c13b84fda 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.68.1", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.71", - "@ohif/extension-cornerstone": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.71", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.71", - "@ohif/extension-default": "3.8.0-beta.71", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.71", - "@ohif/extension-dicom-pdf": "3.8.0-beta.71", - "@ohif/extension-dicom-video": "3.8.0-beta.71", - "@ohif/extension-test": "3.8.0-beta.71", - "@ohif/i18n": "3.8.0-beta.71", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.71", - "@ohif/mode-longitudinal": "3.8.0-beta.71", - "@ohif/mode-microscopy": "3.8.0-beta.71", - "@ohif/mode-test": "3.8.0-beta.71", - "@ohif/ui": "3.8.0-beta.71", + "@ohif/core": "3.8.0-beta.72", + "@ohif/extension-cornerstone": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.72", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", + "@ohif/extension-default": "3.8.0-beta.72", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.72", + "@ohif/extension-dicom-pdf": "3.8.0-beta.72", + "@ohif/extension-dicom-video": "3.8.0-beta.72", + "@ohif/extension-test": "3.8.0-beta.72", + "@ohif/i18n": "3.8.0-beta.72", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.72", + "@ohif/mode-longitudinal": "3.8.0-beta.72", + "@ohif/mode-microscopy": "3.8.0-beta.72", + "@ohif/mode-test": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.72", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 4ed252324..92abe6bae 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index b40631ce9..cbd7002df 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index c0a7c9250..7f9addb55 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + + +### Bug Fixes + +* **cornerstone-dicom-sr:** Freehand SR hydration support ([#3996](https://github.com/OHIF/Viewers/issues/3996)) ([5645ac1](https://github.com/OHIF/Viewers/commit/5645ac1b271e1ed8c57f5d71100809362447267e)) + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index b21f3d060..7972e49f0 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index cb35cbac2..91781c756 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index cc8134d78..cd029eae2 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 229b86b05..db389bfaf 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 1ba8e8a51..000481518 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 68ab16fc9..de3b2b197 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.71](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.70...v3.8.0-beta.71) (2024-04-05) diff --git a/platform/ui/package.json b/platform/ui/package.json index b05cc2441..1d05abd0b 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.71", + "version": "3.8.0-beta.72", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From dc37802ec1f739a6ed602363bdf231d6fe58827e Mon Sep 17 00:00:00 2001 From: Kay Park <162269795+kayParkRadexel@users.noreply.github.com> Date: Mon, 8 Apr 2024 22:28:51 +0900 Subject: [PATCH 225/289] fix : Keycloak docker image source modification (#4015) --- .../app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml index f3c0da265..2a812bfd5 100644 --- a/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml +++ b/platform/app/.recipes/OpenResty-Orthanc-Keycloak/docker-compose.yml @@ -47,7 +47,7 @@ services: # LINK: https://hub.docker.com/r/jboss/keycloak keycloak: - image: jboss/keycloak:6.0.1 + image: quay.io/keycloak/keycloak:6.0.0 hostname: keycloak container_name: keycloak volumes: From 06920ab92727d9290a18c56f8d90ee0670242879 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Apr 2024 13:39:21 +0000 Subject: [PATCH 226/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 21 files changed, 76 insertions(+), 76 deletions(-) diff --git a/commit.txt b/commit.txt index 2c5a63421..1590b5fff 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -5645ac1b271e1ed8c57f5d71100809362447267e \ No newline at end of file +dc37802ec1f739a6ed602363bdf231d6fe58827e \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 6a0378548..f3b25dac6 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/i18n": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/i18n": "3.8.0-beta.73", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index bc5b63567..a95d5f2a2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/i18n": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/i18n": "3.8.0-beta.73", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index f2631f682..0cddbeae6 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-measurement-tracking": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-measurement-tracking": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index a613ac26e..9b62cff92 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.68.1", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 27838aa3b..19243b065 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/i18n": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/i18n": "3.8.0-beta.73", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 59760e804..8b15761b9 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/i18n": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/i18n": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 80a963df3..fb9e595f7 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 93239fd58..28052aa06 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 3bb6d587a..f18089d31 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.68.1", "@cornerstonejs/tools": "^1.68.1", - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 8003dda19..d547f1090 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 1a6e76a14..a73024e79 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index b22249139..4a69e28b0 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/extension-dicom-pdf": "3.8.0-beta.72", - "@ohif/extension-dicom-video": "3.8.0-beta.72" + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/extension-dicom-pdf": "3.8.0-beta.73", + "@ohif/extension-dicom-video": "3.8.0-beta.73" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 7c8917372..c28c5cb0e 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/extension-dicom-pdf": "3.8.0-beta.72", - "@ohif/extension-dicom-video": "3.8.0-beta.72", - "@ohif/extension-measurement-tracking": "3.8.0-beta.72", - "@ohif/extension-test": "3.8.0-beta.72" + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/extension-dicom-pdf": "3.8.0-beta.73", + "@ohif/extension-dicom-video": "3.8.0-beta.73", + "@ohif/extension-measurement-tracking": "3.8.0-beta.73", + "@ohif/extension-test": "3.8.0-beta.73" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 746d54456..e01a56ea2 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/extension-dicom-pdf": "3.8.0-beta.72", - "@ohif/extension-dicom-video": "3.8.0-beta.72", - "@ohif/extension-measurement-tracking": "3.8.0-beta.72" + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/extension-dicom-pdf": "3.8.0-beta.73", + "@ohif/extension-dicom-video": "3.8.0-beta.73", + "@ohif/extension-measurement-tracking": "3.8.0-beta.73" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index b59cda38d..d449ebb52 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.72" + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.73" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index aa83abfa7..d62c03a86 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/extension-dicom-pdf": "3.8.0-beta.72", - "@ohif/extension-dicom-video": "3.8.0-beta.72" + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/extension-dicom-pdf": "3.8.0-beta.73", + "@ohif/extension-dicom-video": "3.8.0-beta.73" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index daadbe060..f42382fca 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/extension-dicom-pdf": "3.8.0-beta.72", - "@ohif/extension-dicom-video": "3.8.0-beta.72", - "@ohif/extension-measurement-tracking": "3.8.0-beta.72" + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/extension-dicom-pdf": "3.8.0-beta.73", + "@ohif/extension-dicom-video": "3.8.0-beta.73", + "@ohif/extension-measurement-tracking": "3.8.0-beta.73" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 7972e49f0..4774daa7a 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.68.1", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.73", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index b3ca232af..5e63ddf5b 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.72", - "commit": "5645ac1b271e1ed8c57f5d71100809362447267e" + "version": "3.8.0-beta.73", + "commit": "dc37802ec1f739a6ed602363bdf231d6fe58827e" } \ No newline at end of file diff --git a/version.txt b/version.txt index 3c5625fbc..357f8b32c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.72 \ No newline at end of file +3.8.0-beta.73 \ No newline at end of file From dc0b183dd46723e4967f40fc635b8deb74a768b0 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Mon, 8 Apr 2024 13:39:28 +0000 Subject: [PATCH 227/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 48 files changed, 233 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9a0d34ff..a40b1e0eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package ohif-monorepo-root + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 2a57f36ac..c4767294b 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index f3b25dac6..e37730ca3 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 802aed461..86f623425 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a95d5f2a2..cb50724e5 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index b97b6abc1..ab204c1be 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 0cddbeae6..019c51e9e 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index b120fa7c8..303efb87f 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9b62cff92..8be65b929 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 387e3316b..e3806e560 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 19243b065..a932e114e 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 3d5138bac..aaf38ddfa 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 8b15761b9..ee5e7f48a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index d2c0ab24f..758f69a8d 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index fb9e595f7..0eeed50d3 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index ac34d0ee8..89300187c 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 28052aa06..f8ebc4168 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index b166a85c9..06833ef30 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index f18089d31..5771481e5 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/ui": "3.8.0-beta.73", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 83e9e4cad..5f1d8835d 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index d547f1090..905115b71 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index b598b4f2c..f33e7248b 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index a73024e79..75e6e3116 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 11e8c5c21..08dfff3ff 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 9431aef88..9781929bb 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 4a69e28b0..7f215a925 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index e0fde4b57..dfc81fc96 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index c28c5cb0e..5236da4aa 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 057bd41e5..9d038b31d 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index e01a56ea2..3db43e723 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index e911b77e0..f5755c386 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index d449ebb52..3d5571904 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 03b269abd..9c0f2b20b 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index d62c03a86..7fe9e96eb 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index f66c2b90e..5605f56c1 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f42382fca..8d5d5fe80 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 700c0b0e5..fca11b67c 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/platform/app/package.json b/platform/app/package.json index c13b84fda..499ba4b8c 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -55,22 +55,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.68.1", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.72", - "@ohif/extension-cornerstone": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.72", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.72", - "@ohif/extension-default": "3.8.0-beta.72", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.72", - "@ohif/extension-dicom-pdf": "3.8.0-beta.72", - "@ohif/extension-dicom-video": "3.8.0-beta.72", - "@ohif/extension-test": "3.8.0-beta.72", - "@ohif/i18n": "3.8.0-beta.72", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.72", - "@ohif/mode-longitudinal": "3.8.0-beta.72", - "@ohif/mode-microscopy": "3.8.0-beta.72", - "@ohif/mode-test": "3.8.0-beta.72", - "@ohif/ui": "3.8.0-beta.72", + "@ohif/core": "3.8.0-beta.73", + "@ohif/extension-cornerstone": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.73", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", + "@ohif/extension-default": "3.8.0-beta.73", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.73", + "@ohif/extension-dicom-pdf": "3.8.0-beta.73", + "@ohif/extension-dicom-video": "3.8.0-beta.73", + "@ohif/extension-test": "3.8.0-beta.73", + "@ohif/i18n": "3.8.0-beta.73", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.73", + "@ohif/mode-longitudinal": "3.8.0-beta.73", + "@ohif/mode-microscopy": "3.8.0-beta.73", + "@ohif/mode-test": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.73", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 92abe6bae..69828c4a8 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index cbd7002df..e56b1444a 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 7f9addb55..f282a16c3 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) diff --git a/platform/core/package.json b/platform/core/package.json index 4774daa7a..a4005a9e6 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 91781c756..d3e03fb07 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index cd029eae2..8ab4cf963 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index db389bfaf..6f1e35d8b 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 000481518..27e2cfca2 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index de3b2b197..6e9843ebf 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.72](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.71...v3.8.0-beta.72) (2024-04-05) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 1d05abd0b..efe72cdcf 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.73", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From d57e8bc1571c6da4effaa492ee2d162c552365a2 Mon Sep 17 00:00:00 2001 From: Leonardo Campos Date: Wed, 10 Apr 2024 00:57:34 -0300 Subject: [PATCH 228/289] feat(4D): Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode (#3664) Co-authored-by: Alireza Co-authored-by: Neil --- .gitignore | 1 + commit.txt | 2 +- extensions/cornerstone-dicom-seg/package.json | 6 +- .../src/getPanelModule.tsx | 16 +- .../src/getToolbarModule.ts | 20 +- .../cornerstone-dicom-seg/src/index.tsx | 2 - extensions/cornerstone-dicom-seg/src/init.ts | 5 - .../src/panels/PanelSegmentation.tsx | 11 +- extensions/cornerstone-dicom-sr/package.json | 6 +- .../viewports/OHIFCornerstoneSRViewport.tsx | 11 +- .../.webpack/webpack.dev.js | 8 + .../.webpack/webpack.prod.js | 54 + extensions/cornerstone-dynamic-volume/LICENSE | 20 + .../cornerstone-dynamic-volume/README.md | 8 + .../babel.config.js | 1 + .../cornerstone-dynamic-volume/package.json | 50 + .../src/actions/index.ts | 3 + .../updateSegmentationsChartDisplaySet.ts | 281 ++++ .../src/commandsModule.ts | 407 ++++++ .../src/getHangingProtocolModule.ts | 654 +++++++++ .../src/getPanelModule.tsx | 68 + .../cornerstone-dynamic-volume/src/id.js | 6 + .../cornerstone-dynamic-volume/src/index.ts | 57 + .../src/panels/DynamicDataPanel.tsx | 18 + .../src/panels/DynamicExport.tsx | 76 + .../src/panels/DynamicVolumeControls.tsx | 220 +++ .../src/panels/GenerateVolume.tsx | 71 + .../src/panels/PanelGenerateImage.tsx | 275 ++++ .../src/panels/WorkflowPanel.tsx | 27 + .../src/panels/index.js | 5 + extensions/cornerstone/package.json | 13 +- .../src/Viewport/OHIFCornerstoneViewport.tsx | 8 + .../Overlays/CustomizableViewportOverlay.tsx | 2 +- extensions/cornerstone/src/commandsModule.ts | 61 +- .../ActiveViewportWindowLevel.tsx | 31 + .../ActiveViewportWindowLevel/index.js | 1 + .../src/components/CinePlayer/CinePlayer.tsx | 230 ++- .../ViewportWindowLevel.tsx | 387 +++++ .../getViewportVolumeHistogram.ts | 70 + .../ViewportWindowLevel/histogramWorker.js | 97 ++ .../components/ViewportWindowLevel/index.js | 1 + .../cornerstone/src/getToolbarModule.tsx | 2 +- extensions/cornerstone/src/index.tsx | 23 +- extensions/cornerstone/src/init.tsx | 17 +- extensions/cornerstone/src/initCineService.ts | 62 +- .../cornerstone/src/initCornerstoneTools.js | 21 +- .../cornerstone/src/initMeasurementService.js | 14 + .../cornerstone/src/initWADOImageLoader.js | 10 +- .../CornerstoneCacheService.ts | 3 +- .../SegmentationService.ts | 10 +- .../ToolGroupService/ToolGroupService.ts | 42 +- .../CornerstoneViewportService.ts | 5 + .../src/utils/interleaveTopToBottom.ts | 34 +- .../LineChartViewport/LineChartViewport.tsx | 32 + .../src/Components/LineChartViewport/index.ts | 1 + .../src/Components/SidePanelWithServices.tsx | 74 +- .../default/src/Panels/ActionButtons.tsx | 44 - .../src/Panels/PanelMeasurementTable.tsx | 26 +- .../SOPClassHandlers/chartSOPClassHandler.ts | 97 ++ extensions/default/src/Toolbar/Toolbar.tsx | 4 +- .../default/src/ViewerLayout/ViewerHeader.tsx | 11 +- extensions/default/src/ViewerLayout/index.tsx | 78 +- extensions/default/src/commandsModule.ts | 10 - .../ProgressDropdownWithService.tsx | 109 ++ .../ProgressDropdownWithService/index.js | 1 + .../default/src/getCustomizationModule.tsx | 6 + .../default/src/getDisplaySetMessages.ts | 8 +- .../default/src/getSopClassHandlerModule.js | 74 +- extensions/default/src/getToolbarModule.tsx | 5 + extensions/default/src/getViewportModule.tsx | 21 + extensions/default/src/index.ts | 2 + extensions/default/src/init.ts | 2 +- .../default/src/utils/reuseCachedLayouts.ts | 5 + extensions/measurement-tracking/package.json | 4 +- .../ActionButtons.tsx | 45 - .../PanelMeasurementTableTracking/index.tsx | 45 +- .../PanelStudyBrowserTracking.tsx | 29 +- .../viewports/TrackedCornerstoneViewport.tsx | 9 +- extensions/test-extension/src/hp/index.ts | 17 + .../ExportReports.tsx | 51 - .../LegacyPanelROIThresholdSegmentation.tsx | 287 ---- .../PanelROIThresholdExport.tsx | 114 ++ .../PanelROIThresholdSegmentation.tsx | 317 ---- .../callInputDialog.tsx | 62 - .../colorPickerDialog.css | 3 - .../colorPickerDialog.tsx | 58 - .../PanelROIThresholdSegmentation/index.ts | 4 +- extensions/tmtv/src/Panels/index.tsx | 4 +- extensions/tmtv/src/commandsModule.js | 124 +- extensions/tmtv/src/getPanelModule.tsx | 29 +- extensions/tmtv/src/utils/calculateSUVPeak.ts | 12 +- .../src/utils/createAndDownloadTMTVReport.js | 4 +- modes/basic-test-mode/src/index.ts | 2 +- modes/basic-test-mode/src/moreTools.ts | 25 +- modes/longitudinal/src/index.js | 6 +- modes/longitudinal/src/initToolGroups.js | 7 +- modes/longitudinal/src/moreTools.ts | 36 +- modes/longitudinal/src/toolbarButtons.ts | 2 - modes/microscopy/src/index.tsx | 4 +- modes/preclinical-4d/.webpack/webpack.dev.js | 12 + modes/preclinical-4d/.webpack/webpack.prod.js | 53 + modes/preclinical-4d/LICENSE | 9 + modes/preclinical-4d/README.md | 7 + modes/preclinical-4d/babel.config.js | 44 + modes/preclinical-4d/package.json | 47 + .../preclinical-4d/src/getWorkflowSettings.ts | 104 ++ modes/preclinical-4d/src/id.js | 5 + modes/preclinical-4d/src/index.tsx | 176 +++ modes/preclinical-4d/src/initToolGroups.tsx | 130 ++ modes/preclinical-4d/src/initWorkflowSteps.ts | 9 + .../preclinical-4d/src/segmentationButtons.ts | 180 +++ modes/preclinical-4d/src/toolbarButtons.tsx | 160 ++ modes/segmentation/src/toolbarButtons.ts | 53 +- modes/tmtv/src/index.js | 25 +- package.json | 3 +- .../OHIFCornerstoneToolbar.spec.js | 3 +- .../study-list/OHIFStudyList.spec.js | 2 + platform/app/package.json | 5 +- platform/app/pluginConfig.json | 8 + platform/app/public/config/local_orthanc.js | 1 + platform/app/src/appInit.js | 2 + platform/app/src/routes/Mode/Mode.tsx | 26 +- .../app/src/routes/Mode/defaultRouteInit.ts | 6 +- platform/core/package.json | 2 +- platform/core/src/classes/MetadataProvider.ts | 43 + .../core/src/extensions/ExtensionManager.ts | 1 + platform/core/src/index.test.js | 3 +- platform/core/src/index.ts | 3 + .../src/services/CineService/CineService.ts | 23 +- .../HangingProtocolService.ts | 23 +- .../src/services/PanelService/PanelService.ts | 61 - .../services/PanelService/PanelService.tsx | 195 +++ platform/core/src/services/ServicesManager.ts | 2 + .../services/ToolBarService/ToolbarService.ts | 7 +- .../WorkflowStepsService.ts | 238 +++ .../services/WorkflowStepsService/index.ts | 3 + platform/core/src/services/index.ts | 2 + platform/core/src/types/Services.ts | 2 + .../docs/docs/assets/img/progressDropdown.png | Bin 0 -> 103408 bytes .../docs/configuration/configurationFiles.md | 15 +- .../docs/platform/extensions/modules/panel.md | 14 +- platform/docs/docs/platform/modes/index.md | 15 +- platform/docs/docs/platform/modes/routes.md | 13 + .../services/data/WorkflowStepService.md | 174 +++ platform/ui/CHANGELOG.md | 90 +- platform/ui/package.json | 25 +- platform/ui/src/assets/icons/arrow-right.svg | 6 + platform/ui/src/assets/icons/tool-brush.svg | 22 + platform/ui/src/assets/icons/tool-eraser.svg | 21 + .../ui/src/assets/icons/tool-paint-fill.svg | 12 + .../src/assets/icons/tool-scissor-circle.svg | 9 + .../ui/src/assets/icons/tool-scissor-rect.svg | 39 + .../ActionButtons/ActionButtons.tsx | 40 + .../ui/src/components/ActionButtons/index.ts | 3 + .../components/ButtonGroup/ButtonGroup.tsx | 73 +- .../ui/src/components/CheckBox/CheckBox.tsx | 5 +- .../src/components/CinePlayer/CinePlayer.tsx | 139 +- .../__stories__/cinePlayer.stories.mdx | 57 + platform/ui/src/components/Header/Header.tsx | 9 +- .../HeaderPatientInfo/HeaderPatientInfo.tsx | 4 +- platform/ui/src/components/Icon/getIcon.js | 7 + .../InputDoubleRange/InputDoubleRange.tsx | 104 +- .../components/InputNumber/InputNumber.tsx | 72 +- .../src/components/InputRange/InputRange.css | 16 +- .../src/components/InputRange/InputRange.tsx | 28 +- .../__stories__/inputRange.stories.mdx | 2 +- .../LegacySplitButton/LegacySplitButton.tsx | 10 +- .../ui/src/components/LineChart/LineChart.css | 40 + .../ui/src/components/LineChart/LineChart.tsx | 129 ++ .../__stories__/lineChart.stories.mdx | 181 +++ .../components/LineChart/d3LineChart/chart.ts | 365 +++++ .../LineChart/d3LineChart/events.ts | 149 ++ .../components/LineChart/d3LineChart/index.ts | 3 + .../LineChart/d3LineChart/lineChart.ts | 272 ++++ platform/ui/src/components/LineChart/index.js | 1 + .../components/PanelSection/PanelSection.tsx | 6 +- .../ProgressDropdown/ProgressDiscreteBar.tsx | 27 + .../ProgressDropdown/ProgressDropdown.tsx | 168 +++ .../ProgressDropdown/ProgressItem.tsx | 31 + .../ProgressDropdown/ProgressItemDetail.tsx | 81 + .../__stories__/progressDropdown.stories.mdx | 106 ++ .../src/components/ProgressDropdown/index.js | 1 + .../src/components/ProgressDropdown/types.ts | 19 + .../SegmentationConfig.tsx | 6 +- .../ui/src/components/SidePanel/SidePanel.tsx | 40 +- .../ui/src/components/Toolbox/ToolboxUI.tsx | 4 +- .../ui/src/components/Tooltip/Tooltip.tsx | 46 +- .../ui/src/components/Tooltip/tooltip.css | 2 +- .../components/WindowLevel/WindowLevel.tsx | 189 +++ .../WindowLevel/WindowLevelHistogram.tsx | 236 +++ .../__stories__/windowLevel.stories.mdx | 103 ++ .../ui/src/components/WindowLevel/index.js | 1 + .../ui/src/components/WindowLevel/types.ts | 64 + platform/ui/src/components/index.js | 10 +- .../ui/src/contextProviders/CineProvider.tsx | 29 +- platform/ui/src/index.js | 4 + .../ui/src/views/Viewer/components/Header.js | 4 +- version.json | 2 +- version.txt | 2 +- yarn.lock | 1301 +++++++++-------- 200 files changed, 9589 insertions(+), 2178 deletions(-) delete mode 100644 extensions/cornerstone-dicom-seg/src/init.ts create mode 100644 extensions/cornerstone-dynamic-volume/.webpack/webpack.dev.js create mode 100644 extensions/cornerstone-dynamic-volume/.webpack/webpack.prod.js create mode 100644 extensions/cornerstone-dynamic-volume/LICENSE create mode 100644 extensions/cornerstone-dynamic-volume/README.md create mode 100644 extensions/cornerstone-dynamic-volume/babel.config.js create mode 100644 extensions/cornerstone-dynamic-volume/package.json create mode 100644 extensions/cornerstone-dynamic-volume/src/actions/index.ts create mode 100644 extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts create mode 100644 extensions/cornerstone-dynamic-volume/src/commandsModule.ts create mode 100644 extensions/cornerstone-dynamic-volume/src/getHangingProtocolModule.ts create mode 100644 extensions/cornerstone-dynamic-volume/src/getPanelModule.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/id.js create mode 100644 extensions/cornerstone-dynamic-volume/src/index.ts create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/DynamicDataPanel.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/GenerateVolume.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/PanelGenerateImage.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/WorkflowPanel.tsx create mode 100644 extensions/cornerstone-dynamic-volume/src/panels/index.js create mode 100644 extensions/cornerstone/src/components/ActiveViewportWindowLevel/ActiveViewportWindowLevel.tsx create mode 100644 extensions/cornerstone/src/components/ActiveViewportWindowLevel/index.js create mode 100644 extensions/cornerstone/src/components/ViewportWindowLevel/ViewportWindowLevel.tsx create mode 100644 extensions/cornerstone/src/components/ViewportWindowLevel/getViewportVolumeHistogram.ts create mode 100644 extensions/cornerstone/src/components/ViewportWindowLevel/histogramWorker.js create mode 100644 extensions/cornerstone/src/components/ViewportWindowLevel/index.js create mode 100644 extensions/default/src/Components/LineChartViewport/LineChartViewport.tsx create mode 100644 extensions/default/src/Components/LineChartViewport/index.ts delete mode 100644 extensions/default/src/Panels/ActionButtons.tsx create mode 100644 extensions/default/src/SOPClassHandlers/chartSOPClassHandler.ts create mode 100644 extensions/default/src/components/ProgressDropdownWithService/ProgressDropdownWithService.tsx create mode 100644 extensions/default/src/components/ProgressDropdownWithService/index.js create mode 100644 extensions/default/src/getViewportModule.tsx delete mode 100644 extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/ActionButtons.tsx create mode 100644 extensions/test-extension/src/hp/index.ts delete mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/ExportReports.tsx delete mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/LegacyPanelROIThresholdSegmentation.tsx create mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx delete mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdSegmentation.tsx delete mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/callInputDialog.tsx delete mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css delete mode 100644 extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx create mode 100644 modes/preclinical-4d/.webpack/webpack.dev.js create mode 100644 modes/preclinical-4d/.webpack/webpack.prod.js create mode 100644 modes/preclinical-4d/LICENSE create mode 100644 modes/preclinical-4d/README.md create mode 100644 modes/preclinical-4d/babel.config.js create mode 100644 modes/preclinical-4d/package.json create mode 100644 modes/preclinical-4d/src/getWorkflowSettings.ts create mode 100644 modes/preclinical-4d/src/id.js create mode 100644 modes/preclinical-4d/src/index.tsx create mode 100644 modes/preclinical-4d/src/initToolGroups.tsx create mode 100644 modes/preclinical-4d/src/initWorkflowSteps.ts create mode 100644 modes/preclinical-4d/src/segmentationButtons.ts create mode 100644 modes/preclinical-4d/src/toolbarButtons.tsx delete mode 100644 platform/core/src/services/PanelService/PanelService.ts create mode 100644 platform/core/src/services/PanelService/PanelService.tsx create mode 100644 platform/core/src/services/WorkflowStepsService/WorkflowStepsService.ts create mode 100644 platform/core/src/services/WorkflowStepsService/index.ts create mode 100644 platform/docs/docs/assets/img/progressDropdown.png create mode 100644 platform/docs/docs/platform/services/data/WorkflowStepService.md create mode 100644 platform/ui/src/assets/icons/arrow-right.svg create mode 100644 platform/ui/src/assets/icons/tool-brush.svg create mode 100644 platform/ui/src/assets/icons/tool-eraser.svg create mode 100644 platform/ui/src/assets/icons/tool-paint-fill.svg create mode 100644 platform/ui/src/assets/icons/tool-scissor-circle.svg create mode 100644 platform/ui/src/assets/icons/tool-scissor-rect.svg create mode 100644 platform/ui/src/components/ActionButtons/ActionButtons.tsx create mode 100644 platform/ui/src/components/ActionButtons/index.ts create mode 100644 platform/ui/src/components/CinePlayer/__stories__/cinePlayer.stories.mdx create mode 100644 platform/ui/src/components/LineChart/LineChart.css create mode 100644 platform/ui/src/components/LineChart/LineChart.tsx create mode 100644 platform/ui/src/components/LineChart/__stories__/lineChart.stories.mdx create mode 100644 platform/ui/src/components/LineChart/d3LineChart/chart.ts create mode 100644 platform/ui/src/components/LineChart/d3LineChart/events.ts create mode 100644 platform/ui/src/components/LineChart/d3LineChart/index.ts create mode 100644 platform/ui/src/components/LineChart/d3LineChart/lineChart.ts create mode 100644 platform/ui/src/components/LineChart/index.js create mode 100644 platform/ui/src/components/ProgressDropdown/ProgressDiscreteBar.tsx create mode 100644 platform/ui/src/components/ProgressDropdown/ProgressDropdown.tsx create mode 100644 platform/ui/src/components/ProgressDropdown/ProgressItem.tsx create mode 100644 platform/ui/src/components/ProgressDropdown/ProgressItemDetail.tsx create mode 100644 platform/ui/src/components/ProgressDropdown/__stories__/progressDropdown.stories.mdx create mode 100644 platform/ui/src/components/ProgressDropdown/index.js create mode 100644 platform/ui/src/components/ProgressDropdown/types.ts create mode 100644 platform/ui/src/components/WindowLevel/WindowLevel.tsx create mode 100644 platform/ui/src/components/WindowLevel/WindowLevelHistogram.tsx create mode 100644 platform/ui/src/components/WindowLevel/__stories__/windowLevel.stories.mdx create mode 100644 platform/ui/src/components/WindowLevel/index.js create mode 100644 platform/ui/src/components/WindowLevel/types.ts diff --git a/.gitignore b/.gitignore index ed3400749..245556be5 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ yarn-error.log .DS_Store .env *.code-workspace +.directory # Common Example Data Directories sampledata/ diff --git a/commit.txt b/commit.txt index 1590b5fff..90fdf8bec 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -dc37802ec1f739a6ed602363bdf231d6fe58827e \ No newline at end of file +dc37802ec1f739a6ed602363bdf231d6fe58827e diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index cb50724e5..f5e84c27a 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.68.1", - "@cornerstonejs/core": "^1.68.1", - "@kitware/vtk.js": "29.7.0", + "@cornerstonejs/adapters": "^1.70.0", + "@cornerstonejs/core": "^1.70.0", + "@kitware/vtk.js": "30.3.1", "react-color": "^2.19.3" } } diff --git a/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx b/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx index 12331caee..a86144d4f 100644 --- a/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx +++ b/extensions/cornerstone-dicom-seg/src/getPanelModule.tsx @@ -3,7 +3,6 @@ import React from 'react'; import { useAppConfig } from '@state'; import { Toolbox } from '@ohif/ui'; import PanelSegmentation from './panels/PanelSegmentation'; -import { SegmentationPanelMode } from './types/segmentation'; const getPanelModule = ({ commandsManager, @@ -17,11 +16,6 @@ const getPanelModule = ({ const wrappedPanelSegmentation = configuration => { const [appConfig] = useAppConfig(); - const disableEditingForMode = customizationService.get('segmentation.disableEditing'); - const segmentationPanelMode = - customizationService.get('segmentation.segmentationPanelMode')?.value || - SegmentationPanelMode.Dropdown; - return ( ); @@ -38,9 +32,6 @@ const getPanelModule = ({ const wrappedPanelSegmentationWithTools = configuration => { const [appConfig] = useAppConfig(); - const segmentationPanelMode = - customizationService.get('segmentation.segmentationPanelMode')?.value || - SegmentationPanelMode.Dropdown; return ( <> @@ -60,7 +51,8 @@ const getPanelModule = ({ extensionManager={extensionManager} configuration={{ ...configuration, - segmentationPanelMode: segmentationPanelMode, + disableEditing: appConfig.disableEditing, + ...customizationService.get('segmentation.panel'), }} /> diff --git a/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts b/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts index 19390d2ac..0a06cf7eb 100644 --- a/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts +++ b/extensions/cornerstone-dicom-seg/src/getToolbarModule.ts @@ -52,16 +52,22 @@ export function getToolbarModule({ commandsManager, servicesManager }) { ]; } +// Todo: this is duplicate, we should move it to a shared location function getToolNameForButton(button) { const { props } = button; const commands = props?.commands || button.commands; - - if (commands && commands.length) { - const command = commands[0]; - const { commandOptions } = command; - const { toolName } = commandOptions || { toolName: props?.id ?? button.id }; - return toolName; + const commandsArray = Array.isArray(commands) ? commands : [commands]; + const firstCommand = commandsArray[0]; + if (typeof firstCommand === 'string') { + // likely not a cornerstone tool + return null; } - return null; + + if ('commandOptions' in firstCommand) { + return firstCommand.commandOptions.toolName ?? props?.id ?? button.id; + } + + // use id as a fallback for toolName + return props?.id ?? button.id; } diff --git a/extensions/cornerstone-dicom-seg/src/index.tsx b/extensions/cornerstone-dicom-seg/src/index.tsx index 5fe0efef5..02db57545 100644 --- a/extensions/cornerstone-dicom-seg/src/index.tsx +++ b/extensions/cornerstone-dicom-seg/src/index.tsx @@ -6,7 +6,6 @@ import getHangingProtocolModule from './getHangingProtocolModule'; import getPanelModule from './getPanelModule'; import getCommandsModule from './commandsModule'; import { getToolbarModule } from './getToolbarModule'; -import preRegistration from './init'; const Component = React.lazy(() => { return import(/* webpackPrefetch: true */ './viewports/OHIFCornerstoneSEGViewport'); @@ -29,7 +28,6 @@ const extension = { * You ID can be anything you want, but it should be unique. */ id, - preRegistration, /** * PanelModule should provide a list of panels that will be available in OHIF * for Modes to consume and render. Each panel is defined by a {name, diff --git a/extensions/cornerstone-dicom-seg/src/init.ts b/extensions/cornerstone-dicom-seg/src/init.ts deleted file mode 100644 index c57e6a289..000000000 --- a/extensions/cornerstone-dicom-seg/src/init.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { addTool, BrushTool } from '@cornerstonejs/tools'; - -export default function init({ servicesManager }): void { - addTool(BrushTool); -} diff --git a/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx b/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx index 1a63ecd3a..c7f0232c9 100644 --- a/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx +++ b/extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx @@ -242,7 +242,13 @@ export default function PanelSegmentation({ }); }; - const SegmentationGroupTableComponent = components[configuration?.segmentationPanelMode]; + const SegmentationGroupTableComponent = + components[configuration?.segmentationPanelMode] || SegmentationGroupTable; + const allowAddSegment = configuration?.addSegment; + const onSegmentationAddWrapper = + configuration?.onSegmentationAdd && typeof configuration?.onSegmentationAdd === 'function' + ? configuration?.onSegmentationAdd + : onSegmentationAdd; return ( { + return webpackCommon(env, argv, { SRC_DIR, DIST_DIR }); +}; diff --git a/extensions/cornerstone-dynamic-volume/.webpack/webpack.prod.js b/extensions/cornerstone-dynamic-volume/.webpack/webpack.prod.js new file mode 100644 index 000000000..66a3e9fc1 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/.webpack/webpack.prod.js @@ -0,0 +1,54 @@ +const webpack = require('webpack'); +const { merge } = require('webpack-merge'); +const path = require('path'); +const webpackCommon = require('./../../../.webpack/webpack.base.js'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); + +const pkg = require('./../package.json'); + +const ROOT_DIR = path.join(__dirname, '../'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); +const ENTRY = { + app: `${SRC_DIR}/index.ts`, +}; + +const outputName = `ohif-${pkg.name.split('/').pop()}`; + +module.exports = (env, argv) => { + const commonConfig = webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY }); + + return merge(commonConfig, { + stats: { + colors: true, + hash: true, + timings: true, + assets: true, + chunks: false, + chunkModules: false, + modules: false, + children: false, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: true, + }, + output: { + path: ROOT_DIR, + library: 'ohif-extension-cornerstone', + libraryTarget: 'umd', + filename: pkg.main, + }, + externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/], + plugins: [ + new webpack.optimize.LimitChunkCountPlugin({ + maxChunks: 1, + }), + new MiniCssExtractPlugin({ + filename: `./dist/${outputName}.css`, + chunkFilename: `./dist/${outputName}.css`, + }), + ], + }); +}; diff --git a/extensions/cornerstone-dynamic-volume/LICENSE b/extensions/cornerstone-dynamic-volume/LICENSE new file mode 100644 index 000000000..24728a704 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/LICENSE @@ -0,0 +1,20 @@ +MIT License + +Copyright (c) 2023 cornerstone-dynamic-volume () + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/extensions/cornerstone-dynamic-volume/README.md b/extensions/cornerstone-dynamic-volume/README.md new file mode 100644 index 000000000..70949801a --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/README.md @@ -0,0 +1,8 @@ +# cornerstone-dynamic-volume +## Description + +## Author +OHIF + +## License +MIT diff --git a/extensions/cornerstone-dynamic-volume/babel.config.js b/extensions/cornerstone-dynamic-volume/babel.config.js new file mode 100644 index 000000000..325ca2a8e --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/babel.config.js @@ -0,0 +1 @@ +module.exports = require('../../babel.config.js'); diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json new file mode 100644 index 000000000..39b8882fe --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -0,0 +1,50 @@ +{ + "name": "@ohif/extension-cornerstone-dynamic-volume", + "version": "3.8.0-beta.72", + "description": "OHIF extension for 4D volumes data", + "author": "OHIF", + "license": "MIT", + "repository": "OHIF/Viewers", + "main": "dist/ohif-extension-cornerstone-dynamic-volume.umd.js", + "module": "src/index.ts", + "exports": { + ".": "./src/index.ts", + "./types": "./src/types/index.ts" + }, + "files": [ + "dist", + "README.md" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo", + "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", + "build:package": "yarn run build", + "clean": "shx rm -rf dist", + "clean:deep": "yarn run clean && shx rm -rf node_modules", + "start": "yarn run dev", + "test:unit": "jest --watchAll", + "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" + }, + "peerDependencies": { + "@ohif/core": "3.7.0-beta.76", + "@ohif/ui": "3.7.0-beta.76", + "@ohif/extension-default": "3.7.0-beta.76", + "@ohif/extension-cornerstone": "3.7.0-beta.76", + "@ohif/i18n": "3.7.0-beta.76", + "dcmjs": "^0.29.5", + "dicom-parser": "^1.8.21", + "hammerjs": "^2.0.8", + "prop-types": "^15.6.2", + "react": "^17.0.2" + }, + "dependencies": { + "@babel/runtime": "^7.20.13", + "@cornerstonejs/tools": "^1.70.0", + "@cornerstonejs/core": "^1.70.0", + "@cornerstonejs/streaming-image-volume-loader": "^1.70.0", + "classnames": "^2.3.2" + } +} diff --git a/extensions/cornerstone-dynamic-volume/src/actions/index.ts b/extensions/cornerstone-dynamic-volume/src/actions/index.ts new file mode 100644 index 000000000..45d2adfc2 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/actions/index.ts @@ -0,0 +1,3 @@ +import updateSegmentationsChartDisplaySet from './updateSegmentationsChartDisplaySet'; + +export { updateSegmentationsChartDisplaySet }; diff --git a/extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts b/extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts new file mode 100644 index 000000000..810d98488 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts @@ -0,0 +1,281 @@ +import { DicomMetadataStore, utils } from '@ohif/core'; + +import * as cs from '@cornerstonejs/core'; +import * as csTools from '@cornerstonejs/tools'; + +const CHART_MODALITY = 'CHT'; +const SEG_CHART_INSTANCE_UID = utils.guid(); + +// Private SOPClassUid for chart data +const ChartDataSOPClassUid = '1.9.451.13215.7.3.2.7.6.1'; + +const { utilities: csToolsUtils } = csTools; + +function _getDateTimeStr() { + const now = new Date(); + const date = + now.getFullYear() + ('0' + now.getUTCMonth()).slice(-2) + ('0' + now.getUTCDate()).slice(-2); + const time = + ('0' + now.getUTCHours()).slice(-2) + + ('0' + now.getUTCMinutes()).slice(-2) + + ('0' + now.getUTCSeconds()).slice(-2); + + return { date, time }; +} + +function _getTimePointsDataByTagName(volume, timePointsTag) { + const uniqueTimePoints = volume.imageIds.reduce((timePoints, imageId) => { + const instance = DicomMetadataStore.getInstanceByImageId(imageId); + const timePointValue = instance[timePointsTag]; + + if (timePointValue !== undefined) { + timePoints.add(timePointValue); + } + + return timePoints; + }, new Set()); + + return Array.from(uniqueTimePoints).sort((a: number, b: number) => a - b); +} + +function _convertTimePointsUnit(timePoints, timePointsUnit) { + const validUnits = ['ms', 's', 'm', 'h']; + const divisors = [1000, 60, 60]; + const currentUnitIndex = validUnits.indexOf(timePointsUnit); + let divisor = 1; + + if (currentUnitIndex !== -1) { + for (let i = currentUnitIndex; i < validUnits.length - 1; i++) { + const newDivisor = divisor * divisors[i]; + const greaterThanDivisorCount = timePoints.filter(timePoint => timePoint > newDivisor).length; + + // Change the scale only if more than 50% of the time points are + // greater than the new divisor. + if (greaterThanDivisorCount <= timePoints.length / 2) { + break; + } + + divisor = newDivisor; + timePointsUnit = validUnits[i + 1]; + } + + if (divisor > 1) { + timePoints = timePoints.map(timePoint => timePoint / divisor); + } + } + + return { timePoints, timePointsUnit }; +} + +// It currently supports only one tag but a few other will be added soon +// Supported 4D Tags +// (0018,1060) Trigger Time [NOK] +// (0018,0081) Echo Time [NOK] +// (0018,0086) Echo Number [NOK] +// (0020,0100) Temporal Position Identifier [NOK] +// (0054,1300) FrameReferenceTime [OK] +function _getTimePointsData(volume) { + const timePointsTags = { + FrameReferenceTime: { + unit: 'ms', + }, + }; + + const timePointsTagNames = Object.keys(timePointsTags); + let timePoints; + let timePointsUnit; + + for (let i = 0; i < timePointsTagNames.length; i++) { + const tagName = timePointsTagNames[i]; + const curTimePoints = _getTimePointsDataByTagName(volume, tagName); + + if (curTimePoints.length) { + timePoints = curTimePoints; + timePointsUnit = timePointsTags[tagName].unit; + break; + } + } + + if (!timePoints.length) { + const concatTagNames = timePointsTagNames.join(', '); + + throw new Error(`Could not extract time points data for the following tags: ${concatTagNames}`); + } + + const convertedTimePoints = _convertTimePointsUnit(timePoints, timePointsUnit); + + timePoints = convertedTimePoints.timePoints; + timePointsUnit = convertedTimePoints.timePointsUnit; + + return { timePoints, timePointsUnit }; +} + +function _getSegmentationData(segmentation, volumesTimePointsCache, displaySetService) { + const displaySets = displaySetService.getActiveDisplaySets(); + + const dynamic4DDisplaySet = displaySets.find(displaySet => { + const anInstance = displaySet.instances?.[0]; + + if (anInstance) { + return ( + anInstance.FrameReferenceTime !== undefined || anInstance.NumberOfTimeSlices !== undefined + ); + } + + return false; + }); + + // const referencedDynamicVolume = cs.cache.getVolume(dynamic4DDisplaySet.displaySetInstanceUID); + let volumeCacheKey: string | undefined; + const volumeId = dynamic4DDisplaySet.displaySetInstanceUID; + + for (const [key] of cs.cache._volumeCache) { + if (key.includes(volumeId)) { + volumeCacheKey = key; + break; + } + } + + let referencedDynamicVolume; + if (volumeCacheKey) { + referencedDynamicVolume = cs.cache.getVolume(volumeCacheKey); + } + + const { StudyInstanceUID, StudyDescription } = DicomMetadataStore.getInstanceByImageId( + referencedDynamicVolume.imageIds[0] + ); + + const [timeData, _] = csToolsUtils.dynamicVolume.getDataInTime(referencedDynamicVolume, { + maskVolumeId: segmentation.id, + }) as number[][]; + + const pixelCount = timeData.length; + + if (pixelCount === 0) { + return []; + } + + // since we only use one segmentation representation per segmentationId + // it is fine to pick the first one + const segmentationRepresentations = csTools.segmentation.state.getSegmentationIdRepresentations( + segmentation.id + ); + + const segmentationRepresentationUID = + segmentationRepresentations[0].segmentationRepresentationUID; + + const toolGroupId = csTools.segmentation.state.getToolGroupIdFromSegmentationRepresentationUID( + segmentationRepresentationUID + ); + + // Todo: this is useless we should be able to grab color with just segRepUID and segmentIndex + const color = csTools.segmentation.config.color.getColorForSegmentIndex( + toolGroupId, + segmentationRepresentationUID, + 1 // segmentIndex + ); + + const hexColor = cs.utilities.color.rgbToHex(...color); + let timePointsData = volumesTimePointsCache.get(referencedDynamicVolume); + + if (!timePointsData) { + timePointsData = _getTimePointsData(referencedDynamicVolume); + volumesTimePointsCache.set(referencedDynamicVolume, timePointsData); + } + + const { timePoints, timePointsUnit } = timePointsData; + + if (timePoints.length !== timeData[0].length) { + throw new Error('Invalid number of time points returned'); + } + + const timepointsCount = timePoints.length; + const chartSeriesData = new Array(timepointsCount); + + for (let i = 0; i < timepointsCount; i++) { + const average = timeData.reduce((acc, cur) => acc + cur[i] / pixelCount, 0); + + chartSeriesData[i] = [timePoints[i], average]; + } + + return { + StudyInstanceUID, + StudyDescription, + chartData: { + series: { + label: segmentation.label, + points: chartSeriesData, + color: hexColor, + }, + axis: { + x: { + label: `Time (${timePointsUnit})`, + }, + y: { + label: `Vl (Bq/ml)`, + }, + }, + }, + }; +} + +function _getInstanceFromSegmentations(segmentations, displaySetService) { + if (!segmentations.length) { + return; + } + + const volumesTimePointsCache = new WeakMap(); + const segmentationsData = segmentations.map(segmentation => + _getSegmentationData(segmentation, volumesTimePointsCache, displaySetService) + ); + + const { date: seriesDate, time: seriesTime } = _getDateTimeStr(); + const series = segmentationsData.reduce((allSeries, curSegData) => { + return [...allSeries, curSegData.chartData.series]; + }, []); + + const instance = { + SOPClassUID: ChartDataSOPClassUid, + Modality: CHART_MODALITY, + SOPInstanceUID: utils.guid(), + SeriesDate: seriesDate, + SeriesTime: seriesTime, + SeriesInstanceUID: SEG_CHART_INSTANCE_UID, + StudyInstanceUID: segmentationsData[0].StudyInstanceUID, + StudyDescription: segmentationsData[0].StudyDescription, + SeriesNumber: 100, + SeriesDescription: 'Segmentation chart series data', + chartData: { + series, + axis: { ...segmentationsData[0].chartData.axis }, + }, + }; + + const seriesMetadata = { + StudyInstanceUID: instance.StudyInstanceUID, + StudyDescription: instance.StudyDescription, + SeriesInstanceUID: instance.SeriesInstanceUID, + SeriesDescription: instance.SeriesDescription, + SeriesNumber: instance.SeriesNumber, + SeriesTime: instance.SeriesTime, + SOPClassUID: instance.SOPClassUID, + Modality: instance.Modality, + }; + + return { seriesMetadata, instance }; +} + +function updateSegmentationsChartDisplaySet({ servicesManager }): void { + const { segmentationService, displaySetService } = servicesManager.services; + const segmentations = segmentationService.getSegmentations(); + const { seriesMetadata, instance } = + _getInstanceFromSegmentations(segmentations, displaySetService) ?? {}; + + if (seriesMetadata && instance) { + // An event is triggered after adding the instance and the displaySet is created + DicomMetadataStore.addSeriesMetadata([seriesMetadata], true); + DicomMetadataStore.addInstances([instance], true); + } +} + +export { updateSegmentationsChartDisplaySet as default }; diff --git a/extensions/cornerstone-dynamic-volume/src/commandsModule.ts b/extensions/cornerstone-dynamic-volume/src/commandsModule.ts new file mode 100644 index 000000000..a6cdf6cda --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/commandsModule.ts @@ -0,0 +1,407 @@ +import * as importedActions from './actions'; +import { utilities, Enums } from '@cornerstonejs/tools'; +import { cache } from '@cornerstonejs/core'; + +const LABELMAP = Enums.SegmentationRepresentations.Labelmap; + +const commandsModule = ({ commandsManager, servicesManager }) => { + const services = servicesManager.services; + const { displaySetService, viewportGridService, segmentationService } = services; + + const actions = { + ...importedActions, + getDynamic4DDisplaySet: () => { + const displaySets = displaySetService.getActiveDisplaySets(); + + const dynamic4DDisplaySet = displaySets.find(displaySet => { + const anInstance = displaySet.instances?.[0]; + + if (anInstance) { + return ( + anInstance.FrameReferenceTime !== undefined || + anInstance.NumberOfTimeSlices !== undefined || + anInstance.TemporalPositionIdentifier !== undefined + ); + } + + return false; + }); + + return dynamic4DDisplaySet; + }, + getComputedDisplaySets: () => { + const displaySetCache = displaySetService.getDisplaySetCache(); + const cachedDisplaySets = [...displaySetCache.values()]; + const computedDisplaySets = cachedDisplaySets.filter(displaySet => { + return displaySet.isDerived; + }); + return computedDisplaySets; + }, + exportTimeReportCSV: ({ segmentations, config, options, summaryStats }) => { + const dynamic4DDisplaySet = actions.getDynamic4DDisplaySet(); + + const volumeId = dynamic4DDisplaySet?.displaySetInstanceUID; + + // cache._volumeCache is a map that has a key that includes the volumeId + // it is not exactly the volumeId, but it is the key that includes the volumeId + // so we can't do cache._volumeCache.get(volumeId) we should iterate + // over the keys and find the one that includes the volumeId + let volumeCacheKey: string | undefined; + + for (const [key] of cache._volumeCache) { + if (key.includes(volumeId)) { + volumeCacheKey = key; + break; + } + } + + let dynamicVolume; + if (volumeCacheKey) { + dynamicVolume = cache.getVolume(volumeCacheKey); + } + + const instance = dynamic4DDisplaySet.instances[0]; + + const csv = []; + + // CSV header information with placeholder empty values for the metadata lines + csv.push(`Patient ID,${instance.PatientID},`); + csv.push(`Study Date,${instance.StudyDate},`); + csv.push(`StudyInstanceUID,${instance.StudyInstanceUID},`); + csv.push(`StudyDescription,${instance.StudyDescription},`); + csv.push(`SeriesInstanceUID,${instance.SeriesInstanceUID},`); + + // empty line + csv.push(''); + csv.push(''); + + // Helper function to calculate standard deviation + function calculateStandardDeviation(data) { + const n = data.length; + const mean = data.reduce((acc, value) => acc + value, 0) / n; + const squaredDifferences = data.map(value => (value - mean) ** 2); + const variance = squaredDifferences.reduce((acc, value) => acc + value, 0) / n; + const stdDeviation = Math.sqrt(variance); + return stdDeviation; + } + + // Iterate through each segmentation to get the timeData and ijkCoords + segmentations.forEach((segmentation, segmentationIndex) => { + const [timeData, ijkCoords] = utilities.dynamicVolume.getDataInTime(dynamicVolume, { + maskVolumeId: segmentation.id, + }) as number[][]; + + if (summaryStats) { + // Adding column headers for pixel identifier and segmentation label ids + let headers = 'Operation,Segmentation Label ID'; + const maxLength = dynamicVolume.numTimePoints; + for (let t = 0; t < maxLength; t++) { + headers += `,Time Point ${t}`; + } + csv.push(headers); + // // perform summary statistics on the timeData including for each time point, mean, median, min, max, and standard deviation for + // // all the voxels in the ROI + const mean = []; + const min = []; + const minIJK = []; + const max = []; + const maxIJK = []; + const std = []; + + const numVoxels = timeData.length; + // Helper function to calculate standard deviation + for (let timeIndex = 0; timeIndex < maxLength; timeIndex++) { + // for each voxel in the ROI, get the value at the current time point + const voxelValues = []; + for (let voxelIndex = 0; voxelIndex < numVoxels; voxelIndex++) { + voxelValues.push(timeData[voxelIndex][timeIndex]); + } + + mean.push(voxelValues.reduce((acc, value) => acc + value, 0) / numVoxels); + const minimum = Math.min(...voxelValues); + min.push(minimum); + minIJK.push(ijkCoords[voxelValues.indexOf(minimum)]); + const maximum = Math.max(...voxelValues); + max.push(maximum); + maxIJK.push(ijkCoords[voxelValues.indexOf(maximum)]); + std.push(calculateStandardDeviation(voxelValues)); + } + + let row = `Mean,${segmentation.label}`; + // Generate separate rows for each statistic + for (let t = 0; t < maxLength; t++) { + row += `,${mean[t]}`; + } + + csv.push(row); + + row = `Standard Deviation,${segmentation.label}`; + for (let t = 0; t < maxLength; t++) { + row += `,${std[t]}`; + } + + csv.push(row); + + row = `Min,${segmentation.label}`; + for (let t = 0; t < maxLength; t++) { + row += `,${min[t]}`; + } + + csv.push(row); + + row = `Max,${segmentation.label}`; + for (let t = 0; t < maxLength; t++) { + row += `,${max[t]}`; + } + + csv.push(row); + } else { + // Adding column headers for pixel identifier and segmentation label ids + let headers = 'Pixel Identifier (IJK),Segmentation Label ID'; + const maxLength = dynamicVolume.numTimePoints; + for (let t = 0; t < maxLength; t++) { + headers += `,Time Point ${t}`; + } + csv.push(headers); + // Assuming timeData and ijkCoords are of the same length + for (let i = 0; i < timeData.length; i++) { + // Generate the pixel identifier + const pixelIdentifier = `${ijkCoords[i][0]}_${ijkCoords[i][1]}_${ijkCoords[i][2]}`; + + // Start a new row for the current pixel + let row = `${pixelIdentifier},${segmentation.label}`; + + // Add time data points for this pixel + for (let t = 0; t < timeData[i].length; t++) { + row += `,${timeData[i][t]}`; + } + + // Append the row to the CSV array + csv.push(row); + } + } + }); + + // Convert to CSV string + const csvContent = csv.join('\n'); + + // Generate filename and trigger download + const filename = `${instance.PatientID}.csv`; + const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + const url = URL.createObjectURL(blob); + link.setAttribute('href', url); + link.setAttribute('download', filename); + link.style.visibility = 'hidden'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + }, + swapDynamicWithComputedDisplaySet: ({ displaySet }) => { + const computedDisplaySet = displaySet; + + const displaySetCache = displaySetService.getDisplaySetCache(); + const cachedDisplaySetKeys = [displaySetCache.keys()]; + const { displaySetInstanceUID } = computedDisplaySet; + // Check to see if computed display set is already in cache + if (!cachedDisplaySetKeys.includes(displaySetInstanceUID)) { + displaySetCache.set(displaySetInstanceUID, computedDisplaySet); + } + + // Get all viewports and their corresponding indices + const { viewports } = viewportGridService.getState(); + + // get the viewports in the grid + // iterate over them and find the ones that are showing a dynamic + // volume (displaySet), and replace that exact displaySet with the + // computed displaySet + + const dynamic4DDisplaySet = actions.getDynamic4DDisplaySet(); + + const viewportsToUpdate = []; + + for (const [key, value] of viewports) { + const viewport = value; + const viewportOptions = viewport.viewportOptions; + const { displaySetInstanceUIDs } = viewport; + const displaySetInstanceUIDIndex = displaySetInstanceUIDs.indexOf( + dynamic4DDisplaySet.displaySetInstanceUID + ); + if (displaySetInstanceUIDIndex !== -1) { + const newViewport = { + viewportId: viewport.viewportId, + // merge the other displaySetInstanceUIDs with the new one + displaySetInstanceUIDs: [ + ...displaySetInstanceUIDs.slice(0, displaySetInstanceUIDIndex), + displaySetInstanceUID, + ...displaySetInstanceUIDs.slice(displaySetInstanceUIDIndex + 1), + ], + viewportOptions: { + initialImageOptions: viewportOptions.initialImageOptions, + viewportType: 'volume', + orientation: viewportOptions.orientation, + background: viewportOptions.background, + }, + }; + viewportsToUpdate.push(newViewport); + } + } + + viewportGridService.setDisplaySetsForViewports(viewportsToUpdate); + }, + swapComputedWithDynamicDisplaySet: () => { + // Todo: this assumes there is only one dynamic display set in the viewer + const dynamicDisplaySet = actions.getDynamic4DDisplaySet(); + + const displaySetCache = displaySetService.getDisplaySetCache(); + const cachedDisplaySetKeys = [...displaySetCache.keys()]; // Fix: Spread to get the array + const { displaySetInstanceUID } = dynamicDisplaySet; + + // Check to see if dynamic display set is already in cache + if (!cachedDisplaySetKeys.includes(displaySetInstanceUID)) { + displaySetCache.set(displaySetInstanceUID, dynamicDisplaySet); + } + + // Get all viewports and their corresponding indices + const { viewports } = viewportGridService.getState(); + + // Get the computed 4D display set + const computed4DDisplaySet = actions.getComputedDisplaySets()[0]; + + const viewportsToUpdate = []; + + for (const [key, value] of viewports) { + const viewport = value; + const viewportOptions = viewport.viewportOptions; + const { displaySetInstanceUIDs } = viewport; + const displaySetInstanceUIDIndex = displaySetInstanceUIDs.indexOf( + computed4DDisplaySet.displaySetInstanceUID + ); + if (displaySetInstanceUIDIndex !== -1) { + const newViewport = { + viewportId: viewport.viewportId, + // merge the other displaySetInstanceUIDs with the new one + displaySetInstanceUIDs: [ + ...displaySetInstanceUIDs.slice(0, displaySetInstanceUIDIndex), + displaySetInstanceUID, + ...displaySetInstanceUIDs.slice(displaySetInstanceUIDIndex + 1), + ], + viewportOptions: { + initialImageOptions: viewportOptions.initialImageOptions, + viewportType: 'volume', + orientation: viewportOptions.orientation, + background: viewportOptions.background, + }, + }; + viewportsToUpdate.push(newViewport); + } + } + + viewportGridService.setDisplaySetsForViewports(viewportsToUpdate); + }, + createNewLabelMapForDynamicVolume: async ({ label }) => { + const { viewports, activeViewportId } = viewportGridService.getState(); + + // get the dynamic 4D display set + const dynamic4DDisplaySet = actions.getDynamic4DDisplaySet(); + const dynamic4DDisplaySetInstanceUID = dynamic4DDisplaySet.displaySetInstanceUID; + + // check if the dynamic 4D display set is in the display, if not we might have + // the computed volumes and we should choose them for the segmentation + // creation + + let referenceDisplaySet; + + const activeViewport = viewports.get(activeViewportId); + const activeDisplaySetInstanceUIDs = activeViewport.displaySetInstanceUIDs; + const dynamicIsInActiveViewport = activeDisplaySetInstanceUIDs.includes( + dynamic4DDisplaySetInstanceUID + ); + + if (dynamicIsInActiveViewport) { + referenceDisplaySet = dynamic4DDisplaySet; + } + + if (!referenceDisplaySet) { + // try to see if there is any derived displaySet in the active viewport + // which is referencing the dynamic 4D display set + + // Todo: this is wrong but I don't have time to fix it now + const cachedDisplaySets = displaySetService.getDisplaySetCache(); + for (const [key, displaySet] of cachedDisplaySets) { + if (displaySet.referenceDisplaySetUID === dynamic4DDisplaySetInstanceUID) { + referenceDisplaySet = displaySet; + break; + } + } + } + + if (!referenceDisplaySet) { + throw new Error('No reference display set found based on the dynamic data'); + } + + const segmentationId = await segmentationService.createSegmentationForDisplaySet( + referenceDisplaySet.displaySetInstanceUID, + { label } + ); + + // Add Segmentation to all toolGroupIds in the viewer + const toolGroupIds = Array.from( + viewports.values(), + viewport => viewport.viewportOptions.toolGroupId + ); + + const representationType = LABELMAP; + + for (const toolGroupId of toolGroupIds) { + const hydrateSegmentation = true; + await segmentationService.addSegmentationRepresentationToToolGroup( + toolGroupId, + segmentationId, + hydrateSegmentation, + representationType + ); + + segmentationService.setActiveSegmentationForToolGroup(segmentationId, toolGroupId); + } + + return segmentationId; + }, + }; + + const definitions = { + updateSegmentationsChartDisplaySet: { + commandFn: actions.updateSegmentationsChartDisplaySet, + storeContexts: [], + options: {}, + }, + exportTimeReportCSV: { + commandFn: actions.exportTimeReportCSV, + storeContexts: [], + options: {}, + }, + swapDynamicWithComputedDisplaySet: { + commandFn: actions.swapDynamicWithComputedDisplaySet, + storeContexts: [], + options: {}, + }, + createNewLabelMapForDynamicVolume: { + commandFn: actions.createNewLabelMapForDynamicVolume, + storeContexts: [], + options: {}, + }, + swapComputedWithDynamicDisplaySet: { + commandFn: actions.swapComputedWithDynamicDisplaySet, + storeContexts: [], + options: {}, + }, + }; + + return { + actions, + definitions, + defaultContext: 'DYNAMIC-VOLUME:CORNERSTONE', + }; +}; + +export default commandsModule; diff --git a/extensions/cornerstone-dynamic-volume/src/getHangingProtocolModule.ts b/extensions/cornerstone-dynamic-volume/src/getHangingProtocolModule.ts new file mode 100644 index 000000000..0a8b6d520 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/getHangingProtocolModule.ts @@ -0,0 +1,654 @@ +const DEFAULT_COLORMAP = '2hot'; +const toolGroupIds = { + pt: 'dynamic4D-pt', + fusion: 'dynamic4D-fusion', + ct: 'dynamic4D-ct', +}; + +function getPTOptions({ + colormap, + voiInverted, +}: { + colormap?: { + name: string; + opacity: + | number + | { + value: number; + opacity: number; + }[]; + }; + voiInverted?: boolean; +} = {}) { + return { + blendMode: 'MIP', + colormap, + voi: { + windowWidth: 5, + windowCenter: 2.5, + }, + voiInverted, + }; +} + +function getPTViewports() { + const ptOptionsParams = { + colormap: { + name: DEFAULT_COLORMAP, + opacity: [ + { value: 0, opacity: 0 }, + { value: 0.1, opacity: 1 }, + { value: 1, opacity: 1 }, + ], + }, + voiInverted: false, + }; + + return [ + { + viewportOptions: { + viewportId: 'ptAxial', + viewportType: 'volume', + orientation: 'axial', + toolGroupId: toolGroupIds.pt, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'axialSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptWLSync', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'ptDisplaySet', + options: { ...getPTOptions(ptOptionsParams) }, + }, + ], + }, + { + viewportOptions: { + viewportId: 'ptSagittal', + viewportType: 'volume', + orientation: 'sagittal', + toolGroupId: toolGroupIds.pt, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'sagittalSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptWLSync', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'ptDisplaySet', + options: { ...getPTOptions(ptOptionsParams) }, + }, + ], + }, + { + viewportOptions: { + viewportId: 'ptCoronal', + viewportType: 'volume', + orientation: 'coronal', + toolGroupId: toolGroupIds.pt, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'coronalSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptWLSync', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'ptDisplaySet', + options: { ...getPTOptions(ptOptionsParams) }, + }, + ], + }, + ]; +} + +function getFusionViewports() { + const ptOptionsParams = { + colormap: { + name: DEFAULT_COLORMAP, + opacity: [ + { value: 0, opacity: 0 }, + { value: 0.1, opacity: 0.3 }, + { value: 1, opacity: 0.3 }, + ], + }, + }; + + return [ + { + viewportOptions: { + viewportId: 'fusionAxial', + viewportType: 'volume', + orientation: 'axial', + toolGroupId: toolGroupIds.fusion, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'axialSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ctWLSync', + source: false, + target: true, + }, + { + type: 'voi', + id: 'fusionWLSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptFusionWLSync', + source: false, + target: true, + options: { + syncInvertState: false, + }, + }, + ], + }, + displaySets: [ + { + id: 'ctDisplaySet', + }, + { + options: { ...getPTOptions(ptOptionsParams) }, + id: 'ptDisplaySet', + }, + ], + }, + { + viewportOptions: { + viewportId: 'fusionSagittal', + viewportType: 'volume', + orientation: 'sagittal', + toolGroupId: toolGroupIds.fusion, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'sagittalSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ctWLSync', + source: false, + target: true, + }, + { + type: 'voi', + id: 'fusionWLSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptFusionWLSync', + source: false, + target: true, + options: { + syncInvertState: false, + }, + }, + ], + }, + displaySets: [ + { + id: 'ctDisplaySet', + }, + { + options: { ...getPTOptions(ptOptionsParams) }, + id: 'ptDisplaySet', + }, + ], + }, + { + viewportOptions: { + viewportId: 'fusionCoronal', + viewportType: 'volume', + orientation: 'coronal', + toolGroupId: toolGroupIds.fusion, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'coronalSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ctWLSync', + source: false, + target: true, + }, + { + type: 'voi', + id: 'fusionWLSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ptFusionWLSync', + source: false, + target: true, + options: { + syncInvertState: false, + }, + }, + ], + }, + displaySets: [ + { + id: 'ctDisplaySet', + }, + { + options: { ...getPTOptions(ptOptionsParams) }, + id: 'ptDisplaySet', + }, + ], + }, + ]; +} + +function getSeriesChartViewport() { + return { + viewportOptions: { + viewportId: 'seriesChart', + }, + displaySets: [ + { + id: 'chartDisplaySet', + options: { + // This dataset does not require the download of any instance since it is pre-computed locally, + // but interleaveTopToBottom.ts was not loading any series because it consider that all viewports + // are a Cornerstone viewport which is not true in this case and it waits for all viewports to + // have called interleaveTopToBottom(...). + skipLoading: true, + }, + }, + ], + }; +} + +function getCTViewports() { + return [ + { + viewportOptions: { + viewportId: 'ctAxial', + viewportType: 'volume', + orientation: 'axial', + toolGroupId: toolGroupIds.ct, + initialImageOptions: { + preset: 'middle', // 'first', 'last', 'middle' + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'axialSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ctWLSync', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'ctDisplaySet', + }, + ], + }, + { + viewportOptions: { + viewportId: 'ctSagittal', + viewportType: 'volume', + orientation: 'sagittal', + toolGroupId: toolGroupIds.ct, + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'sagittalSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ctWLSync', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'ctDisplaySet', + }, + ], + }, + { + viewportOptions: { + viewportId: 'ctCoronal', + viewportType: 'volume', + orientation: 'coronal', + toolGroupId: toolGroupIds.ct, + initialImageOptions: { + preset: 'middle', + }, + syncGroups: [ + { + type: 'cameraPosition', + id: 'coronalSync', + source: true, + target: true, + }, + { + type: 'voi', + id: 'ctWLSync', + source: true, + target: true, + }, + ], + }, + displaySets: [ + { + id: 'ctDisplaySet', + }, + ], + }, + ]; +} + +const defaultProtocol = { + id: 'default4D', + locked: true, + // Don't store this hanging protocol as it applies to the currently active + // display set by default + // cacheId: null, + hasUpdatedPriorsInformation: false, + name: 'Default', + createdDate: '2023-01-01T00:00:00.000Z', + modifiedDate: '2023-01-01T00:00:00.000Z', + availableTo: {}, + editableBy: {}, + imageLoadStrategy: 'default', // "default" , "interleaveTopToBottom", "interleaveCenter" + protocolMatchingRules: [ + { + attribute: 'ModalitiesInStudy', + constraint: { + contains: ['CT', 'PT'], + }, + }, + ], + // -1 would be used to indicate active only, whereas other values are + // the number of required priors referenced - so 0 means active with + // 0 or more priors. + numberOfPriorsReferenced: -1, + displaySetSelectors: { + defaultDisplaySetId: { + // Unused currently + imageMatchingRules: [], + // Matches displaysets, NOT series + seriesMatchingRules: [ + // Try to match series with images by default, to prevent weird display + // on SEG/SR containing studies + { + attribute: 'numImageFrames', + constraint: { + greaterThan: { value: 0 }, + }, + }, + ], + // Can be used to select matching studies + // studyMatchingRules: [], + }, + ctDisplaySet: { + // Unused currently + imageMatchingRules: [], + // Matches displaysets, NOT series + seriesMatchingRules: [ + { + attribute: 'Modality', + constraint: { + equals: { + value: 'CT', + }, + }, + required: true, + }, + { + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + ], + // Can be used to select matching studies + // studyMatchingRules: [], + }, + ptDisplaySet: { + // Unused currently + imageMatchingRules: [], + // Matches displaysets, NOT series + seriesMatchingRules: [ + { + attribute: 'Modality', + constraint: { + equals: 'PT', + }, + required: true, + }, + { + attribute: 'isReconstructable', + constraint: { + equals: { + value: true, + }, + }, + required: true, + }, + { + attribute: 'SeriesDescription', + constraint: { + contains: 'Corrected', + }, + }, + { + weight: 2, + attribute: 'SeriesDescription', + constraint: { + doesNotContain: { + value: 'Uncorrected', + }, + }, + }, + + // Should we check if CorrectedImage contains ATTN? + // (0028,0051) (CorrectedImage): NORM\DTIM\ATTN\SCAT\RADL\DECY + ], + // Can be used to select matching studies + // studyMatchingRules: [], + }, + chartDisplaySet: { + // Unused currently + imageMatchingRules: [], + // Matches displaysets, NOT series + seriesMatchingRules: [ + { + attribute: 'Modality', + constraint: { + equals: { + value: 'CHT', + }, + }, + required: true, + }, + ], + }, + }, + stages: [ + { + id: 'dataPreparation', + name: 'Data Preparation', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 1, + columns: 3, + }, + }, + viewports: [...getPTViewports()], + createdDate: '2023-01-01T00:00:00.000Z', + }, + + { + id: 'registration', + name: 'Registration', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 3, + columns: 3, + }, + }, + viewports: [...getFusionViewports(), ...getCTViewports(), ...getPTViewports()], + createdDate: '2023-01-01T00:00:00.000Z', + }, + + { + id: 'roiQuantification', + name: 'ROI Quantification', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 1, + columns: 3, + }, + }, + viewports: [...getFusionViewports()], + createdDate: '2023-01-01T00:00:00.000Z', + }, + + { + id: 'kineticAnalysis', + name: 'Kinetic Analysis', + viewportStructure: { + layoutType: 'grid', + properties: { + rows: 2, + columns: 3, + layoutOptions: [ + { + x: 0, + y: 0, + width: 1 / 3, + height: 1 / 2, + }, + { + x: 1 / 3, + y: 0, + width: 1 / 3, + height: 1 / 2, + }, + { + x: 2 / 3, + y: 0, + width: 1 / 3, + height: 1 / 2, + }, + { + x: 0, + y: 1 / 2, + width: 1, + height: 1 / 2, + }, + ], + }, + }, + viewports: [...getFusionViewports(), getSeriesChartViewport()], + createdDate: '2023-01-01T00:00:00.000Z', + }, + ], +}; + +/** + * HangingProtocolModule should provide a list of hanging protocols that will be + * available in OHIF for Modes to use to decide on the structure of the viewports + * and also the series that hung in the viewports. Each hanging protocol is defined by + * { name, protocols}. Examples include the default hanging protocol provided by + * the default extension that shows 2x2 viewports. + */ + +function getHangingProtocolModule() { + return [ + { + name: defaultProtocol.id, + protocol: defaultProtocol, + }, + ]; +} + +export default getHangingProtocolModule; diff --git a/extensions/cornerstone-dynamic-volume/src/getPanelModule.tsx b/extensions/cornerstone-dynamic-volume/src/getPanelModule.tsx new file mode 100644 index 000000000..a32b5243d --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/getPanelModule.tsx @@ -0,0 +1,68 @@ +import React from 'react'; +import { DynamicDataPanel } from './panels'; +import { Toolbox } from '@ohif/ui'; +import DynamicExport from './panels/DynamicExport'; + +function getPanelModule({ commandsManager, extensionManager, servicesManager }) { + const wrappedDynamicDataPanel = () => { + return ( + + ); + }; + + const wrappedDynamicToolbox = () => { + return ( + <> + + + ); + }; + + const wrappedDynamicExport = () => { + return ( + <> + + + ); + }; + + return [ + { + name: 'dynamic-volume', + iconName: 'group-layers', + iconLabel: '4D Workflow', + label: '4D Workflow', + component: wrappedDynamicDataPanel, + }, + { + name: 'dynamic-toolbox', + iconName: 'group-layers', + iconLabel: '4D Workflow', + label: 'Dynamic Toolbox', + component: wrappedDynamicToolbox, + }, + { + name: 'dynamic-export', + iconName: 'group-layers', + iconLabel: '4D Workflow', + label: '4D Workflow', + component: wrappedDynamicExport, + }, + ]; +} + +export default getPanelModule; diff --git a/extensions/cornerstone-dynamic-volume/src/id.js b/extensions/cornerstone-dynamic-volume/src/id.js new file mode 100644 index 000000000..b2dfe1809 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/id.js @@ -0,0 +1,6 @@ +import packageJson from '../package.json'; + +const id = packageJson.name; +const SOPClassHandlerName = 'dynamic-volume'; + +export { id, SOPClassHandlerName }; diff --git a/extensions/cornerstone-dynamic-volume/src/index.ts b/extensions/cornerstone-dynamic-volume/src/index.ts new file mode 100644 index 000000000..625899efe --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/index.ts @@ -0,0 +1,57 @@ +import { id } from './id'; +import commandsModule from './commandsModule'; +import getPanelModule from './getPanelModule'; +import getHangingProtocolModule from './getHangingProtocolModule'; +import { cache } from '@cornerstonejs/core'; + +/** + * You can remove any of the following modules if you don't need them. + */ +const dynamicVolumeExtension = { + /** + * Only required property. Should be a unique value across all extensions. + * You ID can be anything you want, but it should be unique. + */ + id, + + /** + * Perform any pre-registration tasks here. This is called before the extension + * is registered. Usually we run tasks such as: configuring the libraries + * (e.g. cornerstone, cornerstoneTools, ...) or registering any services that + * this extension is providing. + */ + preRegistration: ({ servicesManager, commandsManager, configuration = {} }) => { + // TODO: look for the right fix + cache.setMaxCacheSize(5 * 1024 * 1024 * 1024); + }, + /** + * PanelModule should provide a list of panels that will be available in OHIF + * for Modes to consume and render. Each panel is defined by a {name, + * iconName, iconLabel, label, component} object. Example of a panel module + * is the StudyBrowserPanel that is provided by the default extension in OHIF. + */ + getPanelModule, + /** + * ViewportModule should provide a list of viewports that will be available in OHIF + * for Modes to consume and use in the viewports. Each viewport is defined by + * {name, component} object. Example of a viewport module is the CornerstoneViewport + * that is provided by the Cornerstone extension in OHIF. + */ + getHangingProtocolModule, + /** + * CommandsModule should provide a list of commands that will be available in OHIF + * for Modes to consume and use in the viewports. Each command is defined by + * an object of { actions, definitions, defaultContext } where actions is an + * object of functions, definitions is an object of available commands, their + * options, and defaultContext is the default context for the command to run against. + */ + getCommandsModule: ({ servicesManager, commandsManager, extensionManager }) => { + return commandsModule({ + servicesManager, + commandsManager, + extensionManager, + }); + }, +}; + +export { dynamicVolumeExtension as default }; diff --git a/extensions/cornerstone-dynamic-volume/src/panels/DynamicDataPanel.tsx b/extensions/cornerstone-dynamic-volume/src/panels/DynamicDataPanel.tsx new file mode 100644 index 000000000..6be93c1d3 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/panels/DynamicDataPanel.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import PanelGenerateImage from './PanelGenerateImage'; + +function DynamicDataPanel({ servicesManager, commandsManager }) { + return ( +
+ +
+ ); +} + +export default DynamicDataPanel; diff --git a/extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx b/extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx new file mode 100644 index 000000000..020278c4b --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx @@ -0,0 +1,76 @@ +import React, { useState, useEffect } from 'react'; +import { ActionButtons } from '@ohif/ui'; +import { useTranslation } from 'react-i18next'; + +function DynamicExport({ commandsManager, servicesManager, extensionManager }) { + const { segmentationService } = servicesManager.services; + const { t } = useTranslation('dynamicExport'); + + const [segmentations, setSegmentations] = useState(() => segmentationService.getSegmentations()); + + const actions = [ + { + label: 'Export Time Data', + onClick: () => { + commandsManager.runCommand('exportTimeReportCSV', { + segmentations, + options: { + filename: 'TimeData.csv', + }, + }); + }, + disabled: !segmentations?.length, + }, + { + label: 'Export ROI Stats', + onClick: () => { + commandsManager.runCommand('exportTimeReportCSV', { + segmentations, + summaryStats: true, + options: { + filename: 'ROIStats.csv', + }, + }); + }, + disabled: !segmentations?.length, + }, + ]; + + /** + * Update UI based on segmentation changes (added, removed, updated) + */ + useEffect(() => { + // ~~ Subscription + const added = segmentationService.EVENTS.SEGMENTATION_ADDED; + const updated = segmentationService.EVENTS.SEGMENTATION_UPDATED; + const removed = segmentationService.EVENTS.SEGMENTATION_REMOVED; + const subscriptions = []; + + [added, updated, removed].forEach(evt => { + const { unsubscribe } = segmentationService.subscribe(evt, () => { + const segmentations = segmentationService.getSegmentations(); + setSegmentations(segmentations); + }); + subscriptions.push(unsubscribe); + }); + + return () => { + subscriptions.forEach(unsub => { + unsub(); + }); + }; + }, []); + + return ( +
+
+ +
+
+ ); +} + +export default DynamicExport; diff --git a/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx b/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx new file mode 100644 index 000000000..337e9e0a3 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx @@ -0,0 +1,220 @@ +import React, { useEffect, useState } from 'react'; +import { + InputDoubleRange, + Button, + PanelSection, + ButtonGroup, + IconButton, + InputNumber, + Icon, + Tooltip, +} from '@ohif/ui'; + +import { Enums } from '@cornerstonejs/core'; + +const controlClassNames = { + sizeClassName: 'w-[58px] h-[28px]', + arrowsDirection: 'horizontal', + labelPosition: 'bottom', +}; + +const Header = ({ title, tooltip }) => ( +
+ {tooltip}
} + position="bottom" + tight={true} + tooltipBoxClassName="max-w-xs" + > + + + {title} +
+); + +const DynamicVolumeControls = ({ + isPlaying, + onPlayPauseChange, + // fps + fps, + onFpsChange, + minFps, + maxFps, + // Frames + currentFrameIndex, + onFrameChange, + framesLength, + onGenerate, + onDoubleRangeChange, + onDynamicClick, +}) => { + const [computedView, setComputedView] = useState(false); + + const [computeViewMode, setComputeViewMode] = useState(Enums.DynamicOperatorType.SUM); + + const [sliderRangeValues, setSliderRangeValues] = useState([framesLength / 4, framesLength / 2]); + + useEffect(() => { + setSliderRangeValues([framesLength / 4, framesLength / 2]); + }, [framesLength]); + + const handleSliderChange = newValues => { + onDoubleRangeChange(newValues); + + if (newValues[0] === sliderRangeValues[0] && newValues[1] === sliderRangeValues[1]) { + return; + } + setSliderRangeValues(newValues); + }; + + return ( +
+ +
+
+ + + + +
+
+ +
+
+
+ + + + + +
+ +
+ +
+
+
+ ); +}; + +export default DynamicVolumeControls; + +function FrameControls({ + isPlaying, + onPlayPauseChange, + fps, + minFps, + maxFps, + onFpsChange, + framesLength, + onFrameChange, + currentFrameIndex, + computedView, +}) { + const getPlayPauseIconName = () => (isPlaying ? 'icon-pause' : 'icon-play'); + + return ( +
+
+
+ onPlayPauseChange(!isPlaying)} + > + + + + +
+
+ ); +} diff --git a/extensions/cornerstone-dynamic-volume/src/panels/GenerateVolume.tsx b/extensions/cornerstone-dynamic-volume/src/panels/GenerateVolume.tsx new file mode 100644 index 000000000..516502a67 --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/src/panels/GenerateVolume.tsx @@ -0,0 +1,71 @@ +import React from 'react'; +import { InputDoubleRange } from '@ohif/ui'; +import { Select } from '@ohif/ui'; +import { Button } from '@ohif/ui'; +import PropTypes from 'prop-types'; + +const GenerateVolume = ({ + rangeValues, + handleSliderChange, + operationsUI, + options, + handleGenerateOptionsChange, + onGenerateImage, + returnTo4D, + displayingComputedVolume, +}) => { + return ( + <> +
+
Computed Image
+ { - event.persist(); - setValue(value => ({ ...value, label: event.target.value })); - }} - onKeyPress={event => { - if (event.key === 'Enter') { - onSubmitHandler({ value, action: { id: 'save' } }); - } - }} - /> - ); - }, - }, - }); - } -} - -export default callInputDialog; diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css deleted file mode 100644 index 1c6bb2067..000000000 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.css +++ /dev/null @@ -1,3 +0,0 @@ -.chrome-picker { - background: #090c29 !important; -} diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx deleted file mode 100644 index 38e85efb2..000000000 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/colorPickerDialog.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import React from 'react'; -import { Dialog } from '@ohif/ui'; -import { ChromePicker } from 'react-color'; - -import './colorPickerDialog.css'; - -function callColorPickerDialog(uiDialogService, rgbaColor, callback) { - const dialogId = 'pick-color'; - - const onSubmitHandler = ({ action, value }) => { - switch (action.id) { - case 'save': - callback(value.rgbaColor, action.id); - break; - case 'cancel': - callback('', action.id); - break; - } - uiDialogService.dismiss({ id: dialogId }); - }; - - if (uiDialogService) { - uiDialogService.create({ - id: dialogId, - centralize: true, - isDraggable: false, - showOverlay: true, - content: Dialog, - contentProps: { - title: 'Segment Color', - value: { rgbaColor }, - noCloseButton: true, - onClose: () => uiDialogService.dismiss({ id: dialogId }), - actions: [ - { id: 'cancel', text: 'Cancel', type: 'primary' }, - { id: 'save', text: 'Save', type: 'secondary' }, - ], - onSubmit: onSubmitHandler, - body: ({ value, setValue }) => { - const handleChange = color => { - setValue({ rgbaColor: color.rgb }); - }; - - return ( - - ); - }, - }, - }); - } -} - -export default callColorPickerDialog; diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/index.ts b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/index.ts index 22404ee98..01ce5d64e 100644 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/index.ts +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/index.ts @@ -1,3 +1,3 @@ -import PanelROIThresholdSegmentation from './PanelROIThresholdSegmentation'; +import PanelROIThresholdExport from './PanelROIThresholdExport'; -export default PanelROIThresholdSegmentation; +export default PanelROIThresholdExport; diff --git a/extensions/tmtv/src/Panels/index.tsx b/extensions/tmtv/src/Panels/index.tsx index 0fa6418fd..255c923f4 100644 --- a/extensions/tmtv/src/Panels/index.tsx +++ b/extensions/tmtv/src/Panels/index.tsx @@ -1,4 +1,4 @@ import PanelPetSUV from './PanelPetSUV'; -import PanelROIThresholdSegmentation from './PanelROIThresholdSegmentation'; +import PanelROIThresholdExport from './PanelROIThresholdSegmentation'; -export { PanelPetSUV, PanelROIThresholdSegmentation }; +export { PanelPetSUV, PanelROIThresholdExport }; diff --git a/extensions/tmtv/src/commandsModule.js b/extensions/tmtv/src/commandsModule.js index 765ab7f5b..0898a01a8 100644 --- a/extensions/tmtv/src/commandsModule.js +++ b/extensions/tmtv/src/commandsModule.js @@ -11,7 +11,10 @@ import createAndDownloadTMTVReport from './utils/createAndDownloadTMTVReport'; import dicomRTAnnotationExport from './utils/dicomRTAnnotationExport/RTStructureSet'; const metadataProvider = classes.MetadataProvider; -const RECTANGLE_ROI_THRESHOLD_MANUAL = 'RectangleROIStartEndThreshold'; +const RECTANGLE_ROI_THRESHOLD_MANUAL_TOOL_IDS = [ + 'RectangleROIStartEndThreshold', + 'RectangleROIThreshold', +]; const LABELMAP = csTools.Enums.SegmentationRepresentations.Labelmap; const commandsModule = ({ servicesManager, commandsManager, extensionManager }) => { @@ -52,6 +55,15 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) return toolGroupIds; } + function _getAnnotationsSelectedByToolNames(toolNames) { + return toolNames.reduce((allAnnotationUIDs, toolName) => { + const annotationUIDs = + csTools.annotation.selection.getAnnotationsSelectedByToolName(toolName); + + return allAnnotationUIDs.concat(annotationUIDs); + }, []); + } + const actions = { getMatchingPTDisplaySet: ({ viewportMatchDetails }) => { // Todo: this is assuming that the hanging protocol has successfully matched @@ -108,7 +120,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) return metadata; }, - createNewLabelmapFromPT: async () => { + createNewLabelmapFromPT: async ({ label }) => { // Create a segmentation of the same resolution as the source data // using volumeLoader.createAndCacheDerivedVolume. const { viewportMatchDetails } = hangingProtocolService.getMatchDetails(); @@ -173,20 +185,8 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) const { volumeId: segVolumeId } = representationData[LABELMAP]; const { referencedVolumeId } = cs.cache.getVolume(segVolumeId); - const labelmapVolume = cs.cache.getVolume(segmentationId); - const referencedVolume = cs.cache.getVolume(referencedVolumeId); - const ctReferencedVolume = cs.cache.getVolume(ctVolumeId); - - if (!referencedVolume) { - throw new Error('No Reference volume found'); - } - - if (!labelmapVolume) { - throw new Error('No Reference labelmap found'); - } - - const annotationUIDs = csTools.annotation.selection.getAnnotationsSelectedByToolName( - RECTANGLE_ROI_THRESHOLD_MANUAL + const annotationUIDs = _getAnnotationsSelectedByToolNames( + RECTANGLE_ROI_THRESHOLD_MANUAL_TOOL_IDS ); if (annotationUIDs.length === 0) { @@ -198,6 +198,57 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) return; } + const labelmapVolume = cs.cache.getVolume(segmentationId); + let referencedVolume = cs.cache.getVolume(referencedVolumeId); + const ctReferencedVolume = cs.cache.getVolume(ctVolumeId); + + // check if viewport is + + if (!referencedVolume) { + throw new Error('No Reference volume found'); + } + + if (!labelmapVolume) { + throw new Error('No Reference labelmap found'); + } + + const annotation = csTools.annotation.state.getAnnotation(annotationUIDs[0]); + + const { + metadata: { + enabledElement: { viewport }, + }, + } = annotation; + + const showingReferenceVolume = viewport.hasVolumeId(referencedVolumeId); + + if (!showingReferenceVolume) { + // if the reference volume is not being displayed, we can't + // rely on it for thresholding, we have couple of options here + // 1. We choose whatever volume is being displayed + // 2. We check if it is a fusion viewport, we pick the volume + // that matches the size and dimensions of the labelmap. This might + // happen if the 4D PT is converted to a computed volume and displayed + // and wants to threshold the labelmap + // 3. We throw an error + const displaySetInstanceUIDs = viewportGridService.getDisplaySetsUIDsForViewport( + viewport.id + ); + + displaySetInstanceUIDs.forEach(displaySetInstanceUID => { + const volume = cs.cache + .getVolumes() + .find(volume => volume.volumeId.includes(displaySetInstanceUID)); + + if ( + cs.utilities.isEqual(volume.dimensions, labelmapVolume.dimensions) && + cs.utilities.isEqual(volume.spacing, labelmapVolume.spacing) + ) { + referencedVolume = volume; + } + }); + } + const { ptLower, ptUpper, ctLower, ctUpper } = getThresholdValues( annotationUIDs, [referencedVolume, ctReferencedVolume], @@ -218,8 +269,8 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) const { referencedVolumeId } = labelmap; const referencedVolume = cs.cache.getVolume(referencedVolumeId); - const annotationUIDs = csTools.annotation.selection.getAnnotationsSelectedByToolName( - RECTANGLE_ROI_THRESHOLD_MANUAL + const annotationUIDs = _getAnnotationsSelectedByToolNames( + RECTANGLE_ROI_THRESHOLD_MANUAL_TOOL_IDS ); const annotations = annotationUIDs.map(annotationUID => @@ -236,8 +287,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) }, getLesionStats: ({ labelmap, segmentIndex = 1 }) => { const { scalarData, spacing } = labelmap; - - const { scalarData: referencedScalarData } = cs.cache.getVolume(labelmap.referencedVolumeId); + const referencedScalarData = cs.cache.getVolume(labelmap.referencedVolumeId).getScalarData(); let segmentationMax = -Infinity; let segmentationMin = Infinity; @@ -287,19 +337,25 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) return calculateTMTV(labelmaps); }, - exportTMTVReportCSV: ({ segmentations, tmtv, config }) => { + exportTMTVReportCSV: ({ segmentations, tmtv, config, options }) => { const segReport = commandsManager.runCommand('getSegmentationCSVReport', { segmentations, }); const tlg = actions.getTotalLesionGlycolysis({ segmentations }); const additionalReportRows = [ - { key: 'Total Metabolic Tumor Volume', value: { tmtv } }, { key: 'Total Lesion Glycolysis', value: { tlg: tlg.toFixed(4) } }, { key: 'Threshold Configuration', value: { ...config } }, ]; - createAndDownloadTMTVReport(segReport, additionalReportRows); + if (tmtv !== undefined) { + additionalReportRows.unshift({ + key: 'Total Metabolic Tumor Volume', + value: { tmtv }, + }); + } + + createAndDownloadTMTVReport(segReport, additionalReportRows, options); }, getTotalLesionGlycolysis: ({ segmentations }) => { const labelmapVolumes = segmentations.map(s => segmentationService.getLabelmapVolume(s.id)); @@ -323,9 +379,9 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) } const ptVolume = cs.cache.getVolume(referencedVolumeId); - const mergedLabelData = mergedLabelmap.scalarData; + const mergedLabelData = mergedLabelmap.getScalarData(); - if (mergedLabelData.length !== ptVolume.scalarData.length) { + if (mergedLabelData.length !== ptVolume.getScalarData().length) { console.error( 'commandsModule::getTotalLesionGlycolysis:Labelmap and ptVolume are not the same size' ); @@ -336,7 +392,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) for (let i = 0; i < mergedLabelData.length; i++) { // if not background if (mergedLabelData[i] !== 0) { - suv += ptVolume.scalarData[i]; + suv += ptVolume.getScalarData()[i]; totalLesionVoxelCount += 1; } } @@ -351,8 +407,8 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) const { viewport } = _getActiveViewportsEnabledElement(); const { focalPoint, viewPlaneNormal } = viewport.getCamera(); - const selectedAnnotationUIDs = csTools.annotation.selection.getAnnotationsSelectedByToolName( - RECTANGLE_ROI_THRESHOLD_MANUAL + const selectedAnnotationUIDs = _getAnnotationsSelectedByToolNames( + RECTANGLE_ROI_THRESHOLD_MANUAL_TOOL_IDS ); const annotationUID = selectedAnnotationUIDs[0]; @@ -389,8 +445,8 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) setEndSliceForROIThresholdTool: () => { const { viewport } = _getActiveViewportsEnabledElement(); - const selectedAnnotationUIDs = csTools.annotation.selection.getAnnotationsSelectedByToolName( - RECTANGLE_ROI_THRESHOLD_MANUAL + const selectedAnnotationUIDs = _getAnnotationsSelectedByToolNames( + RECTANGLE_ROI_THRESHOLD_MANUAL_TOOL_IDS ); const annotationUID = selectedAnnotationUIDs[0]; @@ -415,7 +471,11 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) Object.keys(stateManager.annotations).forEach(frameOfReferenceUID => { const forAnnotations = stateManager.annotations[frameOfReferenceUID]; - const ROIAnnotations = forAnnotations[RECTANGLE_ROI_THRESHOLD_MANUAL]; + const ROIAnnotations = RECTANGLE_ROI_THRESHOLD_MANUAL_TOOL_IDS.reduce( + (annotations, toolName) => [...annotations, ...(forAnnotations[toolName] ?? [])], + [] + ); + annotations.push(...ROIAnnotations); }); @@ -483,7 +543,7 @@ const commandsModule = ({ servicesManager, commandsManager, extensionManager }) report[id] = { ...segReport, - PatientID: instance.PatientID, + PatientID: instance.PatientID ?? '000000', PatientName: instance.PatientName.Alphabetic, StudyInstanceUID: instance.StudyInstanceUID, SeriesInstanceUID: instance.SeriesInstanceUID, diff --git a/extensions/tmtv/src/getPanelModule.tsx b/extensions/tmtv/src/getPanelModule.tsx index 39a955df3..239233978 100644 --- a/extensions/tmtv/src/getPanelModule.tsx +++ b/extensions/tmtv/src/getPanelModule.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { PanelPetSUV, PanelROIThresholdSegmentation } from './Panels'; +import { PanelPetSUV, PanelROIThresholdExport } from './Panels'; import { Toolbox } from '@ohif/ui'; // TODO: @@ -17,20 +17,26 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }) ); }; - const wrappedROIThresholdSeg = () => { + const wrappedROIThresholdToolbox = () => { return ( <> - + ); + }; + + const wrappedROIThresholdExport = () => { + return ( + <> + ); @@ -45,11 +51,18 @@ function getPanelModule({ commandsManager, extensionManager, servicesManager }) component: wrappedPanelPetSuv, }, { - name: 'ROIThresholdSeg', + name: 'tmtvBox', iconName: 'tab-segmentation', iconLabel: 'Segmentation', - label: 'Segmentation', - component: wrappedROIThresholdSeg, + label: 'Segmentation Toolbox', + component: wrappedROIThresholdToolbox, + }, + { + name: 'tmtvExport', + iconName: 'tab-segmentation', + iconLabel: 'Segmentation', + label: 'Segmentation Export', + component: wrappedROIThresholdExport, }, ]; } diff --git a/extensions/tmtv/src/utils/calculateSUVPeak.ts b/extensions/tmtv/src/utils/calculateSUVPeak.ts index 302300f5b..6627d2e2b 100644 --- a/extensions/tmtv/src/utils/calculateSUVPeak.ts +++ b/extensions/tmtv/src/utils/calculateSUVPeak.ts @@ -40,17 +40,19 @@ function calculateSuvPeak( return; } - if (labelmap.scalarData.length !== referenceVolume.scalarData.length) { + const labelmapData = labelmap.getScalarData(); + const referenceVolumeData = referenceVolume.getScalarData(); + + if (labelmapData.length !== referenceVolumeData.length) { throw new Error('labelmap and referenceVolume must have the same number of pixels'); } - const { scalarData: labelmapData, dimensions, imageData: labelmapImageData } = labelmap; - - const { scalarData: referenceVolumeData, imageData: referenceVolumeImageData } = referenceVolume; + const { dimensions, imageData: labelmapImageData } = labelmap; + const { imageData: referenceVolumeImageData } = referenceVolume; let boundsIJK; // Todo: using the first annotation for now - if (annotations && annotations[0].data?.cachedStats) { + if (annotations?.length && annotations[0].data?.cachedStats) { const { projectionPoints } = annotations[0].data.cachedStats; const pointsToUse = [].concat(...projectionPoints); // cannot use flat() because of typescript compiler right now diff --git a/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js b/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js index b36787293..615d384fe 100644 --- a/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js +++ b/extensions/tmtv/src/utils/createAndDownloadTMTVReport.js @@ -1,4 +1,4 @@ -export default function createAndDownloadTMTVReport(segReport, additionalReportRows) { +export default function createAndDownloadTMTVReport(segReport, additionalReportRows, options = {}) { const firstReport = segReport[Object.keys(segReport)[0]]; const columns = Object.keys(firstReport); const csv = [columns.join(',')]; @@ -40,6 +40,6 @@ export default function createAndDownloadTMTVReport(segReport, additionalReportR const a = document.createElement('a'); a.href = url; - a.download = `${firstReport.PatientID}_tmtv.csv`; + a.download = options.filename ?? `${firstReport.PatientID}_tmtv.csv`; a.click(); } diff --git a/modes/basic-test-mode/src/index.ts b/modes/basic-test-mode/src/index.ts index 155fc7013..52dc5ebc1 100644 --- a/modes/basic-test-mode/src/index.ts +++ b/modes/basic-test-mode/src/index.ts @@ -136,7 +136,7 @@ function modeFactory() { props: { leftPanels: [tracked.thumbnailList], rightPanels: [dicomSeg.panel, tracked.measurements], - // rightPanelDefaultClosed: true, // optional prop to start with collapse panels + // rightPanelClosed: true, // optional prop to start with collapse panels viewports: [ { namespace: tracked.viewport, diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts index 1369bc629..5f49e08ad 100644 --- a/modes/basic-test-mode/src/moreTools.ts +++ b/modes/basic-test-mode/src/moreTools.ts @@ -11,6 +11,13 @@ const ReferenceLinesListeners: RunCommand = [ }, ]; +export const toggleEnabledDisabledToolbar = { + commandName: 'toggleEnabledDisabledToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup', 'volume3d'], + }, +}; + const moreTools = [ { id: 'MoreTools', @@ -80,13 +87,7 @@ const moreTools = [ icon: 'tool-referenceLines', label: 'Reference Lines', tooltip: 'Show Reference Lines', - commands: { - commandName: 'setToolEnabled', - commandOptions: { - toolName: 'ReferenceLines', - toggle: true, - }, - }, + commands: toggleEnabledDisabledToolbar, listeners: { [ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners, [ViewportGridService.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners, @@ -94,17 +95,11 @@ const moreTools = [ evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ - id: 'ImageOverlay', + id: 'ImageOverlayViewer', icon: 'toggle-dicom-overlay', label: 'Image Overlay', tooltip: 'Toggle Image Overlay', - commands: { - commandName: 'setToolEnabled', - commandOptions: { - toolName: 'ImageOverlayViewer', - toggle: true, - }, - }, + commands: toggleEnabledDisabledToolbar, evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 6925384fb..bfa6792ca 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -108,8 +108,8 @@ function modeFactory({ modeConfiguration }) { customizationService.addModeCustomizations([ { - id: 'segmentation.disableEditing', - value: true, + id: 'segmentation.panel', + disableEditing: true, }, ]); @@ -183,7 +183,7 @@ function modeFactory({ modeConfiguration }) { props: { leftPanels: [tracked.thumbnailList], rightPanels: [dicomSeg.panel, tracked.measurements], - rightPanelDefaultClosed: true, + rightPanelClosed: true, viewports: [ { namespace: tracked.viewport, diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js index d1dfe3324..f5bae8d86 100644 --- a/modes/longitudinal/src/initToolGroups.js +++ b/modes/longitudinal/src/initToolGroups.js @@ -64,7 +64,12 @@ function initDefaultToolGroup( { toolName: toolNames.Magnify }, { toolName: toolNames.SegmentationDisplay }, { toolName: toolNames.CalibrationLine }, - { toolName: toolNames.AdvancedMagnify }, + { + toolName: toolNames.AdvancedMagnify, + configuration: { + disableOnPassive: true, + }, + }, { toolName: toolNames.UltrasoundDirectional }, { toolName: toolNames.PlanarFreehandROI }, { toolName: toolNames.SplineROI }, diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts index f9b1189c6..267114f73 100644 --- a/modes/longitudinal/src/moreTools.ts +++ b/modes/longitudinal/src/moreTools.ts @@ -11,6 +11,20 @@ const ReferenceLinesListeners: RunCommand = [ }, ]; +export const toggleEnabledDisabledToolbar = { + commandName: 'toggleEnabledDisabledToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup', 'volume3d'], + }, +}; + +export const toggleActiveDisabledToolbar = { + commandName: 'toggleActiveDisabledToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup'], + }, +}; + const moreTools = [ { id: 'MoreTools', @@ -80,13 +94,7 @@ const moreTools = [ icon: 'tool-referenceLines', label: 'Reference Lines', tooltip: 'Show Reference Lines', - commands: { - commandName: 'setToolEnabled', - commandOptions: { - toolName: 'ReferenceLines', - toggle: true, // Toggle the tool on/off upon click - }, - }, + commands: toggleEnabledDisabledToolbar, listeners: { [ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners, [ViewportGridService.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners, @@ -94,17 +102,11 @@ const moreTools = [ evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ - id: 'ImageOverlay', + id: 'ImageOverlayViewer', icon: 'toggle-dicom-overlay', label: 'Image Overlay', tooltip: 'Toggle Image Overlay', - commands: { - commandName: 'setToolEnabled', - commandOptions: { - toolName: 'ImageOverlayViewer', - toggle: true, // Toggle the tool on/off upon click - }, - }, + commands: toggleEnabledDisabledToolbar, evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ @@ -175,8 +177,8 @@ const moreTools = [ icon: 'icon-tool-loupe', label: 'Loupe', tooltip: 'Loupe', - commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', + commands: toggleActiveDisabledToolbar, + evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ id: 'UltrasoundDirectionalTool', diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index 7abe57f2c..dc5700fe6 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -1,10 +1,8 @@ // TODO: torn, can either bake this here; or have to create a whole new button type // Only ways that you can pass in a custom React component for render :l -import { WindowLevelMenuItem } from '@ohif/ui'; import { defaults, ToolbarService } from '@ohif/core'; import type { Button } from '@ohif/core/types'; -const { windowLevelPresets } = defaults; const { createButton } = ToolbarService; export const setToolActiveToolbar = { diff --git a/modes/microscopy/src/index.tsx b/modes/microscopy/src/index.tsx index e7d30d396..5c0bdba80 100644 --- a/modes/microscopy/src/index.tsx +++ b/modes/microscopy/src/index.tsx @@ -87,8 +87,8 @@ function modeFactory({ modeConfiguration }) { id: ohif.layout, props: { leftPanels: [ohif.leftPanel], - leftPanelDefaultClosed: true, // we have problem with rendering thumbnails for microscopy images - rightPanelDefaultClosed: true, // we do not have the save microscopy measurements yet + leftPanelClosed: true, // we have problem with rendering thumbnails for microscopy images + rightPanelClosed: true, // we do not have the save microscopy measurements yet rightPanels: ['@ohif/extension-dicom-microscopy.panelModule.measure'], viewports: [ { diff --git a/modes/preclinical-4d/.webpack/webpack.dev.js b/modes/preclinical-4d/.webpack/webpack.dev.js new file mode 100644 index 000000000..6aea859ca --- /dev/null +++ b/modes/preclinical-4d/.webpack/webpack.dev.js @@ -0,0 +1,12 @@ +const path = require('path'); +const webpackCommon = require('./../../../.webpack/webpack.base.js'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +const ENTRY = { + app: `${SRC_DIR}/index.tsx`, +}; + +module.exports = (env, argv) => { + return webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY }); +}; diff --git a/modes/preclinical-4d/.webpack/webpack.prod.js b/modes/preclinical-4d/.webpack/webpack.prod.js new file mode 100644 index 000000000..f8b0a79f8 --- /dev/null +++ b/modes/preclinical-4d/.webpack/webpack.prod.js @@ -0,0 +1,53 @@ +const webpack = require('webpack'); +const { merge } = require('webpack-merge'); +const path = require('path'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); + +const pkg = require('./../package.json'); +const webpackCommon = require('./../../../.webpack/webpack.base.js'); + +const ROOT_DIR = path.join(__dirname, './../'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); +const ENTRY = { + app: `${SRC_DIR}/index.tsx`, +}; + +module.exports = (env, argv) => { + const commonConfig = webpackCommon(env, argv, { SRC_DIR, DIST_DIR, ENTRY }); + + return merge(commonConfig, { + stats: { + colors: true, + hash: true, + timings: true, + assets: true, + chunks: false, + chunkModules: false, + modules: false, + children: false, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: false, + }, + output: { + path: ROOT_DIR, + library: 'ohif-mode-preclinical-4d', + libraryTarget: 'umd', + libraryExport: 'default', + filename: pkg.main, + }, + externals: [/\b(vtk.js)/, /\b(dcmjs)/, /\b(gl-matrix)/, /^@ohif/, /^@cornerstonejs/], + plugins: [ + new webpack.optimize.LimitChunkCountPlugin({ + maxChunks: 1, + }), + // new MiniCssExtractPlugin({ + // filename: './dist/[name].css', + // chunkFilename: './dist/[id].css', + // }), + ], + }); +}; diff --git a/modes/preclinical-4d/LICENSE b/modes/preclinical-4d/LICENSE new file mode 100644 index 000000000..5f35ab7d8 --- /dev/null +++ b/modes/preclinical-4d/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2023 4d () + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/modes/preclinical-4d/README.md b/modes/preclinical-4d/README.md new file mode 100644 index 000000000..0f6870d2f --- /dev/null +++ b/modes/preclinical-4d/README.md @@ -0,0 +1,7 @@ +# 4d +## Description + +## Author +OHIF +## License +MIT \ No newline at end of file diff --git a/modes/preclinical-4d/babel.config.js b/modes/preclinical-4d/babel.config.js new file mode 100644 index 000000000..a38ddda21 --- /dev/null +++ b/modes/preclinical-4d/babel.config.js @@ -0,0 +1,44 @@ +module.exports = { + plugins: ['inline-react-svg', '@babel/plugin-proposal-class-properties'], + env: { + test: { + presets: [ + [ + // TODO: https://babeljs.io/blog/2019/03/19/7.4.0#migration-from-core-js-2 + '@babel/preset-env', + { + modules: 'commonjs', + debug: false, + }, + '@babel/preset-typescript', + ], + '@babel/preset-react', + ], + plugins: [ + '@babel/plugin-proposal-object-rest-spread', + '@babel/plugin-syntax-dynamic-import', + '@babel/plugin-transform-regenerator', + '@babel/plugin-transform-runtime', + ], + }, + production: { + presets: [ + // WebPack handles ES6 --> Target Syntax + ['@babel/preset-env', { modules: false }], + '@babel/preset-react', + '@babel/preset-typescript', + ], + ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'], + }, + development: { + presets: [ + // WebPack handles ES6 --> Target Syntax + ['@babel/preset-env', { modules: false }], + '@babel/preset-react', + '@babel/preset-typescript', + ], + plugins: ['react-hot-loader/babel'], + ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'], + }, + }, +}; diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json new file mode 100644 index 000000000..37f66ca9e --- /dev/null +++ b/modes/preclinical-4d/package.json @@ -0,0 +1,47 @@ +{ + "name": "@ohif/mode-preclinical-4d", + "version": "3.7.0-beta.76", + "description": "4D Workflow", + "author": "OHIF", + "license": "MIT", + "repository": "OHIF/Viewers", + "main": "dist/index.umd.js", + "module": "src/index.tsx", + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1.16.0" + }, + "files": [ + "dist/**", + "public/**", + "README.md" + ], + "keywords": [ + "ohif-mode" + ], + "scripts": { + "dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --debug --output-pathinfo", + "dev:cornerstone": "yarn run dev", + "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", + "build:package": "yarn run build", + "start": "yarn run dev", + "test:unit": "jest --watchAll", + "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" + }, + "peerDependencies": { + "@ohif/core": "3.7.0-beta.76", + "@ohif/extension-default": "3.7.0-beta.76", + "@ohif/extension-cornerstone": "3.7.0-beta.76", + "@ohif/extension-cornerstone-dynamic-volume": "3.7.0-beta.76", + "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.76", + "@ohif/extension-tmtv": "3.7.0-beta.76" + }, + "dependencies": { + "@babel/runtime": "^7.20.13" + }, + "devDependencies": { + "webpack": "^5.50.0", + "webpack-merge": "^5.7.3" + } +} diff --git a/modes/preclinical-4d/src/getWorkflowSettings.ts b/modes/preclinical-4d/src/getWorkflowSettings.ts new file mode 100644 index 000000000..efaab9b1f --- /dev/null +++ b/modes/preclinical-4d/src/getWorkflowSettings.ts @@ -0,0 +1,104 @@ +const dynamicVolume = { + sopClassHandler: + '@ohif/extension-cornerstone-dynamic-volume.sopClassHandlerModule.dynamic-volume', + leftPanel: '@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-volume', + toolBox: '@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-toolbox', + export: '@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-export', +}; + +const cornerstone = { + segmentation: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation', + activeViewportWindowLevel: '@ohif/extension-cornerstone.panelModule.activeViewportWindowLevel', +}; + +const defaultButtons = { + buttonSection: 'primary', + buttons: ['MeasurementTools', 'Zoom', 'WindowLevel', 'Crosshairs', 'Pan'], +}; + +const defaultLeftPanel = [[dynamicVolume.leftPanel, cornerstone.activeViewportWindowLevel]]; + +const defaultLayout = { + panels: { + left: defaultLeftPanel, + right: [], + }, +}; + +function getWorkflowSettings({ servicesManager }) { + return { + steps: [ + { + id: 'dataPreparation', + name: 'Data Preparation', + layout: { + panels: { + left: defaultLeftPanel, + }, + }, + toolbarButtons: defaultButtons, + hangingProtocol: { + protocolId: 'default4D', + stageId: 'dataPreparation', + }, + info: 'In the Data Preparation step, you can visualize the dynamic PT volume data in three orthogonal views: axial, sagittal, and coronal. Use the left panel controls to adjust the visualization settings, such as playback speed, or navigate between different frames. This step allows you to assess the quality of the PT data and prepare for further analysis or registration with other modalities.', + }, + { + id: 'registration', + name: 'Registration', + layout: defaultLayout, + toolbarButtons: defaultButtons, + hangingProtocol: { + protocolId: 'default4D', + stageId: 'registration', + }, + info: 'The Registration step provides a comprehensive view of the CT, PT, and fused CT-PT volume data in multiple orientations. The fusion viewports display the CT and PT volumes overlaid, allowing you to visually assess the alignment and registration between the two modalities. The individual CT and PT viewports are also available for side-by-side comparison. This step is crucial for ensuring proper registration before proceeding with further analysis or quantification.', + }, + { + id: 'roiQuantification', + name: 'ROI Quantification', + layout: { + panels: { + left: defaultLeftPanel, + right: [[dynamicVolume.toolBox, cornerstone.segmentation, dynamicVolume.export]], + }, + options: { + leftPanelClosed: false, + rightPanelClosed: false, + }, + }, + toolbarButtons: [ + defaultButtons, + { + buttonSection: 'dynamic-toolbox', + buttons: ['BrushTools', 'RectangleROIStartEndThreshold'], + }, + ], + hangingProtocol: { + protocolId: 'default4D', + stageId: 'roiQuantification', + }, + info: 'The ROI quantification step allows you to define regions of interest (ROIs) with labelmap segmentations, on the fused CT-PT volume data using the labelmap tools. The left panel provides controls for adjusting the dynamic volume visualization, while the right panel offers tools for segmentation, editing, and exporting the ROI data. This step enables you to quantify the uptake or other measures within the defined ROIs for further analysis.', + }, + { + id: 'kineticAnalysis', + name: 'Kinetic Analysis', + layout: defaultLayout, + toolbarButtons: defaultButtons, + hangingProtocol: { + protocolId: 'default4D', + stageId: 'kineticAnalysis', + }, + onEnter: [ + { + commandName: 'updateSegmentationsChartDisplaySet', + options: { servicesManager }, + }, + ], + info: 'The Kinetic Analysis step provides a comprehensive view for visualizing and analyzing the dynamic data derived from the ROI segmentations. The fusion viewports display the combined CT-PT volume data, while a dedicated viewport shows a series chart representing the data over time. This step allows you to explore the temporal dynamics of the uptake or other kinetic measures within the defined regions of interest, enabling further quantitative analysis and modeling.', + }, + ], + }; +} + +export { getWorkflowSettings as default }; diff --git a/modes/preclinical-4d/src/id.js b/modes/preclinical-4d/src/id.js new file mode 100644 index 000000000..ebe5acd98 --- /dev/null +++ b/modes/preclinical-4d/src/id.js @@ -0,0 +1,5 @@ +import packageJson from '../package.json'; + +const id = packageJson.name; + +export { id }; diff --git a/modes/preclinical-4d/src/index.tsx b/modes/preclinical-4d/src/index.tsx new file mode 100644 index 000000000..c74fb985c --- /dev/null +++ b/modes/preclinical-4d/src/index.tsx @@ -0,0 +1,176 @@ +import { id } from './id'; +import { hotkeys } from '@ohif/core'; +import initWorkflowSteps from './initWorkflowSteps'; +import initToolGroups from './initToolGroups'; +import toolbarButtons from './toolbarButtons'; +import segmentationButtons from './segmentationButtons'; + +const extensionDependencies = { + '@ohif/extension-default': '3.7.0-beta.76', + '@ohif/extension-cornerstone': '3.7.0-beta.76', + '@ohif/extension-cornerstone-dynamic-volume': '3.7.0-beta.76', + '@ohif/extension-cornerstone-dicom-seg': '3.7.0-beta.76', + '@ohif/extension-tmtv': '3.7.0-beta.76', +}; + +const ohif = { + layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout', + defaultSopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack', + chartSopClassHandler: '@ohif/extension-default.sopClassHandlerModule.chart', + hangingProtocol: '@ohif/extension-default.hangingProtocolModule.default', + leftPanel: '@ohif/extension-default.panelModule.seriesList', + rightPanel: '@ohif/extension-default.panelModule.measure', + chartViewport: '@ohif/extension-default.viewportModule.chartViewport', +}; + +const dynamicVolume = { + leftPanel: '@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-volume', +}; + +const cornerstone = { + viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone', + activeViewportWindowLevel: '@ohif/extension-cornerstone.panelModule.activeViewportWindowLevel', +}; + +function modeFactory({ modeConfiguration }) { + return { + id, + routeName: 'dynamic-volume', + displayName: '4D PT/CT', + onModeEnter: function ({ servicesManager, extensionManager, commandsManager }) { + const { + measurementService, + toolbarService, + cineService, + cornerstoneViewportService, + toolGroupService, + customizationService, + viewportGridService, + } = servicesManager.services; + + const utilityModule = extensionManager.getModuleEntry( + '@ohif/extension-cornerstone.utilityModule.tools' + ); + + const { toolNames, Enums } = utilityModule.exports; + + measurementService.clearMeasurements(); + initToolGroups({ toolNames, Enums, toolGroupService, commandsManager }); + + toolbarService.addButtons([...toolbarButtons, ...segmentationButtons]); + toolbarService.createButtonSection('secondary', ['ProgressDropdown']); + + // the primary button section is created in the workflow steps + // specific to the step + customizationService.addModeCustomizations([ + { + id: 'segmentation.panel', + segmentationPanelMode: 'expanded', + addSegment: false, + onSegmentationAdd: () => { + commandsManager.run('createNewLabelmapFromPT'); + }, + }, + ]); + + // Auto play the clip initially when the volumes are loaded + const { unsubscribe } = cornerstoneViewportService.subscribe( + cornerstoneViewportService.EVENTS.VIEWPORT_VOLUMES_CHANGED, + () => { + const viewportId = viewportGridService.getActiveViewportId(); + const csViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId); + cineService.playClip(csViewport.element); + // cineService.setIsCineEnabled(true); + + unsubscribe(); + } + ); + }, + onSetupRouteComplete: ({ servicesManager }) => { + // This needs to run after hanging protocol matching process because + // it may change the protocol/stage based on workflow stage settings + initWorkflowSteps({ servicesManager }); + }, + onModeExit: ({ servicesManager }) => { + const { + toolGroupService, + syncGroupService, + segmentationService, + cornerstoneViewportService, + } = servicesManager.services; + + toolGroupService.destroy(); + syncGroupService.destroy(); + segmentationService.destroy(); + cornerstoneViewportService.destroy(); + }, + get validationTags() { + return { + study: [], + series: [], + }; + }, + isValidMode: ({ modalities, study }) => { + // Todo: we need to find a better way to validate the mode + return { + valid: study.mrn === 'M1', + description: 'This mode is only available for 4D PET/CT studies.', + }; + }, + + /** + * Mode Routes are used to define the mode's behavior. A list of Mode Route + * that includes the mode's path and the layout to be used. The layout will + * include the components that are used in the layout. For instance, if the + * default layoutTemplate is used (id: '@ohif/extension-default.layoutTemplateModule.viewerLayout') + * it will include the leftPanels, rightPanels, and viewports. However, if + * you define another layoutTemplate that includes a Footer for instance, + * you should provide the Footer component here too. Note: We use Strings + * to reference the component's ID as they are registered in the internal + * ExtensionManager. The template for the string is: + * `${extensionId}.{moduleType}.${componentId}`. + */ + routes: [ + { + path: 'preclinical-4d', + layoutTemplate: ({ location, servicesManager }) => { + return { + id: ohif.layout, + props: { + leftPanels: [[dynamicVolume.leftPanel, cornerstone.activeViewportWindowLevel]], + rightPanels: [], + rightPanelClosed: true, + viewports: [ + { + namespace: cornerstone.viewport, + displaySetsToDisplay: [ohif.defaultSopClassHandler], + }, + { + namespace: ohif.chartViewport, + displaySetsToDisplay: [ohif.chartSopClassHandler], + }, + ], + }, + }; + }, + }, + ], + extensions: extensionDependencies, + // Default protocol gets self-registered by default in the init + hangingProtocol: 'default4D', + // Order is important in sop class handlers when two handlers both use + // the same sop class under different situations. In that case, the more + // general handler needs to come last. For this case, the dicomvideo must + // come first to remove video transfer syntax before ohif uses images + sopClassHandlers: [ohif.chartSopClassHandler, ohif.defaultSopClassHandler], + hotkeys: [...hotkeys.defaults.hotkeyBindings], + }; +} + +const mode = { + id, + modeFactory, + extensionDependencies, +}; + +export default mode; diff --git a/modes/preclinical-4d/src/initToolGroups.tsx b/modes/preclinical-4d/src/initToolGroups.tsx new file mode 100644 index 000000000..9a6457618 --- /dev/null +++ b/modes/preclinical-4d/src/initToolGroups.tsx @@ -0,0 +1,130 @@ +const toolGroupIds = { + default: 'dynamic4D-default', + PT: 'dynamic4D-pt', + Fusion: 'dynamic4D-fusion', + CT: 'dynamic4D-ct', +}; + +function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) { + const tools = { + active: [ + { + toolName: toolNames.WindowLevel, + bindings: [{ mouseButton: Enums.MouseBindings.Primary }], + }, + { + toolName: toolNames.Pan, + bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }], + }, + { + toolName: toolNames.Zoom, + bindings: [{ mouseButton: Enums.MouseBindings.Secondary }], + }, + { toolName: toolNames.StackScrollMouseWheel, bindings: [] }, + ], + passive: [ + { toolName: toolNames.Length }, + { toolName: toolNames.ArrowAnnotate }, + { toolName: toolNames.Bidirectional }, + { toolName: toolNames.Probe }, + { toolName: toolNames.EllipticalROI }, + { toolName: toolNames.RectangleROI }, + { toolName: toolNames.RectangleROIThreshold }, + { toolName: toolNames.RectangleScissors }, + { toolName: toolNames.PaintFill }, + { toolName: toolNames.StackScroll }, + { toolName: toolNames.Magnify }, + { + toolName: 'CircularBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'FILL_INSIDE_CIRCLE', + brushSize: 7, + }, + }, + { + toolName: 'CircularEraser', + parentTool: 'Brush', + configuration: { + activeStrategy: 'ERASE_INSIDE_CIRCLE', + brushSize: 7, + }, + }, + { + toolName: 'SphereBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'FILL_INSIDE_SPHERE', + brushSize: 7, + }, + }, + { + toolName: 'SphereEraser', + parentTool: 'Brush', + configuration: { + activeStrategy: 'ERASE_INSIDE_SPHERE', + brushSize: 7, + }, + }, + { + toolName: 'ThresholdCircularBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'THRESHOLD_INSIDE_CIRCLE', + brushSize: 7, + }, + }, + { + toolName: 'ThresholdSphereBrush', + parentTool: 'Brush', + configuration: { + activeStrategy: 'THRESHOLD_INSIDE_SPHERE', + brushSize: 7, + }, + }, + { toolName: toolNames.CircleScissors }, + { toolName: toolNames.RectangleScissors }, + { toolName: toolNames.SphereScissors }, + { toolName: toolNames.StackScroll }, + { toolName: toolNames.Magnify }, + { toolName: toolNames.SegmentationDisplay }, + ], + enabled: [{ toolName: toolNames.SegmentationDisplay }], + disabled: [ + { + toolName: toolNames.Crosshairs, + configuration: { + viewportIndicators: false, + disableOnPassive: true, + autoPan: { + enabled: false, + panSize: 10, + }, + }, + }, + ], + }; + + toolGroupService.createToolGroupAndAddTools(toolGroupIds.PT, { + ...tools, + passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }], + }); + + toolGroupService.createToolGroupAndAddTools(toolGroupIds.CT, { + ...tools, + passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }], + }); + + toolGroupService.createToolGroupAndAddTools(toolGroupIds.Fusion, { + ...tools, + passive: [...tools.passive, { toolName: 'RectangleROIStartEndThreshold' }], + }); + + toolGroupService.createToolGroupAndAddTools(toolGroupIds.default, tools); +} + +function initToolGroups({ toolNames, Enums, toolGroupService, commandsManager }) { + _initToolGroups(toolNames, Enums, toolGroupService, commandsManager); +} + +export { initToolGroups as default, toolGroupIds }; diff --git a/modes/preclinical-4d/src/initWorkflowSteps.ts b/modes/preclinical-4d/src/initWorkflowSteps.ts new file mode 100644 index 000000000..8b36fe48d --- /dev/null +++ b/modes/preclinical-4d/src/initWorkflowSteps.ts @@ -0,0 +1,9 @@ +import getWorkflowSettings from './getWorkflowSettings'; + +export default function initWorkflowSteps({ servicesManager }): void { + const { workflowStepsService } = servicesManager.services; + const workflowSettings = getWorkflowSettings({ servicesManager }); + + workflowStepsService.addWorkflowSteps(workflowSettings.steps); + workflowStepsService.setActiveWorkflowStep(workflowSettings.steps[0].id); +} diff --git a/modes/preclinical-4d/src/segmentationButtons.ts b/modes/preclinical-4d/src/segmentationButtons.ts new file mode 100644 index 000000000..b4efbe04d --- /dev/null +++ b/modes/preclinical-4d/src/segmentationButtons.ts @@ -0,0 +1,180 @@ +import type { Button } from '@ohif/core/types'; + +function _createSetToolActiveCommands(toolName) { + return [ + { + commandName: 'setToolActive', + commandOptions: { + toolName, + }, + }, + ]; +} + +const toolbarButtons: Button[] = [ + { + id: 'BrushTools', + uiType: 'ohif.buttonGroup', + props: { + groupId: 'BrushTools', + items: [ + { + id: 'Brush', + icon: 'icon-tool-brush', + label: 'Brush', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['CircularBrush', 'SphereBrush'] }, + }, + commands: _createSetToolActiveCommands('CircularBrush'), + options: [ + { + name: 'Radius (mm)', + id: 'brush-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 7, + commands: { + commandName: 'setBrushSize', + commandOptions: { toolNames: ['CircularBrush', 'SphereBrush'] }, + }, + }, + { + name: 'Shape', + type: 'radio', + id: 'brush-mode', + value: 'CircularBrush', + values: [ + { value: 'CircularBrush', label: 'Circle' }, + { value: 'SphereBrush', label: 'Sphere' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, + { + id: 'Eraser', + icon: 'icon-tool-eraser', + label: 'Eraser', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { + toolNames: ['CircularEraser', 'SphereEraser'], + }, + }, + commands: _createSetToolActiveCommands('CircularEraser'), + options: [ + { + name: 'Radius (mm)', + id: 'eraser-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 7, + commands: { + commandName: 'setBrushSize', + commandOptions: { toolNames: ['CircularEraser', 'SphereEraser'] }, + }, + }, + { + name: 'Shape', + type: 'radio', + id: 'eraser-mode', + value: 'CircularEraser', + values: [ + { value: 'CircularEraser', label: 'Circle' }, + { value: 'SphereEraser', label: 'Sphere' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, + { + id: 'Threshold', + icon: 'icon-tool-threshold', + label: 'Eraser', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'] }, + }, + commands: _createSetToolActiveCommands('ThresholdCircularBrush'), + options: [ + { + name: 'Radius (mm)', + id: 'threshold-radius', + type: 'range', + min: 0.5, + max: 99.5, + step: 0.5, + value: 7, + commands: { + commandName: 'setBrushSize', + commandOptions: { + toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'], + }, + }, + }, + { + name: 'Shape', + type: 'radio', + id: 'eraser-mode', + value: 'ThresholdCircularBrush', + values: [ + { value: 'ThresholdCircularBrush', label: 'Circle' }, + { value: 'ThresholdSphereBrush', label: 'Sphere' }, + ], + commands: 'setToolActiveToolbar', + }, + { + name: 'ThresholdRange', + type: 'double-range', + id: 'threshold-range', + min: 0, + max: 10, + step: 1, + values: [2, 5], + commands: { + commandName: 'setThresholdRange', + commandOptions: { + toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush'], + }, + }, + }, + ], + }, + ], + }, + }, + { + id: 'Shapes', + uiType: 'ohif.radioGroup', + props: { + label: 'Shapes', + evaluate: { + name: 'evaluate.cornerstone.segmentation', + options: { toolNames: ['CircleScissor', 'SphereScissor', 'RectangleScissor'] }, + }, + icon: 'icon-tool-shape', + commands: _createSetToolActiveCommands('CircleScissor'), + options: [ + { + name: 'Shape', + type: 'radio', + value: 'CircleScissor', + id: 'shape-mode', + values: [ + { value: 'CircleScissor', label: 'Circle' }, + { value: 'SphereScissor', label: 'Sphere' }, + { value: 'RectangleScissor', label: 'Rectangle' }, + ], + commands: 'setToolActiveToolbar', + }, + ], + }, + }, +]; + +export default toolbarButtons; diff --git a/modes/preclinical-4d/src/toolbarButtons.tsx b/modes/preclinical-4d/src/toolbarButtons.tsx new file mode 100644 index 000000000..3c6fc47b5 --- /dev/null +++ b/modes/preclinical-4d/src/toolbarButtons.tsx @@ -0,0 +1,160 @@ +import { defaults, ToolbarService } from '@ohif/core'; +import { toolGroupIds } from './initToolGroups'; + +const { createButton } = ToolbarService; + +const setToolActiveToolbar = { + commandName: 'setToolActiveToolbar', + commandOptions: { + toolGroupIds: [toolGroupIds.PT, toolGroupIds.CT, toolGroupIds.Fusion, toolGroupIds.default], + }, +}; + +const toolbarButtons = [ + { + id: 'MeasurementTools', + uiType: 'ohif.splitButton', + props: { + groupId: 'MeasurementTools', + evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList', + primary: createButton({ + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }), + secondary: { + icon: 'chevron-down', + tooltip: 'More Measure Tools', + }, + items: [ + { + id: 'Length', + icon: 'tool-length', + label: 'Length', + tooltip: 'Length Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + { + id: 'Bidirectional', + icon: 'tool-bidirectional', + label: 'Bidirectional', + tooltip: 'Bidirectional Tool', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + { + id: 'ArrowAnnotate', + icon: 'tool-annotate', + label: 'Annotation', + tooltip: 'Arrow Annotate', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + { + id: 'EllipticalROI', + icon: 'tool-ellipse', + label: 'Ellipse', + tooltip: 'Ellipse ROI', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + ], + }, + }, + { + id: 'Zoom', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-zoom', + label: 'Zoom', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + }, + { + id: 'WindowLevel', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-window-level', + label: 'Window Level', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + }, + { + id: 'Pan', + uiType: 'ohif.radioGroup', + props: { + type: 'tool', + icon: 'tool-move', + label: 'Pan', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + }, + { + id: 'TrackballRotate', + uiType: 'ohif.radioGroup', + props: { + type: 'tool', + icon: 'tool-3d-rotate', + label: '3D Rotate', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + }, + { + id: 'Capture', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-capture', + label: 'Capture', + commands: 'showDownloadViewportModal', + evaluate: 'evaluate.action', + }, + }, + { + id: 'Layout', + uiType: 'ohif.layoutSelector', + props: { + rows: 3, + columns: 4, + evaluate: 'evaluate.action', + }, + }, + { + id: 'Crosshairs', + uiType: 'ohif.radioGroup', + props: { + type: 'tool', + icon: 'tool-crosshair', + label: 'Crosshairs', + commands: setToolActiveToolbar, + evaluate: 'evaluate.cornerstoneTool', + }, + }, + { + id: 'ProgressDropdown', + uiType: 'ohif.progressDropdown', + }, + { + id: 'RectangleROIStartEndThreshold', + uiType: 'ohif.radioGroup', + props: { + icon: 'tool-create-threshold', + label: 'Rectangle ROI Threshold', + commands: setToolActiveToolbar, + evaluate: { + name: 'evaluate.cornerstone.segmentation', + toolNames: ['RectangleROIStartEndThreshold'], + }, + options: 'tmtv.RectangleROIThresholdOptions', + }, + }, +]; + +export default toolbarButtons; diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index 5232312cc..58e12eca8 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -1,8 +1,6 @@ import type { Button } from '@ohif/core/types'; import { defaults, ToolbarService, ViewportGridService } from '@ohif/core'; -import { WindowLevelMenuItem } from '@ohif/ui'; -const { windowLevelPresets } = defaults; const { createButton } = ToolbarService; const ReferenceLinesListeners: RunCommand = [ @@ -12,23 +10,6 @@ const ReferenceLinesListeners: RunCommand = [ }, ]; -function _createWwwcPreset(preset, title, subtitle) { - return { - id: preset.toString(), - title, - subtitle, - commands: [ - { - commandName: 'setWindowLevel', - commandOptions: { - ...windowLevelPresets[preset], - }, - context: 'CORNERSTONE', - }, - ], - }; -} - export const setToolActiveToolbar = { commandName: 'setToolActiveToolbar', commandOptions: { @@ -36,6 +17,20 @@ export const setToolActiveToolbar = { }, }; +export const toggleEnabledDisabledToolbar = { + commandName: 'toggleEnabledDisabledToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup'], + }, +}; + +export const toggleActiveDisabledToolbar = { + commandName: 'toggleActiveDisabledToolbar', + commandOptions: { + toolGroupIds: ['default', 'mpr', 'SRToolGroup'], + }, +}; + const toolbarButtons: Button[] = [ { id: 'Zoom', @@ -168,13 +163,7 @@ const toolbarButtons: Button[] = [ icon: 'tool-referenceLines', label: 'Reference Lines', tooltip: 'Show Reference Lines', - commands: { - commandName: 'setToolEnabled', - commandOptions: { - toolName: 'ReferenceLines', - toggle: true, // Toggle the tool on/off upon click - }, - }, + commands: toggleEnabledDisabledToolbar, listeners: { [ViewportGridService.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners, [ViewportGridService.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners, @@ -182,17 +171,11 @@ const toolbarButtons: Button[] = [ evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ - id: 'ImageOverlay', + id: 'ImageOverlayViewer', icon: 'toggle-dicom-overlay', label: 'Image Overlay', tooltip: 'Toggle Image Overlay', - commands: { - commandName: 'setToolEnabled', - commandOptions: { - toolName: 'ImageOverlayViewer', - toggle: true, // Toggle the tool on/off upon click - }, - }, + commands: toggleEnabledDisabledToolbar, evaluate: 'evaluate.cornerstoneTool.toggle', }), createButton({ @@ -271,7 +254,7 @@ const toolbarButtons: Button[] = [ icon: 'icon-tool-loupe', label: 'Loupe', tooltip: 'Loupe', - commands: setToolActiveToolbar, + commands: toggleActiveDisabledToolbar, evaluate: 'evaluate.cornerstoneTool', }), createButton({ diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index 6f4fb65f5..491294220 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -17,18 +17,21 @@ const ohif = { const cs3d = { viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone', + segPanel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation', }; const tmtv = { hangingProtocol: '@ohif/extension-tmtv.hangingProtocolModule.ptCT', petSUV: '@ohif/extension-tmtv.panelModule.petSUV', - ROIThresholdPanel: '@ohif/extension-tmtv.panelModule.ROIThresholdSeg', + toolbox: '@ohif/extension-tmtv.panelModule.tmtvBox', + export: '@ohif/extension-tmtv.panelModule.tmtvExport', }; const extensionDependencies = { // Can derive the versions at least process.env.from npm_package_version '@ohif/extension-default': '^3.0.0', '@ohif/extension-cornerstone': '^3.0.0', + '@ohif/extension-cornerstone-dicom-seg': '^3.0.0', '@ohif/extension-tmtv': '^3.0.0', }; @@ -47,6 +50,7 @@ function modeFactory({ modeConfiguration }) { const { toolbarService, toolGroupService, + customizationService, hangingProtocolService, displaySetService, } = servicesManager.services; @@ -94,7 +98,18 @@ function modeFactory({ modeConfiguration }) { 'Pan', 'SyncToggle', ]); - toolbarService.createButtonSection('tmtvToolbox', ['RectangleROIStartEndThreshold']); + toolbarService.createButtonSection('ROIThresholdToolbox', ['RectangleROIStartEndThreshold']); + + customizationService.addModeCustomizations([ + { + id: 'segmentation.panel', + segmentationPanelMode: 'expanded', + addSegment: false, + onSegmentationAdd: () => { + commandsManager.run('createNewLabelmapFromPT'); + }, + }, + ]); // For the hanging protocol we need to decide on the window level // based on whether the SUV is corrected or not, hence we can't hard @@ -176,13 +191,13 @@ function modeFactory({ modeConfiguration }) { /*init: ({ servicesManager, extensionManager }) => { //defaultViewerRouteInit },*/ - layoutTemplate: ({ location, servicesManager }) => { + layoutTemplate: () => { return { id: ohif.layout, props: { leftPanels: [ohif.thumbnailList], - leftPanelDefaultClosed: true, - rightPanels: [tmtv.ROIThresholdPanel, tmtv.petSUV], + leftPanelClosed: true, + rightPanels: [[tmtv.toolbox, cs3d.segPanel, tmtv.export], tmtv.petSUV], viewports: [ { namespace: cs3d.viewport, diff --git a/package.json b/package.json index 81b792ec6..1c82d2442 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "dev:no:cache": "lerna run dev:no:cache --stream", "dev:project": ".scripts/dev.sh", "dev:orthanc": "lerna run dev:orthanc --stream", + "dev:orthanc:no:cache": "lerna run dev:orthanc:no:cache --stream", "dev:dcm4chee": "lerna run dev:dcm4chee --stream", "dev:static": "lerna run dev:static --stream", "orthanc:up": "docker-compose -f platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml up", @@ -59,7 +60,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@kitware/vtk.js": "29.7.0", + "@kitware/vtk.js": "30.3.1", "core-js": "^3.2.1" }, "peerDependencies": { diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index 595cfd3dd..444ed5a09 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -110,7 +110,8 @@ describe('OHIF Cornerstone Toolbar', () => { //Click on button and verify if icon is active on toolbar cy.addLengthMeasurement(); cy.get('[data-cy="viewport-notification"]').as('notif').should('exist'); - cy.get('[data-cy="viewport-notification"]').as('notif').should('be.visible'); + // cy.get('[data-cy="viewport-notification"]').as('notif').should('be.visible'); + cy.get('[data-cy="prompt-begin-tracking-yes-btn"]').as('yesBtn').click(); //Verify the measurement exists in the table diff --git a/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js b/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js index d1c32e088..e59df25cf 100644 --- a/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js +++ b/platform/app/cypress/integration/study-list/OHIFStudyList.spec.js @@ -122,6 +122,8 @@ describe('OHIF Study List', function () { '[data-cy="mode-basic-test-1.3.6.1.4.1.25403.345050719074.3824.20170125113417.1"]' ).click(); cy.get('[data-cy="return-to-work-list"]').click(); + + cy.wait(1000); cy.get('@searchResult2').should($list => { expect($list.length).to.be.eq(1); expect($list).to.contain('PETCT'); diff --git a/platform/app/package.json b/platform/app/package.json index 499ba4b8c..fbf5e5503 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -30,6 +30,7 @@ "dev": "cross-env NODE_ENV=development webpack serve --config .webpack/webpack.pwa.js", "dev:no:cache": "cross-env NODE_ENV=development webpack serve --no-cache --config .webpack/webpack.pwa.js", "dev:orthanc": "cross-env NODE_ENV=development PROXY_TARGET=/dicom-web PROXY_DOMAIN=http://localhost:8042 APP_CONFIG=config/docker_nginx-orthanc.js webpack serve --config .webpack/webpack.pwa.js", + "dev:orthanc:no:cache": "cross-env NODE_ENV=development PROXY_TARGET=/dicom-web PROXY_DOMAIN=http://localhost:8042 APP_CONFIG=config/docker_nginx-orthanc.js webpack serve --no-cache --config .webpack/webpack.pwa.js", "dev:dcm4chee": "cross-env NODE_ENV=development APP_CONFIG=config/local_dcm4chee.js webpack serve --config .webpack/webpack.pwa.js", "dev:static": "cross-env NODE_ENV=development APP_CONFIG=config/local_static.js webpack serve --config .webpack/webpack.pwa.js", "dev:viewer": "yarn run dev", @@ -53,7 +54,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.68.1", + "@cornerstonejs/dicom-image-loader": "^1.70.0", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.73", "@ohif/extension-cornerstone": "3.8.0-beta.73", @@ -98,7 +99,7 @@ "devDependencies": { "@babel/plugin-proposal-private-methods": "^7.18.6", "@percy/cypress": "^3.1.1", - "cypress": "13.6.2", + "cypress": "13.7.2", "cypress-file-upload": "^3.5.3", "glob": "^8.0.3", "identity-obj-proxy": "3.0.x", diff --git a/platform/app/pluginConfig.json b/platform/app/pluginConfig.json index 08a42deb0..a910bee9f 100644 --- a/platform/app/pluginConfig.json +++ b/platform/app/pluginConfig.json @@ -22,6 +22,11 @@ "default": false, "version": "3.0.0" }, + { + "packageName": "@ohif/extension-cornerstone-dynamic-volume", + "default": false, + "version": "3.0.0" + }, { "packageName": "@ohif/extension-dicom-microscopy", "default": false, @@ -66,6 +71,9 @@ { "packageName": "@ohif/mode-microscopy" }, + { + "packageName": "@ohif/mode-preclinical-4d" + }, { "packageName": "@ohif/mode-test", "default": false, diff --git a/platform/app/public/config/local_orthanc.js b/platform/app/public/config/local_orthanc.js index f8ae80c86..9fd18992c 100644 --- a/platform/app/public/config/local_orthanc.js +++ b/platform/app/public/config/local_orthanc.js @@ -29,6 +29,7 @@ window.config = { imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, + useBulkDataURI: false, supportsFuzzyMatching: true, supportsWildcard: true, dicomUploadEnabled: true, diff --git a/platform/app/src/appInit.js b/platform/app/src/appInit.js index 867534bd2..4e26eee21 100644 --- a/platform/app/src/appInit.js +++ b/platform/app/src/appInit.js @@ -19,6 +19,7 @@ import { errorHandler, CustomizationService, PanelService, + WorkflowStepsService, // utils, } from '@ohif/core'; @@ -68,6 +69,7 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) { CineService.REGISTRATION, UserAuthenticationService.REGISTRATION, PanelService.REGISTRATION, + WorkflowStepsService.REGISTRATION, StateSyncService.REGISTRATION, ]); diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index 6c7fccf50..53b881e51 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState, useRef, useContext, createContext } from 'react'; +import React, { useEffect, useState, useRef } from 'react'; import { useParams, useLocation, useNavigate } from 'react-router'; import PropTypes from 'prop-types'; import { ServicesManager, utils } from '@ohif/core'; @@ -60,7 +60,7 @@ export default function ModeRoute({ locationRef.current = location; } - const { displaySetService, hangingProtocolService, userAuthenticationService } = ( + const { displaySetService, panelService, hangingProtocolService, userAuthenticationService } = ( servicesManager as ServicesManager ).services; @@ -141,7 +141,17 @@ export default function ModeRoute({ servicesManager, studyInstanceUIDs, }); + if (isMounted.current) { + const { leftPanels = [], rightPanels = [], ...layoutProps } = layoutData.props; + + panelService.reset(); + panelService.addPanels(panelService.PanelPosition.Left, leftPanels); + panelService.addPanels(panelService.PanelPosition.Right, rightPanels); + + // layoutProps contains all props but leftPanels and rightPanels + layoutData.props = layoutProps; + layoutTemplateData.current = layoutData; setRefresh(!refresh); } @@ -244,8 +254,10 @@ export default function ModeRoute({ } }, {}) ?? {}; + let unsubs; + if (route.init) { - return await route.init( + unsubs = await route.init( { servicesManager, extensionManager, @@ -273,6 +285,14 @@ export default function ModeRoute({ let unsubscriptions; setupRouteInit().then(unsubs => { unsubscriptions = unsubs; + + // Some code may need to run after hanging protocol initialization + // (eg: workflowStepsService initialization on 4D mode) + mode?.onSetupRouteComplete?.({ + servicesManager, + extensionManager, + commandsManager, + }); }); return () => { diff --git a/platform/app/src/routes/Mode/defaultRouteInit.ts b/platform/app/src/routes/Mode/defaultRouteInit.ts index 3f8aafaa7..975ac4d8b 100644 --- a/platform/app/src/routes/Mode/defaultRouteInit.ts +++ b/platform/app/src/routes/Mode/defaultRouteInit.ts @@ -15,7 +15,7 @@ const { sortingCriteria } = utils; * @param props.filters filters from query params to read the data from * @returns array of subscriptions to cancel */ -export function defaultRouteInit( +export async function defaultRouteInit( { servicesManager, studyInstanceUIDs, dataSource, filters, appConfig }, hangingProtocolId ) { @@ -95,7 +95,7 @@ export function defaultRouteInit( }); }); - Promise.allSettled(allRetrieves).then(promises => { + await Promise.allSettled(allRetrieves).then(async promises => { log.timeEnd(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); log.time(Enums.TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); log.time(Enums.TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); @@ -120,7 +120,7 @@ export function defaultRouteInit( } }); - Promise.allSettled(allPromises).then(applyHangingProtocol); + await Promise.allSettled(allPromises).then(applyHangingProtocol); startRemainingPromises(remainingPromises); applyHangingProtocol(); }); diff --git a/platform/core/package.json b/platform/core/package.json index a4005a9e6..1b22d884d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.68.1", + "@cornerstonejs/dicom-image-loader": "^1.70.0", "@ohif/ui": "3.8.0-beta.73", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/platform/core/src/classes/MetadataProvider.ts b/platform/core/src/classes/MetadataProvider.ts index 650466a0a..73238568c 100644 --- a/platform/core/src/classes/MetadataProvider.ts +++ b/platform/core/src/classes/MetadataProvider.ts @@ -241,6 +241,12 @@ class MetadataProvider { sopInstanceUID: instance.SOPInstanceUID, }; break; + case WADO_IMAGE_LOADER_TAGS.PET_IMAGE_MODULE: + metadata = { + frameReferenceTime: instance.FrameReferenceTime, + actualFrameDuration: instance.ActualFrameDuration, + }; + break; case WADO_IMAGE_LOADER_TAGS.PET_ISOTOPE_MODULE: const { RadiopharmaceuticalInformationSequence } = instance; @@ -393,6 +399,41 @@ class MetadataProvider { decayCorrection: instance.DecayCorrection, }; break; + case WADO_IMAGE_LOADER_TAGS.CALIBRATION_MODULE: + // map the DICOM tags to the cornerstone tags since cornerstone tags + // are camelCase and instance tags are all caps + metadata = { + sequenceOfUltrasoundRegions: instance.SequenceOfUltrasoundRegions?.map(region => { + return { + regionSpatialFormat: region.RegionSpatialFormat, + regionDataType: region.RegionDataType, + regionFlags: region.RegionFlags, + regionLocationMinX0: region.RegionLocationMinX0, + regionLocationMinY0: region.RegionLocationMinY0, + regionLocationMaxX1: region.RegionLocationMaxX1, + regionLocationMaxY1: region.RegionLocationMaxY1, + referencePixelX0: region.ReferencePixelX0, + referencePixelY0: region.ReferencePixelY0, + referencePixelPhysicalValueX: region.ReferencePixelPhysicalValueX, + referencePixelPhysicalValueY: region.ReferencePixelPhysicalValueY, + physicalUnitsXDirection: region.PhysicalUnitsXDirection, + physicalUnitsYDirection: region.PhysicalUnitsYDirection, + physicalDeltaX: region.PhysicalDeltaX, + physicalDeltaY: region.PhysicalDeltaY, + }; + }), + }; + break; + + /** + * Below are the tags and not the modules since they are not really + * consistent with the modules above + */ + case 'temporalPositionIdentifier': + metadata = { + temporalPositionIdentifier: instance.TemporalPositionIdentifier, + }; + break; default: return; @@ -539,6 +580,7 @@ const WADO_IMAGE_LOADER_TAGS = { VOI_LUT_MODULE: 'voiLutModule', MODALITY_LUT_MODULE: 'modalityLutModule', SOP_COMMON_MODULE: 'sopCommonModule', + PET_IMAGE_MODULE: 'petImageModule', PET_ISOTOPE_MODULE: 'petIsotopeModule', PER_SERIES_MODULE: 'petSeriesModule', OVERLAY_PLANE_MODULE: 'overlayPlaneModule', @@ -549,6 +591,7 @@ const WADO_IMAGE_LOADER_TAGS = { GENERAL_IMAGE_MODULE: 'generalImageModule', GENERAL_STUDY_MODULE: 'generalStudyModule', CINE_MODULE: 'cineModule', + CALIBRATION_MODULE: 'calibrationModule', }; const INSTANCE = 'instance'; diff --git a/platform/core/src/extensions/ExtensionManager.ts b/platform/core/src/extensions/ExtensionManager.ts index ed4a9c4c5..d7997c9fc 100644 --- a/platform/core/src/extensions/ExtensionManager.ts +++ b/platform/core/src/extensions/ExtensionManager.ts @@ -48,6 +48,7 @@ export interface Extension { getCustomizationModule?: (p: ExtensionParams) => unknown; getSopClassHandlerModule?: (p: ExtensionParams) => unknown; getToolbarModule?: (p: ExtensionParams) => unknown; + getPanelModule?: (p: ExtensionParams) => unknown; onModeEnter?: () => void; onModeExit?: () => void; } diff --git a/platform/core/src/index.test.js b/platform/core/src/index.test.js index 6b2f6efae..7649a8702 100644 --- a/platform/core/src/index.test.js +++ b/platform/core/src/index.test.js @@ -1,7 +1,7 @@ import * as OHIF from './index'; describe('Top level exports', () => { - test('have not changed', () => { + test.only('have not changed', () => { const expectedExports = [ 'MODULE_TYPES', // @@ -46,6 +46,7 @@ describe('Top level exports', () => { 'pubSubServiceInterface', 'PubSubService', 'PanelService', + 'WorkflowStepsService', 'useToolbar', ].sort(); diff --git a/platform/core/src/index.ts b/platform/core/src/index.ts index a04b6569f..d548e6e7b 100644 --- a/platform/core/src/index.ts +++ b/platform/core/src/index.ts @@ -33,6 +33,7 @@ import { CustomizationService, StateSyncService, PanelService, + WorkflowStepsService, } from './services'; import { DisplaySetMessage, DisplaySetMessageList } from './services/DisplaySetService'; @@ -84,6 +85,7 @@ const OHIF = { PubSubService, PanelService, useToolbar, + WorkflowStepsService, }; export { @@ -128,6 +130,7 @@ export { Enums, Types, PanelService, + WorkflowStepsService, useToolbar, }; diff --git a/platform/core/src/services/CineService/CineService.ts b/platform/core/src/services/CineService/CineService.ts index 9c027afb2..d7f054b82 100644 --- a/platform/core/src/services/CineService/CineService.ts +++ b/platform/core/src/services/CineService/CineService.ts @@ -34,29 +34,46 @@ class CineService extends PubSubService { // reducer state does not get updated right away and if we publish the // event and we use the cineService.getState() it will return the old state setTimeout(() => { - this._broadcastEvent(this.EVENTS.CINE_STATE_CHANGED, isCineEnabled); + this._broadcastEvent(this.EVENTS.CINE_STATE_CHANGED, { isCineEnabled }); }, 0); } public playClip(element, playClipOptions) { - return this.serviceImplementation._playClip(element, playClipOptions); + const res = this.serviceImplementation._playClip(element, playClipOptions); + + this._broadcastEvent(this.EVENTS.CINE_STATE_CHANGED, { isPlaying: true }); + + return res; } public stopClip(element) { - return this.serviceImplementation._stopClip(element); + const res = this.serviceImplementation._stopClip(element); + + this._broadcastEvent(this.EVENTS.CINE_STATE_CHANGED, { isPlaying: false }); + + return res; } public _onModeExit() { this.setIsCineEnabled(false); } + public getSyncedViewports(viewportId) { + return this.serviceImplementation._getSyncedViewports(viewportId); + } + public setServiceImplementation({ getState: getStateImplementation, setCine: setCineImplementation, setIsCineEnabled: setIsCineEnabledImplementation, playClip: playClipImplementation, stopClip: stopClipImplementation, + getSyncedViewports: getSyncedViewportsImplementation, }) { + if (getSyncedViewportsImplementation) { + this.serviceImplementation._getSyncedViewports = getSyncedViewportsImplementation; + } + if (getStateImplementation) { this.serviceImplementation._getState = getStateImplementation; } diff --git a/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts b/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts index 7c20251a3..0246a28e9 100644 --- a/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts +++ b/platform/core/src/services/HangingProtocolService/HangingProtocolService.ts @@ -1314,18 +1314,19 @@ export default class HangingProtocolService extends PubSubService { ); // Use the display set provided instead - if (reuseDisplaySetUID) { - if (viewportOptions.allowUnmatchedView !== true) { - this.validateDisplaySetSelectMatch(viewportDisplaySet, id, reuseDisplaySetUID); - } - const displaySetInfo: HangingProtocol.DisplaySetInfo = { - displaySetInstanceUID: reuseDisplaySetUID, - displaySetOptions, - }; + // Todo: find out what is wrong here + // if (reuseDisplaySetUID) { + // if (viewportOptions.allowUnmatchedView !== true) { + // this.validateDisplaySetSelectMatch(viewportDisplaySet, id, reuseDisplaySetUID); + // } + // const displaySetInfo: HangingProtocol.DisplaySetInfo = { + // displaySetInstanceUID: reuseDisplaySetUID, + // displaySetOptions, + // }; - displaySetsInfo.push(displaySetInfo); - return; - } + // displaySetsInfo.push(displaySetInfo); + // return; + // } // Use the display set index to allow getting the "next" match, eg // matching all display sets, and get the matchedDisplaySetsIndex'th item diff --git a/platform/core/src/services/PanelService/PanelService.ts b/platform/core/src/services/PanelService/PanelService.ts deleted file mode 100644 index c22194b11..000000000 --- a/platform/core/src/services/PanelService/PanelService.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { ActivatePanelTriggers } from '../../types'; -import { Subscription } from '../../types/IPubSub'; -import { PubSubService } from '../_shared/pubSubServiceInterface'; - -export const EVENTS = { - ACTIVATE_PANEL: 'event::panelService:activatePanel', -}; - -export default class PanelService extends PubSubService { - public static REGISTRATION = { - name: 'panelService', - create: (): PanelService => { - return new PanelService(); - }, - }; - - constructor() { - super(EVENTS); - } - - /** - * Activates the panel with the given id. If the forceActive flag is false - * then it is up to the component containing the panel whether to activate - * it immediately or not. For instance, the panel might not be activated when - * the forceActive flag is false in the case where the user might have - * activated/displayed and then closed the panel already. - * Note that this method simply fires a broadcast event: ActivatePanelEvent. - * @param panelId the panel's id - * @param forceActive optional flag indicating if the panel should be forced to be activated or not - */ - activatePanel(panelId: string, forceActive = false): void { - this._broadcastEvent(EVENTS.ACTIVATE_PANEL, { panelId, forceActive }); - } - - /** - * Adds a mapping of events (activatePanelTriggers.sourceEvents) broadcast by - * activatePanelTrigger.sourcePubSubService that - * when fired/broadcasted must in turn activate the panel with the given id. - * The subscriptions created are returned such that they can be managed and unsubscribed - * as appropriate. - * @param panelId the id of the panel to activate - * @param activatePanelTriggers an array of triggers - * @param forceActive optional flag indicating if the panel should be forced to be activated or not - * @returns an array of the subscriptions subscribed to - */ - addActivatePanelTriggers( - panelId: string, - activatePanelTriggers: ActivatePanelTriggers[], - forceActive = false - ): Subscription[] { - return activatePanelTriggers - .map(trigger => - trigger.sourceEvents.map(eventName => - trigger.sourcePubSubService.subscribe(eventName, () => - this.activatePanel(panelId, forceActive) - ) - ) - ) - .flat(); - } -} diff --git a/platform/core/src/services/PanelService/PanelService.tsx b/platform/core/src/services/PanelService/PanelService.tsx new file mode 100644 index 000000000..b7e0b13f4 --- /dev/null +++ b/platform/core/src/services/PanelService/PanelService.tsx @@ -0,0 +1,195 @@ +import React from 'react'; +import { ActivatePanelTriggers } from '../../types'; +import { Subscription } from '../../types/IPubSub'; +import { PubSubService } from '../_shared/pubSubServiceInterface'; +import { ExtensionManager } from '../../extensions'; + +export const EVENTS = { + PANELS_CHANGED: 'event::panelService:panelsChanged', + ACTIVATE_PANEL: 'event::panelService:activatePanel', +}; + +type PanelData = { + id: string; + iconName: string; + iconLabel: string; + label: string; + name: string; + content: unknown; +}; + +export enum PanelPosition { + Left = 'left', + Right = 'right', + Bottom = 'bottom', +} + +export default class PanelService extends PubSubService { + private _extensionManager: ExtensionManager; + + public static REGISTRATION = { + name: 'panelService', + create: ({ extensionManager }): PanelService => { + return new PanelService(extensionManager); + }, + }; + + private _panelsGroups: Map = new Map(); + + constructor(extensionManager: ExtensionManager) { + super(EVENTS); + this._extensionManager = extensionManager; + } + + public get PanelPosition(): typeof PanelPosition { + return PanelPosition; + } + + private _getPanelComponent(panelId: string) { + const entry = this._extensionManager.getModuleEntry(panelId); + + if (!entry) { + throw new Error( + `${panelId} is not a valid entry for an extension module, please check your configuration or make sure the extension is registered.` + ); + } + + if (!entry?.component) { + throw new Error( + `No component found from extension ${panelId}. Check the reference string to the extension in your Mode configuration` + ); + } + + const content = entry.component; + + return { entry, content }; + } + + public getPanelData(panelId): PanelData { + let content, entry; + if (Array.isArray(panelId)) { + const panelsData = panelId.map(id => this._getPanelComponent(id)); + + // use the first panel's entry for the combined panel + entry = panelsData[0].entry; + + // stack the content of the panels in one react component + content = () => ( + <> + {panelsData.map(({ content: PanelContent }) => ( + + ))} + + ); + } else { + ({ content, entry } = this._getPanelComponent(panelId)); + } + + return { + id: entry.id, + iconName: entry.iconName, + iconLabel: entry.iconLabel, + label: entry.label, + name: entry.name, + content, + }; + } + + public addPanel(position: PanelPosition, panelId: string, options): void { + let panels = this._panelsGroups.get(position); + + if (!panels) { + panels = []; + this._panelsGroups.set(position, panels); + } + + const panelComponent = this.getPanelData(panelId); + + panels.push(panelComponent); + this._broadcastEvent(EVENTS.PANELS_CHANGED, { position, options }); + } + + public addPanels(position: PanelPosition, panelsIds: string[], options): void { + if (!Array.isArray(panelsIds)) { + throw new Error('Invalid "panelsIds" array'); + } + + panelsIds.forEach(panelId => this.addPanel(position, panelId, options)); + } + + public setPanels( + panels: { [key in PanelPosition]: string[] }, + options: { + rightPanelClosed?: boolean; + leftPanelClosed?: boolean; + } + ): void { + this.reset(); + + Object.keys(panels).forEach((position: PanelPosition) => { + this.addPanels(position, panels[position], options); + }); + } + + public getPanels(position: PanelPosition): PanelData[] { + const panels = this._panelsGroups.get(position) ?? []; + + // Return a new array to preserve the internal state + return [...panels]; + } + + public reset(): void { + const affectedPositions = Array.from(this._panelsGroups.keys()); + + this._panelsGroups.clear(); + + affectedPositions.forEach(position => + this._broadcastEvent(EVENTS.PANELS_CHANGED, { position }) + ); + } + + public onModeExit(): void { + this.reset(); + } + + /**5 + * Activates the panel with the given id. If the forceActive flag is false + * then it is up to the component containing the panel whether to activate + * it immediately or not. For instance, the panel might not be activated when + * the forceActive flag is false in the case where the user might have + * activated/displayed and then closed the panel already. + * Note that this method simply fires a broadcast event: ActivatePanelEvent. + * @param panelId the panel's id + * @param forceActive optional flag indicating if the panel should be forced to be activated or not + */ + public activatePanel(panelId: string, forceActive = false): void { + this._broadcastEvent(EVENTS.ACTIVATE_PANEL, { panelId, forceActive }); + } + + /** + * Adds a mapping of events (activatePanelTriggers.sourceEvents) broadcast by + * activatePanelTrigger.sourcePubSubService that + * when fired/broadcasted must in turn activate the panel with the given id. + * The subscriptions created are returned such that they can be managed and unsubscribed + * as appropriate. + * @param panelId the id of the panel to activate + * @param activatePanelTriggers an array of triggers + * @param forceActive optional flag indicating if the panel should be forced to be activated or not + * @returns an array of the subscriptions subscribed to + */ + public addActivatePanelTriggers( + panelId: string, + activatePanelTriggers: ActivatePanelTriggers[], + forceActive = false + ): Subscription[] { + return activatePanelTriggers + .map(trigger => + trigger.sourceEvents.map(eventName => + trigger.sourcePubSubService.subscribe(eventName, () => + this.activatePanel(panelId, forceActive) + ) + ) + ) + .flat(); + } +} diff --git a/platform/core/src/services/ServicesManager.ts b/platform/core/src/services/ServicesManager.ts index b7419639a..fb96db0f9 100644 --- a/platform/core/src/services/ServicesManager.ts +++ b/platform/core/src/services/ServicesManager.ts @@ -11,6 +11,7 @@ export default class ServicesManager { constructor(commandsManager: CommandsManager) { this._commandsManager = commandsManager; + this._extensionManager = null; this.services = {}; this.registeredServiceNames = []; } @@ -46,6 +47,7 @@ export default class ServicesManager { if (service.create) { this.services[service.name] = service.create({ configuration, + extensionManager: this._extensionManager, commandsManager: this._commandsManager, servicesManager: this, extensionManager: this._extensionManager, diff --git a/platform/core/src/services/ToolBarService/ToolbarService.ts b/platform/core/src/services/ToolBarService/ToolbarService.ts index 0f84b0b6e..b9dfea404 100644 --- a/platform/core/src/services/ToolBarService/ToolbarService.ts +++ b/platform/core/src/services/ToolBarService/ToolbarService.ts @@ -68,7 +68,7 @@ export default class ToolbarService extends PubSubService { } public reset(): void { - this.unsubscriptions.forEach(unsub => unsub()); + // this.unsubscriptions.forEach(unsub => unsub()); this.state = { buttons: {}, buttonSections: {}, @@ -120,6 +120,10 @@ export default class ToolbarService extends PubSubService { public addButtons(buttons: Button[]): void { buttons.forEach(button => { if (!this.state.buttons[button.id]) { + if (!button.props) { + button.props = {}; + } + this.state.buttons[button.id] = button; } }); @@ -350,6 +354,7 @@ export default class ToolbarService extends PubSubService { * @param {Array} buttons - The buttons to be added to the section. */ createButtonSection(key, buttons) { + // make sure all buttons have at least an empty props this.state.buttonSections[key] = buttons; this._broadcastEvent(this.EVENTS.TOOL_BAR_MODIFIED, { ...this.state }); } diff --git a/platform/core/src/services/WorkflowStepsService/WorkflowStepsService.ts b/platform/core/src/services/WorkflowStepsService/WorkflowStepsService.ts new file mode 100644 index 000000000..8a5d33782 --- /dev/null +++ b/platform/core/src/services/WorkflowStepsService/WorkflowStepsService.ts @@ -0,0 +1,238 @@ +import { CommandsManager } from '../../classes'; +import { ExtensionManager } from '../../extensions'; +import { ServicesManager } from '../../services'; +import { PubSubService } from '../_shared/pubSubServiceInterface'; + +export const EVENTS = { + ACTIVE_STEP_CHANGED: 'event::workflowStepsService:activateStepChanged', + STEPS_CHANGED: 'event::workflowStepsService:stepsChanged', +}; + +/* + A mode may define a workflow and each workflow may have one or more steps. + Each step may define a different set of tools, hanging protocol and panels + layout that will be applied to the viewer once it gets activated making the + viewer work in a more dynamic way. + + Example: + All keys inside brackets are optionals. + + workflow: { + [initialStepId]: 'step1', + steps: [ + { + id: 'firstStep', + name: 'First Step', + [toolbar]: { + buttons: firstStepToolbarButtons, + sections: [ + { + key: 'primary', + buttons: [ 'MeasurementTools', 'Zoom', ... ], + }, + ], + }, + [layout]: { + [panels]: { + left: ['firstLeftPanelId', 'secondLeftPanelId'], + right: ['firstRightPanelId'], + }, + }, + [hangingProtocol]: { + protocolId: 'default', + [stepId]: 'firstStep', + }, + }, + { + id: 'secondStep', + name: 'Second Step', + ... + }, + ] + } + + If workflow steps are defined but `initialStepId` is not set then the first + step is set as active during mode initialization. +*/ + +type CommandCallback = { + commandName: string; + options: Record; +}; + +export type WorkflowStep = { + id: string; + name: string; + toolbarButtons?: { + buttonSection: string; + buttons: string[]; + }[]; + hangingProtocol?: { + protocolId: string; + stageId?: string; + }; + layout?: { + panels: { + left?: string[]; + right?: string[]; + }; + }; + onEnter: () => void | CommandCallback[]; +}; + +class WorkflowStepsService extends PubSubService { + private _extensionManager: ExtensionManager; + private _servicesManager: ServicesManager; + private _commandsManager: CommandsManager; + private _workflowSteps: WorkflowStep[]; + private _activeWorkflowStep: WorkflowStep; + + constructor( + extensionManager: ExtensionManager, + commandsManager: CommandsManager, + servicesManager: ServicesManager + ) { + super(EVENTS); + this._workflowSteps = []; + this._activeWorkflowStep = null; + this._extensionManager = extensionManager; + this._commandsManager = commandsManager; + this._servicesManager = servicesManager; + } + + public get workflowSteps(): WorkflowStep[] { + return [...this._workflowSteps]; + } + + public get activeWorkflowStep(): WorkflowStep { + return this._activeWorkflowStep; + } + + public addWorkflowSteps(workflowSteps: WorkflowStep[]): void { + let workflowStepAdded = false; + + workflowSteps.forEach(newWorkflowStep => { + const workflowStepExists = this._workflowSteps.some( + workflowStep => workflowStep.id === newWorkflowStep.id + ); + + if (workflowStepExists) { + throw new Error(`Duplicated workflow step id (${newWorkflowStep.id})`); + } + + this._workflowSteps.push(newWorkflowStep); + workflowStepAdded = true; + }); + + if (workflowStepAdded) { + this._broadcastEvent(EVENTS.STEPS_CHANGED, {}); + } + } + + private _updateToolBar(workflowStep: WorkflowStep) { + const { toolbarService } = this._servicesManager.services; + const { toolbarButtons } = workflowStep; + + const toUse = Array.isArray(toolbarButtons) ? toolbarButtons : [toolbarButtons]; + + toUse.forEach(({ buttonSection, buttons }) => { + toolbarService.createButtonSection(buttonSection, buttons); + }); + } + + private _updatePanels(workflowStep: WorkflowStep) { + const { panelService } = this._servicesManager.services; + const panels = workflowStep?.layout?.panels; + + if (!panels) { + return; + } + + panelService.setPanels(panels, workflowStep?.layout?.options); + } + + private _updateHangingProtocol(workflowStep: WorkflowStep) { + const { hangingProtocol } = workflowStep; + + if (!hangingProtocol) { + return; + } + + this._commandsManager.runCommand('setHangingProtocol', { + protocolId: hangingProtocol.protocolId, + stageId: hangingProtocol.stageId, + stageIndex: hangingProtocol.stageIndex, + }); + } + + private _invokeCallbacks(callbacks) { + if (!callbacks) { + return; + } + + const commandsManager = this._commandsManager; + + if (!Array.isArray) { + callbacks = [callbacks]; + } + + // Invoke all callbacks which may be a function or an object like + // { commandName: string, options?: object } + callbacks.forEach(callback => { + let fn = callback; + + if (callback?.commandName) { + const { commandName, options } = callback; + fn = () => commandsManager.runCommand(commandName, options); + } + + fn(); + }); + } + + public setActiveWorkflowStep(workflowStepId: string): void { + const previousWorkflowStep = this._activeWorkflowStep; + + if (workflowStepId === previousWorkflowStep?.id) { + return; + } + + const newWorkflowStep = this._workflowSteps.find(step => step.id === workflowStepId); + + if (!newWorkflowStep) { + throw new Error(`Invalid workflowStepId (${workflowStepId})`); + } + + // onEnter needs to be called before updating the Hanging Protocol because + // some displaySets need to be created before moving to the next HP stage + // (eg: convert segmentations into a chart displaySet). If needed we can + // change it to onBeforeEnter and onAfterEnter in the future. + this._invokeCallbacks(newWorkflowStep.onEnter); + + this._activeWorkflowStep = newWorkflowStep; + this._updateToolBar(newWorkflowStep); + this._updatePanels(newWorkflowStep); + this._updateHangingProtocol(newWorkflowStep); + this._broadcastEvent(EVENTS.ACTIVE_STEP_CHANGED, { + activeWorkflowStep: newWorkflowStep, + }); + } + + public reset(): void { + this._activeWorkflowStep = null; + this._workflowSteps = []; + } + + public onModeEnter(): void { + this.reset(); + } + + public static REGISTRATION = { + name: 'workflowStepsService', + create: ({ extensionManager, commandsManager, servicesManager }): WorkflowStepsService => { + return new WorkflowStepsService(extensionManager, commandsManager, servicesManager); + }, + }; +} + +export { WorkflowStepsService as default, WorkflowStepsService }; diff --git a/platform/core/src/services/WorkflowStepsService/index.ts b/platform/core/src/services/WorkflowStepsService/index.ts new file mode 100644 index 000000000..39db00b4a --- /dev/null +++ b/platform/core/src/services/WorkflowStepsService/index.ts @@ -0,0 +1,3 @@ +import WorkflowStepsService from './WorkflowStepsService'; + +export default WorkflowStepsService; diff --git a/platform/core/src/services/index.ts b/platform/core/src/services/index.ts index bee9afd54..f8d972057 100644 --- a/platform/core/src/services/index.ts +++ b/platform/core/src/services/index.ts @@ -16,6 +16,7 @@ import UserAuthenticationService from './UserAuthenticationService'; import CustomizationService from './CustomizationService'; import StateSyncService from './StateSyncService'; import PanelService from './PanelService'; +import WorkflowStepsService from './WorkflowStepsService'; import type Services from '../types/Services'; @@ -40,4 +41,5 @@ export { PubSubService, UserAuthenticationService, PanelService, + WorkflowStepsService, }; diff --git a/platform/core/src/types/Services.ts b/platform/core/src/types/Services.ts index bf5d78591..9cedd0ad3 100644 --- a/platform/core/src/types/Services.ts +++ b/platform/core/src/types/Services.ts @@ -8,6 +8,7 @@ import { StateSyncService, UINotificationService, UIModalService, + WorkflowStepsService, } from '../services'; /** @@ -23,6 +24,7 @@ export default interface Services { uiModalService?: UIModalService; uiNotificationService?: UINotificationService; stateSyncService?: StateSyncService; + workflowStepsService: WorkflowStepsService; cineService?: unknown; userAuthenticationService?: unknown; cornerstoneViewportService?: unknown; diff --git a/platform/docs/docs/assets/img/progressDropdown.png b/platform/docs/docs/assets/img/progressDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..263e99ae4ea95c0ee50342e1fb3c69ca4c8da618 GIT binary patch literal 103408 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 literal 0 HcmV?d00001 diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index 8182f0c27..be62938f3 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -145,7 +145,7 @@ if auth headers are used, a preflight request is required. props: { leftPanels: [tracked.thumbnailList], rightPanels: [dicomSeg.panel, tracked.measurements], - rightPanelDefaultClosed: true, + rightPanelClosed: true, viewports: [ { namespace: tracked.viewport, @@ -242,6 +242,19 @@ Example usage:
This configuration would allow the user to build a dicomweb configuration from a GCP healthcare api path e.g. http://localhost:3000/projects/your-gcp-project/locations/us-central1/datasets/your-dataset/dicomStores/your-dicom-store/study/1.3.6.1.4.1.1234.5.2.1.1234.1234.123123123123123123123123123123 +:::note +You can stack multiple panel components on top of each other by providing an array of panel components in the `rightPanels` or `leftPanels` properties. + +For instance we can use + +``` +rightPanels: [[dicomSeg.panel, tracked.measurements], [dicomSeg.panel, tracked.measurements]] +``` + +This will result in two panels, one with `dicomSeg.panel` and `tracked.measurements` and the other with `dicomSeg.panel` and `tracked.measurements` stacked on top of each other. + +::: + ### More on Accept Header Configuration In the previous section we showed that you can modify the `acceptHeader` configuration to request specific dicom transfer syntax. By default diff --git a/platform/docs/docs/platform/extensions/modules/panel.md b/platform/docs/docs/platform/extensions/modules/panel.md index 8704206c1..9a9235cee 100644 --- a/platform/docs/docs/platform/extensions/modules/panel.md +++ b/platform/docs/docs/platform/extensions/modules/panel.md @@ -107,7 +107,7 @@ function modeFactory({ modeConfiguration }) { rightPanels: [ '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements', ], - rightPanelDefaultClosed: true, + rightPanelClosed: true, viewports, }, }; @@ -147,5 +147,17 @@ const mode = { }; export default mode; +``` + +:::note +You can stack multiple panel components on top of each other by providing an array of panel components in the `rightPanels` or `leftPanels` properties. + +For instance we can use ``` +rightPanels: [[dicomSeg.panel, tracked.measurements], [dicomSeg.panel, tracked.measurements]] +``` + +This will result in two panels, one with `dicomSeg.panel` and `tracked.measurements` and the other with `dicomSeg.panel` and `tracked.measurements` stacked on top of each other. + +::: diff --git a/platform/docs/docs/platform/modes/index.md b/platform/docs/docs/platform/modes/index.md index 35678edc7..aded22bd0 100644 --- a/platform/docs/docs/platform/modes/index.md +++ b/platform/docs/docs/platform/modes/index.md @@ -362,7 +362,6 @@ function modeFactory() { // exports ``` -### Toolbar @@ -398,3 +397,17 @@ Use the provided `cli` to add/remove/install/uninstall modes. Read more [here](. ::: The final registration and import of the modes happen inside a non-tracked file `pluginImport.js` (this file is also for internal use only). + + +:::note +You can stack multiple panel components on top of each other by providing an array of panel components in the `rightPanels` or `leftPanels` properties. + +For instance we can use + +``` +rightPanels: [[dicomSeg.panel, tracked.measurements], [dicomSeg.panel, tracked.measurements]] +``` + +This will result in two panels, one with `dicomSeg.panel` and `tracked.measurements` and the other with `dicomSeg.panel` and `tracked.measurements` stacked on top of each other. + +::: diff --git a/platform/docs/docs/platform/modes/routes.md b/platform/docs/docs/platform/modes/routes.md index cc5c722bc..4f4130164 100644 --- a/platform/docs/docs/platform/modes/routes.md +++ b/platform/docs/docs/platform/modes/routes.md @@ -274,6 +274,19 @@ layoutTemplate: ({ location, servicesManager }) => { */ ``` +:::note +You can stack multiple panel components on top of each other by providing an array of panel components in the `rightPanels` or `leftPanels` properties. + +For instance we can use + +``` +rightPanels: [[dicomSeg.panel, tracked.measurements], [dicomSeg.panel, tracked.measurements]] +``` + +This will result in two panels, one with `dicomSeg.panel` and `tracked.measurements` and the other with `dicomSeg.panel` and `tracked.measurements` stacked on top of each other. + +::: + ## FAQ > What is the difference between `onModeEnter` and `route.init` diff --git a/platform/docs/docs/platform/services/data/WorkflowStepService.md b/platform/docs/docs/platform/services/data/WorkflowStepService.md new file mode 100644 index 000000000..7070cade4 --- /dev/null +++ b/platform/docs/docs/platform/services/data/WorkflowStepService.md @@ -0,0 +1,174 @@ +--- +sidebar_position: 9 +sidebar_label: WorkflowStep Service +--- + +# Workflow Step Service + +This service allows you to manage your workflow in smaller steps. It provides a structured way to define and navigate through different stages +or phases of a larger process or workflow. Each step can have its own configuration, layout, toolbar buttons, and other settings tailored to the specific requirements of that stage. + +## Anatomy of a Workflow Step + +The anatomy of a workflow step refers to the different components or properties that define and configure each individual step within the workflow. Each step can be customized with various settings to tailor the user interface, available tools, and behavior of the application for that specific stage of the workflow. Here are the key components that make up a workflow step: + +- `id`: A unique identifier for the step +- `name`: A human-readable name or title for the step, which can be displayed in the user interface to help users understand the current stage of the workflow. +- `hangingProtocol`: The hanging protocol configuration specifies the protocol and stage ID to be used for displaying the images. This ensures that the appropriate data viewports and presentation are used for the current workflow step. +- `layout`: The layout configuration defines the arrangement and visibility of various panels or viewports within the application's user interface for the specific step. This can include specifying which panels should be visible on the left or right side of the screen, as well as any options for panel visibility or behavior. +- `toolbarButtons`: Each step can define a set of toolbar buttons that should be available and displayed in the application's toolbar during that step. Remember the button definitions should already be registered to toolbarService beforehand, here we are just referencing the buttons id in each section. +- `info` : An optional description or additional information about the current workflow step can be provided. which +will be displayed as tooltip in the UI. + +- Step Callbacks or Commands: Some workflow steps may require specific actions or commands to be executed when the step is entered or exited. These callbacks or commands can be defined within the step configuration and can be used to update the application's state, perform data processing, or trigger other relevant actions. For instance you have access to `onEnter` hook to run a command right after the step is entered. + +For instance, a simplified example of our pre-clinical 4D workflow steps configuration might look like this: + +```js +const dynamicVolume = { + sopClassHandler: + "@ohif/extension-cornerstone-dynamic-volume.sopClassHandlerModule.dynamic-volume", + leftPanel: + "@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-volume", + toolBox: + "@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-toolbox", + export: + "@ohif/extension-cornerstone-dynamic-volume.panelModule.dynamic-export", +} + +const cs3d = { + segmentation: + "@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation", +} + + + +const steps = [ + { + id: "dataPreparation", + name: "Data Preparation", + layout: { + panels: { + left: [dynamicVolume.leftPanel], + }, + }, + toolbarButtons: { + buttonSection: "primary", + buttons: ["MeasurementTools", "Zoom", "WindowLevel", "Crosshairs", "Pan"], + }, + hangingProtocol: { + protocolId: "default4D", + stageId: "dataPreparation", + }, + info: "In the Data Preparation step...", + }, + { + id: "roiQuantification", + name: "ROI Quantification", + layout: { + panels: { + left: [dynamicVolume.leftPanel], + right: [ + [dynamicVolume.toolBox, cs3d.segmentation, dynamicVolume.export], + ], + }, + options: { + leftPanelClosed: false, + rightPanelClosed: false, + }, + }, + toolbarButtons: [ + { + buttonSection: "primary", + buttons: [ + "MeasurementTools", + "Zoom", + "WindowLevel", + "Crosshairs", + "Pan", + ], + }, + { + buttonSection: "dynamic-toolbox", + buttons: ["BrushTools", "RectangleROIStartEndThreshold"], + }, + ], + hangingProtocol: { + protocolId: "default4D", + stageId: "roiQuantification", + }, + info: "The ROI quantification step ...", + }, + { + id: "kineticAnalysis", + name: "Kinetic Analysis", + layout: { + panels: { + left: [dynamicVolume.leftPanel], + right: [], + }, + }, + toolbarButtons: { + buttonSection: "primary", + buttons: ["MeasurementTools", "Zoom", "WindowLevel", "Crosshairs", "Pan"], + }, + hangingProtocol: { + protocolId: "default4D", + stageId: "kineticAnalysis", + }, + onEnter: [ + { + commandName: "updateSegmentationsChartDisplaySet", + options: { servicesManager }, + }, + ], + info: "The Kinetic Analysis step ...", + }, +] + +``` + +## Integration + +After you have defined your workflow steps, you can integrate them into your application by using the `workflowStepsService`. + +These steps should be called on `onSetupRouteComplete` in your mode factory. + + +Note: onModeEnter is too soon to call these steps as the mode is not yet fully initialized. + + +```js +onSetupRouteComplete: ({ servicesManager }) => { + workflowStepsService.addWorkflowSteps(workflowSettings.steps); + workflowStepsService.setActiveWorkflowStep(workflowSettings.steps[0].id); +}, +``` + +check out the `modes/preclinical-4d/src/index.tsx` for a complete example. + + +## User Interface + +We have developed a simple dropdown UI element that you can use to navigate between the different steps of your workflow. This dropdown can be added to the toolbar like below: + +```js +toolbarService.addButtons([ + { + id: 'ProgressDropdown', + uiType: 'ohif.progressDropdown', + }, +]) +toolbarService.createButtonSection('secondary', ['ProgressDropdown']); +``` + +It will appear in the `secondary` location in the toolbar. + +![alt text](../../../assets/img/progressDropdown.png) + +:::note +if you like to place the progressbar in a different location, you can use the Toolbox component +to create a button section and place the progress bar there. + +Read more in the [Toolbar module](../../extensions//modules/toolbar.md) +::: diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 6e9843ebf..ce16ce187 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -996,7 +996,9 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline **Note:** Version bump only for package @ohif/ui +# [3.7.0-beta.69](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.68...v3.7.0-beta.69) (2023-09-11) +**Note:** Version bump only for package @ohif/ui @@ -1037,6 +1039,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline **Note:** Version bump only for package @ohif/ui +**Note:** Version bump only for package @ohif/ui @@ -1044,9 +1047,11 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline **Note:** Version bump only for package @ohif/ui +# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01) +* **grid:** remove viewportIndex and only rely on viewportId ([#3591](https://github.com/OHIF/Viewers/issues/3591)) ([4c6ff87](https://github.com/OHIF/Viewers/commit/4c6ff873e887cc30ffc09223f5cb99e5f94c9cdd)) # [3.7.0-beta.66](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.65...v3.7.0-beta.66) (2023-09-06) @@ -1054,49 +1059,64 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline - - -# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06) - - -### Features - -* **ImageOverlayViewerTool:** add ImageOverlayViewer tool that can render image overlay (pixel overlay) of the DICOM images ([#3163](https://github.com/OHIF/Viewers/issues/3163)) ([69115da](https://github.com/OHIF/Viewers/commit/69115da06d2d437b57e66608b435bb0bc919a90f)) - - - - - -# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05) - -**Note:** Version bump only for package @ohif/ui - - - - - -# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01) - - -### Features - -* **grid:** remove viewportIndex and only rely on viewportId ([#3591](https://github.com/OHIF/Viewers/issues/3591)) ([4c6ff87](https://github.com/OHIF/Viewers/commit/4c6ff873e887cc30ffc09223f5cb99e5f94c9cdd)) - - - - - # Change Log All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30) +# [3.7.0-beta.65](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.64...v3.7.0-beta.65) (2023-09-06) **Note:** Version bump only for package @ohif/ui # [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29) +* **ImageOverlayViewerTool:** add ImageOverlayViewer tool that can render image overlay (pixel overlay) of the DICOM images ([#3163](https://github.com/OHIF/Viewers/issues/3163)) ([69115da](https://github.com/OHIF/Viewers/commit/69115da06d2d437b57e66608b435bb0bc919a90f)) + +# [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29) + +**Note:** Version bump only for package @ohif/ui + +# [3.7.0-beta.59](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.58...v3.7.0-beta.59) (2023-08-29) + +**Note:** Version bump only for package @ohif/ui + +# [3.7.0-beta.64](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.63...v3.7.0-beta.64) (2023-09-05) + +**Note:** Version bump only for package @ohif/ui + + + +**Note:** Version bump only for package @ohif/ui + +## [1.4.4](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.4.3...@ohif/ui@1.4.4) (2020-05-04) + +# [3.7.0-beta.63](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.62...v3.7.0-beta.63) (2023-09-01) + +- 🐛 Proper error handling for derived display sets + ([#1708](https://github.com/OHIF/Viewers/issues/1708)) + ([5b20d8f](https://github.com/OHIF/Viewers/commit/5b20d8f323e4b3ef9988f2f2ab672d697b6da409)) + +### Features + +* **grid:** remove viewportIndex and only rely on viewportId ([#3591](https://github.com/OHIF/Viewers/issues/3591)) ([4c6ff87](https://github.com/OHIF/Viewers/commit/4c6ff873e887cc30ffc09223f5cb99e5f94c9cdd)) + + + +## [1.4.2](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.4.1...@ohif/ui@1.4.2) (2020-04-06) + +**Note:** Version bump only for package @ohif/ui + +# Change Log + +All notable changes to this project will be documented in this file. See +[Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [3.7.0-beta.62](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.61...v3.7.0-beta.62) (2023-08-30) + +# [1.4.0](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.3.3...@ohif/ui@1.4.0) (2020-03-13) + +# [3.7.0-beta.61](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.60...v3.7.0-beta.61) (2023-08-29) + **Note:** Version bump only for package @ohif/ui # [3.7.0-beta.60](https://github.com/OHIF/Viewers/compare/v3.7.0-beta.59...v3.7.0-beta.60) (2023-08-29) @@ -1139,7 +1159,9 @@ All notable changes to this project will be documented in this file. See ## [1.4.2](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.4.1...@ohif/ui@1.4.2) (2020-04-06) -**Note:** Version bump only for package @ohif/ui +- Combined Hotkeys for special characters + ([#1233](https://github.com/OHIF/Viewers/issues/1233)) + ([2f30e7a](https://github.com/OHIF/Viewers/commit/2f30e7a821a238144c49c56f37d8e5565540b4bd)) ## [1.4.1](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.4.0...@ohif/ui@1.4.1) (2020-03-17) diff --git a/platform/ui/package.json b/platform/ui/package.json index efe72cdcf..d6845eafd 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -36,6 +36,13 @@ "@testing-library/react-hooks": "^3.2.1", "browser-detect": "^0.2.28", "classnames": "^2.3.2", + "d3-array": "3", + "d3-axis": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-zoom": "3", "lodash.debounce": "4.0.8", "moment": "2.29.4", "mousetrap": "^1.6.5", @@ -57,14 +64,14 @@ }, "devDependencies": { "@babel/core": "^7.23.2", - "@storybook/addon-actions": "^7.2.2", - "@storybook/addon-docs": "^7.2.2", - "@storybook/addon-essentials": "^7.2.2", - "@storybook/addon-links": "^7.2.2", - "@storybook/cli": "^7.2.2", - "@storybook/react": "^7.2.2", - "@storybook/react-webpack5": "^7.2.2", - "@storybook/source-loader": "^7.2.2", + "@storybook/addon-actions": "^7.6.10", + "@storybook/addon-docs": "^7.6.10", + "@storybook/addon-essentials": "^7.6.10", + "@storybook/addon-links": "^7.6.10", + "@storybook/cli": "^7.6.10", + "@storybook/react": "^7.6.10", + "@storybook/react-webpack5": "^7.6.10", + "@storybook/source-loader": "^7.6.10", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.2", "dotenv-webpack": "^8.0.1", @@ -72,7 +79,7 @@ "postcss-loader": "^7.2.4", "prop-types": "^15.8.1", "remark-gfm": "^3.0.1", - "storybook": "^7.2.2", + "storybook": "^7.6.10", "tailwindcss": "3.2.4" } } diff --git a/platform/ui/src/assets/icons/arrow-right.svg b/platform/ui/src/assets/icons/arrow-right.svg new file mode 100644 index 000000000..307f8ffdf --- /dev/null +++ b/platform/ui/src/assets/icons/arrow-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/ui/src/assets/icons/tool-brush.svg b/platform/ui/src/assets/icons/tool-brush.svg new file mode 100644 index 000000000..b00be0fe5 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-brush.svg @@ -0,0 +1,22 @@ + + + + + diff --git a/platform/ui/src/assets/icons/tool-eraser.svg b/platform/ui/src/assets/icons/tool-eraser.svg new file mode 100644 index 000000000..4c81a34a5 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-eraser.svg @@ -0,0 +1,21 @@ + + + + + + + diff --git a/platform/ui/src/assets/icons/tool-paint-fill.svg b/platform/ui/src/assets/icons/tool-paint-fill.svg new file mode 100644 index 000000000..4e671c2b9 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-paint-fill.svg @@ -0,0 +1,12 @@ + + + + + diff --git a/platform/ui/src/assets/icons/tool-scissor-circle.svg b/platform/ui/src/assets/icons/tool-scissor-circle.svg new file mode 100644 index 000000000..58b996572 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-scissor-circle.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/platform/ui/src/assets/icons/tool-scissor-rect.svg b/platform/ui/src/assets/icons/tool-scissor-rect.svg new file mode 100644 index 000000000..b8b449878 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-scissor-rect.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + diff --git a/platform/ui/src/components/ActionButtons/ActionButtons.tsx b/platform/ui/src/components/ActionButtons/ActionButtons.tsx new file mode 100644 index 000000000..ae58b985b --- /dev/null +++ b/platform/ui/src/components/ActionButtons/ActionButtons.tsx @@ -0,0 +1,40 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { Button, ButtonEnums } from '../../components'; + +function ActionButtons({ actions, disabled, t }) { + return ( + + {actions.map((action, index) => ( + + ))} + + ); +} + +ActionButtons.propTypes = { + actions: PropTypes.arrayOf( + PropTypes.shape({ + label: PropTypes.string.isRequired, + onClick: PropTypes.func.isRequired, + disabled: PropTypes.bool, + }) + ).isRequired, + disabled: PropTypes.bool, +}; + +ActionButtons.defaultProps = { + disabled: false, +}; + +export default ActionButtons; diff --git a/platform/ui/src/components/ActionButtons/index.ts b/platform/ui/src/components/ActionButtons/index.ts new file mode 100644 index 000000000..d3cc681b9 --- /dev/null +++ b/platform/ui/src/components/ActionButtons/index.ts @@ -0,0 +1,3 @@ +import ActionButtons from './ActionButtons'; + +export default ActionButtons; diff --git a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx index 916b72ad0..a8f89d249 100644 --- a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx +++ b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx @@ -9,6 +9,7 @@ const ButtonGroup = ({ orientation = ButtonEnums.orientation.horizontal, activeIndex: defaultActiveIndex = 0, onActiveIndexChange, + separated = false, disabled = false, }) => { const [activeIndex, setActiveIndex] = useState(defaultActiveIndex); @@ -28,33 +29,62 @@ const ButtonGroup = ({ }; const wrapperClasses = classnames( - 'items-stretch inline-flex', + `${separated ? '' : 'inline-flex'}`, orientationClasses[orientation], className ); return ( -
- {Children.map(children, (child, index) => { - if (React.isValidElement(child)) { - return cloneElement(child, { - key: index, - className: classnames( - 'rounded-[4px] px-2 py-1 text-center', - index === activeIndex - ? 'bg-customblue-40 text-white' - : 'text-primary-active bg-black', - child.props.className, - disabled ? 'ohif-disabled' : '' - ), - onClick: e => { - child.props.onClick && child.props.onClick(e); - handleButtonClick(index); - }, - }); - } - return child; +
+ {!separated && + Children.map(children, (child, index) => { + if (React.isValidElement(child)) { + return cloneElement(child, { + key: index, + className: classnames( + 'rounded-[4px] px-2 py-1', + index === activeIndex + ? 'bg-customblue-40 text-white' + : 'text-primary-active bg-black', + child.props.className, + disabled ? 'ohif-disabled' : '' + ), + onClick: e => { + child.props.onClick && child.props.onClick(e); + handleButtonClick(index); + }, + }); + } + return child; + })} + {separated && ( +
+ {Children.map(children, (child, index) => { + if (React.isValidElement(child)) { + return cloneElement(child, { + key: index, + className: classnames( + 'rounded-[4px] px-2 py-1', + index === activeIndex + ? 'bg-customblue-40 text-white' + : 'text-primary-active bg-black border-secondary-light rounded-[5px] border', + child.props.className, + disabled ? 'ohif-disabled' : '' + ), + onClick: e => { + child.props.onClick && child.props.onClick(e); + handleButtonClick(index); + }, + }); + } + return child; + })} +
+ )}
); }; @@ -66,6 +96,7 @@ ButtonGroup.propTypes = { onActiveIndexChange: PropTypes.func, className: PropTypes.string, disabled: PropTypes.bool, + separated: PropTypes.bool, }; export default ButtonGroup; diff --git a/platform/ui/src/components/CheckBox/CheckBox.tsx b/platform/ui/src/components/CheckBox/CheckBox.tsx index cb787fb34..1767abdec 100644 --- a/platform/ui/src/components/CheckBox/CheckBox.tsx +++ b/platform/ui/src/components/CheckBox/CheckBox.tsx @@ -1,7 +1,6 @@ import React, { useState, useCallback } from 'react'; -import PropTypes, { string } from 'prop-types'; -import Icon from '../Icon'; -import Typography from '../Typography'; +import PropTypes from 'prop-types'; +import { Icon, Typography } from '../../'; /** * REACT CheckBox component diff --git a/platform/ui/src/components/CinePlayer/CinePlayer.tsx b/platform/ui/src/components/CinePlayer/CinePlayer.tsx index 34afa7807..a628754cc 100644 --- a/platform/ui/src/components/CinePlayer/CinePlayer.tsx +++ b/platform/ui/src/components/CinePlayer/CinePlayer.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; import PropTypes from 'prop-types'; import debounce from 'lodash.debounce'; @@ -7,7 +7,6 @@ import Tooltip from '../Tooltip'; import InputRange from '../InputRange'; import './CinePlayer.css'; -import classNames from 'classnames'; export type CinePlayerProps = { className: string; @@ -19,6 +18,12 @@ export type CinePlayerProps = { onFrameRateChange: (value: number) => void; onPlayPauseChange: (value: boolean) => void; onClose: () => void; + updateDynamicInfo?: () => void; + dynamicInfo?: { + timePointIndex: number; + numTimePoints: number; + label?: string; + }; }; const fpsButtonClassNames = @@ -31,12 +36,15 @@ const CinePlayer: React.FC = ({ maxFrameRate, stepFrameRate, frameRate: defaultFrameRate, + dynamicInfo = {}, onFrameRateChange, onPlayPauseChange, onClose, + updateDynamicInfo, }) => { + const isDynamic = !!dynamicInfo?.numTimePoints; const [frameRate, setFrameRate] = useState(defaultFrameRate); - const debouncedSetFrameRate = debounce(onFrameRateChange, 300); + const debouncedSetFrameRate = useCallback(debounce(onFrameRateChange, 100), [onFrameRateChange]); const getPlayPauseIconName = () => (isPlaying ? 'icon-pause' : 'icon-play'); @@ -52,45 +60,92 @@ const CinePlayer: React.FC = ({ setFrameRate(defaultFrameRate); }, [defaultFrameRate]); + const handleTimePointChange = useCallback( + (newIndex: number) => { + if (isDynamic && dynamicInfo) { + // Here, you would update the component's state or context that controls the current time point index + // For demonstration, assuming a hypothetical function that updates the time point index + updateDynamicInfo({ + ...dynamicInfo, + timePointIndex: newIndex, + }); + } + }, + [isDynamic, dynamicInfo] + ); + return ( -
+ {isDynamic && dynamicInfo && ( + )} - > - onPlayPauseChange(!isPlaying)} - /> - +
-
+ onPlayPauseChange(!isPlaying)} + /> + {isDynamic && dynamicInfo && ( +
+ {/* Add Tailwind classes for monospace font and center alignment */} +
+ {dynamicInfo.timePointIndex}{' '} + {`/${dynamicInfo.numTimePoints}`} +
+
{dynamicInfo.label}
+
+ )} + +
handleSetFrameRate(frameRate - 1)} >
-
- {`${frameRate} FPS`} -
+ + } + > +
+
+ {`${frameRate} `} + {' FPS'} +
+
+
+
handleSetFrameRate(frameRate + 1)} @@ -98,12 +153,12 @@ const CinePlayer: React.FC = ({
- - + +
); }; @@ -119,6 +174,8 @@ CinePlayer.defaultProps = { onPlayPauseChange: noop, onFrameRateChange: noop, onClose: noop, + isDynamic: false, + dynamicInfo: {}, }; CinePlayer.propTypes = { @@ -134,6 +191,12 @@ CinePlayer.propTypes = { onPlayPauseChange: PropTypes.func, onFrameRateChange: PropTypes.func, onClose: PropTypes.func, + isDynamic: PropTypes.bool, + dynamicInfo: PropTypes.shape({ + timePointIndex: PropTypes.number, + numTimePoints: PropTypes.number, + label: PropTypes.string, + }), }; export default CinePlayer; diff --git a/platform/ui/src/components/CinePlayer/__stories__/cinePlayer.stories.mdx b/platform/ui/src/components/CinePlayer/__stories__/cinePlayer.stories.mdx new file mode 100644 index 000000000..9f2ea521c --- /dev/null +++ b/platform/ui/src/components/CinePlayer/__stories__/cinePlayer.stories.mdx @@ -0,0 +1,57 @@ +import { CinePlayer } from '../../../components'; +import { ArgsTable, Story, Canvas, Meta } from '@storybook/addon-docs'; + +export const argTypes = { + component: CinePlayer, + title: 'Components/CinePlayer', +}; + + + +export const CinePlayerTemplate = args => ( +
+
+ +
+
+); + + + +- [Overview](#overview) +- [Props](#props) +- [Contribute](#contribute) + +## Overview + +CinePlayer is a component that allows you to use as a boolean value + + + + {CinePlayerTemplate.bind({})} + + + +## Props + + + +## Contribute + +
diff --git a/platform/ui/src/components/Header/Header.tsx b/platform/ui/src/components/Header/Header.tsx index 5d4cd63e9..2ba958b08 100644 --- a/platform/ui/src/components/Header/Header.tsx +++ b/platform/ui/src/components/Header/Header.tsx @@ -20,6 +20,8 @@ function Header({ WhiteLabeling, showPatientInfo = PatientInfoVisibility.VISIBLE_COLLAPSED, servicesManager, + Secondary, + appConfig, ...props }): ReactNode { const { t } = useTranslation('Header'); @@ -58,14 +60,17 @@ function Header({
- {/*
{future left component}
*/} +
{Secondary}
{children}
{(showPatientInfo === PatientInfoVisibility.VISIBLE || showPatientInfo === PatientInfoVisibility.VISIBLE_COLLAPSED) && ( - + )}
diff --git a/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx b/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx index ec665a7a9..21a43f984 100644 --- a/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx +++ b/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx @@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import { Icon } from '@ohif/ui'; import { utils } from '@ohif/core'; -import { useAppConfig } from '@state'; const { formatDate, formatPN } = utils; @@ -70,8 +69,7 @@ function usePatientInfo(servicesManager) { return { patientInfo, isMixedPatients }; } -function HeaderPatientInfo({ servicesManager }) { - const [appConfig] = useAppConfig(); +function HeaderPatientInfo({ servicesManager, appConfig }) { const initialExpandedState = appConfig.showPatientInfo === 'visible'; const [expanded, setExpanded] = useState(initialExpandedState); const { patientInfo, isMixedPatients } = usePatientInfo(servicesManager); diff --git a/platform/ui/src/components/Icon/getIcon.js b/platform/ui/src/components/Icon/getIcon.js index 7bd5c5042..c2edee38d 100644 --- a/platform/ui/src/components/Icon/getIcon.js +++ b/platform/ui/src/components/Icon/getIcon.js @@ -3,6 +3,7 @@ import React from 'react'; import arrowDown from './../../assets/icons/arrow-down.svg'; import arrowLeft from './../../assets/icons/arrow-left.svg'; +import arrowRight from './../../assets/icons/arrow-right.svg'; import arrowLeftSmall from './../../assets/icons/arrow-left-small.svg'; import arrowRightSmall from './../../assets/icons/arrow-right-small.svg'; import calendar from './../../assets/icons/calendar.svg'; @@ -119,6 +120,11 @@ import toolCalibration from './../../assets/icons/tool-calibrate.svg'; import toolFreehand from './../../assets/icons/tool-freehand.svg'; import toolFreehandPolygon from './../../assets/icons/tool-freehand-polygon.svg'; import toolPolygon from './../../assets/icons/tool-polygon.svg'; +import toolBrush from './../../assets/icons/tool-brush.svg'; +import toolEraser from './../../assets/icons/tool-eraser.svg'; +import toolScissorRect from './../../assets/icons/tool-scissor-rect.svg'; +import toolScissorCircle from './../../assets/icons/tool-scissor-circle.svg'; +import toolPaintFill from './../../assets/icons/tool-paint-fill.svg'; import editPatient from './../../assets/icons/edit-patient.svg'; import panelGroupMore from './../../assets/icons/panel-group-more.svg'; import panelGroupOpenClose from './../../assets/icons/panel-group-open-close.svg'; @@ -216,6 +222,7 @@ import investigationalUse from './../../assets/icons/illustration-investigationa const ICONS = { 'arrow-down': arrowDown, 'arrow-left': arrowLeft, + 'arrow-right': arrowRight, 'arrow-left-small': arrowLeftSmall, 'arrow-right-small': arrowRightSmall, calendar: calendar, diff --git a/platform/ui/src/components/InputDoubleRange/InputDoubleRange.tsx b/platform/ui/src/components/InputDoubleRange/InputDoubleRange.tsx index b8aadf26d..d5ea68165 100644 --- a/platform/ui/src/components/InputDoubleRange/InputDoubleRange.tsx +++ b/platform/ui/src/components/InputDoubleRange/InputDoubleRange.tsx @@ -1,4 +1,4 @@ -import React, { useState, useCallback, useEffect, useRef } from 'react'; +import React, { useState, useEffect, useRef } from 'react'; import classNames from 'classnames'; import { InputNumber } from '../../components'; // Import InputNumber component import './InputDoubleRange.css'; @@ -19,6 +19,7 @@ type InputDoubleRangeProps = { trackColor?: string; allowNumberEdit?: boolean; showAdjustmentArrows?: boolean; + allowOutOfRange?: boolean; }; const InputDoubleRange: React.FC = ({ @@ -36,6 +37,7 @@ const InputDoubleRange: React.FC = ({ labelPosition, trackColor, allowNumberEdit, + allowOutOfRange = false, showAdjustmentArrows, }) => { // Set initial thumb positions as percentages @@ -55,7 +57,15 @@ const InputDoubleRange: React.FC = ({ updatedRangeValue[index] = newValues; } - const calculatePercentage = value => ((value - minValue) / (maxValue - minValue)) * 100; + const calculatePercentage = value => { + if (value < minValue) { + return 0; + } + if (value > maxValue) { + return 100; + } + return ((value - minValue) / (maxValue - minValue)) * 100; + }; const newPercentageStart = calculatePercentage(updatedRangeValue[0]); const newPercentageEnd = calculatePercentage(updatedRangeValue[1]); @@ -73,17 +83,22 @@ const InputDoubleRange: React.FC = ({ const LabelOrEditableNumber = (val, index) => { return allowNumberEdit ? ( - { - updateRangeValues(newValue, index); - }} - step={step} - labelClassName="text-white" - showAdjustmentArrows={showAdjustmentArrows} - /> + // the pl-[2px] class is used to align the thumb so that it doesn't + // go over the label when the value is full, not sure what is wrong + // with the implementation, we need to fix it properly +
+ { + updateRangeValues(newValue, index); + }} + step={step} + labelClassName={classNames(labelClassName ?? 'text-white')} + showAdjustmentArrows={showAdjustmentArrows} + /> +
) : ( {val} @@ -138,31 +153,52 @@ const InputDoubleRange: React.FC = ({ const newValue = Math.round(((x / rect.width) * (maxValue - minValue) + minValue) / step) * step; - // Make sure newValue is within [minValue, maxValue] - const clampedValue = Math.min(Math.max(newValue, minValue), maxValue); + if (!allowOutOfRange) { + const clampedValue = Math.min(Math.max(newValue, minValue), maxValue); - // Ensure that left and right thumbs don't switch positions - if (selectedThumbValue === 0 && clampedValue >= rangeValue[1]) { - return; - } - if (selectedThumbValue === 1 && clampedValue <= rangeValue[0]) { - return; + const updatedRangeValue = [...rangeValue]; + updatedRangeValue[selectedThumbValue] = clampedValue; + setRangeValue(updatedRangeValue); + + onChange(updatedRangeValue); + + const percentage = Math.round(((clampedValue - minValue) / (maxValue - minValue)) * 100); + if (selectedThumbValue === 0) { + setPercentageStart(percentage); + } else { + setPercentageEnd(percentage); + } + } else { + const updatedRangeValue = [...rangeValue]; + updatedRangeValue[selectedThumbValue] = newValue; + setRangeValue(updatedRangeValue); + + onChange(updatedRangeValue); + + // Update the thumb position + const percentage = Math.round(((newValue - minValue) / (maxValue - minValue)) * 100); + if (percentage < 0) { + if (selectedThumbValue === 0) { + setPercentageStart(0); + } else { + setPercentageEnd(0); + } + } else if (percentage > 100) { + if (selectedThumbValue === 0) { + setPercentageStart(100); + } else { + setPercentageEnd(100); + } + } else { + if (selectedThumbValue === 0) { + setPercentageStart(percentage); + } else { + setPercentageEnd(percentage); + } + } } // Update the correct values in the rangeValue array - const updatedRangeValue = [...rangeValue]; - updatedRangeValue[selectedThumbValue] = clampedValue; - setRangeValue(updatedRangeValue); - - onChange(updatedRangeValue); - - // Update the thumb position - const percentage = Math.round(((clampedValue - minValue) / (maxValue - minValue)) * 100); - if (selectedThumbValue === 0) { - setPercentageStart(percentage); - } else { - setPercentageEnd(percentage); - } }; // Calculate the range values percentages for gradient background diff --git a/platform/ui/src/components/InputNumber/InputNumber.tsx b/platform/ui/src/components/InputNumber/InputNumber.tsx index b3d9bbec5..bb29b4ca9 100644 --- a/platform/ui/src/components/InputNumber/InputNumber.tsx +++ b/platform/ui/src/components/InputNumber/InputNumber.tsx @@ -5,6 +5,9 @@ import './InputNumber.css'; import Label from '../Label'; import getMaxDigits from '../../utils/getMaxDigits'; +const arrowHorizontalClassName = + 'cursor-pointer text-primary-active active:text-primary-light hover:opacity-70 w-4 flex items-center justify-center'; + /** * React Number Input component' * it has two props, value and onChange @@ -16,6 +19,7 @@ import getMaxDigits from '../../utils/getMaxDigits'; const sizesClasses = { sm: 'w-[45px] h-[28px]', + md: 'w-[58px] h-[28px]', lg: 'w-[206px] h-[35px]', }; @@ -25,11 +29,16 @@ const InputNumber: React.FC<{ minValue?: number; maxValue?: number; step?: number; - size?: 'sm' | 'lg'; + size?: 'sm' | 'lg' | 'md'; className?: string; labelClassName?: string; label?: string; showAdjustmentArrows?: boolean; + arrowsDirection: 'vertical' | 'horizontal'; + labelPosition?: 'left' | 'bottom' | 'right' | 'top'; + inputClassName?: string; + sizeClassName?: string; + inputContainerClassName?: string; }> = ({ value, onChange, @@ -38,19 +47,24 @@ const InputNumber: React.FC<{ size = 'sm', minValue = 0, maxValue = 100, - labelClassName, + labelClassName = 'text-aqua-pale text-[11px] mx-auto', label, showAdjustmentArrows = true, + arrowsDirection = 'vertical', + labelPosition = 'left', + inputClassName = 'text-white bg-primary-dark text-[14px]', + sizeClassName, + inputContainerClassName = 'bg-primary-dark border-secondary-light border rounded-[4px]', }) => { const [numberValue, setNumberValue] = useState(value); const [isFocused, setIsFocused] = useState(false); const maxDigits = getMaxDigits(maxValue, step); const inputWidth = Math.max(maxDigits * 10, showAdjustmentArrows ? 20 : 28); - const arrowWidth = showAdjustmentArrows ? 20 : 0; - const containerWidth = `${inputWidth + arrowWidth}px`; const decimalPlaces = Number.isInteger(step) ? 0 : step.toString().split('.')[1].length; + const sizeToUse = sizeClassName ? sizeClassName : sizesClasses[size]; + useEffect(() => { setNumberValue(value); }, [value]); @@ -95,21 +109,31 @@ const InputNumber: React.FC<{ const increment = () => updateValue(parseFloat(numberValue) + step); const decrement = () => updateValue(parseFloat(numberValue) - step); + const labelElement = label && ( +
- {label && ( -
+ {label && labelPosition === 'left' && labelElement} + {label && labelPosition === 'top' && labelElement}
-
+
+ {showAdjustmentArrows && arrowsDirection === 'horizontal' && ( +
decrement()} + > + +
+ )} - {showAdjustmentArrows && ( -
+ {showAdjustmentArrows && arrowsDirection === 'horizontal' && ( +
increment()} + > + +
+ )} + {showAdjustmentArrows && arrowsDirection === 'vertical' && ( +
+ {label && labelPosition === 'right' && labelElement} + {label && labelPosition === 'bottom' && labelElement}
); }; diff --git a/platform/ui/src/components/InputRange/InputRange.css b/platform/ui/src/components/InputRange/InputRange.css index 8e1df7a58..7c7e6c51a 100644 --- a/platform/ui/src/components/InputRange/InputRange.css +++ b/platform/ui/src/components/InputRange/InputRange.css @@ -4,17 +4,21 @@ input[type='range'] { input[type='range']::-webkit-slider-thumb { -webkit-appearance: none; - @apply border-primary-dark bg-primary-light border-[2px] border-solid; height: 13px; width: 13px; border-radius: 50%; + background-color: var(--thumb-inner-color); + border: 2px solid var(--thumb-outer-color); + cursor: pointer; } input[type='range']::-moz-range-thumb { - @apply border-primary-dark bg-primary-light border-[2px] border-solid; height: 13px; width: 13px; border-radius: 50%; + background-color: var(--thumb-inner-color); + border: 2px solid var(--thumb-outer-color); + cursor: pointer; } input[type='range']::-webkit-slider-runnable-track { @@ -31,3 +35,11 @@ input[type='range']::-moz-range-track { left: 0; right: 0; } + +input[type='range']::-webkit-slider-thumb { + pointer-events: all; +} + +input[type='range']::-moz-range-thumb { + pointer-events: all; +} diff --git a/platform/ui/src/components/InputRange/InputRange.tsx b/platform/ui/src/components/InputRange/InputRange.tsx index 4ae168712..bba2ba77f 100644 --- a/platform/ui/src/components/InputRange/InputRange.tsx +++ b/platform/ui/src/components/InputRange/InputRange.tsx @@ -10,7 +10,6 @@ import getMaxDigits from '../../utils/getMaxDigits'; * value is a number value * onChange is a function that will be called when the range input is changed * - * */ type Label = { @@ -31,9 +30,13 @@ type InputRangeProps = { labelVariant?: string; showLabel?: boolean; labelPosition?: string; - trackColor?: string; + leftColor?: string; + rightColor?: string; + thumbColor?: string; + thumbColorOuter?: string; allowNumberEdit?: boolean; showAdjustmentArrows?: boolean; + trackHeight?: string; labels?: Label[]; }; @@ -47,16 +50,18 @@ const InputRange: React.FC = ({ containerClassName, inputClassName, labelClassName, - labelVariant, showLabel = true, labelPosition = 'right', - trackColor, + leftColor = '#5acce6', + rightColor = '#3a3f99', + thumbColor = '#5acce6', + thumbColorOuter = '#090c29', + trackHeight = '3px', allowNumberEdit = false, showAdjustmentArrows = true, labels = [], }) => { const [rangeValue, setRangeValue] = useState(value); - const maxDigits = getMaxDigits(maxValue, step); const labelWidth = `${maxDigits * 10}px`; @@ -88,8 +93,7 @@ const InputRange: React.FC = ({ /> ) : ( - {rangeValue} - {unit} + {rangeValue.toFixed(maxDigits)} {unit} ); @@ -101,19 +105,21 @@ const InputRange: React.FC = ({ e.preventDefault(); }} > -
+
{showLabel && labelPosition === 'left' && (
{LabelOrEditableNumber}
)} -
classNames(baseClasses.Content, isExpanded ? 'block' : 'hidden'), }; -const SplitButton = ({ +const LegacySplitButton = ({ groupId, primary, secondary, @@ -103,7 +103,7 @@ const SplitButton = ({ disabled={!state.isExpanded} >
{ + const chartContainerRef = useRef(null); + const [d3SVGContainer, setD3SVGRef] = useState(null); + const [width, setWidth] = useState(0); + const [height, setHeight] = useState(0); + + useLayoutEffect(() => { + const chartContainer = chartContainerRef.current; + const containerWidth = chartContainer.offsetWidth; + const containerHeight = chartContainer.offsetHeight; + const d3Container = d3Selection + .create('svg') + .attr('viewBox', [0, 0, containerWidth, containerHeight]) + .style('max-width', `${containerWidth}px`) + .style('overflow', 'visible'); + + chartContainer.append(d3Container.node()); + + setD3SVGRef(d3Container); + setWidth(containerWidth); + setHeight(containerHeight); + }, [chartContainerRef]); + + useEffect(() => { + if (!d3SVGContainer) { + return; + } + + lineChart.addLineChartNode({ + d3SVGRef: d3SVGContainer, + axis, + series, + width, + height, + showAxisLabels, + showAxisGrid, + showLegend, + legendWidth, + transparentChartBackground, + }); + }, [ + d3SVGContainer, + axis, + series, + width, + height, + showAxisLabels, + showAxisGrid, + transparentChartBackground, + showLegend, + legendWidth, + ]); + + return ( +
+
+
+ ); +}; + +LineChart.defaultProps = { + showAxisLabels: true, + showAxisGrid: true, + showLegend: false, + legendWidth: 120, + transparentChartBackground: false, +}; + +LineChart.propTypes = { + title: PropTypes.string, + width: PropTypes.number, + height: PropTypes.number, + showAxisLabels: PropTypes.bool, + showAxisGrid: PropTypes.bool, + showLegend: PropTypes.bool, + legendWidth: PropTypes.number, + transparentChartBackground: PropTypes.bool, + containerClassName: PropTypes.string, + chartContainerClassName: PropTypes.string, +}; + +export default LineChart; diff --git a/platform/ui/src/components/LineChart/__stories__/lineChart.stories.mdx b/platform/ui/src/components/LineChart/__stories__/lineChart.stories.mdx new file mode 100644 index 000000000..7397d48f8 --- /dev/null +++ b/platform/ui/src/components/LineChart/__stories__/lineChart.stories.mdx @@ -0,0 +1,181 @@ +import LineChart from '../LineChart'; + +import { ArgsTable, Story, Canvas, Meta } from '@storybook/addon-docs'; +import { createComponentTemplate } from '../../../storybook/functions/create-component-story'; + +export const argTypes = { + component: LineChart, + title: 'Components/LineChart', +}; + + + +export const LineChartTemplate = args => ( +
+ +
+); + + + +- [Overview](#overview) +- [Props](#props) +- [Contribute](#contribute) + +## Overview + +LineChart is a component that... + + + + {LineChartTemplate.bind({})} + + + +## Props + + + +## Usage + +## Contribute + +
diff --git a/platform/ui/src/components/LineChart/d3LineChart/chart.ts b/platform/ui/src/components/LineChart/d3LineChart/chart.ts new file mode 100644 index 000000000..a8757ffb6 --- /dev/null +++ b/platform/ui/src/components/LineChart/d3LineChart/chart.ts @@ -0,0 +1,365 @@ +/** + * It adds attributes to root element from passed attributes list + * + * @param {object} root svg element to be changed + * @param {object} attributes list of attributes to be added on root element + * @modifies {root} + * + */ +const _addAttributes = (root, attributes = []) => { + for (const attr of attributes) { + const { key, value } = attr; + + if (key && value) { + if (key === 'class') { + root.classed(value, true); + } else { + root.attr(key, value); + } + } + } +}; + +/** + * It formats axis labels. It adds units if existing + * + * @param {Object} def + * @param {string} def.label string representing axis label + * @param {string} [def.unit] string representing axis unit + * @return {string} formatted label + */ +const _formatAxisLabel = ({ label, unit }) => { + let formattedLabel = label; + + if (unit) { + formattedLabel += `(${unit})`; + } + + return formattedLabel; +}; + +/** + * It appends chart svg element container to root element + * + * @param {object} root svg element to be changed + * @param {number} width width of container + * @param {number} height height of container + * @param {number} translateX value to translate on axis x + * @param {number} translateY value to translate on axis y + * @modifies {root} + * + * @return {object} appended chart container (svg element) + */ +const _addChartContainer = (root, width, height, translateX, translateY) => { + root.append('rect').attr('class', 'background').attr('width', width).attr('height', height); + + return root + .append('g') + .attr('width', width) + .attr('height', height) + .append('g') + .attr('transform', 'translate(' + translateX + ',' + translateY + ')'); +}; + +const _addLegend = (root, width, height, posX, posY) => { + const legendContainer = root + .append('g') + .attr('class', 'legend') + .attr('transform', 'translate(' + posX + ',' + posY + ')'); + + legendContainer + .append('rect') + .attr('class', 'legend-background') + .attr('width', width) + .attr('height', height); + + return legendContainer; +}; + +const _setLegendLabels = (root, labels, colors, itemHeight, itemWidth, textEllipses) => { + const yOffset = itemHeight / 2; + const textLeft = 20; + + // Add one dot in the legend for each + root + .selectAll('labelDots') + .data(labels) + .enter() + .append('circle') + .attr('cx', 10) + .attr('cy', (_d, i) => yOffset + i * itemHeight) + .attr('r', 5) + .style('fill', (_d, i) => colors[i]); + + root + .selectAll('labelText') + .data(labels) + .enter() + .append('text') + .attr('x', textLeft) + .attr('y', (_d, i) => yOffset + i * itemHeight) + .style('fill', (_d, i) => colors[i]) + .append('tspan') + .style('alignment-baseline', 'middle') + .text(d => d) + .each(textEllipses(itemWidth - textLeft, 1)); +}; + +/** + * It appends axis svg element to root element + * + * @param {object} root svg element to be changed + * @param {TimecoursePointDef} axisDef definition of given axis + * @param {number} posX position X to place content + * @param {number} posY position Y to place content + * @param {number} axisExtraAttrs list of extra attributes to be added on content + * @param {function} axisBuilder callback function to create axis graphics + * @param {boolean} showAxisLabels flag to display labels or not + * @param {number} labelPosX position X to place label content + * @param {number} labelPosY position Y to place label content + * @param {object} labelExtraAttrs list of extra attributes to be added on label content + * @modifies {root} + * + * @return {object} axis svg element + */ +const _addAxis = ( + root, + axisDef, + posX = 0, + posY = 0, + axisExtraAttrs = [], + axisBuilder, + showAxisLabels, + labelPosX, + labelPosY, + labelExtraAttrs = [], + showAxisGrid +) => { + const { type } = axisDef; + const showAxisGridClass = showAxisGrid ? 'grid' : ''; + const translateValue = `${posX}, ${posY}`; + const axisContent = root + .append('g') + .attr('class', `${type} ${showAxisGridClass} axis`) + .attr('transform', `translate(${translateValue})`); + + _addAttributes(axisContent, axisExtraAttrs); + axisContent.call(axisBuilder()); + + if (showAxisLabels) { + const label = _formatAxisLabel(axisDef); + // text label for the x axis + if (label) { + const labelContent = root + .append('text') + .attr('class', 'label axis') + .attr('x', labelPosX) + .attr('y', labelPosY) + .style('text-anchor', 'middle') + .text(label); + + _addAttributes(labelContent, labelExtraAttrs); + } + } + + return axisContent; +}; + +/** + * It scales axis graphics + * + * @param {object} sourceGraphicsXAxis original d3 graphics to be proccessed (x Axis) + * @param {object} sourceGraphicsYAxis original d3 graphics to be proccessed (y Axis) + * @param {object} xAxisGenerator d3 X axis generator + * @param {object} yAxisGenerator d3 Y axis generator + * @param {object} newXAxisScale d3 continuos scale for X Axis + * @param {object} newYAxisScale d3 continuos scale for Y Axis + * @modifies {sourceGraphicsXAxis|sourceGraphicsYAxis} + */ +const _scaleAxisGraphics = ( + sourceGraphicsXAxis, + sourceGraphicsYAxis, + xAxisGenerator, + yAxisGenerator, + newXAxisScale, + newYAxisScale +) => { + const newXAxis = xAxisGenerator.scale(newXAxisScale); + const newYAxis = yAxisGenerator.scale(newYAxisScale); + + sourceGraphicsXAxis.call(newXAxis); + sourceGraphicsYAxis.call(newYAxis); +}; + +/** + * It appends background svg element to root element and also a clip path for chart boundaries + * + * @param {object} root svg element to be changed + * @param {number} width content`s width + * @param {number} height content`s height + * @param {boolean} transparent background to be transparent or not + * @param {number} offset content`s clip offset + * @modifies {root} + * + */ +const _addChartClipPath = (root, width, height, transparent = false, offset = 6) => { + const translateOffset = -offset / 2; + root + .append('clipPath') + .attr('id', 'clip') + .append('rect') + .attr('transform', `translate(${translateOffset}, ${translateOffset})`) + .attr('width', width + offset) + .attr('height', height + offset); + + root + .append('rect') + .attr('class', 'background') + .attr('width', width) + .attr('height', height) + .classed('transparent', transparent); +}; + +const _addSeries = (root, seriesIndex, style) => { + return root + .append('g') + .attr('id', `series_${seriesIndex}`) + .attr('class', 'series') + .attr('stroke', style.color || '#ffffff'); +}; + +/** + * It appends line chart svg element to root element + * + * @param {object} root svg element to be changed + * @param {object} dataset dataset to tie to content + * @param {string} dAttrValue path d attribute + * @modifies {root} + * + * @return {object} svg line element line + */ +const _addLine = (root, dataset, dAttrValue) => { + return root + .append('path') + .attr('clip-path', 'url(#clip)') + .datum(dataset) + .attr('class', 'line') + .attr('d', dAttrValue); +}; + +/** + * It updates line chart svg element with new dataset and dAttrValue value + * + * @param {object} root svg element to be changed + * @param {object} dataset dataset to tie to content + * @param {string} dAttrValue path d attribute + * @modifies {root} + * + */ +const _updateLine = (root, dataset = [], dAttrValue) => { + const line = root.select('.line'); + + if (dataset && dataset.length > 0) { + line.datum(dataset); + } + + line.attr('d', dAttrValue); +}; + +/** + * It appends points svg element to root element + * + * @param {object} root svg element to be changed + * @param {object} dataset dataset to tie to content + * @param {number} cxAttrValue cx attribute + * @param {number} cyAttrValue cy attribute + * @modifies {root} + * + * @return {object} points svg element + * + */ +const _addPoints = (root, dataset, cxAttrValue, cyAttrValue) => { + return root + .selectAll('.dot') + .data(dataset) + .enter() + .append('circle') + .attr('id', (point, index) => { + return `point-${index}`; + }) + .attr('class', 'dot') + .attr('clip-path', 'url(#clip)') + .attr('cx', cxAttrValue) + .attr('cy', cyAttrValue) + .attr('r', 2); +}; + +/** + * It return points from root parent + * + * @param {object} root svg element to be changed + * @return {object} points svg element + * + */ +const _getPoints = root => { + return root.selectAll('.dot'); +}; + +/** + * It updates points svg element with new dataset, cxAttrValue and cyAttrValue + * + * @param {object} root svg element to be changed + * @param {object} dataset dataset to tie to content + * @param {number} cxAttrValue cx attribute + * @param {number} cyAttrValue cy attribute + * @modifies {root} + * + */ +const _updatePoints = (root, dataset = [], cxAttrValue, cyAttrValue) => { + const dot = root.selectAll('.dot'); + + dot.data(dataset).attr('cx', cxAttrValue).attr('cy', cyAttrValue); +}; + +/** + * It removes children nodes from root param. + * + * @param {object} root svg element to remove children content + * @modifies {root} + * + */ +const _removeChartContents = root => { + root.selectAll('*').remove(); +}; + +const chart = { + axis: { + addNode: _addAxis, + scaleGraphics: _scaleAxisGraphics, + }, + series: { + addNode: _addSeries, + }, + lines: { + addNode: _addLine, + updateNode: _updateLine, + }, + points: { + addNode: _addPoints, + updateNode: _updatePoints, + getPoints: _getPoints, + }, + background: { + addNode: _addChartClipPath, + }, + container: { + addNode: _addChartContainer, + }, + legend: { + addNode: _addLegend, + setLabels: _setLegendLabels, + }, + removeContents: _removeChartContents, +}; + +export default chart; diff --git a/platform/ui/src/components/LineChart/d3LineChart/events.ts b/platform/ui/src/components/LineChart/d3LineChart/events.ts new file mode 100644 index 000000000..b4a01b032 --- /dev/null +++ b/platform/ui/src/components/LineChart/d3LineChart/events.ts @@ -0,0 +1,149 @@ +import * as d3Shape from 'd3-shape'; +import * as d3Zoom from 'd3-zoom'; + +import chart from './chart'; + +const d3ZoomNativeEvents = [ + 'wheel.zoom', + 'mousedown.zoom', + 'dblclick.zoom', + 'touchstart.zoom', + 'touchmove.zoom', + 'touchend.zoom touchcancel.zoom', +]; +/** + * Object to override native zoom events. + * It defines a specific callback for a event name. + * + * @type {Object} zoomEvents + */ +const zoomEvents = { + 'dblclick.zoom': (root, zoom) => { + _resetZoom(root, zoom); + }, +}; + +/** + * It resets given root + * + * @param {object} root svg element to be reset + * @param {object} zoom d3 zoom object + * + * @modifies {root} + */ +const _resetZoom = (root, zoom) => { + if (root) { + root.transition().duration(750).call(zoom.transform, d3Zoom.zoomIdentity); + } +}; + +const DEFAULT_MAX_ZOOM_SCALE = 20; + +const _zoom = d3Zoom.zoom().scaleExtent([1, DEFAULT_MAX_ZOOM_SCALE]); + +const _bindZoom = ( + root, + gX, + gY, + xAxisScale, + yAxisScale, + xAxisGenerator, + yAxisGenerator, + parseXPoint, + parseYPoint, + datasets +) => { + _zoom.on('zoom', _zoomListener); // .filter(zoomEventsFilter); + + _removeListeners(); + _setListeners(); + + function _removeListeners() { + for (const eventName of d3ZoomNativeEvents) { + root.on(eventName, null); + } + } + + function _setListeners() { + const keys = Object.keys(zoomEvents); + + for (const key of keys) { + root.call(_zoom).on(key, zoomEvents[key].bind(undefined, root, _zoom)); + } + } + + function _zoomListener(event) { + const transformedXAxisScale = event.transform.rescaleX(xAxisScale); + const transformedYAxisScale = event.transform.rescaleY(yAxisScale); + + chart.axis.scaleGraphics( + gX, + gY, + xAxisGenerator, + yAxisGenerator, + transformedXAxisScale, + transformedYAxisScale + ); + + datasets.forEach((dataset, seriesIndex) => { + const seriesContainer = root.select(`#series_${seriesIndex}`); + // create line + const line = d3Shape + .line() + .x(parseXPoint(transformedXAxisScale)) + .y(parseYPoint(transformedYAxisScale)); + + chart.lines.updateNode(seriesContainer, dataset, line); + + chart.points.updateNode( + seriesContainer, + dataset, + parseXPoint(transformedXAxisScale), + parseYPoint(transformedYAxisScale) + ); + }); + } + + return _zoom; +}; + +const bindMouseEvents = ( + root, + gX, + gY, + xAxisScale, + yAxisScale, + xAxisGenerator, + yAxisGenerator, + parseXPoint, + parseYPoint, + datasets +) => { + if (!root) { + return; + } + + _bindZoom( + root, + gX, + gY, + xAxisScale, + yAxisScale, + xAxisGenerator, + yAxisGenerator, + parseXPoint, + parseYPoint, + datasets + ); +}; + +const events = { + bindMouseEvents, + external: { + resetZoom: root => { + _resetZoom(root, _zoom); + }, + }, +}; + +export default events; diff --git a/platform/ui/src/components/LineChart/d3LineChart/index.ts b/platform/ui/src/components/LineChart/d3LineChart/index.ts new file mode 100644 index 000000000..8cbc2f80f --- /dev/null +++ b/platform/ui/src/components/LineChart/d3LineChart/index.ts @@ -0,0 +1,3 @@ +import * as lineChart from './lineChart'; + +export { lineChart }; diff --git a/platform/ui/src/components/LineChart/d3LineChart/lineChart.ts b/platform/ui/src/components/LineChart/d3LineChart/lineChart.ts new file mode 100644 index 000000000..fc2ecd8aa --- /dev/null +++ b/platform/ui/src/components/LineChart/d3LineChart/lineChart.ts @@ -0,0 +1,272 @@ +import * as d3Array from 'd3-array'; +import * as d3Axis from 'd3-axis'; +import * as d3Scale from 'd3-scale'; +import * as d3ScaleChromatic from 'd3-scale-chromatic'; +import * as d3Selection from 'd3-selection'; +import * as d3Shape from 'd3-shape'; + +import chart from './chart'; +import events from './events'; + +const { + external: { resetZoom }, +} = events; + +/** + * @typedef TimecoursePoint It defines a tuple of timecourse value (time X intensity) + * @type {array} + * @property {number} 0 indicates x|y value on the pair (x,y) + * @property {number} 1 indicates x|y value on the pair (x,y) + */ + +/** + * @typedef TimecoursePointDef It defines the shape of a given TimecoursePoint Axis + * @type {object} + * @property {string} label label for given TimecoursePoint Axis + * @property {string} [unit] unit for given TimecoursePoint Axis + * @property {string} type defines the type of given TimecoursePoint Axis + * @property {number} indexRef refers the index into given TimecoursePoint for the current Axis Definition + */ + +/** + * It gets max value of an array, considering value of param index + * + * @param {TimecoursePoint[]} array array of items to be evaluated + * @param {number} index index of each array`s item to be evaluated + * @return {any} max value + */ +function _getMaxValue(array, index) { + return d3Array.max(array, arrayItem => { + return arrayItem[index]; + }); +} + +function _getMinValue(array, index) { + return d3Array.min(array, arrayItem => { + return arrayItem[index]; + }); +} + +const LEGEND = { width: 100, margin: 10 }; +const MARGIN = { top: 20, right: 20, bottom: 50, left: 50 }; + +function _createAxisScale(domainBottom, domainUpper, rangeBottom, rangeUpper) { + return d3Scale + .scaleLinear() + .domain([domainBottom, domainUpper * 1.05]) + .range([rangeBottom, rangeUpper]); +} + +const _getSeriesColor = series => { + const seriesLabels = series.reduce((labels, series) => [...labels, series.label], []); + + return d3Scale.scaleOrdinal().domain(seriesLabels).range(d3ScaleChromatic.schemeSet2); +}; + +const _updateSeriesColors = series => { + const seriesColor = _getSeriesColor(series); + + return series.map(series => ({ + ...series, + color: series.color ?? seriesColor(series.label), + })); +}; + +const _textEllipses = (width, padding = 0) => { + return function (...args) { + const self = d3Selection.select(this); + let textLength = self.node().getComputedTextLength(); + let text = self.text(); + + while (textLength > width - 2 * padding && text.length > 0) { + text = text.slice(0, -1); + self.text(text + '...'); + textLength = self.node().getComputedTextLength(); + } + }; +}; + +const _addLegend = (root, series, chartWidth, chartHeight, legendWidth) => { + const legendItemHeight = 25; + const legendHeight = legendItemHeight * series.length; + + const legendContainer = chart.legend.addNode( + root, + legendWidth, + legendHeight, + chartWidth + LEGEND.margin, + chartHeight / 2 - legendHeight / 2 + ); + + const seriesLabels = series.reduce((labels, series) => [...labels, series.label], []); + + const seriesColors = series.reduce((colors, series) => [...colors, series.color], []); + + chart.legend.setLabels( + legendContainer, + seriesLabels, + seriesColors, + legendItemHeight, + legendWidth, + _textEllipses + ); +}; + +/** + * It creates a svg chart containing lines, dots, axis, labels + * + * @param {object} d3SVGRef svg content reference to append chart + * @param {Object} axis definition of axis + * @param {object} points list of points to be created + * @param {number} width width for whole content including lines, dots, axis, labels + * @param {number} height height for whole content including lines, dots, axis, labels + * @param {boolean} showAxisLabels flag to display labels or not + * + * @modifies {d3SVGRef} + */ +const addLineChartNode = ({ + d3SVGRef, + axis, + series, + width, + height, + legendWidth = LEGEND.width, + showAxisLabels = true, + showAxisGrid = false, + showLegend = false, + transparentChartBackground = false, +}) => { + const marginRight = showLegend ? legendWidth + 2 * LEGEND.margin : MARGIN.right; + const _width = width - MARGIN.left - marginRight; + const _height = height - MARGIN.top - MARGIN.bottom; + const { x: XAxis, y: YAxis } = axis; + + series = _updateSeriesColors(series); + + let maxX = -Infinity; + let minX = Infinity; + let maxY = -Infinity; + let minY = Infinity; + + series.forEach(currentSeries => { + minX = Math.min(minX, _getMinValue(currentSeries.points, XAxis.indexRef)); + maxX = Math.max(maxX, _getMaxValue(currentSeries.points, XAxis.indexRef)); + minY = Math.min(minY, _getMinValue(currentSeries.points, YAxis.indexRef)); + maxY = Math.max(maxY, _getMaxValue(currentSeries.points, YAxis.indexRef)); + }); + + minX = axis?.x?.range?.min ?? minX; + maxX = axis?.x?.range?.max ?? maxX; + minY = axis?.y?.range?.min ?? minY; + maxY = axis?.y?.range?.max ?? maxY; + + const xAxisScale = _createAxisScale(minX, maxX, 0, _width); + const yAxisScale = _createAxisScale(minY, maxY, _height, 0); + + const parseXPoint = axisScale => point => { + return (axisScale || xAxisScale)(point.x); + }; + + const parseYPoint = axisScale => point => { + return (axisScale || yAxisScale)(point.y); + }; + + // Remove old D3 elements + chart.removeContents(d3SVGRef); + + const chartWrapper = chart.container.addNode(d3SVGRef, width, height, MARGIN.left, MARGIN.top); + + // add background + chart.background.addNode(chartWrapper, _width, _height, transparentChartBackground); + + // call the x axis in a group tag + const xAxisGenerator = d3Axis.axisBottom(xAxisScale); + + if (showAxisGrid) { + xAxisGenerator.tickSize(-_height).tickPadding(10); + } + const gXAxis = chart.axis.addNode( + chartWrapper, + XAxis, + undefined, + _height, + undefined, + () => xAxisGenerator, + showAxisLabels, + _width / 2, + _height + MARGIN.bottom / 2 + 10, + undefined, + showAxisGrid + ); + const yAxisGenerator = d3Axis.axisLeft(yAxisScale); + + if (showAxisGrid) { + yAxisGenerator.tickSize(-_width).tickPadding(10); + } + // add y axis + const gYAxis = chart.axis.addNode( + chartWrapper, + YAxis, + undefined, + undefined, + undefined, + () => yAxisGenerator, + showAxisLabels, + 0 - _height / 2, + 0 - MARGIN.left, + [ + { key: 'transform', value: 'rotate(-90)' }, + { key: 'dy', value: '1em' }, + ], + showAxisGrid + ); + + const datasets = []; + + series.forEach((currentSeries, seriesIndex) => { + const { points } = currentSeries; + const line = d3Shape.line().x(parseXPoint(xAxisScale)).y(parseYPoint(yAxisScale)); + + const dataset = points.map((point, pointIndex) => { + return { x: point[0], y: point[1], seriesIndex, pointIndex }; + }); + + const seriesContainer = chart.series.addNode(chartWrapper, seriesIndex, { + color: currentSeries.color || '#00ff00', + }); + + chart.lines.addNode(seriesContainer, dataset, line); + + // add chart points + chart.points.addNode( + seriesContainer, + dataset, + parseXPoint(xAxisScale), + parseYPoint(yAxisScale) + ); + + datasets.push(dataset); + }); + + if (showLegend) { + _addLegend(chartWrapper, series, _width, _height, legendWidth); + } + + // bind events + events.bindMouseEvents( + chartWrapper, + gXAxis, + gYAxis, + xAxisScale, + yAxisScale, + xAxisGenerator, + yAxisGenerator, + parseXPoint, + parseYPoint, + datasets + ); + + return chartWrapper; +}; + +export { addLineChartNode, resetZoom }; diff --git a/platform/ui/src/components/LineChart/index.js b/platform/ui/src/components/LineChart/index.js new file mode 100644 index 000000000..f87705103 --- /dev/null +++ b/platform/ui/src/components/LineChart/index.js @@ -0,0 +1 @@ +export { default } from './LineChart'; diff --git a/platform/ui/src/components/PanelSection/PanelSection.tsx b/platform/ui/src/components/PanelSection/PanelSection.tsx index bdd651c66..caefd2c45 100644 --- a/platform/ui/src/components/PanelSection/PanelSection.tsx +++ b/platform/ui/src/components/PanelSection/PanelSection.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import { Icon } from '@ohif/ui'; import PropTypes from 'prop-types'; -const PanelSection = ({ title, children, actionIcons = [] }) => { +const PanelSection = ({ title, children, actionIcons = [], childrenClassName }) => { const [areChildrenVisible, setChildrenVisible] = useState(true); const handleHeaderClick = () => { @@ -37,7 +37,8 @@ const PanelSection = ({ title, children, actionIcons = [] }) => {
{areChildrenVisible && ( <> -
{children}
+
+
{children}
)} @@ -49,6 +50,7 @@ PanelSection.defaultProps = {}; PanelSection.propTypes = { title: PropTypes.string, children: PropTypes.node, + childrenClassName: PropTypes.string, actionIcons: PropTypes.arrayOf( PropTypes.shape({ name: PropTypes.string, diff --git a/platform/ui/src/components/ProgressDropdown/ProgressDiscreteBar.tsx b/platform/ui/src/components/ProgressDropdown/ProgressDiscreteBar.tsx new file mode 100644 index 000000000..66ea3f15d --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/ProgressDiscreteBar.tsx @@ -0,0 +1,27 @@ +import React, { ReactElement } from 'react'; +import PropTypes from 'prop-types'; +import classnames from 'classnames'; +import { ProgressDropdownOption, ProgressDropdownOptionPropType } from './types'; + +const ProgressDiscreteBar = ({ options }: { options: ProgressDropdownOption[] }): ReactElement => { + return ( +
+ {options.map((option, i) => ( +
+ ))} +
+ ); +}; + +ProgressDiscreteBar.propTypes = { + options: PropTypes.arrayOf(ProgressDropdownOptionPropType).isRequired, +}; + +export default ProgressDiscreteBar; diff --git a/platform/ui/src/components/ProgressDropdown/ProgressDropdown.tsx b/platform/ui/src/components/ProgressDropdown/ProgressDropdown.tsx new file mode 100644 index 000000000..356025ba6 --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/ProgressDropdown.tsx @@ -0,0 +1,168 @@ +import React, { ReactNode, useEffect, useCallback, useState, useMemo, useRef } from 'react'; +import PropTypes from 'prop-types'; +import classnames from 'classnames'; +import ProgressDiscreteBar from './ProgressDiscreteBar'; +import ProgressItemDetail from './ProgressItemDetail'; +import ProgressItem from './ProgressItem'; +import { Icon } from '../../components'; +import { ProgressDropdownOption, ProgressDropdownOptionPropType } from './types'; + +const ProgressDropdown = ({ + options: optionsProps, + value, + children, + dropDownWidth = '170', + onChange, +}: { + options: ProgressDropdownOption[]; + value?: string; + children?: ReactNode; + onChange?: ({ selectedOption }) => void; +}): JSX.Element => { + const element = useRef(null); + const [open, setOpen] = useState(false); + const toggleOpen = () => setOpen(s => !s); + const [options, setOptions] = useState(optionsProps); + const [selectedOption, setSelectedOption] = useState(undefined); + + const selectedOptionIndex = useMemo( + () => options.findIndex(option => option.value === selectedOption?.value), + [options, selectedOption] + ); + + const canMoveNext = useMemo( + () => selectedOptionIndex < options.length - 1, + [selectedOptionIndex, options] + ); + + const handleOptionSelected = useCallback( + (newSelectedOption?: ProgressDropdownOption): void => { + if (newSelectedOption?.value === selectedOption?.value) { + return; + } + + setOpen(false); + setSelectedOption(newSelectedOption); + + if (newSelectedOption) { + newSelectedOption.activated = true; + newSelectedOption.onSelect?.(); + } + + if (onChange) { + onChange({ selectedOption: newSelectedOption }); + } + }, + [selectedOption, onChange] + ); + + const handleNextButtonClick = useCallback(() => { + if (canMoveNext) { + handleOptionSelected(options[selectedOptionIndex + 1]); + } + }, [options, selectedOptionIndex, canMoveNext, handleOptionSelected]); + + // Update the options in case the options from props has changed + useEffect(() => setOptions(optionsProps), [optionsProps]); + + // Updates the selected item based on the value from props + useEffect(() => { + if (!value) { + return; + } + + const newOption = value ? options.find(option => option.value === value) : undefined; + + handleOptionSelected(newOption); + }, [value, options, handleOptionSelected]); + + // Listen to any click event outside of the dropdown context to hide the options + useEffect(() => { + const handleDocumentClick = e => { + if (element.current && !element.current.contains(e.target)) { + setOpen(false); + } + }; + + document.addEventListener('click', handleDocumentClick); + + if (!open) { + document.removeEventListener('click', handleDocumentClick); + } + }, [open]); + + return ( +
+
+
+
+
+ {selectedOption && } + + {!selectedOption &&
{children}
} +
+ +
+ +
+
+ {options.map((option, index) => ( + handleOptionSelected(option)} + /> + ))} +
+ +
+ +
+
+
+ ); +}; + +ProgressDropdown.propTypes = { + options: PropTypes.arrayOf(ProgressDropdownOptionPropType).isRequired, + value: PropTypes.string, + onChange: PropTypes.func, + children: PropTypes.node, + dropDownWidth: PropTypes.string, +}; + +export default ProgressDropdown; diff --git a/platform/ui/src/components/ProgressDropdown/ProgressItem.tsx b/platform/ui/src/components/ProgressDropdown/ProgressItem.tsx new file mode 100644 index 000000000..e92dbff24 --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/ProgressItem.tsx @@ -0,0 +1,31 @@ +import React, { ReactElement } from 'react'; +import PropTypes from 'prop-types'; +import ProgressItemDetail from './ProgressItemDetail'; +import { ProgressDropdownOption, ProgressDropdownOptionPropType } from './types'; + +const ProgressItem = ({ + option, + onSelect, +}: { + option: ProgressDropdownOption; + onSelect: (option: ProgressDropdownOption) => void; +}): ReactElement => { + const { value } = option; + + return ( +
onSelect(option)} + > + +
+ ); +}; + +ProgressItem.propTypes = { + option: ProgressDropdownOptionPropType.isRequired, + onSelect: PropTypes.func, +}; + +export default ProgressItem; diff --git a/platform/ui/src/components/ProgressDropdown/ProgressItemDetail.tsx b/platform/ui/src/components/ProgressDropdown/ProgressItemDetail.tsx new file mode 100644 index 000000000..b0213690e --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/ProgressItemDetail.tsx @@ -0,0 +1,81 @@ +import React, { useState, useMemo, ReactElement } from 'react'; +import { Icon, Tooltip } from '../../components'; +import { ProgressDropdownOption, ProgressDropdownOptionPropType } from './types'; + +const MAX_TOOLTIP_LENGTH = 150; +const iconClassNames = 'grow-0 text-primary-light h-4 w-4 mt-1 mr-2 mb-0 ml-1'; + +const ProgressItemDetail = ({ option }: { option: ProgressDropdownOption }): ReactElement => { + const { label, info, completed } = option; + const [truncate, setTruncate] = useState(true); + const handleOnHideTooltip = () => setTruncate(true); + let icon; + + if (completed) { + icon = 'status-tracked'; + } else if (info) { + icon = 'launch-info'; + } + + const tooltipText = useMemo(() => { + if (!truncate || !info || info.length <= MAX_TOOLTIP_LENGTH) { + return info; + } + + const handleReadMoreClick = e => { + setTruncate(false); + e.stopPropagation(); + e.preventDefault(); + }; + + return ( + <> + {info.slice(0, MAX_TOOLTIP_LENGTH)} + + + ); + }, [info, truncate]); + + const iconContent = ( + <> + {icon && ( +
+ +
+ )} + {!icon &&
} + + ); + + return ( + <> + {info && ( + + {iconContent} + + )} + {!info && iconContent} + +
{label}
+ + ); +}; + +ProgressItemDetail.propTypes = { + option: ProgressDropdownOptionPropType.isRequired, +}; + +export default ProgressItemDetail; diff --git a/platform/ui/src/components/ProgressDropdown/__stories__/progressDropdown.stories.mdx b/platform/ui/src/components/ProgressDropdown/__stories__/progressDropdown.stories.mdx new file mode 100644 index 000000000..db9ec694f --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/__stories__/progressDropdown.stories.mdx @@ -0,0 +1,106 @@ +import { ProgressDropdown } from '../../../components'; +import { ArgsTable, Story, Canvas, Meta } from '@storybook/addon-docs'; +import { createComponentTemplate } from '../../../storybook/functions/create-component-story'; + +export const argTypes = { + component: ProgressDropdown, + title: 'Components/ProgressDropdown', +}; + + + +export const ProgressDropdownTemplate = args => ( +
+ +
+); + +export const loremIpsumText = new Array(7) + .join(` Lorem ipsum, dolor sit amet consectetur adipisicing elit`) + .substring(1); + + + +- [Overview](#overview) +- [Props](#props) +- [Usage](#usage) +- [Contribute](#contribute) + +## Overview + +Dropdown is a modal Dropdown component which enabled to show a modal Dropdown. + + + + {ProgressDropdownTemplate.bind({})} + + + +## Props + + + +## Usage + +You can list the items in the dropdown. The status of each item changes from black to dark blue in +the status bar beneath the dropdown when the item is selected. + + + (selectedItem.completed = true)} + args={{ + options: [ + { + label: 'Item 1', + value: 'item1', + info: `Item 1 - ${loremIpsumText}`, + onClick: () => { + alert('Item 1 clicked'); + }, + }, + { + label: 'Item 2', + value: 'item2', + info: `Item 2 - ${loremIpsumText}`, + onClick: () => { + alert('Item 2 clicked'); + }, + }, + { + label: 'Item 3', + value: 'item3', + info: `Item 3 - ${loremIpsumText}`, + onClick: () => { + alert('Item 3 clicked'); + }, + }, + { + label: 'Item 4', + info: `Item 4 - ${loremIpsumText}`, + onClick: () => { + alert('Item 4 clicked'); + }, + }, + ], + }} + > + {ProgressDropdownTemplate.bind({})} + + + +## Contribute + +
diff --git a/platform/ui/src/components/ProgressDropdown/index.js b/platform/ui/src/components/ProgressDropdown/index.js new file mode 100644 index 000000000..abd294a17 --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/index.js @@ -0,0 +1 @@ +export { default } from './ProgressDropdown'; diff --git a/platform/ui/src/components/ProgressDropdown/types.ts b/platform/ui/src/components/ProgressDropdown/types.ts new file mode 100644 index 000000000..fb99e1bd2 --- /dev/null +++ b/platform/ui/src/components/ProgressDropdown/types.ts @@ -0,0 +1,19 @@ +import PropTypes from 'prop-types'; + +export type ProgressDropdownOption = { + label: string; + value: string; + info?: string; + activated?: boolean; + completed?: boolean; + onSelect?: () => void; +}; + +export const ProgressDropdownOptionPropType = PropTypes.shape({ + label: PropTypes.string.isRequired, + value: PropTypes.string.isRequired, + info: PropTypes.string, + activated: PropTypes.bool, + completed: PropTypes.bool, + onSelect: PropTypes.func, +}); diff --git a/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx b/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx index 622b92196..406a9003f 100644 --- a/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx +++ b/platform/ui/src/components/SegmentationGroupTable/SegmentationConfig.tsx @@ -53,7 +53,7 @@ const ActiveSegmentationConfig = ({ unit="%" /> - {t('Inactive segmentations')} + + {t('Inactive segmentations')} +
{!isMinimized && ( { const { t } = useTranslation('SidePanel'); @@ -178,14 +179,15 @@ const SidePanel = ({ const openStatus = panelOpen ? 'open' : 'closed'; const style = Object.assign({}, styleMap[openStatus][side], baseStyle); - const ActiveComponent = tabs[activeTabIndex]?.content; - - const updatePanelOpen = useCallback((panelOpen: boolean) => { - setPanelOpen(panelOpen); - if (panelOpen) { - onOpen?.(); - } - }, []); + const updatePanelOpen = useCallback( + (panelOpen: boolean) => { + setPanelOpen(panelOpen); + if (panelOpen && onOpen) { + onOpen(); + } + }, + [onOpen] + ); const updateActiveTabIndex = useCallback( (activeTabIndex: number) => { @@ -196,8 +198,12 @@ const SidePanel = ({ setActiveTabIndex(activeTabIndex); updatePanelOpen(true); + + if (onActiveTabIndexChange) { + onActiveTabIndexChange({ activeTabIndex }); + } }, - [updatePanelOpen] + [onActiveTabIndexChange, updatePanelOpen] ); useEffect(() => { @@ -214,7 +220,7 @@ const SidePanel = ({ side === 'left' ? 'justify-end pr-2' : 'justify-start pl-2' )} onClick={() => { - updatePanelOpen(prev => !prev); + updatePanelOpen(!panelOpen); }} data-cy={`side-panel-header-${side}`} > @@ -270,7 +276,7 @@ const SidePanel = ({ )} style={{ width: `${closeIconWidth}px` }} onClick={() => { - updatePanelOpen(prev => !prev); + updatePanelOpen(!panelOpen); }} data-cy={`side-panel-header-${side}`} > @@ -356,7 +362,7 @@ const SidePanel = ({ : { marginRight: `${closeIconWidth}px` }), }} data-cy={`${tabs[0].name}-btn`} - onClick={() => updatePanelOpen(prev => !prev)} + onClick={() => updatePanelOpen(!panelOpen)} > {tabs[0].label}
@@ -380,7 +386,14 @@ const SidePanel = ({ {panelOpen ? ( <> {getOpenStateComponent()} - + {tabs.map((tab, tabIndex) => ( +
+ +
+ ))} ) : ( {getCloseStateComponent()} @@ -410,6 +423,7 @@ SidePanel.propTypes = { ), ]), onOpen: PropTypes.func, + onActiveTabIndexChange: PropTypes.func, expandedWidth: PropTypes.number, }; diff --git a/platform/ui/src/components/Toolbox/ToolboxUI.tsx b/platform/ui/src/components/Toolbox/ToolboxUI.tsx index 4ee2e3fe0..f54c6201e 100644 --- a/platform/ui/src/components/Toolbox/ToolboxUI.tsx +++ b/platform/ui/src/components/Toolbox/ToolboxUI.tsx @@ -55,7 +55,7 @@ function ToolboxUI(props) { content={componentProps.label} secondaryContent={componentProps.disabledText} > -
+
) : ( -
+
{ const [isActive, setIsActive] = useState(false); + const isOpen = useMemo( + () => (isSticky || isActive) && !isDisabled, + [isSticky, isActive, isDisabled] + ); const { t } = useTranslation('Buttons'); const tooltipContainer = document.getElementById('react-portal'); const [coords, setCoords] = useState({ x: 999999, y: 999999 }); const parentRef = useRef(null); const tooltipRef = useRef(null); + const handleMouseOverDebounced = useMemo( + () => debounce(() => setIsActive(true), showHideDelay), + [showHideDelay] + ); + + const handleMouseOutDebounced = useMemo( + () => debounce(() => setIsActive(false), showHideDelay), + [showHideDelay] + ); + const handleMouseOver = () => { - if (!isActive) { - setIsActive(true); - } + handleMouseOutDebounced.cancel(); + handleMouseOverDebounced(); }; const handleMouseOut = () => { - if (isActive) { - setIsActive(false); - } + handleMouseOverDebounced.cancel(); + handleMouseOutDebounced(); }; - const isOpen = (isSticky || isActive) && !isDisabled; + useEffect(() => { + if (!isOpen && onHide) { + onHide(); + } + }, [isOpen, onHide]); useEffect(() => { if (parentRef.current && tooltipRef.current) { @@ -121,7 +143,8 @@ const Tooltip = ({ 'tooltip-box bg-primary-dark border-secondary-light w-max-content relative inset-x-auto top-full rounded border text-base text-white', { 'py-[6px] px-[8px]': !tight, - } + }, + tooltipBoxClassName )} >
{typeof content === 'string' ? t(content) : content}
@@ -164,16 +187,21 @@ Tooltip.defaultProps = { isSticky: false, position: 'bottom', isDisabled: false, + showHideDelay: 300, }; Tooltip.propTypes = { isDisabled: PropTypes.bool, content: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), + secondaryContent: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), position: PropTypes.oneOf(['bottom', 'bottom-left', 'bottom-right', 'left', 'right', 'top']), isSticky: PropTypes.bool, tight: PropTypes.bool, children: PropTypes.node.isRequired, className: PropTypes.string, + tooltipBoxClassName: PropTypes.string, + showHideDelay: PropTypes.number, + onHide: PropTypes.func, }; export default Tooltip; diff --git a/platform/ui/src/components/Tooltip/tooltip.css b/platform/ui/src/components/Tooltip/tooltip.css index 283bce32e..7661ca0d9 100644 --- a/platform/ui/src/components/Tooltip/tooltip.css +++ b/platform/ui/src/components/Tooltip/tooltip.css @@ -1,5 +1,5 @@ .tooltip { - @apply absolute z-10; + @apply absolute z-20; } /* TOOLTIP WORKAROUND FOR ARROW UP */ diff --git a/platform/ui/src/components/WindowLevel/WindowLevel.tsx b/platform/ui/src/components/WindowLevel/WindowLevel.tsx new file mode 100644 index 000000000..3f3ca14db --- /dev/null +++ b/platform/ui/src/components/WindowLevel/WindowLevel.tsx @@ -0,0 +1,189 @@ +import React, { useEffect, useCallback, useState, useMemo, ReactElement } from 'react'; +import PropTypes from 'prop-types'; +import classnames from 'classnames'; +import WindowLevelHistogram from './WindowLevelHistogram'; +import InputRange from '../InputRange'; +import InputDoubleRange from '../InputDoubleRange'; +import { + VOI, + Colormap, + Histogram, + voiPropType, + histogramPropType, + colormapPropType, +} from './types'; +import PanelSection from '../PanelSection'; + +const convertVOItoVOIRange = voi => { + return { + min: voi.windowCenter - voi.windowWidth / 2, + max: voi.windowCenter + voi.windowWidth / 2, + }; +}; + +const WindowLevel = ({ + title, + step, + histogram, + voi: voiProp, + opacity: opacityProp, + showOpacitySlider, + colormap, + style, + fillColor, + lineColor, + containerClassName, + onVOIChange, + onOpacityChange, +}: { + title: string; + step: number; + histogram: Histogram; + voi: VOI; + opacity: number; + showOpacitySlider: boolean; + colormap: Colormap; + style: string; + fillColor: string; + lineColor: string; + containerClassName: string; + onVOIChange: (voi: VOI) => void; + onOpacityChange: (opacity: number) => void; +}): ReactElement => { + const [opacity, setOpacity] = useState(opacityProp); + + const range = useMemo( + () => ({ + min: histogram.range.min, + max: histogram.range.max, + }), + [histogram] + ); + + const [voiRange, setVOIRange] = useState( + voiProp + ? convertVOItoVOIRange(voiProp) + : { + min: range.min, + max: range.max, + } + ); + + const handleVOIRangeChange = useCallback( + newRange => { + if (newRange[0] === voiRange.min && newRange[1] === voiRange.max) { + return; + } + + const windowWidth = newRange[1] - newRange[0]; + const windowCenter = newRange[0] + windowWidth / 2; + + setVOIRange({ + min: newRange[0], + max: newRange[1], + }); + + if (onVOIChange) { + onVOIChange({ windowWidth, windowCenter }); + } + }, + [onVOIChange, voiRange] + ); + + const handleOpacityChange = useCallback( + value => { + if (onOpacityChange) { + onOpacityChange(value); + } + }, + [onOpacityChange] + ); + + useEffect(() => setVOIRange(convertVOItoVOIRange(voiProp)), [voiProp]); + + useEffect(() => setOpacity(opacityProp), [opacityProp]); + return ( +
+
+ {/* {title} */} +
+
+ {range.min} +
+
+ {range.max} +
+
+
+
+
+ +
+
+ +
+
+ {showOpacitySlider && ( +
+
Opacity
+ +
+ )} +
+
+
+ ); +}; + +WindowLevel.defaultProps = { + step: 1, + opacity: 1, + showOpacitySlider: false, + style: 'polygon', + fillColor: '#3f3f3f', + lineColor: '#707070', +}; + +WindowLevel.propTypes = { + title: PropTypes.string, + step: PropTypes.number, + histogram: histogramPropType.isRequired, + voi: voiPropType, + opacity: PropTypes.number, + showOpacitySlider: PropTypes.bool, + colormap: colormapPropType, + style: PropTypes.oneOf(['polygon', 'bars']), + fillColor: PropTypes.string, + lineColor: PropTypes.string, + containerClassName: PropTypes.string, + onVOIChange: PropTypes.func, + onOpacityChange: PropTypes.func, +}; + +export default WindowLevel; diff --git a/platform/ui/src/components/WindowLevel/WindowLevelHistogram.tsx b/platform/ui/src/components/WindowLevel/WindowLevelHistogram.tsx new file mode 100644 index 000000000..987263a96 --- /dev/null +++ b/platform/ui/src/components/WindowLevel/WindowLevelHistogram.tsx @@ -0,0 +1,236 @@ +import React, { useLayoutEffect, useEffect, useRef, ReactElement } from 'react'; +import PropTypes from 'prop-types'; +import { + Range, + VOIRange, + Histogram, + Colormap, + voiRangePropType, + rangePropType, + histogramPropType, + colormapPropType, +} from './types'; + +const DEFAULT_COLORMAP = { + Name: 'Grayscale', + RGBPoints: [0, 0, 0, 0, 1, 1, 1, 1], +}; + +const clamp = (value, min, max) => Math.min(Math.max(min, value), max); + +const interpolateVec3 = (a, b, t) => { + return [a[0] * (1 - t) + b[0] * t, a[1] * (1 - t) + b[1] * t, a[2] * (1 - t) + b[2] * t]; +}; + +const drawBackground = (canvas, range, voiRange, colormap) => { + const context = canvas.getContext('2d'); + const { width, height } = canvas; + const windowWidth = voiRange.max - voiRange.min; + const rgbPoints = colormap.RGBPoints; + const colorsCount = rgbPoints.length / 4; + + const getColorPoint = index => { + const offset = 4 * index; + + return index < colorsCount + ? { + index, + position: rgbPoints[offset], + color: [rgbPoints[offset + 1], rgbPoints[offset + 2], rgbPoints[offset + 3]], + } + : undefined; + }; + + let leftColorPoint = undefined; + let rightColorPoint = getColorPoint(0); + + const incRawPixelValue = (range.max - range.min) / (width - 1); + let rawPixelValue = range.min; + + for (let x = 0; x < width; x++) { + const tVoiRange = (rawPixelValue - voiRange.min) / windowWidth; + + // Find the color in a linear way (O(n) complexity) + if (rightColorPoint) { + for (let i = rightColorPoint.index; i < colorsCount; i++) { + if (tVoiRange <= rightColorPoint.position) { + break; + } + + leftColorPoint = rightColorPoint; + rightColorPoint = getColorPoint(i + 1); + } + } + + let normColor; + + if (!leftColorPoint) { + normColor = [...rightColorPoint.color]; + } else if (!rightColorPoint) { + normColor = [...leftColorPoint.color]; + } else { + const tColorRange = + (tVoiRange - leftColorPoint.position) / + (rightColorPoint.position - leftColorPoint.position); + + normColor = interpolateVec3(leftColorPoint.color, rightColorPoint.color, tColorRange); + } + + const color = normColor.map(color => clamp(Math.round(color * 255), 0, 255)); + + context.fillStyle = `rgb(${color[0]}, ${color[1]}, ${color[2]})`; + context.fillRect(x, 0, 1, height); + + rawPixelValue += incRawPixelValue; + } +}; + +/* plots the histogram bins as a polygon that traces the centers of each bin */ +const drawPolygonHistogram = (canvas, context, histogram, options) => { + const xScale = canvas.width / histogram.numBins; + const { scale } = options; + const maxVal = scale(histogram.maxBinValue); + + context.beginPath(); + context.moveTo(0, canvas.height); + context.lineTo(0, canvas.height - (canvas.height * scale(histogram.bins[0])) / maxVal); + + let x = xScale / 2; + for (let bin = 0; bin < histogram.numBins; bin++) { + context.lineTo(x, canvas.height - (canvas.height * scale(histogram.bins[bin])) / maxVal); + x += xScale; + } + context.lineTo( + canvas.width, + canvas.height - (canvas.height * scale(histogram.bins[histogram.numBins - 1])) / maxVal + ); + context.lineTo(canvas.width, canvas.height); + context.lineTo(0, canvas.height); + + context.closePath(); + context.fill(); + context.stroke(); +}; + +/* plots the histogram bins as a series of n vertical bars (n = number of bins) */ +const drawBarHistogram = (canvas, context, histogram, options) => { + const xScale = canvas.width / histogram.numBins; + const { scale } = options; + const maxVal = scale(histogram.maxBinValue); + + context.beginPath(); + + for (let bin = 0; bin < histogram.numBins; bin++) { + context.moveTo(xScale * bin, canvas.height); + context.lineTo( + xScale * bin, + canvas.height - (canvas.height * scale(histogram.bins[bin])) / maxVal + ); + } + + context.closePath(); + context.strokeStyle = options.fillColor; + context.lineWidth = xScale; + context.stroke(); +}; + +const drawHistogram = (canvas, histogram, options) => { + const context = canvas.getContext('2d'); + + // context.clearRect(0, 0, canvas.width, canvas.height); + context.fillStyle = options.fillColor; + context.strokeStyle = options.lineColor; + + if (options.style === 'polygon') { + drawPolygonHistogram(canvas, context, histogram, options); + } else if (options.style === 'bars') { + drawBarHistogram(canvas, context, histogram, options); + } else { + throw new Error(`Invalid style (${options.style})`); + } +}; + +const WindowLevelHistogram = ({ + range, + voiRange, + histogram, + colormap, + style, + fillColor, + lineColor, +}: { + range: Range; + voiRange: VOIRange; + histogram: Histogram; + colormap: Colormap; + style: string; + fillColor: string; + lineColor: string; +}): ReactElement => { + const containerRef = useRef(null); + const canvasRef = useRef(null); + const minVOIPercent = ((voiRange.min - range.min) / (range.max - range.min)) * 100; + const maxVoiPercent = (1 - (range.max - voiRange.max) / (range.max - range.min)) * 100; + const background = + colormap.Name !== 'Grayscale' + ? undefined + : `linear-gradient(to right, #000 0%, #000 ${minVOIPercent}%, #fff ${maxVoiPercent}%, #fff 100%)`; + + useLayoutEffect(() => { + const container = containerRef.current; + const canvas = canvasRef.current; + + canvas.width = container.offsetWidth; + canvas.height = container.offsetHeight; + }, [containerRef, canvasRef]); + + useEffect(() => { + const canvas = canvasRef.current; + const context = canvas.getContext('2d'); + const fnIdentity = x => x; + const options = { + style, + fillColor, + lineColor, + scale: fnIdentity, + }; + + context.clearRect(0, 0, canvas.width, canvas.height); + + drawBackground(canvas, range, voiRange, colormap); + drawHistogram(canvas, histogram, options); + }, [range, voiRange, histogram, colormap, style, fillColor, lineColor, canvasRef]); + + return ( +
+ +
+ ); +}; + +WindowLevelHistogram.defaultProps = { + colormap: DEFAULT_COLORMAP, + style: 'polygon', + fillColor: '#3f3f3f', + lineColor: '#707070', +}; + +WindowLevelHistogram.propTypes = { + range: rangePropType.isRequired, + voiRange: voiRangePropType.isRequired, + histogram: histogramPropType.isRequired, + colormap: colormapPropType, + style: PropTypes.oneOf(['polygon', 'bars']), + fillColor: PropTypes.string, + lineColor: PropTypes.string, +}; + +export default WindowLevelHistogram; diff --git a/platform/ui/src/components/WindowLevel/__stories__/windowLevel.stories.mdx b/platform/ui/src/components/WindowLevel/__stories__/windowLevel.stories.mdx new file mode 100644 index 000000000..ab9c9f998 --- /dev/null +++ b/platform/ui/src/components/WindowLevel/__stories__/windowLevel.stories.mdx @@ -0,0 +1,103 @@ +import WindowLevel from '../WindowLevel'; + +import { ArgsTable, Story, Canvas, Meta } from '@storybook/addon-docs'; +import { createComponentTemplate } from '../../../storybook/functions/create-component-story'; +import '../../InputRange/InputRange.css'; + +export const argTypes = { + component: WindowLevel, + title: 'Components/WindowLevel', +}; + + + +export const WindowLevelTemplate = args => ( +
+ +
+); + + + +- [Overview](#overview) +- [Props](#props) +- [Contribute](#contribute) + +## Overview + +WindowLevel is a component that... + + + + {WindowLevelTemplate.bind({})} + + + +## Props + + + +## Usage + +## Contribute + +
diff --git a/platform/ui/src/components/WindowLevel/index.js b/platform/ui/src/components/WindowLevel/index.js new file mode 100644 index 000000000..b853aaba0 --- /dev/null +++ b/platform/ui/src/components/WindowLevel/index.js @@ -0,0 +1 @@ +export { default } from './WindowLevel'; diff --git a/platform/ui/src/components/WindowLevel/types.ts b/platform/ui/src/components/WindowLevel/types.ts new file mode 100644 index 000000000..a0bb615c7 --- /dev/null +++ b/platform/ui/src/components/WindowLevel/types.ts @@ -0,0 +1,64 @@ +import PropTypes from 'prop-types'; + +export type Range = { + min: number; + max: number; +}; + +export type VOI = { + windowWidth: number; + windowCenter: number; +}; + +export type VOIRange = { + min: number; + max: number; +}; + +export type Histogram = { + bins: number[]; + numBins: number; + maxBin: number; + maxBinValue: number; + range: { + min: number; + max: number; + }; +}; + +export type Colormap = { + Name: string; + RGBPoints: number[]; +}; + +export const rangePropType = PropTypes.shape({ + min: PropTypes.number.isRequired, + max: PropTypes.number.isRequired, +}); + +export const voiRangePropType = PropTypes.shape({ + min: PropTypes.number.isRequired, + max: PropTypes.number.isRequired, +}); + +export const voiPropType = PropTypes.shape({ + windowCenter: PropTypes.number.isRequired, + windowWidth: PropTypes.number.isRequired, +}); + +export const histogramPropType = PropTypes.shape({ + bins: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.instanceOf(Int32Array)]) + .isRequired, + numBins: PropTypes.number.isRequired, + maxBin: PropTypes.number.isRequired, + maxBinValue: PropTypes.number.isRequired, + range: PropTypes.shape({ + min: PropTypes.number.isRequired, + max: PropTypes.number.isRequired, + }), +}); + +export const colormapPropType = PropTypes.shape({ + Name: PropTypes.string, + RGBPoints: PropTypes.arrayOf(PropTypes.number), +}); diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index 0dc9438da..f3b023d2a 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -27,6 +27,7 @@ import MeasurementTable from './MeasurementTable'; import Modal from './Modal'; import NavBar from './NavBar'; import Notification from './Notification'; +import ProgressDropdown from './ProgressDropdown'; import Select from './Select'; import SegmentationTable from './SegmentationTable'; import { SegmentationGroupTable, SegmentationGroupTableExpanded } from './SegmentationGroupTable'; @@ -52,6 +53,7 @@ import ThumbnailTracked from './ThumbnailTracked'; import ThumbnailList from './ThumbnailList'; import ToolbarButton from './ToolbarButton'; import ExpandableToolbarButton from './ExpandableToolbarButton'; +import LineChart from './LineChart'; import ListMenu from './ListMenu'; import Tooltip from './Tooltip'; import TooltipClipboard from './TooltipClipboard'; @@ -60,6 +62,7 @@ import Viewport from './Viewport'; import ViewportDownloadForm from './ViewportDownloadForm'; import ViewportGrid from './ViewportGrid'; import ViewportPane from './ViewportPane'; +import WindowLevel from './WindowLevel'; import WindowLevelMenuItem from './WindowLevelMenuItem'; import UserPreferences from './UserPreferences'; import HotkeysPreferences from './HotkeysPreferences'; @@ -91,8 +94,10 @@ import { Toolbox } from './Toolbox'; import InvestigationalUseDialog from './InvestigationalUseDialog'; import MeasurementItem from './MeasurementTable/MeasurementItem'; import LayoutPreset from './LayoutPreset'; +import ActionButtons from './ActionButtons'; export { + ActionButtons, AboutModal, AdvancedToolbox, AllInOneMenu, @@ -112,6 +117,7 @@ export { EmptyStudies, ErrorBoundary, ExpandableToolbarButton, + LineChart, ListMenu, Icon, IconButton, @@ -120,7 +126,6 @@ export { InputFilterText, InputGroup, InputRange, - InputDoubleRange, InputNumber, InputLabelWrapper, InputMultiSelect, @@ -139,6 +144,7 @@ export { Modal, NavBar, Notification, + ProgressDropdown, ProgressLoadingBar, PanelSection, Select, @@ -181,7 +187,9 @@ export { ViewportGrid, ViewportPane, ViewportOverlay, + WindowLevel, WindowLevelMenuItem, + InputDoubleRange, LabellingFlow, HeaderPatientInfo, LayoutPreset, diff --git a/platform/ui/src/contextProviders/CineProvider.tsx b/platform/ui/src/contextProviders/CineProvider.tsx index 180989ca4..5946698f4 100644 --- a/platform/ui/src/contextProviders/CineProvider.tsx +++ b/platform/ui/src/contextProviders/CineProvider.tsx @@ -21,13 +21,30 @@ export default function CineProvider({ children, service }) { const { id, frameRate, isPlaying = undefined } = action.payload; const cines = state.cines; - if (!cines[id]) { - cines[id] = { id, ...DEFAULT_CINE }; - } - cines[id].frameRate = frameRate || cines[id].frameRate; - cines[id].isPlaying = isPlaying !== undefined ? isPlaying : cines[id].isPlaying; + const syncedCineIds = service.getSyncedViewports(id).map(({ viewportId }) => viewportId); + const cineIdsToUpdate = [id, ...syncedCineIds].filter(curId => { + const currentCine = cines[curId] ?? {}; + const shouldUpdateFrameRate = + currentCine.frameRate !== (frameRate ?? currentCine.frameRate); + const shouldUpdateIsPlaying = + currentCine.isPlaying !== (isPlaying ?? currentCine.isPlaying); - return { ...state, ...{ cines } }; + return shouldUpdateFrameRate || shouldUpdateIsPlaying; + }); + + cineIdsToUpdate.forEach(currId => { + let cine = cines[currId]; + + if (!cine) { + cine = { id, ...DEFAULT_CINE }; + cines[currId] = cine; + } + + cine.frameRate = frameRate ?? cine.frameRate; + cine.isPlaying = isPlaying ?? cine.isPlaying; + }); + + return { ...state, ...cines }; } case 'SET_IS_CINE_ENABLED': { return { ...state, ...{ isCineEnabled: action.payload } }; diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index 704f27302..02697c22b 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -31,6 +31,7 @@ export { /** COMPONENTS */ export { + ActionButtons, AboutModal, AdvancedToolbox, AllInOneMenu, @@ -50,6 +51,7 @@ export { EmptyStudies, ErrorBoundary, ExpandableToolbarButton, + LineChart, ListMenu, Icon, IconButton, @@ -84,6 +86,7 @@ export { SegmentationGroupTableExpanded, SidePanel, SplitButton, + ProgressDropdown, LegacySplitButton, StudyBrowser, StudyItem, @@ -118,6 +121,7 @@ export { ViewportDownloadForm, ViewportGrid, ViewportPane, + WindowLevel, WindowLevelMenuItem, ImageScrollbar, ViewportOverlay, diff --git a/platform/ui/src/views/Viewer/components/Header.js b/platform/ui/src/views/Viewer/components/Header.js index 48ced6625..268ffa384 100644 --- a/platform/ui/src/views/Viewer/components/Header.js +++ b/platform/ui/src/views/Viewer/components/Header.js @@ -20,9 +20,7 @@ const Header = () => {
-
- {/* */} -
+
FOR INVESTIGATIONAL USE ONLY Date: Wed, 10 Apr 2024 04:15:35 +0000 Subject: [PATCH 229/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- .../cornerstone-dynamic-volume/package.json | 10 +++++----- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/preclinical-4d/package.json | 12 ++++++------ modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 6 +++--- version.txt | 2 +- 23 files changed, 88 insertions(+), 88 deletions(-) diff --git a/commit.txt b/commit.txt index 90fdf8bec..269bddcd9 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -dc37802ec1f739a6ed602363bdf231d6fe58827e +d57e8bc1571c6da4effaa492ee2d162c552365a2 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e37730ca3..9345ef7f5 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/i18n": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/i18n": "3.8.0-beta.74", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index f5e84c27a..0cc5a33de 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/i18n": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/i18n": "3.8.0-beta.74", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 2c6a80f58..3e2304d03 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-measurement-tracking": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-measurement-tracking": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 39b8882fe..afe626621 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -29,11 +29,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.76", - "@ohif/ui": "3.7.0-beta.76", - "@ohif/extension-default": "3.7.0-beta.76", - "@ohif/extension-cornerstone": "3.7.0-beta.76", - "@ohif/i18n": "3.7.0-beta.76", + "@ohif/core": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/i18n": "3.8.0-beta.74", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index be11583c2..9c8022a31 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index a932e114e..310130cc1 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/i18n": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/i18n": "3.8.0-beta.74", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index ee5e7f48a..b6f71221d 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/i18n": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/i18n": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 0eeed50d3..cc1a6bd8b 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index f8ebc4168..29dd010f0 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b75b39eb9..e6fd47f56 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.70.0", "@cornerstonejs/tools": "^1.70.0", - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 905115b71..bf3086ea4 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 75e6e3116..2e42bd93e 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 7f215a925..1c33303d3 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/extension-dicom-pdf": "3.8.0-beta.73", - "@ohif/extension-dicom-video": "3.8.0-beta.73" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-dicom-pdf": "3.8.0-beta.74", + "@ohif/extension-dicom-video": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 5236da4aa..bbf8be7c5 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/extension-dicom-pdf": "3.8.0-beta.73", - "@ohif/extension-dicom-video": "3.8.0-beta.73", - "@ohif/extension-measurement-tracking": "3.8.0-beta.73", - "@ohif/extension-test": "3.8.0-beta.73" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-dicom-pdf": "3.8.0-beta.74", + "@ohif/extension-dicom-video": "3.8.0-beta.74", + "@ohif/extension-measurement-tracking": "3.8.0-beta.74", + "@ohif/extension-test": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 3db43e723..61bfb1cd3 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/extension-dicom-pdf": "3.8.0-beta.73", - "@ohif/extension-dicom-video": "3.8.0-beta.73", - "@ohif/extension-measurement-tracking": "3.8.0-beta.73" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-dicom-pdf": "3.8.0-beta.74", + "@ohif/extension-dicom-video": "3.8.0-beta.74", + "@ohif/extension-measurement-tracking": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 3d5571904..07891f7ae 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.73" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 37f66ca9e..fabf668b2 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -30,12 +30,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.7.0-beta.76", - "@ohif/extension-default": "3.7.0-beta.76", - "@ohif/extension-cornerstone": "3.7.0-beta.76", - "@ohif/extension-cornerstone-dynamic-volume": "3.7.0-beta.76", - "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.76", - "@ohif/extension-tmtv": "3.7.0-beta.76" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", + "@ohif/extension-tmtv": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 7fe9e96eb..54d7d02ed 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/extension-dicom-pdf": "3.8.0-beta.73", - "@ohif/extension-dicom-video": "3.8.0-beta.73" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-dicom-pdf": "3.8.0-beta.74", + "@ohif/extension-dicom-video": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 8d5d5fe80..c749a9ca7 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/extension-dicom-pdf": "3.8.0-beta.73", - "@ohif/extension-dicom-video": "3.8.0-beta.73", - "@ohif/extension-measurement-tracking": "3.8.0-beta.73" + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-dicom-pdf": "3.8.0-beta.74", + "@ohif/extension-dicom-video": "3.8.0-beta.74", + "@ohif/extension-measurement-tracking": "3.8.0-beta.74" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 1b22d884d..c80f99f8d 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.74", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 6bc8a13ec..beebd6266 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.73", - "commit": "dc37802ec1f739a6ed602363bdf231d6fe58827e" -} + "version": "3.8.0-beta.74", + "commit": "d57e8bc1571c6da4effaa492ee2d162c552365a2" +} \ No newline at end of file diff --git a/version.txt b/version.txt index 3d4f75491..a2e24aeab 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.73 +3.8.0-beta.74 \ No newline at end of file From 7014e6ca4a4f498d127e055e3a1fb7f2216329a0 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 04:15:43 +0000 Subject: [PATCH 230/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- .../cornerstone-dynamic-volume/CHANGELOG.md | 11 ++++++ .../cornerstone-dynamic-volume/package.json | 8 ++--- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 11 ++++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 11 ++++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 11 ++++++ modes/microscopy/package.json | 2 +- modes/preclinical-4d/CHANGELOG.md | 11 ++++++ modes/preclinical-4d/package.json | 6 ++-- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 11 ++++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 52 files changed, 313 insertions(+), 48 deletions(-) create mode 100644 extensions/cornerstone-dynamic-volume/CHANGELOG.md create mode 100644 modes/preclinical-4d/CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index a40b1e0eb..0b66fd73c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package ohif-monorepo-root diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index c4767294b..9ed07e91f 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 9345ef7f5..5f406f95e 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 86f623425..f7dce7cfa 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 0cc5a33de..4e4fa290e 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index ab204c1be..373f719fc 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3e2304d03..ac94d12e1 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dynamic-volume/CHANGELOG.md b/extensions/cornerstone-dynamic-volume/CHANGELOG.md new file mode 100644 index 000000000..24a0dabac --- /dev/null +++ b/extensions/cornerstone-dynamic-volume/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index afe626621..2d90f97bb 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.8.0-beta.72", + "version": "3.8.0-beta.74", "description": "OHIF extension for 4D volumes data", "author": "OHIF", "license": "MIT", @@ -30,10 +30,10 @@ }, "peerDependencies": { "@ohif/core": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", "@ohif/i18n": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", @@ -42,9 +42,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/tools": "^1.70.0", "@cornerstonejs/core": "^1.70.0", "@cornerstonejs/streaming-image-volume-loader": "^1.70.0", + "@cornerstonejs/tools": "^1.70.0", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 303efb87f..629b8252d 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9c8022a31..4f3509a5c 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index e3806e560..fe7714af4 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 310130cc1..6fa775445 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index aaf38ddfa..839ab8220 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b6f71221d..8d042e50f 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 758f69a8d..c313cb6f6 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index cc1a6bd8b..9c2311e1d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 89300187c..970da87da 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 29dd010f0..2e17fe3a6 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 06833ef30..b30a636a9 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index e6fd47f56..95985010d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/ui": "3.8.0-beta.74", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 5f1d8835d..86697edf9 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index bf3086ea4..e6a9bd870 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index f33e7248b..c214f7e74 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2e42bd93e..2158c390a 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 08dfff3ff..808ae7e9c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 9781929bb..c002ee60d 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 1c33303d3..38bd9f71f 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index dfc81fc96..fc936030a 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index bbf8be7c5..e1e267ffb 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 9d038b31d..078c692d7 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 61bfb1cd3..761f34b8c 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index f5755c386..6b3bf818f 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 07891f7ae..2f82af77b 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/preclinical-4d/CHANGELOG.md b/modes/preclinical-4d/CHANGELOG.md new file mode 100644 index 000000000..24a0dabac --- /dev/null +++ b/modes/preclinical-4d/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index fabf668b2..82f275620 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-preclinical-4d", - "version": "3.7.0-beta.76", + "version": "3.8.0-beta.74", "description": "4D Workflow", "author": "OHIF", "license": "MIT", @@ -31,10 +31,10 @@ }, "peerDependencies": { "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.74", "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", "@ohif/extension-tmtv": "3.8.0-beta.74" }, "dependencies": { diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 9c0f2b20b..8bcbf7ed4 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 54d7d02ed..c2abbad74 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 5605f56c1..526911d8b 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index c749a9ca7..73c6b7974 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index fca11b67c..68f62702a 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index fbf5e5503..8cf4d095e 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -56,22 +56,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.73", - "@ohif/extension-cornerstone": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.73", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.73", - "@ohif/extension-default": "3.8.0-beta.73", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.73", - "@ohif/extension-dicom-pdf": "3.8.0-beta.73", - "@ohif/extension-dicom-video": "3.8.0-beta.73", - "@ohif/extension-test": "3.8.0-beta.73", - "@ohif/i18n": "3.8.0-beta.73", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.73", - "@ohif/mode-longitudinal": "3.8.0-beta.73", - "@ohif/mode-microscopy": "3.8.0-beta.73", - "@ohif/mode-test": "3.8.0-beta.73", - "@ohif/ui": "3.8.0-beta.73", + "@ohif/core": "3.8.0-beta.74", + "@ohif/extension-cornerstone": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", + "@ohif/extension-default": "3.8.0-beta.74", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.74", + "@ohif/extension-dicom-pdf": "3.8.0-beta.74", + "@ohif/extension-dicom-video": "3.8.0-beta.74", + "@ohif/extension-test": "3.8.0-beta.74", + "@ohif/i18n": "3.8.0-beta.74", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.74", + "@ohif/mode-longitudinal": "3.8.0-beta.74", + "@ohif/mode-microscopy": "3.8.0-beta.74", + "@ohif/mode-test": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.74", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 69828c4a8..9ce12a519 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index e56b1444a..f9935473d 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index f282a16c3..ffd4438b9 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index c80f99f8d..49f8ddee3 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index d3e03fb07..109136d6a 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 8ab4cf963..c9748047d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 6f1e35d8b..18111c66b 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 27e2cfca2..5332cfd29 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index ce16ce187..0a686a9b5 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) + + +### Features + +* **4D:** Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode ([#3664](https://github.com/OHIF/Viewers/issues/3664)) ([d57e8bc](https://github.com/OHIF/Viewers/commit/d57e8bc1571c6da4effaa492ee2d162c552365a2)) + + + + + # [3.8.0-beta.73](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.72...v3.8.0-beta.73) (2024-04-08) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index d6845eafd..4c382fdd5 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.73", + "version": "3.8.0-beta.74", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Wed, 10 Apr 2024 10:16:09 -0400 Subject: [PATCH 231/289] fix: Microscopy bulkdata and image retrieve (#3894) --- .../utils/StaticWadoClient.ts | 68 +++++++++++++++++- .../utils/findIndexOfString.ts | 47 +++++++++++++ .../DicomWebDataSource/utils/fixMultipart.ts | 70 +++++++++++++++++++ extensions/default/src/index.ts | 2 + .../src/utils/dicomWebClient.ts | 10 +-- platform/app/public/config/e2e.js | 2 +- 6 files changed, 187 insertions(+), 12 deletions(-) create mode 100644 extensions/default/src/DicomWebDataSource/utils/findIndexOfString.ts create mode 100644 extensions/default/src/DicomWebDataSource/utils/fixMultipart.ts diff --git a/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts b/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts index ed2815c60..519e8109c 100644 --- a/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts +++ b/extensions/default/src/DicomWebDataSource/utils/StaticWadoClient.ts @@ -1,4 +1,25 @@ import { api } from 'dicomweb-client'; +import fixMultipart from './fixMultipart'; + +const { DICOMwebClient } = api; + +const anyDicomwebClient = DICOMwebClient as any; + +// Ugly over-ride, but the internals aren't otherwise accessible. +if (!anyDicomwebClient._orig_buildMultipartAcceptHeaderFieldValue) { + anyDicomwebClient._orig_buildMultipartAcceptHeaderFieldValue = + anyDicomwebClient._buildMultipartAcceptHeaderFieldValue; + anyDicomwebClient._buildMultipartAcceptHeaderFieldValue = function (mediaTypes, acceptableTypes) { + if (mediaTypes.length === 1 && mediaTypes[0].mediaType.endsWith('/*')) { + return '*/*'; + } else { + return anyDicomwebClient._orig_buildMultipartAcceptHeaderFieldValue( + mediaTypes, + acceptableTypes + ); + } + }; +} /** * An implementation of the static wado client, that fetches data from @@ -25,9 +46,50 @@ export default class StaticWadoClient extends api.DICOMwebClient { modality: '00080060', }; - constructor(qidoConfig) { - super(qidoConfig); - this.staticWado = qidoConfig.staticWado; + protected config; + protected staticWado; + + constructor(config) { + super(config); + this.staticWado = config.staticWado; + this.config = config; + } + + /** + * Handle improperly specified multipart/related return type. + * Note if the response is SUPPOSED to be multipart encoded already, then this + * will double-decode it. + * + * @param options + * @returns De-multiparted response data. + * + */ + public retrieveBulkData(options): Promise { + const shouldFixMultipart = this.config.fixBulkdataMultipart !== false; + const useOptions = { + ...options, + }; + if (this.staticWado) { + useOptions.mediaTypes = [{ mediaType: 'application/*' }]; + } + return super + .retrieveBulkData(useOptions) + .then(result => (shouldFixMultipart ? fixMultipart(result) : result)); + } + + /** + * Retrieves instance frames using the image/* media type when configured + * to do so (static wado back end). + */ + public retrieveInstanceFrames(options) { + if (this.staticWado) { + return super.retrieveInstanceFrames({ + ...options, + mediaTypes: [{ mediaType: 'image/*' }], + }); + } else { + return super.retrieveInstanceFrames(options); + } } /** diff --git a/extensions/default/src/DicomWebDataSource/utils/findIndexOfString.ts b/extensions/default/src/DicomWebDataSource/utils/findIndexOfString.ts new file mode 100644 index 000000000..f5bbd3583 --- /dev/null +++ b/extensions/default/src/DicomWebDataSource/utils/findIndexOfString.ts @@ -0,0 +1,47 @@ +function checkToken(token, data, dataOffset): boolean { + if (dataOffset + token.length > data.length) { + return false; + } + + let endIndex = dataOffset; + + for (let i = 0; i < token.length; i++) { + if (token[i] !== data[endIndex++]) { + return false; + } + } + + return true; +} + +function stringToUint8Array(str: string): Uint8Array { + const uint = new Uint8Array(str.length); + + for (let i = 0, j = str.length; i < j; i++) { + uint[i] = str.charCodeAt(i); + } + + return uint; +} + +function findIndexOfString( + data: Uint8Array, + str: string, + offset?: number +): number { + offset = offset || 0; + + const token = stringToUint8Array(str); + + for (let i = offset; i < data.length; i++) { + if (token[0] === data[i]) { + // console.log('match @', i); + if (checkToken(token, data, i)) { + return i; + } + } + } + + return -1; +} +export default findIndexOfString; diff --git a/extensions/default/src/DicomWebDataSource/utils/fixMultipart.ts b/extensions/default/src/DicomWebDataSource/utils/fixMultipart.ts new file mode 100644 index 000000000..77e3071a2 --- /dev/null +++ b/extensions/default/src/DicomWebDataSource/utils/fixMultipart.ts @@ -0,0 +1,70 @@ +import findIndexOfString from './findIndexOfString'; + +/** + * Fix multipart data coming back from the retrieve bulkdata request, but + * incorrectly tagged as application/octet-stream. Some servers don't handle + * the response type correctly, and this method is relatively robust about + * detecting multipart data correctly. It will only extract one value. + */ +export default function fixMultipart(arrayData) { + const data = new Uint8Array(arrayData[0]); + // Don't know the exact minimum length, but it is at least 25 to encode multipart + if (data.length < 25) { + return arrayData; + } + const dashIndex = findIndexOfString(data, '--'); + if (dashIndex > 6) { + return arrayData; + } + const tokenIndex = findIndexOfString(data, '\r\n\r\n', dashIndex); + if (tokenIndex > 512) { + // Allow for 512 characters in the header - there is no apriori limit, but + // this seems ok for now as we only expect it to have content type in it. + return arrayData; + } + const header = uint8ArrayToString(data, 0, tokenIndex); + // Now find the boundary marker + const responseHeaders = header.split('\r\n'); + const boundary = findBoundary(responseHeaders); + + if (!boundary) { + return arrayData; + } + // Start of actual data is 4 characters after the token + const offset = tokenIndex + 4; + + const endIndex = findIndexOfString(data, boundary, offset); + if (endIndex === -1) { + return arrayData; + } + + return [data.slice(offset, endIndex - 2).buffer]; +} + +export function findBoundary(header: string[]): string { + for (let i = 0; i < header.length; i++) { + if (header[i].substr(0, 2) === '--') { + return header[i]; + } + } +} + +export function findContentType(header: string[]): string { + for (let i = 0; i < header.length; i++) { + if (header[i].substr(0, 13) === 'Content-Type:') { + return header[i].substr(13).trim(); + } + } +} + +export function uint8ArrayToString(data, offset, length) { + offset = offset || 0; + length = length || data.length - offset; + let str = ''; + + for (let i = offset; i < offset + length; i++) { + str += String.fromCharCode(data[i]); + } + + return str; +} diff --git a/extensions/default/src/index.ts b/extensions/default/src/index.ts index 49ec15d24..3d4c9ac48 100644 --- a/extensions/default/src/index.ts +++ b/extensions/default/src/index.ts @@ -16,6 +16,7 @@ import { ContextMenuController, CustomizableContextMenuTypes } from './Customiza import * as dicomWebUtils from './DicomWebDataSource/utils'; import { createReportDialogPrompt } from './Panels'; import createReportAsync from './Actions/createReportAsync'; +import StaticWadoClient from './DicomWebDataSource/utils/StaticWadoClient'; const defaultExtension: Types.Extensions.Extension = { /** @@ -54,4 +55,5 @@ export { dicomWebUtils, createReportDialogPrompt, createReportAsync, + StaticWadoClient, }; diff --git a/extensions/dicom-microscopy/src/utils/dicomWebClient.ts b/extensions/dicom-microscopy/src/utils/dicomWebClient.ts index 8d6d78462..dc906b120 100644 --- a/extensions/dicom-microscopy/src/utils/dicomWebClient.ts +++ b/extensions/dicom-microscopy/src/utils/dicomWebClient.ts @@ -1,11 +1,5 @@ -import { api } from 'dicomweb-client'; import { errorHandler, DicomMetadataStore } from '@ohif/core'; - -const { DICOMwebClient } = api; - -DICOMwebClient._buildMultipartAcceptHeaderFieldValue = () => { - return '*/*'; -}; +import { StaticWadoClient } from '@ohif/extension-default'; /** * create a DICOMwebClient object to be used by Dicom Microscopy Viewer @@ -31,7 +25,7 @@ export default function getDicomWebClient({ extensionManager, servicesManager }) errorInterceptor: errorHandler.getHTTPErrorHandler(), }; - const client = new api.DICOMwebClient(wadoConfig); + const client = new StaticWadoClient(wadoConfig); client.wadoURL = wadoConfig.url; if (extensionManager.activeDataSource === 'dicomlocal') { diff --git a/platform/app/public/config/e2e.js b/platform/app/public/config/e2e.js index 3a2fdb2ea..90827b906 100644 --- a/platform/app/public/config/e2e.js +++ b/platform/app/public/config/e2e.js @@ -103,7 +103,7 @@ window.config = { supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, - singlepart: 'bulkdata,video,pdf', + singlepart: 'video,pdf', bulkDataURI: { enabled: true, relativeResolution: 'studies', From 5cc693d26c5a59b09dd19500bc29661ff561beb8 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 14:27:08 +0000 Subject: [PATCH 232/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- .../cornerstone-dynamic-volume/package.json | 10 +++++----- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/preclinical-4d/package.json | 12 ++++++------ modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 23 files changed, 87 insertions(+), 87 deletions(-) diff --git a/commit.txt b/commit.txt index 269bddcd9..15fc6e613 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -d57e8bc1571c6da4effaa492ee2d162c552365a2 \ No newline at end of file +7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 5f406f95e..79e515dda 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/i18n": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/i18n": "3.8.0-beta.75", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4e4fa290e..9fac71b68 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/i18n": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/i18n": "3.8.0-beta.75", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ac94d12e1..9a32b140d 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-measurement-tracking": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-measurement-tracking": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 2d90f97bb..353a22cbd 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -29,11 +29,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/i18n": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/i18n": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 4f3509a5c..32fd2c7de 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 6fa775445..cf8480d06 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/i18n": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/i18n": "3.8.0-beta.75", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 8d042e50f..867e0d31a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/i18n": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/i18n": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 9c2311e1d..ed9fb7fd8 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 2e17fe3a6..769456f45 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 95985010d..5ec7c4c87 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.70.0", "@cornerstonejs/tools": "^1.70.0", - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index e6a9bd870..f9a6fcda6 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 2158c390a..0b12b2c78 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 38bd9f71f..dde954376 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-dicom-pdf": "3.8.0-beta.74", - "@ohif/extension-dicom-video": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-dicom-pdf": "3.8.0-beta.75", + "@ohif/extension-dicom-video": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index e1e267ffb..3eef40c51 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-dicom-pdf": "3.8.0-beta.74", - "@ohif/extension-dicom-video": "3.8.0-beta.74", - "@ohif/extension-measurement-tracking": "3.8.0-beta.74", - "@ohif/extension-test": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-dicom-pdf": "3.8.0-beta.75", + "@ohif/extension-dicom-video": "3.8.0-beta.75", + "@ohif/extension-measurement-tracking": "3.8.0-beta.75", + "@ohif/extension-test": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 761f34b8c..d2ca891b4 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-dicom-pdf": "3.8.0-beta.74", - "@ohif/extension-dicom-video": "3.8.0-beta.74", - "@ohif/extension-measurement-tracking": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-dicom-pdf": "3.8.0-beta.75", + "@ohif/extension-dicom-video": "3.8.0-beta.75", + "@ohif/extension-measurement-tracking": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 2f82af77b..16ee1e021 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 82f275620..62df589d8 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -30,12 +30,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-tmtv": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-tmtv": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index c2abbad74..a3b58c1ed 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-dicom-pdf": "3.8.0-beta.74", - "@ohif/extension-dicom-video": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-dicom-pdf": "3.8.0-beta.75", + "@ohif/extension-dicom-video": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 73c6b7974..4745c0481 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-dicom-pdf": "3.8.0-beta.74", - "@ohif/extension-dicom-video": "3.8.0-beta.74", - "@ohif/extension-measurement-tracking": "3.8.0-beta.74" + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-dicom-pdf": "3.8.0-beta.75", + "@ohif/extension-dicom-video": "3.8.0-beta.75", + "@ohif/extension-measurement-tracking": "3.8.0-beta.75" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 49f8ddee3..98526d7bd 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.75", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index beebd6266..9de733e6e 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.74", - "commit": "d57e8bc1571c6da4effaa492ee2d162c552365a2" + "version": "3.8.0-beta.75", + "commit": "7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f" } \ No newline at end of file diff --git a/version.txt b/version.txt index a2e24aeab..47b4c61a4 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.74 \ No newline at end of file +3.8.0-beta.75 \ No newline at end of file From 603d5cc53afd055c77ffd0146c3349c6820b3c63 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 14:27:17 +0000 Subject: [PATCH 233/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- .../cornerstone-dynamic-volume/CHANGELOG.md | 8 +++++ .../cornerstone-dynamic-volume/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 11 ++++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/preclinical-4d/CHANGELOG.md | 8 +++++ modes/preclinical-4d/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 52 files changed, 263 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b66fd73c..9c6358f6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + + +### Bug Fixes + +* Microscopy bulkdata and image retrieve ([#3894](https://github.com/OHIF/Viewers/issues/3894)) ([7fac49b](https://github.com/OHIF/Viewers/commit/7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f)) + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 9ed07e91f..9e74171e6 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 79e515dda..432be8861 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index f7dce7cfa..8e0d9236b 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 9fac71b68..1599e79f8 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 373f719fc..178e7231c 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9a32b140d..d25596d68 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dynamic-volume/CHANGELOG.md b/extensions/cornerstone-dynamic-volume/CHANGELOG.md index 24a0dabac..485166326 100644 --- a/extensions/cornerstone-dynamic-volume/CHANGELOG.md +++ b/extensions/cornerstone-dynamic-volume/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 353a22cbd..e8fc2c151 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for 4D volumes data", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 629b8252d..6c1c15196 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 32fd2c7de..1b6905b85 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index fe7714af4..1e5841c32 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + + +### Bug Fixes + +* Microscopy bulkdata and image retrieve ([#3894](https://github.com/OHIF/Viewers/issues/3894)) ([7fac49b](https://github.com/OHIF/Viewers/commit/7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f)) + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/default/package.json b/extensions/default/package.json index cf8480d06..644f41ef0 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 839ab8220..2f9d21938 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + + +### Bug Fixes + +* Microscopy bulkdata and image retrieve ([#3894](https://github.com/OHIF/Viewers/issues/3894)) ([7fac49b](https://github.com/OHIF/Viewers/commit/7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f)) + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 867e0d31a..6a62bde75 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index c313cb6f6..1d8223ae2 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index ed9fb7fd8..93153d399 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 970da87da..c1cb16507 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 769456f45..e94a01247 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index b30a636a9..ada81905d 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 5ec7c4c87..454164eb6 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/ui": "3.8.0-beta.75", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 86697edf9..656adf744 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index f9a6fcda6..fc50a4786 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index c214f7e74..d51877496 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 0b12b2c78..d00442acb 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 808ae7e9c..1145f0a10 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index c002ee60d..de5fb1d5e 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index dde954376..5c61b6d96 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index fc936030a..35e1cd4de 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 3eef40c51..82a4456db 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 078c692d7..24dc0cb75 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index d2ca891b4..78dc141a6 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 6b3bf818f..b4cad6999 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 16ee1e021..6acd88150 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/preclinical-4d/CHANGELOG.md b/modes/preclinical-4d/CHANGELOG.md index 24a0dabac..96a7a3b66 100644 --- a/modes/preclinical-4d/CHANGELOG.md +++ b/modes/preclinical-4d/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-preclinical-4d + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 62df589d8..841de3949 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-preclinical-4d", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "4D Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 8bcbf7ed4..c36759db4 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index a3b58c1ed..53772a4a9 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 526911d8b..bb124044d 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 4745c0481..6b7253c3c 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 68f62702a..2673f42bb 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + + +### Bug Fixes + +* Microscopy bulkdata and image retrieve ([#3894](https://github.com/OHIF/Viewers/issues/3894)) ([7fac49b](https://github.com/OHIF/Viewers/commit/7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f)) + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/platform/app/package.json b/platform/app/package.json index 8cf4d095e..5ebb46091 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -56,22 +56,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.74", - "@ohif/extension-cornerstone": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.74", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.74", - "@ohif/extension-default": "3.8.0-beta.74", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.74", - "@ohif/extension-dicom-pdf": "3.8.0-beta.74", - "@ohif/extension-dicom-video": "3.8.0-beta.74", - "@ohif/extension-test": "3.8.0-beta.74", - "@ohif/i18n": "3.8.0-beta.74", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.74", - "@ohif/mode-longitudinal": "3.8.0-beta.74", - "@ohif/mode-microscopy": "3.8.0-beta.74", - "@ohif/mode-test": "3.8.0-beta.74", - "@ohif/ui": "3.8.0-beta.74", + "@ohif/core": "3.8.0-beta.75", + "@ohif/extension-cornerstone": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", + "@ohif/extension-default": "3.8.0-beta.75", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.75", + "@ohif/extension-dicom-pdf": "3.8.0-beta.75", + "@ohif/extension-dicom-video": "3.8.0-beta.75", + "@ohif/extension-test": "3.8.0-beta.75", + "@ohif/i18n": "3.8.0-beta.75", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.75", + "@ohif/mode-longitudinal": "3.8.0-beta.75", + "@ohif/mode-microscopy": "3.8.0-beta.75", + "@ohif/mode-test": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.75", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 9ce12a519..a195c4611 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index f9935473d..a84999fbb 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index ffd4438b9..5a3778698 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/platform/core/package.json b/platform/core/package.json index 98526d7bd..f2dea54cd 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 109136d6a..dd2209221 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/platform/docs/package.json b/platform/docs/package.json index c9748047d..930a495fc 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 18111c66b..69f4cacbd 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 5332cfd29..750312994 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 0a686a9b5..3a97d63db 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.74](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.73...v3.8.0-beta.74) (2024-04-10) diff --git a/platform/ui/package.json b/platform/ui/package.json index 4c382fdd5..33bb1f96c 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.74", + "version": "3.8.0-beta.75", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From e9c30a108e2dd14a8b137b81e5b832cc167bc3d1 Mon Sep 17 00:00:00 2001 From: Jorge Lopes <50026015+jlopes90@users.noreply.github.com> Date: Wed, 10 Apr 2024 15:31:04 +0100 Subject: [PATCH 234/289] fix(MetaDataProvider): Fix tag in GeneralImageModule (#4000) --- platform/core/src/classes/MetadataProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/core/src/classes/MetadataProvider.ts b/platform/core/src/classes/MetadataProvider.ts index 73238568c..30525a2bc 100644 --- a/platform/core/src/classes/MetadataProvider.ts +++ b/platform/core/src/classes/MetadataProvider.ts @@ -369,7 +369,7 @@ class MetadataProvider { case WADO_IMAGE_LOADER_TAGS.GENERAL_IMAGE_MODULE: metadata = { - sopInstanceUid: instance.SOPInstanceUID, + sopInstanceUID: instance.SOPInstanceUID, instanceNumber: toNumber(instance.InstanceNumber), lossyImageCompression: instance.LossyImageCompression, lossyImageCompressionRatio: instance.LossyImageCompressionRatio, From 7c3d67c2a832a14f920817651902981f6091e879 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 14:42:57 +0000 Subject: [PATCH 235/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- .../cornerstone-dynamic-volume/package.json | 10 +++++----- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/preclinical-4d/package.json | 12 ++++++------ modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 23 files changed, 87 insertions(+), 87 deletions(-) diff --git a/commit.txt b/commit.txt index 15fc6e613..1a5ad2489 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f \ No newline at end of file +e9c30a108e2dd14a8b137b81e5b832cc167bc3d1 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 432be8861..cadbc8b21 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/i18n": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/i18n": "3.8.0-beta.76", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 1599e79f8..b94bf9fba 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/i18n": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/i18n": "3.8.0-beta.76", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d25596d68..3cf6b2b10 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-measurement-tracking": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-measurement-tracking": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index e8fc2c151..0e140aea0 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -29,11 +29,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/i18n": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/i18n": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 1b6905b85..bbc3db5b5 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 644f41ef0..b2b2160da 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/i18n": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/i18n": "3.8.0-beta.76", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 6a62bde75..619166b53 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/i18n": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/i18n": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 93153d399..8f79eac86 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index e94a01247..45ae681dd 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 454164eb6..ec40647d5 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.70.0", "@cornerstonejs/tools": "^1.70.0", - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index fc50a4786..5cfe3b665 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index d00442acb..d2f7d09c7 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 5c61b6d96..072fb432d 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-dicom-pdf": "3.8.0-beta.75", - "@ohif/extension-dicom-video": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-dicom-pdf": "3.8.0-beta.76", + "@ohif/extension-dicom-video": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 82a4456db..445ac4e1c 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-dicom-pdf": "3.8.0-beta.75", - "@ohif/extension-dicom-video": "3.8.0-beta.75", - "@ohif/extension-measurement-tracking": "3.8.0-beta.75", - "@ohif/extension-test": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-dicom-pdf": "3.8.0-beta.76", + "@ohif/extension-dicom-video": "3.8.0-beta.76", + "@ohif/extension-measurement-tracking": "3.8.0-beta.76", + "@ohif/extension-test": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 78dc141a6..d5fd54f9f 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-dicom-pdf": "3.8.0-beta.75", - "@ohif/extension-dicom-video": "3.8.0-beta.75", - "@ohif/extension-measurement-tracking": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-dicom-pdf": "3.8.0-beta.76", + "@ohif/extension-dicom-video": "3.8.0-beta.76", + "@ohif/extension-measurement-tracking": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 6acd88150..ab248d615 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 841de3949..5fbdb3915 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -30,12 +30,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-tmtv": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-tmtv": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 53772a4a9..fff8c246b 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-dicom-pdf": "3.8.0-beta.75", - "@ohif/extension-dicom-video": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-dicom-pdf": "3.8.0-beta.76", + "@ohif/extension-dicom-video": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 6b7253c3c..f7a9fb4d2 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-dicom-pdf": "3.8.0-beta.75", - "@ohif/extension-dicom-video": "3.8.0-beta.75", - "@ohif/extension-measurement-tracking": "3.8.0-beta.75" + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-dicom-pdf": "3.8.0-beta.76", + "@ohif/extension-dicom-video": "3.8.0-beta.76", + "@ohif/extension-measurement-tracking": "3.8.0-beta.76" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index f2dea54cd..f7b26a253 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.76", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 9de733e6e..0ba05f2c3 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.75", - "commit": "7fac49b4492b4bd5e9ece8e2e2b0fa2faa840d7f" + "version": "3.8.0-beta.76", + "commit": "e9c30a108e2dd14a8b137b81e5b832cc167bc3d1" } \ No newline at end of file diff --git a/version.txt b/version.txt index 47b4c61a4..0e57d2523 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.75 \ No newline at end of file +3.8.0-beta.76 \ No newline at end of file From c7e53bdbf86740f638cc1afe41a8c4319763b433 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 14:43:05 +0000 Subject: [PATCH 236/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- .../cornerstone-dynamic-volume/CHANGELOG.md | 8 +++++ .../cornerstone-dynamic-volume/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/preclinical-4d/CHANGELOG.md | 8 +++++ modes/preclinical-4d/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 8 +++++ platform/ui/package.json | 2 +- 52 files changed, 257 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c6358f6e..f71b54482 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + + +### Bug Fixes + +* **MetaDataProvider:** Fix tag in GeneralImageModule ([#4000](https://github.com/OHIF/Viewers/issues/4000)) ([e9c30a1](https://github.com/OHIF/Viewers/commit/e9c30a108e2dd14a8b137b81e5b832cc167bc3d1)) + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 9e74171e6..a784030f4 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index cadbc8b21..e67f0594a 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 8e0d9236b..df6c90c82 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index b94bf9fba..a023807d2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 178e7231c..0c4f717ec 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3cf6b2b10..d18655878 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dynamic-volume/CHANGELOG.md b/extensions/cornerstone-dynamic-volume/CHANGELOG.md index 485166326..b0bfc40d2 100644 --- a/extensions/cornerstone-dynamic-volume/CHANGELOG.md +++ b/extensions/cornerstone-dynamic-volume/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 0e140aea0..de36ac071 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for 4D volumes data", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 6c1c15196..a09713f80 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index bbc3db5b5..716dd2f96 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 1e5841c32..4e49f96ce 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) diff --git a/extensions/default/package.json b/extensions/default/package.json index b2b2160da..0ca805b75 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 2f9d21938..6c47b652d 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 619166b53..5e7db610e 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 1d8223ae2..98759c521 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8f79eac86..82c491409 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index c1cb16507..32562cf54 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 45ae681dd..5d8d10a3d 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index ada81905d..b3ac9de0b 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index ec40647d5..32ce85823 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/ui": "3.8.0-beta.76", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 656adf744..7f119d20d 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 5cfe3b665..5228e1d2a 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index d51877496..f010e4e5e 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index d2f7d09c7..dba5be9c7 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 1145f0a10..7b54ebfa1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index de5fb1d5e..c4678ce03 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 072fb432d..2f6056267 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 35e1cd4de..ceb834127 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 445ac4e1c..1d6594173 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 24dc0cb75..010e8f30e 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index d5fd54f9f..ca6ff3706 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index b4cad6999..89b9f0abb 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index ab248d615..c3ccfdc52 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/preclinical-4d/CHANGELOG.md b/modes/preclinical-4d/CHANGELOG.md index 96a7a3b66..cb49edc6c 100644 --- a/modes/preclinical-4d/CHANGELOG.md +++ b/modes/preclinical-4d/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-preclinical-4d + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-preclinical-4d diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 5fbdb3915..b700ee5a4 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-preclinical-4d", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "4D Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index c36759db4..e4bba74fc 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index fff8c246b..514311018 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index bb124044d..274508e27 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index f7a9fb4d2..bd7525098 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 2673f42bb..fbcdcbd37 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) diff --git a/platform/app/package.json b/platform/app/package.json index 5ebb46091..544d7a3c9 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -56,22 +56,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.75", - "@ohif/extension-cornerstone": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.75", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.75", - "@ohif/extension-default": "3.8.0-beta.75", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.75", - "@ohif/extension-dicom-pdf": "3.8.0-beta.75", - "@ohif/extension-dicom-video": "3.8.0-beta.75", - "@ohif/extension-test": "3.8.0-beta.75", - "@ohif/i18n": "3.8.0-beta.75", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.75", - "@ohif/mode-longitudinal": "3.8.0-beta.75", - "@ohif/mode-microscopy": "3.8.0-beta.75", - "@ohif/mode-test": "3.8.0-beta.75", - "@ohif/ui": "3.8.0-beta.75", + "@ohif/core": "3.8.0-beta.76", + "@ohif/extension-cornerstone": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", + "@ohif/extension-default": "3.8.0-beta.76", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.76", + "@ohif/extension-dicom-pdf": "3.8.0-beta.76", + "@ohif/extension-dicom-video": "3.8.0-beta.76", + "@ohif/extension-test": "3.8.0-beta.76", + "@ohif/i18n": "3.8.0-beta.76", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.76", + "@ohif/mode-longitudinal": "3.8.0-beta.76", + "@ohif/mode-microscopy": "3.8.0-beta.76", + "@ohif/mode-test": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.76", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index a195c4611..38a52ca90 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index a84999fbb..2a4e66d17 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 5a3778698..1380aeec7 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + + +### Bug Fixes + +* **MetaDataProvider:** Fix tag in GeneralImageModule ([#4000](https://github.com/OHIF/Viewers/issues/4000)) ([e9c30a1](https://github.com/OHIF/Viewers/commit/e9c30a108e2dd14a8b137b81e5b832cc167bc3d1)) + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index f7b26a253..3b2d2258f 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index dd2209221..b35024e94 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 930a495fc..018054136 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 69f4cacbd..95b7da434 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 750312994..f26e57b8a 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 3a97d63db..c4b0cdb1c 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) + +**Note:** Version bump only for package @ohif/ui + + + + + # [3.8.0-beta.75](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.74...v3.8.0-beta.75) (2024-04-10) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 33bb1f96c..751c73e2c 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.75", + "version": "3.8.0-beta.76", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From be9bb065657b6420b54d0eafa18e885c3656d230 Mon Sep 17 00:00:00 2001 From: Mohannad Hussain <4026820+mohannadhussain@users.noreply.github.com> Date: Wed, 10 Apr 2024 10:46:27 -0400 Subject: [PATCH 237/289] docker: Enabled Orthanc's DIMSE port for easier loading of DICOM studies in OpenResty-Orthanc Recipe (#3917) --- platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml | 2 ++ platform/docs/docs/deployment/nginx--image-archive.md | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml b/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml index 16ec1ada7..33cf69e2d 100644 --- a/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml +++ b/platform/app/.recipes/OpenResty-Orthanc/docker-compose.yml @@ -43,3 +43,5 @@ services: # Persist data - ./volumes/orthanc-db/:/var/lib/orthanc/db/ restart: unless-stopped + ports: + - '4242:4242' # DIMSE diff --git a/platform/docs/docs/deployment/nginx--image-archive.md b/platform/docs/docs/deployment/nginx--image-archive.md index 5f8dc5166..8d8658798 100644 --- a/platform/docs/docs/deployment/nginx--image-archive.md +++ b/platform/docs/docs/deployment/nginx--image-archive.md @@ -87,7 +87,8 @@ in command prompt or terminal_ - then: `cd .recipes/OpenResty-Orthanc` - run: `docker-compose up --build` - Navigate to `127.0.0.1` for the viewer -- Navigate to `127.0.0.1/pacs-admin` for uploading studies +- Navigate to `127.0.0.1/pacs-admin` for uploading studies via the UI, or send studies via DIMSE C-STORE to `ORTHANC@127.0.0.1:4242` (hint: you can use utilites like dcm4che's `storescu` to send studies in bulk via the command line) + You can see the overview of the mentioned steps: From 4f99244d864427d69be6f863cb7a6a78411adb12 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Wed, 10 Apr 2024 11:55:19 -0300 Subject: [PATCH 238/289] fix(dicom-video): Update get direct func for dicom json to use url if present and fix config argument (#4017) --- extensions/default/src/DicomJSONDataSource/index.js | 2 +- extensions/default/src/utils/getDirectURL.js | 6 ++++++ extensions/dicom-video/src/getSopClassHandlerModule.js | 3 ++- .../src/components/HeaderPatientInfo/HeaderPatientInfo.tsx | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/extensions/default/src/DicomJSONDataSource/index.js b/extensions/default/src/DicomJSONDataSource/index.js index d124c8b73..deb50e252 100644 --- a/extensions/default/src/DicomJSONDataSource/index.js +++ b/extensions/default/src/DicomJSONDataSource/index.js @@ -166,7 +166,7 @@ function createDicomJSONApi(dicomJsonConfig) { * or is already retrieved, or a promise to a URL for such use if a BulkDataURI */ directURL: params => { - return getDirectURL(wadoRoot, params); + return getDirectURL(dicomJsonConfig, params); }, series: { metadata: async ({ StudyInstanceUID, madeInClient = false, customSort } = {}) => { diff --git a/extensions/default/src/utils/getDirectURL.js b/extensions/default/src/utils/getDirectURL.js index 823d7eaef..d9ea92499 100644 --- a/extensions/default/src/utils/getDirectURL.js +++ b/extensions/default/src/utils/getDirectURL.js @@ -10,6 +10,7 @@ import { utils } from '@ohif/core'; * @param {string} params.defaultType is the mime type of the response * @param {string} params.singlepart is the type of the part to retrieve * @param {string} params.fetchPart unknown? + * @param {string} params.url unknown? * @returns an absolute URL to the resource, if the absolute URL can be retrieved as singlepart, * or is already retrieved, or a promise to a URL for such use if a BulkDataURI */ @@ -21,7 +22,12 @@ const getDirectURL = (config, params) => { defaultPath = '/pixeldata', defaultType = 'video/mp4', singlepart: fetchPart = 'video', + url = null, } = params; + if (url) { + return url; + } + const value = instance[tag]; if (!value) { return undefined; diff --git a/extensions/dicom-video/src/getSopClassHandlerModule.js b/extensions/dicom-video/src/getSopClassHandlerModule.js index 50181590f..5b0a2162e 100644 --- a/extensions/dicom-video/src/getSopClassHandlerModule.js +++ b/extensions/dicom-video/src/getSopClassHandlerModule.js @@ -51,7 +51,7 @@ const _getDisplaySetsFromSeries = (instances, servicesManager, extensionManager) }) .map(instance => { const { Modality, SOPInstanceUID, SeriesDescription = 'VIDEO' } = instance; - const { SeriesNumber, SeriesDate, SeriesInstanceUID, StudyInstanceUID, NumberOfFrames } = + const { SeriesNumber, SeriesDate, SeriesInstanceUID, StudyInstanceUID, NumberOfFrames, url } = instance; const displaySet = { //plugin: id, @@ -70,6 +70,7 @@ const _getDisplaySetsFromSeries = (instances, servicesManager, extensionManager) instance, singlepart: 'video', tag: 'PixelData', + url, }), instances: [instance], thumbnailSrc: dataSource.retrieve.directURL({ diff --git a/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx b/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx index 21a43f984..7f45bc039 100644 --- a/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx +++ b/platform/ui/src/components/HeaderPatientInfo/HeaderPatientInfo.tsx @@ -6,7 +6,7 @@ import { utils } from '@ohif/core'; const { formatDate, formatPN } = utils; const formatWithEllipsis = (str, maxLength) => { - if (str.length > maxLength) { + if (str?.length > maxLength) { return str.substring(0, maxLength) + '...'; } return str; From b0b65c582d519a57bddc742b0b67480954faf936 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 15:06:06 +0000 Subject: [PATCH 239/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- .../cornerstone-dynamic-volume/package.json | 10 +++++----- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/preclinical-4d/package.json | 12 ++++++------ modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 23 files changed, 87 insertions(+), 87 deletions(-) diff --git a/commit.txt b/commit.txt index 1a5ad2489..2612cd47c 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -e9c30a108e2dd14a8b137b81e5b832cc167bc3d1 \ No newline at end of file +4f99244d864427d69be6f863cb7a6a78411adb12 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index e67f0594a..2f7d41a9e 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/i18n": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/i18n": "3.8.0-beta.77", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a023807d2..4401cc9b2 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/i18n": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/i18n": "3.8.0-beta.77", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index d18655878..dd4e68616 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-measurement-tracking": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-measurement-tracking": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index de36ac071..8140b4f4f 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -29,11 +29,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/i18n": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/i18n": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 716dd2f96..9275eaba5 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 0ca805b75..10da45305 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/i18n": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/i18n": "3.8.0-beta.77", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 5e7db610e..4513146ef 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/i18n": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/i18n": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 82c491409..7380bd06d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 5d8d10a3d..f389d5cfb 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 32ce85823..478033903 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.70.0", "@cornerstonejs/tools": "^1.70.0", - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 5228e1d2a..96440256a 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index dba5be9c7..1e1cae7ce 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 2f6056267..d85cc3760 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-dicom-pdf": "3.8.0-beta.76", - "@ohif/extension-dicom-video": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-dicom-pdf": "3.8.0-beta.77", + "@ohif/extension-dicom-video": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 1d6594173..65990b90e 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-dicom-pdf": "3.8.0-beta.76", - "@ohif/extension-dicom-video": "3.8.0-beta.76", - "@ohif/extension-measurement-tracking": "3.8.0-beta.76", - "@ohif/extension-test": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-dicom-pdf": "3.8.0-beta.77", + "@ohif/extension-dicom-video": "3.8.0-beta.77", + "@ohif/extension-measurement-tracking": "3.8.0-beta.77", + "@ohif/extension-test": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index ca6ff3706..096a77b50 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-dicom-pdf": "3.8.0-beta.76", - "@ohif/extension-dicom-video": "3.8.0-beta.76", - "@ohif/extension-measurement-tracking": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-dicom-pdf": "3.8.0-beta.77", + "@ohif/extension-dicom-video": "3.8.0-beta.77", + "@ohif/extension-measurement-tracking": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index c3ccfdc52..1579d980a 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index b700ee5a4..32388b702 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -30,12 +30,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-tmtv": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-tmtv": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 514311018..84af54b43 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-dicom-pdf": "3.8.0-beta.76", - "@ohif/extension-dicom-video": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-dicom-pdf": "3.8.0-beta.77", + "@ohif/extension-dicom-video": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index bd7525098..bfccff02d 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-dicom-pdf": "3.8.0-beta.76", - "@ohif/extension-dicom-video": "3.8.0-beta.76", - "@ohif/extension-measurement-tracking": "3.8.0-beta.76" + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-dicom-pdf": "3.8.0-beta.77", + "@ohif/extension-dicom-video": "3.8.0-beta.77", + "@ohif/extension-measurement-tracking": "3.8.0-beta.77" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 3b2d2258f..fbf5a5bbf 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.77", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 0ba05f2c3..a95c7dba2 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.76", - "commit": "e9c30a108e2dd14a8b137b81e5b832cc167bc3d1" + "version": "3.8.0-beta.77", + "commit": "4f99244d864427d69be6f863cb7a6a78411adb12" } \ No newline at end of file diff --git a/version.txt b/version.txt index 0e57d2523..e9f54eafa 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.76 \ No newline at end of file +3.8.0-beta.77 \ No newline at end of file From ac0e1c0a2ccd7cd73d2f4e680025e6420825afcf Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 15:06:15 +0000 Subject: [PATCH 240/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- .../cornerstone-dynamic-volume/CHANGELOG.md | 8 +++++ .../cornerstone-dynamic-volume/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 8 +++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 11 ++++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 11 ++++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 8 +++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/preclinical-4d/CHANGELOG.md | 8 +++++ modes/preclinical-4d/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 8 +++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 8 +++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 52 files changed, 263 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f71b54482..88ce9bbcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + + +### Bug Fixes + +* **dicom-video:** Update get direct func for dicom json to use url if present and fix config argument ([#4017](https://github.com/OHIF/Viewers/issues/4017)) ([4f99244](https://github.com/OHIF/Viewers/commit/4f99244d864427d69be6f863cb7a6a78411adb12)) + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index a784030f4..e46d63f1f 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 2f7d41a9e..d1c1973ef 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index df6c90c82..75a91fe24 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4401cc9b2..4df2d54a7 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index 0c4f717ec..e608a2601 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index dd4e68616..9bb89c424 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dynamic-volume/CHANGELOG.md b/extensions/cornerstone-dynamic-volume/CHANGELOG.md index b0bfc40d2..f4aa71030 100644 --- a/extensions/cornerstone-dynamic-volume/CHANGELOG.md +++ b/extensions/cornerstone-dynamic-volume/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 8140b4f4f..85f049bc3 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for 4D volumes data", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index a09713f80..97b49b86b 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 9275eaba5..eb7c4f37a 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 4e49f96ce..6ab978458 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + + +### Bug Fixes + +* **dicom-video:** Update get direct func for dicom json to use url if present and fix config argument ([#4017](https://github.com/OHIF/Viewers/issues/4017)) ([4f99244](https://github.com/OHIF/Viewers/commit/4f99244d864427d69be6f863cb7a6a78411adb12)) + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index 10da45305..1b804a9e0 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 6c47b652d..29204bdd5 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 4513146ef..66c4c692d 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 98759c521..288acb025 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7380bd06d..085c0c011 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 32562cf54..9a25643b5 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + + +### Bug Fixes + +* **dicom-video:** Update get direct func for dicom json to use url if present and fix config argument ([#4017](https://github.com/OHIF/Viewers/issues/4017)) ([4f99244](https://github.com/OHIF/Viewers/commit/4f99244d864427d69be6f863cb7a6a78411adb12)) + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index f389d5cfb..7da4fb94a 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index b3ac9de0b..829d6a34d 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-measurement-tracking + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 478033903..9600d4b7d 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/ui": "3.8.0-beta.77", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 7f119d20d..77faee669 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 96440256a..49a40efed 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index f010e4e5e..288a4d395 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 1e1cae7ce..b88132935 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 7b54ebfa1..31697a6bc 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index c4678ce03..af5bce85c 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d85cc3760..b596566c3 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index ceb834127..39f41009a 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 65990b90e..1c730a8e1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 010e8f30e..d403882b2 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 096a77b50..8c94c0ed1 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 89b9f0abb..f1c850d26 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 1579d980a..36a39ab12 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/preclinical-4d/CHANGELOG.md b/modes/preclinical-4d/CHANGELOG.md index cb49edc6c..9c6474585 100644 --- a/modes/preclinical-4d/CHANGELOG.md +++ b/modes/preclinical-4d/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-preclinical-4d + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-preclinical-4d diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 32388b702..dd14b7e77 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-preclinical-4d", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "4D Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index e4bba74fc..eb78d54e4 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 84af54b43..8ed90e2c3 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 274508e27..86ae976ee 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index bfccff02d..c3815389a 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index fbcdcbd37..5890659bf 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/app + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index 544d7a3c9..cc8aca8b5 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -56,22 +56,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.76", - "@ohif/extension-cornerstone": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.76", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.76", - "@ohif/extension-default": "3.8.0-beta.76", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.76", - "@ohif/extension-dicom-pdf": "3.8.0-beta.76", - "@ohif/extension-dicom-video": "3.8.0-beta.76", - "@ohif/extension-test": "3.8.0-beta.76", - "@ohif/i18n": "3.8.0-beta.76", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.76", - "@ohif/mode-longitudinal": "3.8.0-beta.76", - "@ohif/mode-microscopy": "3.8.0-beta.76", - "@ohif/mode-test": "3.8.0-beta.76", - "@ohif/ui": "3.8.0-beta.76", + "@ohif/core": "3.8.0-beta.77", + "@ohif/extension-cornerstone": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", + "@ohif/extension-default": "3.8.0-beta.77", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.77", + "@ohif/extension-dicom-pdf": "3.8.0-beta.77", + "@ohif/extension-dicom-video": "3.8.0-beta.77", + "@ohif/extension-test": "3.8.0-beta.77", + "@ohif/i18n": "3.8.0-beta.77", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.77", + "@ohif/mode-longitudinal": "3.8.0-beta.77", + "@ohif/mode-microscopy": "3.8.0-beta.77", + "@ohif/mode-test": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.77", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index 38a52ca90..eb7023bb6 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 2a4e66d17..1ad3ea765 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 1380aeec7..399f989aa 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/core + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) diff --git a/platform/core/package.json b/platform/core/package.json index fbf5a5bbf..b07ee2ea0 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index b35024e94..8da64c222 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 018054136..edf1cdd14 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index 95b7da434..af396bc99 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index f26e57b8a..894a3f23b 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index c4b0cdb1c..8eb0792cf 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) + + +### Bug Fixes + +* **dicom-video:** Update get direct func for dicom json to use url if present and fix config argument ([#4017](https://github.com/OHIF/Viewers/issues/4017)) ([4f99244](https://github.com/OHIF/Viewers/commit/4f99244d864427d69be6f863cb7a6a78411adb12)) + + + + + # [3.8.0-beta.76](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.75...v3.8.0-beta.76) (2024-04-10) **Note:** Version bump only for package @ohif/ui diff --git a/platform/ui/package.json b/platform/ui/package.json index 751c73e2c..6a0ae522d 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.76", + "version": "3.8.0-beta.77", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From 2b83393f91cb16ea06821d79d14ff60f80c29c90 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:34:13 -0400 Subject: [PATCH 241/289] fix(general): enhancements and bug fixes (#4018) --- .../src/Viewport/OHIFCornerstoneViewport.tsx | 1 + .../cornerstone/src/getCustomizationModule.ts | 130 ++++++++++++ .../cornerstone/src/initMeasurementService.js | 35 +++- .../cornerstone/src/utils/callInputDialog.tsx | 5 +- .../utils/measurementServiceMappings/Angle.ts | 12 +- .../ArrowAnnotate.ts | 7 +- .../Bidirectional.ts | 12 +- .../measurementServiceMappings/CircleROI.ts | 12 +- .../measurementServiceMappings/CobbAngle.ts | 12 +- .../EllipticalROI.ts | 12 +- .../measurementServiceMappings/Length.ts | 37 ++-- .../LivewireContour.ts | 161 +++++++++++++++ .../PlanarFreehandROI.ts | 104 ++++------ .../RectangleROI.ts | 12 +- .../measurementServiceMappings/SplineROI.ts | 188 ++++++++++++++++++ .../constants/supportedTools.js | 2 + .../measurementServiceMappingsFactory.ts | 68 ++++++- .../promptBeginTracking.js | 6 + .../promptTrackNewStudy.js | 6 + modes/basic-test-mode/src/initToolGroups.ts | 2 + modes/basic-test-mode/src/moreTools.ts | 2 +- modes/longitudinal/src/initToolGroups.js | 2 + modes/longitudinal/src/moreTools.ts | 2 +- modes/longitudinal/src/toolbarButtons.ts | 8 - modes/segmentation/src/toolbarButtons.ts | 2 +- platform/app/src/routes/WorkList/WorkList.tsx | 2 +- .../services/UIViewportDialogService/index.js | 3 +- platform/ui/src/assets/styles/styles.css | 4 + .../components/Notification/Notification.tsx | 9 +- .../ViewportDialogProvider.tsx | 3 + 30 files changed, 710 insertions(+), 151 deletions(-) create mode 100644 extensions/cornerstone/src/utils/measurementServiceMappings/LivewireContour.ts create mode 100644 extensions/cornerstone/src/utils/measurementServiceMappings/SplineROI.ts diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index 11b4fbe07..b9e58a71f 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -444,6 +444,7 @@ const OHIFCornerstoneViewport = React.memo(props => { actions={viewportDialogState.actions} onSubmit={viewportDialogState.onSubmit} onOutsideClick={viewportDialogState.onOutsideClick} + onKeyPress={viewportDialogState.onKeyPress} /> )}
diff --git a/extensions/cornerstone/src/getCustomizationModule.ts b/extensions/cornerstone/src/getCustomizationModule.ts index 90bf67f6c..ea07e9694 100644 --- a/extensions/cornerstone/src/getCustomizationModule.ts +++ b/extensions/cornerstone/src/getCustomizationModule.ts @@ -64,6 +64,136 @@ function getCustomizationModule() { step: 1, }, }, + { + id: 'cornerstone.measurements', + Angle: { + displayText: [], + report: [], + }, + CobbAngle: { + displayText: [], + report: [], + }, + ArrowAnnotate: { + displayText: [], + report: [], + }, + RectangleROi: { + displayText: [], + report: [], + }, + CircleROI: { + displayText: [], + report: [], + }, + EllipticalROI: { + displayText: [], + report: [], + }, + Bidirectional: { + displayText: [], + report: [], + }, + Length: { + displayText: [], + report: [], + }, + LivewireContour: { + displayText: [], + report: [], + }, + SplineROI: { + displayText: [ + { + displayName: 'Area', + value: 'area', + type: 'value', + }, + { + value: 'areaUnit', + for: ['area'], + type: 'unit', + }, + /** + { + displayName: 'Modality', + value: 'Modality', + type: 'value', + }, + */ + ], + report: [ + { + displayName: 'Area', + value: 'area', + type: 'value', + }, + { + displayName: 'Unit', + value: 'areaUnit', + type: 'value', + }, + ], + }, + PlanarFreehandROI: { + displayText: [ + { + displayName: 'Mean', + value: 'mean', + type: 'value', + }, + { + displayName: 'Max', + value: 'max', + type: 'value', + }, + { + displayName: 'Area', + value: 'area', + type: 'value', + }, + { + value: 'modalityUnit', + for: ['mean', 'max' /** 'stdDev **/], + type: 'unit', + }, + { + value: 'areaUnit', + for: ['area'], + type: 'unit', + }, + /** + { + displayName: 'Std Dev', + value: 'stdDev', + type: 'value', + }, + */ + ], + report: [ + { + displayName: 'Mean', + value: 'mean', + type: 'value', + }, + { + displayName: 'Max', + value: 'max', + type: 'value', + }, + { + displayName: 'Area', + value: 'area', + type: 'value', + }, + { + displayName: 'Unit', + value: 'unit', + type: 'value', + }, + ], + }, + }, ], }, ]; diff --git a/extensions/cornerstone/src/initMeasurementService.js b/extensions/cornerstone/src/initMeasurementService.js index c19e46c71..61145aa18 100644 --- a/extensions/cornerstone/src/initMeasurementService.js +++ b/extensions/cornerstone/src/initMeasurementService.js @@ -17,7 +17,8 @@ const CORNERSTONE_3D_TOOLS_SOURCE_VERSION = '0.1'; const initMeasurementService = ( measurementService, displaySetService, - cornerstoneViewportService + cornerstoneViewportService, + customizationService ) => { /* Initialization */ const { @@ -30,10 +31,13 @@ const initMeasurementService = ( CobbAngle, RectangleROI, PlanarFreehandROI, + SplineROI, + LivewireContour, } = measurementServiceMappingsFactory( measurementService, displaySetService, - cornerstoneViewportService + cornerstoneViewportService, + customizationService ); const csTools3DVer1MeasurementSource = measurementService.createSource( CORNERSTONE_3D_TOOLS_SOURCE_NAME, @@ -127,6 +131,14 @@ const initMeasurementService = ( PlanarFreehandROI.toMeasurement ); + measurementService.addMapping( + csTools3DVer1MeasurementSource, + 'SplineROI', + SplineROI.matchingCriteria, + SplineROI.toAnnotation, + SplineROI.toMeasurement + ); + // On the UI side, the Calibration Line tool will work almost the same as the // Length tool measurementService.addMapping( @@ -137,16 +149,29 @@ const initMeasurementService = ( Length.toMeasurement ); + measurementService.addMapping( + csTools3DVer1MeasurementSource, + 'LivewireContour', + LivewireContour.matchingCriteria, + LivewireContour.toAnnotation, + LivewireContour.toMeasurement + ); + return csTools3DVer1MeasurementSource; }; const connectToolsToMeasurementService = servicesManager => { - const { measurementService, displaySetService, cornerstoneViewportService } = - servicesManager.services; + const { + measurementService, + displaySetService, + cornerstoneViewportService, + customizationService, + } = servicesManager.services; const csTools3DVer1MeasurementSource = initMeasurementService( measurementService, displaySetService, - cornerstoneViewportService + cornerstoneViewportService, + customizationService ); connectMeasurementServiceToTools( measurementService, diff --git a/extensions/cornerstone/src/utils/callInputDialog.tsx b/extensions/cornerstone/src/utils/callInputDialog.tsx index e450536ea..05946b87f 100644 --- a/extensions/cornerstone/src/utils/callInputDialog.tsx +++ b/extensions/cornerstone/src/utils/callInputDialog.tsx @@ -109,13 +109,10 @@ export function callLabelAutocompleteDialog(uiDialogService, callback, dialogCon uiDialogService.create({ id: 'select-annotation', + centralize: true, isDraggable: false, showOverlay: true, content: LabellingFlow, - defaultPosition: { - x: window.innerWidth / 2, - y: window.innerHeight / 2, - }, contentProps: { labellingDoneCallback: labellingDoneCallback, measurementData: { label: '' }, diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts index 7173e1344..2e178f2d5 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Angle.ts @@ -16,7 +16,8 @@ const Angle = { csToolsEventDetail, displaySetService, CornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -54,8 +55,9 @@ const Angle = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -127,7 +129,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -160,7 +162,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts index 3d5904171..373bd115c 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts @@ -14,7 +14,8 @@ const Length = { csToolsEventDetail, displaySetService, cornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -52,7 +53,7 @@ const Length = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); return { uid: annotationUID, @@ -106,7 +107,7 @@ function getMappedAnnotations(annotation, displaySetService) { return annotations; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts index 958e22ed6..6517445d2 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Bidirectional.ts @@ -11,7 +11,8 @@ const Bidirectional = { csToolsEventDetail, displaySetService, cornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -49,8 +50,9 @@ const Bidirectional = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -122,7 +124,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -155,7 +157,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts index e65564c81..c995fb171 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/CircleROI.ts @@ -9,7 +9,8 @@ const CircleROI = { csToolsEventDetail, DisplaySetService, CornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -47,8 +48,9 @@ const CircleROI = { const mappedAnnotations = getMappedAnnotations(annotation, DisplaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -125,7 +127,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -163,7 +165,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts index dbde82860..631f0d029 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/CobbAngle.ts @@ -16,7 +16,8 @@ const CobbAngle = { csToolsEventDetail, displaySetService, CornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -54,8 +55,9 @@ const CobbAngle = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -127,7 +129,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -160,7 +162,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts index 1882d9ba0..30a925dd1 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/EllipticalROI.ts @@ -9,7 +9,8 @@ const EllipticalROI = { csToolsEventDetail, displaySetService, cornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -47,8 +48,9 @@ const EllipticalROI = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -125,7 +127,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -163,7 +165,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts index e5e9886b3..bb1319b24 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts @@ -15,7 +15,8 @@ const Length = { csToolsEventDetail, displaySetService, cornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -32,11 +33,7 @@ const Length = { throw new Error('Tool not supported'); } - const { - SOPInstanceUID, - SeriesInstanceUID, - StudyInstanceUID, - } = getSOPInstanceAttributes( + const { SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID } = getSOPInstanceAttributes( referencedImageId, cornerstoneViewportService, viewportId @@ -57,8 +54,9 @@ const Length = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -99,11 +97,8 @@ function getMappedAnnotations(annotation, displaySetService) { throw new Error('Non-acquisition plane measurement mapping not supported'); } - const { - SOPInstanceUID, - SeriesInstanceUID, - frameNumber, - } = getSOPInstanceAttributes(referencedImageId); + const { SOPInstanceUID, SeriesInstanceUID, frameNumber } = + getSOPInstanceAttributes(referencedImageId); const displaySet = displaySetService.getDisplaySetForSOPInstanceUID( SOPInstanceUID, @@ -132,7 +127,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -167,7 +162,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } @@ -175,13 +170,7 @@ function getDisplayText(mappedAnnotations, displaySet) { const displayText = []; // Area is the same for all series - const { - length, - SeriesNumber, - SOPInstanceUID, - frameNumber, - unit, - } = mappedAnnotations[0]; + const { length, SeriesNumber, SOPInstanceUID, frameNumber, unit } = mappedAnnotations[0]; const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); @@ -197,9 +186,7 @@ function getDisplayText(mappedAnnotations, displaySet) { return displayText; } const roundedLength = utils.roundNumber(length, 2); - displayText.push( - `${roundedLength} ${unit} (S: ${SeriesNumber}${instanceText}${frameText})` - ); + displayText.push(`${roundedLength} ${unit} (S: ${SeriesNumber}${instanceText}${frameText})`); return displayText; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/LivewireContour.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/LivewireContour.ts new file mode 100644 index 000000000..4c2d3f56f --- /dev/null +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/LivewireContour.ts @@ -0,0 +1,161 @@ +import SUPPORTED_TOOLS from './constants/supportedTools'; +import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes'; +import { getDisplayUnit } from './utils'; +import { utils } from '@ohif/core'; + +/** + * Represents a mapping utility for Livewire measurements. + */ +const LivewireContour = { + toAnnotation: measurement => {}, + + /** + * Maps cornerstone annotation event data to measurement service format. + * + * @param {Object} csToolsEventDetail Cornerstone event data + * @param {DisplaySetService} DisplaySetService Service for managing display sets + * @param {CornerstoneViewportService} CornerstoneViewportService Service for managing viewports + * @param {Function} getValueTypeFromToolType Function to get value type from tool type + * @returns {Measurement} Measurement instance + */ + toMeasurement: ( + csToolsEventDetail, + DisplaySetService, + CornerstoneViewportService, + getValueTypeFromToolType, + customizationService + ) => { + const { annotation } = csToolsEventDetail; + const { metadata, data, annotationUID } = annotation; + + if (!metadata || !data) { + console.warn('Livewire tool: Missing metadata or data'); + return null; + } + + const { toolName, referencedImageId, FrameOfReferenceUID } = metadata; + const validToolType = SUPPORTED_TOOLS.includes(toolName); + if (!validToolType) { + throw new Error(`Tool ${toolName} not supported`); + } + + const { SOPInstanceUID, SeriesInstanceUID, frameNumber, StudyInstanceUID } = + getSOPInstanceAttributes(referencedImageId); + + let displaySet; + if (SOPInstanceUID) { + displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID( + SOPInstanceUID, + SeriesInstanceUID + ); + } else { + displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID); + } + + return { + uid: annotationUID, + SOPInstanceUID, + FrameOfReferenceUID, + points: data.contour.polyline, + textBox: data.handles.textBox, + metadata, + frameNumber, + referenceSeriesUID: SeriesInstanceUID, + referenceStudyUID: StudyInstanceUID, + toolName: metadata.toolName, + displaySetInstanceUID: displaySet.displaySetInstanceUID, + label: data.label, + displayText: getDisplayText(annotation, displaySet, customizationService), + data: data.cachedStats, + type: getValueTypeFromToolType(toolName), + getReport: () => getColumnValueReport(annotation, customizationService), + }; + }, +}; + +/** + * This function is used to convert the measurement data to a + * format that is suitable for report generation (e.g. for the csv report). + * The report returns a list of columns and corresponding values. + * + * @param {object} annotation + * @returns {object} Report's content from this tool + */ +function getColumnValueReport(annotation, customizationService) { + const columns = []; + const values = []; + + /** Add type */ + columns.push('AnnotationType'); + values.push('Cornerstone:Livewire'); + + /** Add cachedStats */ + const { metadata, data } = annotation; + + /** Add FOR */ + if (metadata.FrameOfReferenceUID) { + columns.push('FrameOfReferenceUID'); + values.push(metadata.FrameOfReferenceUID); + } + + /** Add points */ + if (data.contour.polyline) { + /** + * Points has the form of [[x1, y1, z1], [x2, y2, z2], ...] + * convert it to string of [[x1 y1 z1];[x2 y2 z2];...] + * so that it can be used in the CSV report + */ + columns.push('points'); + values.push(data.contour.polyline.map(p => p.join(' ')).join(';')); + } + + return { columns, values }; +} + +/** + * Retrieves the display text for an annotation in a display set. + * + * @param {Object} annotation - The annotation object. + * @param {Object} displaySet - The display set object. + * @returns {string[]} - An array of display text. + */ +function getDisplayText(annotation, displaySet, customizationService) { + const { metadata, data } = annotation; + + if (!data.cachedStats || !data.cachedStats[`imageId:${metadata.referencedImageId}`]) { + return []; + } + + const { area, areaUnit } = data.cachedStats[`imageId:${metadata.referencedImageId}`]; + + const { SOPInstanceUID, frameNumber } = getSOPInstanceAttributes(metadata.referencedImageId); + + const displayText = []; + + const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); + let InstanceNumber; + if (instance) { + InstanceNumber = instance.InstanceNumber; + } + + const instanceText = InstanceNumber ? ` I: ${InstanceNumber}` : ''; + const frameText = displaySet.isMultiFrame ? ` F: ${frameNumber}` : ''; + + const { SeriesNumber } = displaySet; + if (SeriesNumber) { + displayText.push(`S: ${SeriesNumber}${instanceText}${frameText}`); + } + + if (area) { + /** + * Add Area + * Area sometimes becomes undefined if `preventHandleOutsideImage` is off + */ + const roundedArea = utils.roundNumber(area || 0, 2); + displayText.push(`${roundedArea} ${getDisplayUnit(areaUnit)}`); + } + + return displayText; +} + +export default LivewireContour; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts index 3820522b1..d3c837c2a 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/PlanarFreehandROI.ts @@ -22,7 +22,8 @@ const PlanarFreehandROI = { csToolsEventDetail, DisplaySetService, CornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -64,10 +65,10 @@ const PlanarFreehandROI = { toolName: metadata.toolName, displaySetInstanceUID: displaySet.displaySetInstanceUID, label: data.label, - displayText: getDisplayText(annotation, displaySet), + displayText: getDisplayText(annotation, displaySet, customizationService), data: data.cachedStats, type: getValueTypeFromToolType(toolName), - getReport: () => getColumnValueReport(annotation), + getReport: () => getColumnValueReport(annotation, customizationService), }; }, }; @@ -80,7 +81,9 @@ const PlanarFreehandROI = { * @param {object} annotation * @returns {object} Report's content from this tool */ -function getColumnValueReport(annotation) { +function getColumnValueReport(annotation, customizationService) { + const { PlanarFreehandROI } = customizationService.get('cornerstone.measurements'); + const { report } = PlanarFreehandROI; const columns = []; const values = []; @@ -90,10 +93,12 @@ function getColumnValueReport(annotation) { /** Add cachedStats */ const { metadata, data } = annotation; - const { mean, stdDev, max, area, unit, areaUnit, perimeter } = - data.cachedStats[`imageId:${metadata.referencedImageId}`]; - columns.push(`Maximum`, `Mean`, `Std Dev`, 'Pixel Unit', `Area`, 'Unit', 'Perimeter'); - values.push(max, mean, stdDev, unit, area, areaUnit, perimeter); + const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`]; + + report.forEach(({ name, value }) => { + columns.push(name); + stats[value] ? values.push(stats[value]) : values.push('not available'); + }); /** Add FOR */ if (metadata.FrameOfReferenceUID) { @@ -103,11 +108,6 @@ function getColumnValueReport(annotation) { /** Add points */ if (data.contour.polyline) { - /** - * Points has the form of [[x1, y1, z1], [x2, y2, z2], ...] - * convert it to string of [[x1 y1 z1];[x2 y2 z2];...] - * so that it can be used in the CSV report - */ columns.push('points'); values.push(data.contour.polyline.map(p => p.join(' ')).join(';')); } @@ -122,19 +122,19 @@ function getColumnValueReport(annotation) { * @param {Object} displaySet - The display set object. * @returns {string[]} - An array of display text. */ -function getDisplayText(annotation, displaySet) { +function getDisplayText(annotation, displaySet, customizationService) { + const { PlanarFreehandROI } = customizationService.get('cornerstone.measurements'); + const { displayText } = PlanarFreehandROI; + const { metadata, data } = annotation; if (!data.cachedStats || !data.cachedStats[`imageId:${metadata.referencedImageId}`]) { return []; } - const { mean, stdDev, max, area, modalityUnit, areaUnit, perimeter } = - data.cachedStats[`imageId:${metadata.referencedImageId}`]; - const { SOPInstanceUID, frameNumber } = getSOPInstanceAttributes(metadata.referencedImageId); - const displayText = []; + const displayTextArray = []; const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); let InstanceNumber; @@ -147,55 +147,39 @@ function getDisplayText(annotation, displaySet) { const { SeriesNumber } = displaySet; if (SeriesNumber) { - displayText.push(`S: ${SeriesNumber}${instanceText}${frameText}`); + displayTextArray.push(`S: ${SeriesNumber}${instanceText}${frameText}`); } - if (area) { - /** - * Add Area - * Area sometimes becomes undefined if `preventHandleOutsideImage` is off - */ - const roundedArea = utils.roundNumber(area || 0, 2); - displayText.push(`Area: ${roundedArea} ${getDisplayUnit(areaUnit)}`); - } + const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`]; - if (mean) { - if (Array.isArray(mean)) { - const meanValues = mean.map(value => utils.roundNumber(value)); - displayText.push(`Mean: ${meanValues.join(', ')} ${modalityUnit}`); - } else { - displayText.push(`Mean: ${utils.roundNumber(mean)} ${modalityUnit}`); + const roundValues = values => { + if (Array.isArray(values)) { + return values.map(value => { + if (isNaN(value)) { + return value; + } + return utils.roundNumber(value); + }); } - } + return isNaN(values) ? values : utils.roundNumber(values); + }; - if (max) { - if (Array.isArray(max)) { - const maxValues = max.map(value => utils.roundNumber(value, 2)); - displayText.push(`Max: ${maxValues.join(', ')} ${modalityUnit}`); - } else { - displayText.push(`Max: ${utils.roundNumber(max, 2)} ${modalityUnit}`); + const findUnitForValue = (displayTextItems, value) => + displayTextItems.find(({ type, for: filter }) => type === 'unit' && filter.includes(value)) + ?.value; + + const formatDisplayText = (displayName, result, unit) => + `${displayName}: ${Array.isArray(result) ? roundValues(result).join(', ') : roundValues(result)} ${unit}`; + + displayText.forEach(({ displayName, value, type }) => { + if (type === 'value') { + const result = stats[value]; + const unit = stats[findUnitForValue(displayText, value)] || ''; + displayTextArray.push(formatDisplayText(displayName, result, unit)); } - } + }); - if (stdDev) { - if (Array.isArray(stdDev)) { - const stdDevValues = stdDev.map(value => utils.roundNumber(value)); - displayText.push(`Std Dev: ${stdDevValues.join(', ')} ${modalityUnit}`); - } else { - displayText.push(`Std Dev: ${utils.roundNumber(stdDev)} ${modalityUnit}`); - } - } - - if (perimeter) { - if (Array.isArray(perimeter)) { - const perimeterValues = perimeter.map(value => utils.roundNumber(value)); - displayText.push(`Perimeter: ${perimeterValues.join(', ')} ${modalityUnit}`); - } else { - displayText.push(`Perimeter: ${utils.roundNumber(perimeter)} ${modalityUnit}`); - } - } - - return displayText; + return displayTextArray; } export default PlanarFreehandROI; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts index 6c7e4b4ca..943822de7 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/RectangleROI.ts @@ -9,7 +9,8 @@ const RectangleROI = { csToolsEventDetail, DisplaySetService, CornerstoneViewportService, - getValueTypeFromToolType + getValueTypeFromToolType, + customizationService ) => { const { annotation, viewportId } = csToolsEventDetail; const { metadata, data, annotationUID } = annotation; @@ -47,8 +48,9 @@ const RectangleROI = { const mappedAnnotations = getMappedAnnotations(annotation, DisplaySetService); - const displayText = getDisplayText(mappedAnnotations, displaySet); - const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); return { uid: annotationUID, @@ -125,7 +127,7 @@ This function is used to convert the measurement data to a format that is suitable for the report generation (e.g. for the csv report). The report returns a list of columns and corresponding values. */ -function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { const columns = []; const values = []; @@ -163,7 +165,7 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { }; } -function getDisplayText(mappedAnnotations, displaySet) { +function getDisplayText(mappedAnnotations, displaySet, customizationService) { if (!mappedAnnotations || !mappedAnnotations.length) { return ''; } diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/SplineROI.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/SplineROI.ts new file mode 100644 index 000000000..05ed5b1dc --- /dev/null +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/SplineROI.ts @@ -0,0 +1,188 @@ +import SUPPORTED_TOOLS from './constants/supportedTools'; +import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes'; +import { getDisplayUnit } from './utils'; +import { utils } from '@ohif/core'; + +/** + * Represents a mapping utility for Spline ROI measurements. + */ +const SplineROI = { + toAnnotation: measurement => {}, + + /** + * Maps cornerstone annotation event data to measurement service format. + * + * @param {Object} csToolsEventDetail Cornerstone event data + * @param {DisplaySetService} DisplaySetService Service for managing display sets + * @param {CornerstoneViewportService} CornerstoneViewportService Service for managing viewports + * @param {Function} getValueTypeFromToolType Function to get value type from tool type + * @returns {Measurement} Measurement instance + */ + toMeasurement: ( + csToolsEventDetail, + DisplaySetService, + CornerstoneViewportService, + getValueTypeFromToolType, + customizationService + ) => { + const { annotation } = csToolsEventDetail; + const { metadata, data, annotationUID } = annotation; + + if (!metadata || !data) { + console.warn('SplineROI tool: Missing metadata or data'); + return null; + } + + const { toolName, referencedImageId, FrameOfReferenceUID } = metadata; + const validToolType = SUPPORTED_TOOLS.includes(toolName); + if (!validToolType) { + throw new Error(`Tool ${toolName} not supported`); + } + + const { SOPInstanceUID, SeriesInstanceUID, frameNumber, StudyInstanceUID } = + getSOPInstanceAttributes(referencedImageId); + + let displaySet; + if (SOPInstanceUID) { + displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID( + SOPInstanceUID, + SeriesInstanceUID + ); + } else { + displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID); + } + + return { + uid: annotationUID, + SOPInstanceUID, + FrameOfReferenceUID, + points: data.contour.polyline, + textBox: data.handles.textBox, + metadata, + frameNumber, + referenceSeriesUID: SeriesInstanceUID, + referenceStudyUID: StudyInstanceUID, + toolName: metadata.toolName, + displaySetInstanceUID: displaySet.displaySetInstanceUID, + label: data.label, + displayText: getDisplayText(annotation, displaySet, customizationService), + data: data.cachedStats, + type: getValueTypeFromToolType(toolName), + getReport: () => getColumnValueReport(annotation, customizationService), + }; + }, +}; + +/** + * This function is used to convert the measurement data to a + * format that is suitable for report generation (e.g. for the csv report). + * The report returns a list of columns and corresponding values. + * + * @param {object} annotation + * @returns {object} Report's content from this tool + */ +function getColumnValueReport(annotation, customizationService) { + const { SplineROI } = customizationService.get('cornerstone.measurements'); + const { report } = SplineROI; + const columns = []; + const values = []; + + /** Add type */ + columns.push('AnnotationType'); + values.push('Cornerstone:SplineROI'); + + /** Add cachedStats */ + const { metadata, data } = annotation; + const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`]; + + report.forEach(({ name, value }) => { + columns.push(name); + stats[value] ? values.push(stats[value]) : values.push('not available'); + }); + + /** Add FOR */ + if (metadata.FrameOfReferenceUID) { + columns.push('FrameOfReferenceUID'); + values.push(metadata.FrameOfReferenceUID); + } + + /** Add points */ + if (data.contour.polyline) { + /** + * Points has the form of [[x1, y1, z1], [x2, y2, z2], ...] + * convert it to string of [[x1 y1 z1];[x2 y2 z2];...] + * so that it can be used in the CSV report + */ + columns.push('points'); + values.push(data.contour.polyline.map(p => p.join(' ')).join(';')); + } + + return { columns, values }; +} + +/** + * Retrieves the display text for an annotation in a display set. + * + * @param {Object} annotation - The annotation object. + * @param {Object} displaySet - The display set object. + * @returns {string[]} - An array of display text. + */ +function getDisplayText(annotation, displaySet, customizationService) { + const { SplineROI } = customizationService.get('cornerstone.measurements'); + const { displayText } = SplineROI; + const { metadata, data } = annotation; + + if (!data.cachedStats || !data.cachedStats[`imageId:${metadata.referencedImageId}`]) { + return []; + } + const { SOPInstanceUID, frameNumber } = getSOPInstanceAttributes(metadata.referencedImageId); + + const displayTextArray = []; + + const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); + let InstanceNumber; + if (instance) { + InstanceNumber = instance.InstanceNumber; + } + + const instanceText = InstanceNumber ? ` I: ${InstanceNumber}` : ''; + const frameText = displaySet.isMultiFrame ? ` F: ${frameNumber}` : ''; + + const { SeriesNumber } = displaySet; + if (SeriesNumber) { + displayTextArray.push(`S: ${SeriesNumber}${instanceText}${frameText}`); + } + + const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`]; + + const roundValues = values => { + if (Array.isArray(values)) { + return values.map(value => { + if (isNaN(value)) { + return value; + } + return utils.roundNumber(value); + }); + } + return isNaN(values) ? values : utils.roundNumber(values); + }; + + const findUnitForValue = (displayTextItems, value) => + displayTextItems.find(({ type, for: filter }) => type === 'unit' && filter.includes(value)) + ?.value; + + const formatDisplayText = (displayName, result, unit) => + `${displayName}: ${Array.isArray(result) ? roundValues(result).join(', ') : roundValues(result)} ${unit}`; + + displayText.forEach(({ displayName, value, type }) => { + if (type === 'value') { + const result = stats[value]; + const unit = stats[findUnitForValue(displayText, value)] || ''; + displayTextArray.push(formatDisplayText(displayName, result, unit)); + } + }); + + return displayTextArray; +} + +export default SplineROI; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js b/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js index e1e8a1755..8f69319da 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js @@ -9,4 +9,6 @@ export default [ 'Probe', 'RectangleROI', 'PlanarFreehandROI', + 'SplineROI', + 'LivewireContour', ]; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts index e3ccf4e51..19de0308f 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts @@ -8,11 +8,14 @@ import CobbAngle from './CobbAngle'; import Angle from './Angle'; import PlanarFreehandROI from './PlanarFreehandROI'; import RectangleROI from './RectangleROI'; +import SplineROI from './SplineROI'; +import LivewireContour from './LivewireContour'; const measurementServiceMappingsFactory = ( measurementService: MeasurementService, displaySetService, - cornerstoneViewportService + cornerstoneViewportService, + customizationService ) => { /** * Maps measurement service format object to cornerstone annotation object. @@ -39,6 +42,8 @@ const measurementServiceMappingsFactory = ( ArrowAnnotate: POINT, CobbAngle: ANGLE, Angle: ANGLE, + SplineROI: POLYLINE, + LivewireContour: POLYLINE, }; return TOOL_TYPE_TO_VALUE_TYPE[toolType]; @@ -52,7 +57,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -68,7 +74,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ // TODO -> We should eventually do something like shortAxis + longAxis, @@ -91,7 +98,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -107,7 +115,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -123,7 +132,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -139,7 +149,42 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService + ), + matchingCriteria: [ + { + valueType: MeasurementService.VALUE_TYPES.POLYLINE, + }, + ], + }, + + SplineROI: { + toAnnotation: SplineROI.toAnnotation, + toMeasurement: csToolsAnnotation => + SplineROI.toMeasurement( + csToolsAnnotation, + displaySetService, + cornerstoneViewportService, + _getValueTypeFromToolType, + customizationService + ), + matchingCriteria: [ + { + valueType: MeasurementService.VALUE_TYPES.POLYLINE, + }, + ], + }, + + LivewireContour: { + toAnnotation: LivewireContour.toAnnotation, + toMeasurement: csToolsAnnotation => + LivewireContour.toMeasurement( + csToolsAnnotation, + displaySetService, + cornerstoneViewportService, + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -155,7 +200,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -172,7 +218,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { @@ -188,7 +235,8 @@ const measurementServiceMappingsFactory = ( csToolsAnnotation, displaySetService, cornerstoneViewportService, - _getValueTypeFromToolType + _getValueTypeFromToolType, + customizationService ), matchingCriteria: [ { diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js index acf298146..d8bb02b99 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js @@ -66,6 +66,12 @@ function _askTrackMeasurements(uiViewportDialogService, viewportId) { uiViewportDialogService.hide(); resolve(RESPONSE.CANCEL); }, + onKeyPress: event => { + if (event.key === 'Enter') { + const action = actions.find(action => action.id === 'prompt-begin-tracking-yes'); + onSubmit(action.value); + } + }, }); }); } diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js index 2837de7cb..b590af3f6 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js @@ -65,6 +65,12 @@ function _askTrackMeasurements(UIViewportDialogService, viewportId) { UIViewportDialogService.hide(); resolve(RESPONSE.CANCEL); }, + onKeyPress: event => { + if (event.key === 'Enter') { + const action = actions.find(action => action.value === RESPONSE.SET_STUDY_AND_SERIES); + onSubmit(action.value); + } + }, }); }); } diff --git a/modes/basic-test-mode/src/initToolGroups.ts b/modes/basic-test-mode/src/initToolGroups.ts index a791d6ab0..5feb3214b 100644 --- a/modes/basic-test-mode/src/initToolGroups.ts +++ b/modes/basic-test-mode/src/initToolGroups.ts @@ -42,6 +42,7 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage }, { toolName: toolNames.Bidirectional }, { toolName: toolNames.DragProbe }, + { toolName: toolNames.Probe }, { toolName: toolNames.EllipticalROI }, { toolName: toolNames.CircleROI }, { toolName: toolNames.RectangleROI }, @@ -170,6 +171,7 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) { }, { toolName: toolNames.Bidirectional }, { toolName: toolNames.DragProbe }, + { toolName: toolNames.Probe }, { toolName: toolNames.EllipticalROI }, { toolName: toolNames.CircleROI }, { toolName: toolNames.RectangleROI }, diff --git a/modes/basic-test-mode/src/moreTools.ts b/modes/basic-test-mode/src/moreTools.ts index 5f49e08ad..5708c2a17 100644 --- a/modes/basic-test-mode/src/moreTools.ts +++ b/modes/basic-test-mode/src/moreTools.ts @@ -119,7 +119,7 @@ const moreTools = [ evaluate: 'evaluate.viewportProperties.toggle', }), createButton({ - id: 'DragProbe', + id: 'Probe', icon: 'tool-probe', label: 'Probe', tooltip: 'Probe', diff --git a/modes/longitudinal/src/initToolGroups.js b/modes/longitudinal/src/initToolGroups.js index f5bae8d86..329d047b5 100644 --- a/modes/longitudinal/src/initToolGroups.js +++ b/modes/longitudinal/src/initToolGroups.js @@ -55,6 +55,7 @@ function initDefaultToolGroup( }, { toolName: toolNames.Bidirectional }, { toolName: toolNames.DragProbe }, + { toolName: toolNames.Probe }, { toolName: toolNames.EllipticalROI }, { toolName: toolNames.CircleROI }, { toolName: toolNames.RectangleROI }, @@ -201,6 +202,7 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager, m }, { toolName: toolNames.Bidirectional }, { toolName: toolNames.DragProbe }, + { toolName: toolNames.Probe }, { toolName: toolNames.EllipticalROI }, { toolName: toolNames.CircleROI }, { toolName: toolNames.RectangleROI }, diff --git a/modes/longitudinal/src/moreTools.ts b/modes/longitudinal/src/moreTools.ts index 267114f73..70ead4860 100644 --- a/modes/longitudinal/src/moreTools.ts +++ b/modes/longitudinal/src/moreTools.ts @@ -126,7 +126,7 @@ const moreTools = [ evaluate: 'evaluate.viewportProperties.toggle', }), createButton({ - id: 'DragProbe', + id: 'Probe', icon: 'tool-probe', label: 'Probe', tooltip: 'Probe', diff --git a/modes/longitudinal/src/toolbarButtons.ts b/modes/longitudinal/src/toolbarButtons.ts index dc5700fe6..62e33a679 100644 --- a/modes/longitudinal/src/toolbarButtons.ts +++ b/modes/longitudinal/src/toolbarButtons.ts @@ -65,14 +65,6 @@ const toolbarButtons: Button[] = [ commands: setToolActiveToolbar, evaluate: 'evaluate.cornerstoneTool', }), - createButton({ - id: 'PlanarFreehandROI', - icon: 'tool-freehand-polygon', - label: 'Freehand', - tooltip: 'Freehand ROI', - commands: setToolActiveToolbar, - evaluate: 'evaluate.cornerstoneTool', - }), createButton({ id: 'RectangleROI', icon: 'tool-rectangle', diff --git a/modes/segmentation/src/toolbarButtons.ts b/modes/segmentation/src/toolbarButtons.ts index 58e12eca8..9d53484f7 100644 --- a/modes/segmentation/src/toolbarButtons.ts +++ b/modes/segmentation/src/toolbarButtons.ts @@ -195,7 +195,7 @@ const toolbarButtons: Button[] = [ evaluate: 'evaluate.viewportProperties.toggle', }), createButton({ - id: 'DragProbe', + id: 'Probe', icon: 'tool-probe', label: 'Probe', tooltip: 'Probe', diff --git a/platform/app/src/routes/WorkList/WorkList.tsx b/platform/app/src/routes/WorkList/WorkList.tsx index bfa4ecd70..a5e522c86 100644 --- a/platform/app/src/routes/WorkList/WorkList.tsx +++ b/platform/app/src/routes/WorkList/WorkList.tsx @@ -534,7 +534,7 @@ function WorkList({ showPatientInfo={PatientInfoVisibility.DISABLED} /> -
+
100 ? 101 : numOfStudies} filtersMeta={filtersMeta} diff --git a/platform/core/src/services/UIViewportDialogService/index.js b/platform/core/src/services/UIViewportDialogService/index.js index 5c5053648..20e962a58 100644 --- a/platform/core/src/services/UIViewportDialogService/index.js +++ b/platform/core/src/services/UIViewportDialogService/index.js @@ -26,7 +26,7 @@ const serviceImplementation = { * * @param {ViewportDialogProps} props { content, contentProps, viewportId } */ -function _show({ viewportId, id, type, message, actions, onSubmit, onOutsideClick }) { +function _show({ viewportId, id, type, message, actions, onSubmit, onOutsideClick, onKeyPress }) { return serviceImplementation._show({ viewportId, id, @@ -35,6 +35,7 @@ function _show({ viewportId, id, type, message, actions, onSubmit, onOutsideClic actions, onSubmit, onOutsideClick, + onKeyPress, }); } diff --git a/platform/ui/src/assets/styles/styles.css b/platform/ui/src/assets/styles/styles.css index 0dc42514f..357f8a58b 100644 --- a/platform/ui/src/assets/styles/styles.css +++ b/platform/ui/src/assets/styles/styles.css @@ -4,6 +4,10 @@ overflow-y: auto; } +.ohif-scrollbar-stable-gutter { + scrollbar-gutter: stable; +} + .study-min-height { min-height: 450px; } diff --git a/platform/ui/src/components/Notification/Notification.tsx b/platform/ui/src/components/Notification/Notification.tsx index 1f603a49f..bfdf6d6f0 100644 --- a/platform/ui/src/components/Notification/Notification.tsx +++ b/platform/ui/src/components/Notification/Notification.tsx @@ -5,7 +5,7 @@ import PropTypes from 'prop-types'; import Button, { ButtonEnums } from '../Button'; import Icon from '../Icon'; -const Notification = ({ id, type, message, actions, onSubmit, onOutsideClick }) => { +const Notification = ({ id, type, message, actions, onSubmit, onOutsideClick, onKeyPress }) => { const notificationRef = useRef(null); useEffect(() => { @@ -29,6 +29,10 @@ const Notification = ({ id, type, message, actions, onSubmit, onOutsideClick }) }; }, [onOutsideClick]); + useEffect(() => { + notificationRef.current.focus(); + }, []); + const iconsByType = { error: { icon: 'info', @@ -64,6 +68,8 @@ const Notification = ({ id, type, message, actions, onSubmit, onOutsideClick }) ref={notificationRef} className="border-customblue-10 bg-customblue-400 mx-2 mt-2 flex flex-col rounded-md border-2 p-2" data-cy={id} + onKeyDown={onKeyPress} + tabIndex={0} >
{ console.log('dismiss? -1'); }, + onKeyPress: () => { + console.log('key pressed?'); + }, }; const ViewportDialogContext = createContext(null); From 6a757f69d862b299c9f96d940bdaf425f721bce9 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 15:44:55 +0000 Subject: [PATCH 242/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- .../cornerstone-dynamic-volume/package.json | 10 +++++----- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/preclinical-4d/package.json | 12 ++++++------ modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 23 files changed, 87 insertions(+), 87 deletions(-) diff --git a/commit.txt b/commit.txt index 2612cd47c..2aabe1206 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -4f99244d864427d69be6f863cb7a6a78411adb12 \ No newline at end of file +2b83393f91cb16ea06821d79d14ff60f80c29c90 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index d1c1973ef..3481e9eac 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/i18n": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/i18n": "3.8.0-beta.78", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 4df2d54a7..7897b10a9 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/i18n": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/i18n": "3.8.0-beta.78", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9bb89c424..ce497d816 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-measurement-tracking": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-measurement-tracking": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 85f049bc3..ee8238f05 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -29,11 +29,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/i18n": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/i18n": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index eb7c4f37a..88a3d7f9f 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index 1b804a9e0..9d5addfd8 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/i18n": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/i18n": "3.8.0-beta.78", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 66c4c692d..87194d843 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/i18n": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/i18n": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 085c0c011..9f23bcb4a 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 7da4fb94a..bc5ea228d 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 9600d4b7d..18f3d4f70 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.70.0", "@cornerstonejs/tools": "^1.70.0", - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 49a40efed..59cf52cb0 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index b88132935..689d99b58 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index b596566c3..d71d07061 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-dicom-pdf": "3.8.0-beta.77", - "@ohif/extension-dicom-video": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-dicom-pdf": "3.8.0-beta.78", + "@ohif/extension-dicom-video": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 1c730a8e1..daa536dd3 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-dicom-pdf": "3.8.0-beta.77", - "@ohif/extension-dicom-video": "3.8.0-beta.77", - "@ohif/extension-measurement-tracking": "3.8.0-beta.77", - "@ohif/extension-test": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-dicom-pdf": "3.8.0-beta.78", + "@ohif/extension-dicom-video": "3.8.0-beta.78", + "@ohif/extension-measurement-tracking": "3.8.0-beta.78", + "@ohif/extension-test": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 8c94c0ed1..7e19b86b8 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-dicom-pdf": "3.8.0-beta.77", - "@ohif/extension-dicom-video": "3.8.0-beta.77", - "@ohif/extension-measurement-tracking": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-dicom-pdf": "3.8.0-beta.78", + "@ohif/extension-dicom-video": "3.8.0-beta.78", + "@ohif/extension-measurement-tracking": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 36a39ab12..cc630f111 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index dd14b7e77..7175478ab 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -30,12 +30,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-tmtv": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-tmtv": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 8ed90e2c3..12e6ad092 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-dicom-pdf": "3.8.0-beta.77", - "@ohif/extension-dicom-video": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-dicom-pdf": "3.8.0-beta.78", + "@ohif/extension-dicom-video": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index c3815389a..3de8a5360 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-dicom-pdf": "3.8.0-beta.77", - "@ohif/extension-dicom-video": "3.8.0-beta.77", - "@ohif/extension-measurement-tracking": "3.8.0-beta.77" + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-dicom-pdf": "3.8.0-beta.78", + "@ohif/extension-dicom-video": "3.8.0-beta.78", + "@ohif/extension-measurement-tracking": "3.8.0-beta.78" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index b07ee2ea0..a067d6520 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.0", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.78", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index a95c7dba2..874f97d44 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.77", - "commit": "4f99244d864427d69be6f863cb7a6a78411adb12" + "version": "3.8.0-beta.78", + "commit": "2b83393f91cb16ea06821d79d14ff60f80c29c90" } \ No newline at end of file diff --git a/version.txt b/version.txt index e9f54eafa..5d435360e 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.77 \ No newline at end of file +3.8.0-beta.78 \ No newline at end of file From 77693ddef4b9ee7bf30ebc837c7fbf37c6038ee2 Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 15:45:03 +0000 Subject: [PATCH 243/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-sr/package.json | 2 +- .../cornerstone-dynamic-volume/CHANGELOG.md | 8 +++++ .../cornerstone-dynamic-volume/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 8 +++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 8 +++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 11 ++++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 11 ++++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/preclinical-4d/CHANGELOG.md | 8 +++++ modes/preclinical-4d/package.json | 2 +- modes/segmentation/CHANGELOG.md | 11 ++++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 8 +++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 52 files changed, 278 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88ce9bbcf..056984ff8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index e46d63f1f..433fb1469 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index 3481e9eac..b3e866dbb 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 75a91fe24..4e9de699c 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 7897b10a9..2c73c1322 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index e608a2601..aeafafca9 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index ce497d816..72ed35be2 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dynamic-volume/CHANGELOG.md b/extensions/cornerstone-dynamic-volume/CHANGELOG.md index f4aa71030..b9b00a3b8 100644 --- a/extensions/cornerstone-dynamic-volume/CHANGELOG.md +++ b/extensions/cornerstone-dynamic-volume/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index ee8238f05..a6edd405b 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for 4D volumes data", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index 97b49b86b..c7f72fcac 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 88a3d7f9f..dd535c29a 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 6ab978458..210be47e8 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) diff --git a/extensions/default/package.json b/extensions/default/package.json index 9d5addfd8..c015f3014 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 29204bdd5..4702389a9 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-microscopy + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 87194d843..b8158ef0a 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 288acb025..1b6e67387 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 9f23bcb4a..6b442b3f4 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index 9a25643b5..e1b89ac6a 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index bc5ea228d..af7e1dab9 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 829d6a34d..48c3c99de 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-measurement-tracking diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 18f3d4f70..18ae5d479 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/ui": "3.8.0-beta.78", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 77faee669..4e4eb32c6 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 59cf52cb0..12b401eb3 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 288a4d395..2a60b26ea 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-tmtv + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 689d99b58..624fbd910 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 31697a6bc..9d36b7326 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index af5bce85c..786ae4d12 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index d71d07061..2a5818210 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 39f41009a..7f070719c 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-test diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index daa536dd3..8b35b38d1 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index d403882b2..3a938d17e 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-longitudinal diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 7e19b86b8..f75eb789a 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index f1c850d26..29f4c46b3 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index cc630f111..c1c85e7df 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/preclinical-4d/CHANGELOG.md b/modes/preclinical-4d/CHANGELOG.md index 9c6474585..2781122a0 100644 --- a/modes/preclinical-4d/CHANGELOG.md +++ b/modes/preclinical-4d/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-preclinical-4d + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-preclinical-4d diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 7175478ab..8e7b920a3 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-preclinical-4d", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "4D Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index eb78d54e4..1ba95b96b 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-segmentation diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 12e6ad092..890d48cad 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index 86ae976ee..d37510726 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-tmtv + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 3de8a5360..66fc99854 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index 5890659bf..fc380130a 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/app diff --git a/platform/app/package.json b/platform/app/package.json index cc8aca8b5..bba3de8dc 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -56,22 +56,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.70.0", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.77", - "@ohif/extension-cornerstone": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.77", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.77", - "@ohif/extension-default": "3.8.0-beta.77", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.77", - "@ohif/extension-dicom-pdf": "3.8.0-beta.77", - "@ohif/extension-dicom-video": "3.8.0-beta.77", - "@ohif/extension-test": "3.8.0-beta.77", - "@ohif/i18n": "3.8.0-beta.77", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.77", - "@ohif/mode-longitudinal": "3.8.0-beta.77", - "@ohif/mode-microscopy": "3.8.0-beta.77", - "@ohif/mode-test": "3.8.0-beta.77", - "@ohif/ui": "3.8.0-beta.77", + "@ohif/core": "3.8.0-beta.78", + "@ohif/extension-cornerstone": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", + "@ohif/extension-default": "3.8.0-beta.78", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.78", + "@ohif/extension-dicom-pdf": "3.8.0-beta.78", + "@ohif/extension-dicom-video": "3.8.0-beta.78", + "@ohif/extension-test": "3.8.0-beta.78", + "@ohif/i18n": "3.8.0-beta.78", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.78", + "@ohif/mode-longitudinal": "3.8.0-beta.78", + "@ohif/mode-microscopy": "3.8.0-beta.78", + "@ohif/mode-test": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.78", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index eb7023bb6..c05b67e8f 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index 1ad3ea765..cf3337553 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index 399f989aa..bde56e1f8 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/core diff --git a/platform/core/package.json b/platform/core/package.json index a067d6520..0479c6d22 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 8da64c222..770e0c6b6 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index edf1cdd14..5a3ad5b8d 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index af396bc99..cfdc1223d 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index 894a3f23b..e8c9c3a20 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 8eb0792cf..096a84eae 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) + + +### Bug Fixes + +* **general:** enhancements and bug fixes ([#4018](https://github.com/OHIF/Viewers/issues/4018)) ([2b83393](https://github.com/OHIF/Viewers/commit/2b83393f91cb16ea06821d79d14ff60f80c29c90)) + + + + + # [3.8.0-beta.77](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.76...v3.8.0-beta.77) (2024-04-10) diff --git a/platform/ui/package.json b/platform/ui/package.json index 6a0ae522d..014206059 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.77", + "version": "3.8.0-beta.78", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From df49a653be61a93f6e9fb3663aabe9775c31fd13 Mon Sep 17 00:00:00 2001 From: Alireza Date: Wed, 10 Apr 2024 13:44:25 -0400 Subject: [PATCH 244/289] feat(SM): remove SM measurements from measurement panel (#4022) --- .codecov.yml | 25 ---------- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +-- .../cornerstone-dynamic-volume/package.json | 6 +-- extensions/cornerstone/package.json | 10 ++-- .../src/Viewport/OHIFCornerstoneViewport.tsx | 5 +- extensions/cornerstone/src/commandsModule.ts | 8 ++-- extensions/cornerstone/src/init.tsx | 1 - .../cornerstone/src/initCornerstoneTools.js | 3 ++ .../MicroscopyPanel/MicroscopyPanel.tsx | 11 +++-- extensions/measurement-tracking/package.json | 4 +- .../PanelROIThresholdExport.tsx | 20 +++++++- modes/tmtv/src/index.js | 14 ++++++ modes/tmtv/src/initToolGroups.js | 12 ++++- platform/app/package.json | 2 +- platform/app/src/components/ViewportGrid.tsx | 2 +- platform/core/package.json | 2 +- .../MeasurementTable/MeasurementTable.tsx | 4 +- platform/ui/src/components/index.js | 2 +- platform/ui/src/index.js | 2 +- yarn.lock | 48 +++++++++---------- 21 files changed, 106 insertions(+), 85 deletions(-) delete mode 100644 .codecov.yml diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index ec9519c68..000000000 --- a/.codecov.yml +++ /dev/null @@ -1,25 +0,0 @@ -# ABOUT: -# https://docs.codecov.io/docs/codecov-yaml -# -# -# COMMIT STATUS: -# https://docs.codecov.io/docs/commit-status -coverage: - status: - project: - default: - threshold: 0.5% - core: - flags: core - threshold: 0.5% - viewer: - flags: viewer - threshold: 0.5% - patch: off -flags: - core: - paths: - - platform/core - viewer: - paths: - - platform/app diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 2c73c1322..d5b7445b7 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.70.0", - "@cornerstonejs/core": "^1.70.0", + "@cornerstonejs/adapters": "^1.70.5", + "@cornerstonejs/core": "^1.70.5", "@kitware/vtk.js": "30.3.1", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 72ed35be2..f9f165bbb 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.70.0", - "@cornerstonejs/core": "^1.70.0", - "@cornerstonejs/tools": "^1.70.0", + "@cornerstonejs/adapters": "^1.70.5", + "@cornerstonejs/core": "^1.70.5", + "@cornerstonejs/tools": "^1.70.5", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index a6edd405b..ca46a1175 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -42,9 +42,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/core": "^1.70.0", - "@cornerstonejs/streaming-image-volume-loader": "^1.70.0", - "@cornerstonejs/tools": "^1.70.0", + "@cornerstonejs/core": "^1.70.5", + "@cornerstonejs/streaming-image-volume-loader": "^1.70.5", + "@cornerstonejs/tools": "^1.70.5", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index dd535c29a..70e283977 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.70.0", + "@cornerstonejs/dicom-image-loader": "^1.70.5", "@icr/polyseg-wasm": "^0.4.0", "@ohif/core": "3.8.0-beta.78", "@ohif/ui": "3.8.0-beta.78", @@ -55,10 +55,10 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.70.0", - "@cornerstonejs/core": "^1.70.0", - "@cornerstonejs/streaming-image-volume-loader": "^1.70.0", - "@cornerstonejs/tools": "^1.70.0", + "@cornerstonejs/adapters": "^1.70.5", + "@cornerstonejs/core": "^1.70.5", + "@cornerstonejs/streaming-image-volume-loader": "^1.70.5", + "@cornerstonejs/tools": "^1.70.5", "@icr/polyseg-wasm": "^0.4.0", "@kitware/vtk.js": "30.3.1", "html2canvas": "^1.4.1", diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index b9e58a71f..12577147c 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -10,7 +10,7 @@ import { utilities as csUtils, } from '@cornerstonejs/core'; import { MeasurementService } from '@ohif/core'; -import { Notification, useViewportDialog, Types as UITypes, AllInOneMenu } from '@ohif/ui'; +import { Notification, useViewportDialog, AllInOneMenu } from '@ohif/ui'; import { IStackViewport, IVolumeViewport } from '@cornerstonejs/core/dist/esm/types'; import { setEnabledElement } from '../state'; @@ -114,7 +114,6 @@ const OHIFCornerstoneViewport = React.memo(props => { // of the imageData in the OHIFCornerstoneViewport. This prop is used // to set the initial state of the viewport's first image to render initialImageIndex, - onReady, } = props; const viewportId = viewportOptions.viewportId; @@ -142,7 +141,6 @@ const OHIFCornerstoneViewport = React.memo(props => { viewportGridService, stateSyncService, viewportActionCornersService, - customizationService, } = servicesManager.services as CornerstoneServices; const [viewportDialogState] = useViewportDialog(); @@ -203,7 +201,6 @@ const OHIFCornerstoneViewport = React.memo(props => { if (onElementEnabled) { onElementEnabled(evt); - onReady?.(evt); } }, [viewportId, onElementEnabled, toolGroupService] diff --git a/extensions/cornerstone/src/commandsModule.ts b/extensions/cornerstone/src/commandsModule.ts index 344b5ffb7..0223afa05 100644 --- a/extensions/cornerstone/src/commandsModule.ts +++ b/extensions/cornerstone/src/commandsModule.ts @@ -275,16 +275,16 @@ function commandsModule({ actions.setViewportWindowLevel({ ...props, viewportId }); }, - setToolEnabled: ({ toolName, toggle }) => { + setToolEnabled: ({ toolName, toggle, toolGroupId }) => { const { viewports } = viewportGridService.getState(); if (!viewports.size) { return; } - const toolGroup = toolGroupService.getToolGroup(null); + const toolGroup = toolGroupService.getToolGroup(toolGroupId ?? null); - if (!toolGroup) { + if (!toolGroup || !toolGroup.hasTool(toolName)) { return; } @@ -293,6 +293,8 @@ function commandsModule({ // Toggle the tool's state only if the toggle is true if (toggle) { toolIsEnabled ? toolGroup.setToolDisabled(toolName) : toolGroup.setToolEnabled(toolName); + } else { + toolGroup.setToolEnabled(toolName); } const renderingEngine = cornerstoneViewportService.getRenderingEngine(); diff --git a/extensions/cornerstone/src/init.tsx b/extensions/cornerstone/src/init.tsx index 9e7bb67b7..c06bff08a 100644 --- a/extensions/cornerstone/src/init.tsx +++ b/extensions/cornerstone/src/init.tsx @@ -15,7 +15,6 @@ import { utilities as csUtilities, Enums as csEnums, } from '@cornerstonejs/core'; -import { utilities } from '@cornerstonejs/tools'; import { cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, diff --git a/extensions/cornerstone/src/initCornerstoneTools.js b/extensions/cornerstone/src/initCornerstoneTools.js index 90e277c9f..b40946ff9 100644 --- a/extensions/cornerstone/src/initCornerstoneTools.js +++ b/extensions/cornerstone/src/initCornerstoneTools.js @@ -35,6 +35,7 @@ import { PlanarFreehandROITool, SplineROITool, LivewireContourTool, + OrientationMarkerTool, } from '@cornerstonejs/tools'; import CalibrationLineTool from './tools/CalibrationLineTool'; @@ -80,6 +81,7 @@ export default function initCornerstoneTools(configuration = {}) { addTool(PlanarFreehandROITool); addTool(SplineROITool); addTool(LivewireContourTool); + addTool(OrientationMarkerTool); // Modify annotation tools to use dashed lines on SR const annotationStyle = { @@ -132,6 +134,7 @@ const toolNames = { SplineROI: SplineROITool.toolName, LivewireContour: LivewireContourTool.toolName, PlanarFreehandROI: PlanarFreehandROITool.toolName, + OrientationMarker: OrientationMarkerTool.toolName, }; export { toolNames }; diff --git a/extensions/dicom-microscopy/src/components/MicroscopyPanel/MicroscopyPanel.tsx b/extensions/dicom-microscopy/src/components/MicroscopyPanel/MicroscopyPanel.tsx index 79c0842e5..3da3b5d4b 100644 --- a/extensions/dicom-microscopy/src/components/MicroscopyPanel/MicroscopyPanel.tsx +++ b/extensions/dicom-microscopy/src/components/MicroscopyPanel/MicroscopyPanel.tsx @@ -1,11 +1,10 @@ import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import { ServicesManager, ExtensionManager, CommandsManager, DicomMetadataStore } from '@ohif/core'; -import { MeasurementTable, Icon, ButtonGroup, Button } from '@ohif/ui'; +import { MeasurementTable } from '@ohif/ui'; import { withTranslation, WithTranslation } from 'react-i18next'; import { EVENTS as MicroscopyEvents } from '../../services/MicroscopyService'; import dcmjs from 'dcmjs'; -import styles from '../../utils/styles'; import callInputDialog from '../../utils/callInputDialog'; import constructSR from '../../utils/constructSR'; import { saveByteArray } from '../../utils/saveByteArray'; @@ -286,6 +285,11 @@ function MicroscopyPanel(props: IMicroscopyPanelProps) { props.commandsManager.runCommand('setLabel', { uid }, 'MICROSCOPY'); }; + const onMeasurementDeleteHandler = ({ uid, isActive }: { uid: string; isActive: boolean }) => { + const roiAnnotation = microscopyService.getAnnotation(uid); + microscopyService.removeAnnotation(roiAnnotation); + }; + // Convert ROI annotations managed by microscopyService into our // own format for display const data = roiAnnotations.map((roiAnnotation, index) => { @@ -322,8 +326,6 @@ function MicroscopyPanel(props: IMicroscopyPanelProps) { }; }); - const disabled = data.length === 0; - return ( <>
diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 18ae5d479..528779f0f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.70.0", - "@cornerstonejs/tools": "^1.70.0", + "@cornerstonejs/core": "^1.70.5", + "@cornerstonejs/tools": "^1.70.5", "@ohif/core": "3.8.0-beta.78", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", "@ohif/ui": "3.8.0-beta.78", diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx index 53f7875a1..d8da1f504 100644 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { Icon, ActionButtons } from '@ohif/ui'; import { useTranslation } from 'react-i18next'; export default function PanelRoiThresholdSegmentation({ servicesManager, commandsManager }) { - const { segmentationService } = servicesManager.services; + const { segmentationService, uiNotificationService } = servicesManager.services; const { t } = useTranslation('PanelSUVExport'); const [segmentations, setSegmentations] = useState(() => segmentationService.getSegmentations()); @@ -36,6 +36,24 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command const tmtvValue = segmentations?.[0]?.cachedStats?.tmtv?.value || null; const config = segmentations?.[0]?.cachedStats?.tmtv?.config || {}; + segmentations.forEach(segmentation => { + const { cachedStats } = segmentation; + if (!cachedStats) { + return; + } + + // segment 1 + const suvPeak = cachedStats?.['1']?.suvPeak?.suvPeak; + + if (Number.isNaN(suvPeak)) { + uiNotificationService.show({ + title: 'Unable to calculate SUV Peak', + message: 'The resulting threshold is not big enough.', + type: 'warning', + }); + } + }); + const actions = [ { label: 'Export CSV', diff --git a/modes/tmtv/src/index.js b/modes/tmtv/src/index.js index 491294220..b1d6373ab 100644 --- a/modes/tmtv/src/index.js +++ b/modes/tmtv/src/index.js @@ -53,6 +53,7 @@ function modeFactory({ modeConfiguration }) { customizationService, hangingProtocolService, displaySetService, + viewportGridService, } = servicesManager.services; const utilityModule = extensionManager.getModuleEntry( @@ -111,6 +112,19 @@ function modeFactory({ modeConfiguration }) { }, ]); + // This is a hack and we need to find a better way to enable + // some tools that require the viewport to be ready + const { unsubscribe: unsub1 } = viewportGridService.subscribe( + viewportGridService.EVENTS.VIEWPORTS_READY, + () => { + commandsManager.run('setToolEnabled', { + toolName: 'OrientationMarker', + toolGroupId: 'mipToolGroup', + }); + unsub1(); + } + ); + // For the hanging protocol we need to decide on the window level // based on whether the SUV is corrected or not, hence we can't hard // code the window level in the hanging protocol but we add a custom diff --git a/modes/tmtv/src/initToolGroups.js b/modes/tmtv/src/initToolGroups.js index 75cedca46..965668ff4 100644 --- a/modes/tmtv/src/initToolGroups.js +++ b/modes/tmtv/src/initToolGroups.js @@ -102,7 +102,17 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, mo bindings: [{ mouseButton: Enums.MouseBindings.Primary }], }, ], - enabled: [{ toolName: toolNames.SegmentationDisplay }], + enabled: [ + { toolName: toolNames.SegmentationDisplay }, + { + toolName: toolNames.OrientationMarker, + configuration: { + orientationWidget: { + viewportCorner: 'BOTTOM_LEFT', + }, + }, + }, + ], }; toolGroupService.createToolGroupAndAddTools(toolGroupIds.MIP, mipTools); diff --git a/platform/app/package.json b/platform/app/package.json index bba3de8dc..b741bda2f 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -54,7 +54,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.70.0", + "@cornerstonejs/dicom-image-loader": "^1.70.5", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.78", "@ohif/extension-cornerstone": "3.8.0-beta.78", diff --git a/platform/app/src/components/ViewportGrid.tsx b/platform/app/src/components/ViewportGrid.tsx index 850344642..74730b0e9 100644 --- a/platform/app/src/components/ViewportGrid.tsx +++ b/platform/app/src/components/ViewportGrid.tsx @@ -340,7 +340,7 @@ function ViewerViewportGrid(props) { viewportOptions={viewportOptions} displaySetOptions={displaySetOptions} needsRerendering={displaySetsNeedsRerendering} - onReady={() => { + onElementEnabled={() => { viewportGridService.setViewportIsReady(viewportId, true); }} /> diff --git a/platform/core/package.json b/platform/core/package.json index 0479c6d22..2903d9b69 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.70.0", + "@cornerstonejs/dicom-image-loader": "^1.70.5", "@ohif/ui": "3.8.0-beta.78", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx b/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx index 9905be0eb..86fbdae28 100644 --- a/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx +++ b/platform/ui/src/components/MeasurementTable/MeasurementTable.tsx @@ -2,11 +2,10 @@ import React from 'react'; import { ServicesManager } from '@ohif/core'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; -import { annotation as CsAnnotation } from '@cornerstonejs/tools'; import MeasurementItem from './MeasurementItem'; -const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) => { +const MeasurementTable = ({ data, title, onClick, onEdit, onDelete, servicesManager }) => { servicesManager = servicesManager as ServicesManager; const { customizationService, measurementService } = servicesManager.services; const { t } = useTranslation('MeasurementTable'); @@ -20,6 +19,7 @@ const MeasurementTable = ({ data, title, onClick, onEdit, servicesManager }) => const onMeasurementDeleteHandler = ({ uid }) => { const measurement = measurementService.getMeasurement(uid); + onDelete?.({ uid }); measurementService.remove( uid, { diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index f3b023d2a..f3e62c847 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -189,6 +189,7 @@ export { ViewportOverlay, WindowLevel, WindowLevelMenuItem, + MeasurementItem, InputDoubleRange, LabellingFlow, HeaderPatientInfo, @@ -197,5 +198,4 @@ export { ToolSettings, Toolbox, InvestigationalUseDialog, - MeasurementItem, }; diff --git a/platform/ui/src/index.js b/platform/ui/src/index.js index 02697c22b..214b4584a 100644 --- a/platform/ui/src/index.js +++ b/platform/ui/src/index.js @@ -125,12 +125,12 @@ export { WindowLevelMenuItem, ImageScrollbar, ViewportOverlay, + MeasurementItem, LabellingFlow, HeaderPatientInfo, ToolSettings, Toolbox, InvestigationalUseDialog, - MeasurementItem, LayoutPreset, } from './components'; diff --git a/yarn.lock b/yarn.lock index 7c15bf3ee..ea7c96fd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,13 +1568,13 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.70.0": - version "1.70.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.70.0.tgz#e824bc193e4bbcdc33036b9c6aa41a3742cfe469" - integrity sha512-Eny4vsutkPo9WMQ+i8h5XxCaSqgg9SEj6nizsygDrYZGpJUmTVjJyTkMfSsO0AuiFRwgaWP+rmnF2323YfHtYA== +"@cornerstonejs/adapters@^1.70.5": + version "1.70.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.70.5.tgz#aa1e706a18b1e5d597b1b95bac928ee85b400a33" + integrity sha512-Jmxqz8crNx37jSBmlsfAKxKHi4wj0vICPzvCQ3c5F4+rSaEswD3JefHfzrNCk1xMaAGE7hkA7szWNDVCoovDBQ== dependencies: "@babel/runtime-corejs2" "^7.17.8" - "@cornerstonejs/tools" "^1.70.0" + "@cornerstonejs/tools" "^1.70.5" buffer "^6.0.3" dcmjs "^0.29.8" gl-matrix "^3.4.3" @@ -1621,10 +1621,10 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.70.0": - version "1.70.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.70.0.tgz#e4ae043fe720caff26320de44b41b1d5d1bfd884" - integrity sha512-tmSY9SPy6VnRYgMSWikDG1Wy4bF0Vg8F/7TfsviA18sKFr9ABlL7MS+fvU9L1e6/6oC7G+wGzBMFvx+krWDt8g== +"@cornerstonejs/core@^1.70.5": + version "1.70.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.70.5.tgz#4667c018a22f06e83548d230c55a4c8d6b6630ea" + integrity sha512-cqSRLA3V6C1MAQ+S5EQoNdxuTG0c/c8bULZ9XKiZYd9YIY26wDsboDJ9a+vzJWNxw9ZFDW0H0F+zJsIu64a3ig== dependencies: "@kitware/vtk.js" "30.3.1" comlink "^4.4.1" @@ -1632,34 +1632,34 @@ gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.70.0": - version "1.70.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.70.0.tgz#c2f51b942b526254197edc86b3c5201bd24c5752" - integrity sha512-szV0IdeQ2MdYL30xq5dpCp8tfi+vXjOP3qtKI4ZbNQicuYGTuIxIQYTsHgBdqv2tyC1H7wuIIANv4XbHYbQTyA== +"@cornerstonejs/dicom-image-loader@^1.70.5": + version "1.70.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.70.5.tgz#6d41e3ee1df8ba659bb5bc69f660b421cd38d0ad" + integrity sha512-j8kNnzv5bE2A8jVEXdDFY1ZXoowNGRRAFCO1FlO0aU7yA3YwRXNAeAerJCRJROxl6E//Bsj2WbjRd+mPXE4JVg== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.70.0" + "@cornerstonejs/core" "^1.70.5" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.70.0": - version "1.70.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.70.0.tgz#a8d96abf4b9963e6b30ea86db99c10f63e237dea" - integrity sha512-ZeFkKUhDlHAvjM4QGTeIsNvkih87rHS98k2DcIX2nJOilNT7KG8bsd1Clllm6Dq99rQCGGfs0ZLSb3CVLI5JXA== +"@cornerstonejs/streaming-image-volume-loader@^1.70.5": + version "1.70.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.70.5.tgz#d6044b4258e28b38c00e8463afef064af85bd3ec" + integrity sha512-p7NZBixKRmQtZ4/auUvGEsX78/Xcdb6D5gG+hjk1ScF3d9kX5uafgBMj1aBQuO9WlcU6r7AGdIRy4hfGW+s/2w== dependencies: - "@cornerstonejs/core" "^1.70.0" + "@cornerstonejs/core" "^1.70.5" comlink "^4.4.1" -"@cornerstonejs/tools@^1.70.0": - version "1.70.0" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.70.0.tgz#563e08fb664d92aaf74ef8c0f49322f17e8b90a6" - integrity sha512-dj4RuYTMFKEWfi3PIyf3xebAC3lfjsuYD95SunkYRH2sxESd5l6A7Vnzk4cdajGqKeXrDVd6LD/P3dxbu/25bw== +"@cornerstonejs/tools@^1.70.5": + version "1.70.5" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.70.5.tgz#ebf7700516169c8283d44d146e5e995ed42dd1a2" + integrity sha512-gIo+JfcduvmxpQSXj3BX0N7IwkQZg9yGhexTToSDPo/kpAs5ju2rbnEK++y7kT5zn+G9blDzz9q1clS+++q90w== dependencies: - "@cornerstonejs/core" "^1.70.0" + "@cornerstonejs/core" "^1.70.5" "@icr/polyseg-wasm" "0.4.0" "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1" From 60b2f69334c33154ad9eb159c8db96921aaa2a5a Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 17:55:12 +0000 Subject: [PATCH 245/289] chore(version): version.json [skip ci] --- commit.txt | 2 +- extensions/cornerstone-dicom-rt/package.json | 8 ++++---- extensions/cornerstone-dicom-seg/package.json | 8 ++++---- extensions/cornerstone-dicom-sr/package.json | 8 ++++---- .../cornerstone-dynamic-volume/package.json | 10 +++++----- extensions/cornerstone/package.json | 4 ++-- extensions/default/package.json | 4 ++-- extensions/dicom-microscopy/package.json | 8 ++++---- extensions/dicom-pdf/package.json | 4 ++-- extensions/dicom-video/package.json | 4 ++-- extensions/measurement-tracking/package.json | 6 +++--- extensions/test-extension/package.json | 4 ++-- extensions/tmtv/package.json | 4 ++-- modes/basic-dev-mode/package.json | 12 ++++++------ modes/basic-test-mode/package.json | 16 ++++++++-------- modes/longitudinal/package.json | 18 +++++++++--------- modes/microscopy/package.json | 4 ++-- modes/preclinical-4d/package.json | 12 ++++++------ modes/segmentation/package.json | 16 ++++++++-------- modes/tmtv/package.json | 14 +++++++------- platform/core/package.json | 2 +- version.json | 4 ++-- version.txt | 2 +- 23 files changed, 87 insertions(+), 87 deletions(-) diff --git a/commit.txt b/commit.txt index 2aabe1206..870cddbfa 100644 --- a/commit.txt +++ b/commit.txt @@ -1 +1 @@ -2b83393f91cb16ea06821d79d14ff60f80c29c90 \ No newline at end of file +df49a653be61a93f6e9fb3663aabe9775c31fd13 \ No newline at end of file diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index b3e866dbb..bacd9ccf4 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/i18n": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/i18n": "3.8.0-beta.79", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index d5b7445b7..965ba7ce7 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -33,10 +33,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/i18n": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/i18n": "3.8.0-beta.79", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index f9f165bbb..13b025618 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -34,10 +34,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-measurement-tracking": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-measurement-tracking": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index ca46a1175..34677215f 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -29,11 +29,11 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/i18n": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/i18n": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "^0.29.5", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 70e283977..d9852b80e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,8 +40,8 @@ "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.5", "@icr/polyseg-wasm": "^0.4.0", - "@ohif/core": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", diff --git a/extensions/default/package.json b/extensions/default/package.json index c015f3014..b87ce9827 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/i18n": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/i18n": "3.8.0-beta.79", "dcmjs": "^0.29.12", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index b8158ef0a..230de6639 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -30,10 +30,10 @@ "start": "yarn run dev" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/i18n": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/i18n": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "prop-types": "^15.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 6b442b3f4..8850f2a63 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index af7e1dab9..42d3a6bd1 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 528779f0f..b2378ab93 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -34,9 +34,9 @@ "peerDependencies": { "@cornerstonejs/core": "^1.70.5", "@cornerstonejs/tools": "^1.70.5", - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "classnames": "^2.3.2", "dcmjs": "^0.29.12", "lodash.debounce": "^4.17.21", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 12b401eb3..bf391bfe7 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 624fbd910..dc932cc41 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,8 +30,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "dcmjs": "^0.29.12", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index 2a5818210..a98171015 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -31,12 +31,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-dicom-pdf": "3.8.0-beta.78", - "@ohif/extension-dicom-video": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-dicom-pdf": "3.8.0-beta.79", + "@ohif/extension-dicom-video": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index 8b35b38d1..abaaa9c72 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -34,14 +34,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-dicom-pdf": "3.8.0-beta.78", - "@ohif/extension-dicom-video": "3.8.0-beta.78", - "@ohif/extension-measurement-tracking": "3.8.0-beta.78", - "@ohif/extension-test": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-dicom-pdf": "3.8.0-beta.79", + "@ohif/extension-dicom-video": "3.8.0-beta.79", + "@ohif/extension-measurement-tracking": "3.8.0-beta.79", + "@ohif/extension-test": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index f75eb789a..9f1da2193 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -34,15 +34,15 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-dicom-pdf": "3.8.0-beta.78", - "@ohif/extension-dicom-video": "3.8.0-beta.78", - "@ohif/extension-measurement-tracking": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-dicom-pdf": "3.8.0-beta.79", + "@ohif/extension-dicom-video": "3.8.0-beta.79", + "@ohif/extension-measurement-tracking": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index c1c85e7df..5ab3592e8 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -35,8 +35,8 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index 8e7b920a3..c9ee4d4cd 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -30,12 +30,12 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-tmtv": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dynamic-volume": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-tmtv": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13" diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 890d48cad..20a6ef3a3 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -35,14 +35,14 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-dicom-pdf": "3.8.0-beta.78", - "@ohif/extension-dicom-video": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-dicom-pdf": "3.8.0-beta.79", + "@ohif/extension-dicom-video": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 66fc99854..28f6d5f5f 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -34,13 +34,13 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests" }, "peerDependencies": { - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-dicom-pdf": "3.8.0-beta.78", - "@ohif/extension-dicom-video": "3.8.0-beta.78", - "@ohif/extension-measurement-tracking": "3.8.0-beta.78" + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-dicom-pdf": "3.8.0-beta.79", + "@ohif/extension-dicom-video": "3.8.0-beta.79", + "@ohif/extension-measurement-tracking": "3.8.0-beta.79" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/platform/core/package.json b/platform/core/package.json index 2903d9b69..29f436878 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/dicom-image-loader": "^1.70.5", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.79", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" }, diff --git a/version.json b/version.json index 874f97d44..77851e5a0 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "3.8.0-beta.78", - "commit": "2b83393f91cb16ea06821d79d14ff60f80c29c90" + "version": "3.8.0-beta.79", + "commit": "df49a653be61a93f6e9fb3663aabe9775c31fd13" } \ No newline at end of file diff --git a/version.txt b/version.txt index 5d435360e..e3a7708f8 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.8.0-beta.78 \ No newline at end of file +3.8.0-beta.79 \ No newline at end of file From 41a8d105f1610651fdf26c1302708b29fd63e01b Mon Sep 17 00:00:00 2001 From: ohif-bot Date: Wed, 10 Apr 2024 17:55:21 +0000 Subject: [PATCH 246/289] chore(version): Update package versions [skip ci] --- CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-rt/CHANGELOG.md | 8 +++++ extensions/cornerstone-dicom-rt/package.json | 2 +- extensions/cornerstone-dicom-seg/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-seg/package.json | 2 +- extensions/cornerstone-dicom-sr/CHANGELOG.md | 11 ++++++ extensions/cornerstone-dicom-sr/package.json | 2 +- .../cornerstone-dynamic-volume/CHANGELOG.md | 11 ++++++ .../cornerstone-dynamic-volume/package.json | 2 +- extensions/cornerstone/CHANGELOG.md | 11 ++++++ extensions/cornerstone/package.json | 2 +- extensions/default/CHANGELOG.md | 8 +++++ extensions/default/package.json | 2 +- extensions/dicom-microscopy/CHANGELOG.md | 11 ++++++ extensions/dicom-microscopy/package.json | 2 +- extensions/dicom-pdf/CHANGELOG.md | 8 +++++ extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/CHANGELOG.md | 8 +++++ extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/CHANGELOG.md | 11 ++++++ extensions/measurement-tracking/package.json | 4 +-- extensions/test-extension/CHANGELOG.md | 8 +++++ extensions/test-extension/package.json | 2 +- extensions/tmtv/CHANGELOG.md | 11 ++++++ extensions/tmtv/package.json | 2 +- lerna.json | 2 +- modes/basic-dev-mode/CHANGELOG.md | 8 +++++ modes/basic-dev-mode/package.json | 2 +- modes/basic-test-mode/CHANGELOG.md | 8 +++++ modes/basic-test-mode/package.json | 2 +- modes/longitudinal/CHANGELOG.md | 8 +++++ modes/longitudinal/package.json | 2 +- modes/microscopy/CHANGELOG.md | 8 +++++ modes/microscopy/package.json | 2 +- modes/preclinical-4d/CHANGELOG.md | 8 +++++ modes/preclinical-4d/package.json | 2 +- modes/segmentation/CHANGELOG.md | 8 +++++ modes/segmentation/package.json | 2 +- modes/tmtv/CHANGELOG.md | 11 ++++++ modes/tmtv/package.json | 2 +- platform/app/CHANGELOG.md | 11 ++++++ platform/app/package.json | 34 +++++++++---------- platform/cli/CHANGELOG.md | 8 +++++ platform/cli/package.json | 2 +- platform/core/CHANGELOG.md | 11 ++++++ platform/core/package.json | 2 +- platform/docs/CHANGELOG.md | 8 +++++ platform/docs/package.json | 2 +- platform/i18n/CHANGELOG.md | 8 +++++ platform/i18n/package.json | 2 +- platform/ui/CHANGELOG.md | 11 ++++++ platform/ui/package.json | 2 +- 52 files changed, 287 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 056984ff8..59970db6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/extensions/cornerstone-dicom-rt/CHANGELOG.md b/extensions/cornerstone-dicom-rt/CHANGELOG.md index 433fb1469..4122f6d73 100644 --- a/extensions/cornerstone-dicom-rt/CHANGELOG.md +++ b/extensions/cornerstone-dicom-rt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt diff --git a/extensions/cornerstone-dicom-rt/package.json b/extensions/cornerstone-dicom-rt/package.json index bacd9ccf4..2d41ef0cc 100644 --- a/extensions/cornerstone-dicom-rt/package.json +++ b/extensions/cornerstone-dicom-rt/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "DICOM RT read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-seg/CHANGELOG.md b/extensions/cornerstone-dicom-seg/CHANGELOG.md index 4e9de699c..4506bfd13 100644 --- a/extensions/cornerstone-dicom-seg/CHANGELOG.md +++ b/extensions/cornerstone-dicom-seg/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 965ba7ce7..eb94e0172 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "DICOM SEG read workflow", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dicom-sr/CHANGELOG.md b/extensions/cornerstone-dicom-sr/CHANGELOG.md index aeafafca9..fdf88d9a7 100644 --- a/extensions/cornerstone-dicom-sr/CHANGELOG.md +++ b/extensions/cornerstone-dicom-sr/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 13b025618..e806a35af 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for an SR Cornerstone Viewport", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone-dynamic-volume/CHANGELOG.md b/extensions/cornerstone-dynamic-volume/CHANGELOG.md index b9b00a3b8..e00858f49 100644 --- a/extensions/cornerstone-dynamic-volume/CHANGELOG.md +++ b/extensions/cornerstone-dynamic-volume/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 34677215f..9c278cff0 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for 4D volumes data", "author": "OHIF", "license": "MIT", diff --git a/extensions/cornerstone/CHANGELOG.md b/extensions/cornerstone/CHANGELOG.md index c7f72fcac..4eafdd588 100644 --- a/extensions/cornerstone/CHANGELOG.md +++ b/extensions/cornerstone/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index d9852b80e..ba967a44e 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-cornerstone", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/extensions/default/CHANGELOG.md b/extensions/default/CHANGELOG.md index 210be47e8..a13264aec 100644 --- a/extensions/default/CHANGELOG.md +++ b/extensions/default/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-default + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-default diff --git a/extensions/default/package.json b/extensions/default/package.json index b87ce9827..7bbe52b83 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-default", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Common/default features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", diff --git a/extensions/dicom-microscopy/CHANGELOG.md b/extensions/dicom-microscopy/CHANGELOG.md index 4702389a9..1a1069df4 100644 --- a/extensions/dicom-microscopy/CHANGELOG.md +++ b/extensions/dicom-microscopy/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-microscopy diff --git a/extensions/dicom-microscopy/package.json b/extensions/dicom-microscopy/package.json index 230de6639..4423962cd 100644 --- a/extensions/dicom-microscopy/package.json +++ b/extensions/dicom-microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-microscopy", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for DICOM microscopy", "author": "Bill Wallace, md-prog", "license": "MIT", diff --git a/extensions/dicom-pdf/CHANGELOG.md b/extensions/dicom-pdf/CHANGELOG.md index 1b6e67387..913a18cf8 100644 --- a/extensions/dicom-pdf/CHANGELOG.md +++ b/extensions/dicom-pdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-pdf + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-pdf diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 8850f2a63..700e6f184 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-pdf", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for PDF display", "author": "OHIF", "license": "MIT", diff --git a/extensions/dicom-video/CHANGELOG.md b/extensions/dicom-video/CHANGELOG.md index e1b89ac6a..eb5d20ecf 100644 --- a/extensions/dicom-video/CHANGELOG.md +++ b/extensions/dicom-video/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-dicom-video + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-dicom-video diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index 42d3a6bd1..cdeac891f 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-dicom-video", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for video display", "author": "OHIF", "license": "MIT", diff --git a/extensions/measurement-tracking/CHANGELOG.md b/extensions/measurement-tracking/CHANGELOG.md index 48c3c99de..02255df92 100644 --- a/extensions/measurement-tracking/CHANGELOG.md +++ b/extensions/measurement-tracking/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index b2378ab93..caaf1289f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-measurement-tracking", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Tracking features and functionality for basic image viewing", "author": "OHIF Core Team", "license": "MIT", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/ui": "3.8.0-beta.79", "@xstate/react": "^3.2.2", "xstate": "^4.10.0" } diff --git a/extensions/test-extension/CHANGELOG.md b/extensions/test-extension/CHANGELOG.md index 4e4eb32c6..a8d81c51f 100644 --- a/extensions/test-extension/CHANGELOG.md +++ b/extensions/test-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/extension-test + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-test diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index bf391bfe7..e07435de2 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-test", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension used inside e2e testing", "author": "OHIF", "license": "MIT", diff --git a/extensions/tmtv/CHANGELOG.md b/extensions/tmtv/CHANGELOG.md index 2a60b26ea..b6af17bc2 100644 --- a/extensions/tmtv/CHANGELOG.md +++ b/extensions/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/extension-tmtv diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index dc932cc41..da493e6b6 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/extension-tmtv", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF extension for Total Metabolic Tumor Volume", "author": "OHIF", "license": "MIT", diff --git a/lerna.json b/lerna.json index 9d36b7326..6d1ae73a8 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "packages": ["extensions/*", "platform/*", "modes/*"], "npmClient": "yarn" } diff --git a/modes/basic-dev-mode/CHANGELOG.md b/modes/basic-dev-mode/CHANGELOG.md index 786ae4d12..8b8fb4408 100644 --- a/modes/basic-dev-mode/CHANGELOG.md +++ b/modes/basic-dev-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-basic-dev-mode + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/mode-basic-dev-mode diff --git a/modes/basic-dev-mode/package.json b/modes/basic-dev-mode/package.json index a98171015..b71df73f0 100644 --- a/modes/basic-dev-mode/package.json +++ b/modes/basic-dev-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-basic-dev-mode", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Basic OHIF Viewer Using Cornerstone", "author": "OHIF", "license": "MIT", diff --git a/modes/basic-test-mode/CHANGELOG.md b/modes/basic-test-mode/CHANGELOG.md index 7f070719c..724f3bbc8 100644 --- a/modes/basic-test-mode/CHANGELOG.md +++ b/modes/basic-test-mode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-test + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/modes/basic-test-mode/package.json b/modes/basic-test-mode/package.json index abaaa9c72..93d768e0f 100644 --- a/modes/basic-test-mode/package.json +++ b/modes/basic-test-mode/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-test", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Basic mode for testing", "author": "OHIF", "license": "MIT", diff --git a/modes/longitudinal/CHANGELOG.md b/modes/longitudinal/CHANGELOG.md index 3a938d17e..f9329421a 100644 --- a/modes/longitudinal/CHANGELOG.md +++ b/modes/longitudinal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-longitudinal + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/modes/longitudinal/package.json b/modes/longitudinal/package.json index 9f1da2193..d3eab5074 100644 --- a/modes/longitudinal/package.json +++ b/modes/longitudinal/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-longitudinal", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Longitudinal Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/microscopy/CHANGELOG.md b/modes/microscopy/CHANGELOG.md index 29f4c46b3..66c63d403 100644 --- a/modes/microscopy/CHANGELOG.md +++ b/modes/microscopy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-microscopy + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/mode-microscopy diff --git a/modes/microscopy/package.json b/modes/microscopy/package.json index 5ab3592e8..177764997 100644 --- a/modes/microscopy/package.json +++ b/modes/microscopy/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-microscopy", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF mode for DICOM microscopy", "author": "OHIF", "license": "MIT", diff --git a/modes/preclinical-4d/CHANGELOG.md b/modes/preclinical-4d/CHANGELOG.md index 2781122a0..8765e1768 100644 --- a/modes/preclinical-4d/CHANGELOG.md +++ b/modes/preclinical-4d/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-preclinical-4d + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/mode-preclinical-4d diff --git a/modes/preclinical-4d/package.json b/modes/preclinical-4d/package.json index c9ee4d4cd..fb05c9414 100644 --- a/modes/preclinical-4d/package.json +++ b/modes/preclinical-4d/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-preclinical-4d", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "4D Workflow", "author": "OHIF", "license": "MIT", diff --git a/modes/segmentation/CHANGELOG.md b/modes/segmentation/CHANGELOG.md index 1ba95b96b..0cba943ed 100644 --- a/modes/segmentation/CHANGELOG.md +++ b/modes/segmentation/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/mode-segmentation + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/modes/segmentation/package.json b/modes/segmentation/package.json index 20a6ef3a3..13d2ea84d 100644 --- a/modes/segmentation/package.json +++ b/modes/segmentation/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-segmentation", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export", "author": "@ohif", "license": "MIT", diff --git a/modes/tmtv/CHANGELOG.md b/modes/tmtv/CHANGELOG.md index d37510726..8b64d6d01 100644 --- a/modes/tmtv/CHANGELOG.md +++ b/modes/tmtv/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/mode-tmtv diff --git a/modes/tmtv/package.json b/modes/tmtv/package.json index 28f6d5f5f..9d343982a 100644 --- a/modes/tmtv/package.json +++ b/modes/tmtv/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/mode-tmtv", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Total Metabolic Tumor Volume Workflow", "author": "OHIF", "license": "MIT", diff --git a/platform/app/CHANGELOG.md b/platform/app/CHANGELOG.md index fc380130a..d28c20675 100644 --- a/platform/app/CHANGELOG.md +++ b/platform/app/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/platform/app/package.json b/platform/app/package.json index b741bda2f..fd8d24803 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/app", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "productVersion": "3.4.0", "description": "OHIF Viewer", "author": "OHIF Contributors", @@ -56,22 +56,22 @@ "@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/dicom-image-loader": "^1.70.5", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.8.0-beta.78", - "@ohif/extension-cornerstone": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78", - "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78", - "@ohif/extension-default": "3.8.0-beta.78", - "@ohif/extension-dicom-microscopy": "3.8.0-beta.78", - "@ohif/extension-dicom-pdf": "3.8.0-beta.78", - "@ohif/extension-dicom-video": "3.8.0-beta.78", - "@ohif/extension-test": "3.8.0-beta.78", - "@ohif/i18n": "3.8.0-beta.78", - "@ohif/mode-basic-dev-mode": "3.8.0-beta.78", - "@ohif/mode-longitudinal": "3.8.0-beta.78", - "@ohif/mode-microscopy": "3.8.0-beta.78", - "@ohif/mode-test": "3.8.0-beta.78", - "@ohif/ui": "3.8.0-beta.78", + "@ohif/core": "3.8.0-beta.79", + "@ohif/extension-cornerstone": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.79", + "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79", + "@ohif/extension-default": "3.8.0-beta.79", + "@ohif/extension-dicom-microscopy": "3.8.0-beta.79", + "@ohif/extension-dicom-pdf": "3.8.0-beta.79", + "@ohif/extension-dicom-video": "3.8.0-beta.79", + "@ohif/extension-test": "3.8.0-beta.79", + "@ohif/i18n": "3.8.0-beta.79", + "@ohif/mode-basic-dev-mode": "3.8.0-beta.79", + "@ohif/mode-longitudinal": "3.8.0-beta.79", + "@ohif/mode-microscopy": "3.8.0-beta.79", + "@ohif/mode-test": "3.8.0-beta.79", + "@ohif/ui": "3.8.0-beta.79", "@types/react": "^17.0.38", "classnames": "^2.3.2", "core-js": "^3.16.1", diff --git a/platform/cli/CHANGELOG.md b/platform/cli/CHANGELOG.md index c05b67e8f..f582733e4 100644 --- a/platform/cli/CHANGELOG.md +++ b/platform/cli/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/cli + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/cli diff --git a/platform/cli/package.json b/platform/cli/package.json index cf3337553..e54eface1 100644 --- a/platform/cli/package.json +++ b/platform/cli/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/cli", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "A CLI to bootstrap new OHIF extension or mode", "type": "module", "main": "src/index.js", diff --git a/platform/core/CHANGELOG.md b/platform/core/CHANGELOG.md index bde56e1f8..1d6ea79b5 100644 --- a/platform/core/CHANGELOG.md +++ b/platform/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/platform/core/package.json b/platform/core/package.json index 29f436878..3b4cb51ba 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/core", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Generic business logic for web-based medical imaging applications", "author": "OHIF Core Team", "license": "MIT", diff --git a/platform/docs/CHANGELOG.md b/platform/docs/CHANGELOG.md index 770e0c6b6..0e58a96c1 100644 --- a/platform/docs/CHANGELOG.md +++ b/platform/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package ohif-docs + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package ohif-docs diff --git a/platform/docs/package.json b/platform/docs/package.json index 5a3ad5b8d..8ab9f1737 100644 --- a/platform/docs/package.json +++ b/platform/docs/package.json @@ -1,6 +1,6 @@ { "name": "ohif-docs", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "private": true, "workspaces": { "nohoist": [ diff --git a/platform/i18n/CHANGELOG.md b/platform/i18n/CHANGELOG.md index cfdc1223d..20eff45c2 100644 --- a/platform/i18n/CHANGELOG.md +++ b/platform/i18n/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + +**Note:** Version bump only for package @ohif/i18n + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) **Note:** Version bump only for package @ohif/i18n diff --git a/platform/i18n/package.json b/platform/i18n/package.json index e8c9c3a20..134aebd2e 100644 --- a/platform/i18n/package.json +++ b/platform/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/i18n", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "Internationalization library for The OHIF Viewer", "author": "OHIF", "license": "MIT", diff --git a/platform/ui/CHANGELOG.md b/platform/ui/CHANGELOG.md index 096a84eae..2cfcafb8a 100644 --- a/platform/ui/CHANGELOG.md +++ b/platform/ui/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.8.0-beta.79](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.78...v3.8.0-beta.79) (2024-04-10) + + +### Features + +* **SM:** remove SM measurements from measurement panel ([#4022](https://github.com/OHIF/Viewers/issues/4022)) ([df49a65](https://github.com/OHIF/Viewers/commit/df49a653be61a93f6e9fb3663aabe9775c31fd13)) + + + + + # [3.8.0-beta.78](https://github.com/OHIF/Viewers/compare/v3.8.0-beta.77...v3.8.0-beta.78) (2024-04-10) diff --git a/platform/ui/package.json b/platform/ui/package.json index 014206059..dbe69dc5a 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -1,6 +1,6 @@ { "name": "@ohif/ui", - "version": "3.8.0-beta.78", + "version": "3.8.0-beta.79", "description": "A set of React components for Medical Imaging Viewers", "author": "OHIF Contributors", "license": "MIT", From e80fc6f47708e1d6b1a1e1de438196a4b74ec637 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Tue, 16 Apr 2024 10:31:06 -0230 Subject: [PATCH 247/289] fix(bugs): enhancements and bug fixes (#4036) --- .../src/utils/promptHydrateRT.ts | 5 + .../src/utils/promptHydrateSEG.ts | 5 + .../src/panels/DynamicVolumeControls.tsx | 2 +- .../WindowLevelActionMenu/Colormap.tsx | 5 + .../WindowLevelActionMenu/VolumeLighting.tsx | 18 +- .../VolumeRenderingOptions.tsx | 4 +- .../VolumeRenderingPresets.tsx | 2 +- .../VolumeRenderingQuality.tsx | 6 +- .../WindowLevelActionMenu/VolumeShift.tsx | 2 + .../WindowLevelActionMenu/WindowLevel.tsx | 33 ++- .../WindowLevelActionMenu.tsx | 12 +- .../getWindowLevelActionMenu.tsx | 8 +- .../cornerstone/src/getToolbarModule.tsx | 4 +- extensions/cornerstone/src/hps/fourUp.ts | 7 +- extensions/cornerstone/src/hps/main3D.ts | 7 +- .../src/hps/mprAnd3DVolumeViewport.ts | 6 +- extensions/cornerstone/src/hps/only3D.ts | 7 +- extensions/cornerstone/src/hps/primary3D.ts | 7 +- extensions/cornerstone/src/init.tsx | 2 +- .../cornerstone/src/initMeasurementService.js | 18 ++ .../CornerstoneViewportService.ts | 8 +- extensions/cornerstone/src/utils/colormaps.js | 32 +-- .../utils/measurementServiceMappings/Probe.ts | 187 ++++++++++++++++ .../UltrasoundDirectional.ts | 206 ++++++++++++++++++ .../constants/supportedTools.js | 2 + .../measurementServiceMappingsFactory.ts | 39 ++++ .../default/src/ViewerLayout/ViewerHeader.tsx | 3 +- extensions/default/src/commandsModule.ts | 1 + .../promptHydrateStructuredReport.js | 6 + .../PanelStudyBrowserTracking.tsx | 72 +++++- extensions/tmtv/src/Panels/PanelPetSUV.tsx | 2 +- .../PanelROIThresholdExport.tsx | 4 +- platform/app/public/config/netlify.js | 1 + platform/app/src/routes/WorkList/WorkList.tsx | 3 +- .../docs/configuration/configurationFiles.md | 3 +- platform/ui/src/assets/icons/tool-layout.svg | 15 +- .../ui/src/assets/icons/tool-seg-brush.svg | 9 + .../ui/src/assets/icons/tool-seg-eraser.svg | 10 + .../ui/src/assets/icons/tool-seg-shape.svg | 9 + .../src/assets/icons/tool-seg-threshold.svg | 17 ++ .../components/ButtonGroup/ButtonGroup.tsx | 45 ++-- platform/ui/src/components/Header/Header.tsx | 3 +- .../HeaderPatientInfo/HeaderPatientInfo.tsx | 7 +- platform/ui/src/components/Icon/getIcon.js | 8 +- .../src/components/IconButton/IconButton.tsx | 3 +- .../src/components/InputRange/InputRange.tsx | 4 +- .../ui/src/components/ListMenu/ListMenu.tsx | 2 +- .../components/Notification/Notification.tsx | 2 +- .../components/PanelSection/PanelSection.tsx | 6 +- .../SegmentationGroupSegment.tsx | 6 +- .../SegmentationGroupTable.tsx | 6 +- .../SegmentationGroupTableExpanded.tsx | 6 +- .../ui/src/components/SidePanel/SidePanel.tsx | 18 +- .../components/SplitButton/SplitButton.tsx | 2 +- .../ui/src/components/StudyItem/StudyItem.tsx | 4 +- .../ToolbarButton/ToolbarButton.tsx | 2 +- .../src/contextProviders/DialogProvider.tsx | 2 +- .../ui/src/types/PatientInfoVisibility.ts | 1 + 58 files changed, 768 insertions(+), 148 deletions(-) create mode 100644 extensions/cornerstone/src/utils/measurementServiceMappings/Probe.ts create mode 100644 extensions/cornerstone/src/utils/measurementServiceMappings/UltrasoundDirectional.ts create mode 100644 platform/ui/src/assets/icons/tool-seg-brush.svg create mode 100644 platform/ui/src/assets/icons/tool-seg-eraser.svg create mode 100644 platform/ui/src/assets/icons/tool-seg-shape.svg create mode 100644 platform/ui/src/assets/icons/tool-seg-threshold.svg diff --git a/extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts b/extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts index 91492cbfb..2baa0305b 100644 --- a/extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts +++ b/extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts @@ -66,6 +66,11 @@ function _askHydrate(uiViewportDialogService, viewportId) { uiViewportDialogService.hide(); resolve(RESPONSE.CANCEL); }, + onKeyPress: event => { + if (event.key === 'Enter') { + onSubmit(RESPONSE.HYDRATE_SEG); + } + }, }); }); } diff --git a/extensions/cornerstone-dicom-seg/src/utils/promptHydrateSEG.ts b/extensions/cornerstone-dicom-seg/src/utils/promptHydrateSEG.ts index 9f8c1dddf..c42b32e69 100644 --- a/extensions/cornerstone-dicom-seg/src/utils/promptHydrateSEG.ts +++ b/extensions/cornerstone-dicom-seg/src/utils/promptHydrateSEG.ts @@ -63,6 +63,11 @@ function _askHydrate(uiViewportDialogService, viewportId) { uiViewportDialogService.hide(); resolve(RESPONSE.CANCEL); }, + onKeyPress: event => { + if (event.key === 'Enter') { + onSubmit(RESPONSE.HYDRATE_SEG); + } + }, }); }); } diff --git a/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx b/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx index 337e9e0a3..b780669f9 100644 --- a/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx +++ b/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx @@ -22,7 +22,7 @@ const Header = ({ title, tooltip }) => (
{tooltip}
} - position="bottom" + position="bottom-left" tight={true} tooltipBoxClassName="max-w-xs" > diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/Colormap.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/Colormap.tsx index 335e54456..a37eae3a9 100644 --- a/extensions/cornerstone/src/components/WindowLevelActionMenu/Colormap.tsx +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/Colormap.tsx @@ -68,6 +68,11 @@ export function Colormap({ key: index, style: { minWidth: `calc(100% / ${displaySets.length})`, + fontSize: '0.8rem', + textAlign: 'center', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', }, })); }, [displaySets]); diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeLighting.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeLighting.tsx index 80b6452c6..7cd7d4f85 100644 --- a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeLighting.tsx +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeLighting.tsx @@ -60,7 +60,11 @@ export function VolumeLighting({ min={0} type="range" step={0.1} - style={{ background: calculateBackground(ambient) }} + style={{ + background: calculateBackground(ambient), + '--thumb-inner-color': '#5acce6', + '--thumb-outer-color': '#090c29', + }} /> )}
@@ -84,7 +88,11 @@ export function VolumeLighting({ min={0} type="range" step={0.1} - style={{ background: calculateBackground(diffuse) }} + style={{ + background: calculateBackground(diffuse), + '--thumb-inner-color': '#5acce6', + '--thumb-outer-color': '#090c29', + }} /> )}
@@ -109,7 +117,11 @@ export function VolumeLighting({ min={0} type="range" step={0.1} - style={{ background: calculateBackground(specular) }} + style={{ + background: calculateBackground(specular), + '--thumb-inner-color': '#5acce6', + '--thumb-outer-color': '#090c29', + }} /> )}
diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingOptions.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingOptions.tsx index a75f0bd52..d666e354b 100644 --- a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingOptions.tsx +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeRenderingOptions.tsx @@ -25,10 +25,10 @@ export function VolumeRenderingOptions({ commandsManager={commandsManager} serviceManager={serviceManager} /> -
+
LIGHTING
- +
onChange(parseInt(e.target.value, 10))} - style={{ background: calculateBackground((quality - min) / (max - min)) }} + style={{ + background: calculateBackground((quality - min) / (max - min)), + '--thumb-inner-color': '#5acce6', + '--thumb-outer-color': '#090c29', + }} /> )}
diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx index 6ad9eb9d3..274f71599 100644 --- a/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeShift.tsx @@ -82,6 +82,8 @@ export function VolumeShift({ step={step} style={{ background: calculateBackground((shift - minShift) / (maxShift - minShift)), + '--thumb-inner-color': '#5acce6', + '--thumb-outer-color': '#090c29', }} /> )} diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx index 44b75bf93..eda52d5bb 100644 --- a/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevel.tsx @@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next'; export type WindowLevelProps = { viewportId: string; - presets: Record>; + presets: Array>>; commandsManager: CommandsManager; }; @@ -23,25 +23,34 @@ export function WindowLevel({ commandName: 'setViewportWindowLevel', commandOptions: { ...props, + viewportId, }, context: 'CORNERSTONE', }); }, - [commandsManager] + [commandsManager, viewportId] ); return ( - - {t('Modality Presets', { modality: Object.keys(presets)[0] })} - - {Object.values(presets)[0].map((preset, index) => ( - onSetWindowLevel({ ...preset, viewportId })} - > + {presets.map((modalityPresets, modalityIndex) => ( + + {Object.entries(modalityPresets).map(([modality, presetsArray]) => ( + + + {t('Modality Presets', { modality })} + + {presetsArray.map((preset, index) => ( + onSetWindowLevel(preset)} + /> + ))} + + ))} + ))} ); diff --git a/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx index b4db9fd21..6905c9988 100644 --- a/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx +++ b/extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx @@ -19,7 +19,7 @@ import { utilities } from '@cornerstonejs/core'; export type WindowLevelActionMenuProps = { viewportId: string; element: HTMLElement; - presets: Record>; + presets: Array>>; verticalDirection: AllInOneMenu.VerticalDirection; horizontalDirection: AllInOneMenu.HorizontalDirection; commandsManager: CommandsManager; @@ -128,10 +128,8 @@ export function WindowLevelActionMenu({ iconClassName={classNames( // Visible on hover and for the active viewport activeViewportId === viewportId ? 'visible' : 'invisible group-hover:visible', - 'flex shrink-0 cursor-pointer rounded active:text-white', - isLight - ? 'text-aqua-pale hover:bg-secondary-dark' - : 'text-primary-light hover:bg-secondary-light/60' + 'flex shrink-0 cursor-pointer rounded active:text-white text-primary-light', + isLight ? ' hover:bg-secondary-dark' : 'hover:bg-secondary-light/60' )} menuStyle={{ maxHeight: vpHeight - 32, minWidth: 218 }} onVisibilityChange={() => { @@ -166,10 +164,10 @@ export function WindowLevelActionMenu({ )} - {presets && !is3DVolume && ( + {presets && presets.length > 0 && !is3DVolume && ( 0; - - return hasMenu ? ( + return ( - ) : null; + ); } diff --git a/extensions/cornerstone/src/getToolbarModule.tsx b/extensions/cornerstone/src/getToolbarModule.tsx index e58643da4..74a116269 100644 --- a/extensions/cornerstone/src/getToolbarModule.tsx +++ b/extensions/cornerstone/src/getToolbarModule.tsx @@ -43,8 +43,8 @@ export default function getToolbarModule({ commandsManager, servicesManager }) { return { disabled: false, className: isPrimaryActive - ? '!text-black bg-primary-light' - : '!text-common-bright hover:!bg-primary-dark hover:!text-primary-light', + ? '!text-black bg-primary-light rounded' + : '!text-common-bright hover:!bg-primary-dark hover:!text-primary-light rounded', // Todo: isActive right now is used for nested buttons where the primary // button needs to be fully rounded (vs partial rounded) when active // otherwise it does not have any other use diff --git a/extensions/cornerstone/src/hps/fourUp.ts b/extensions/cornerstone/src/hps/fourUp.ts index 69305e6c1..df4056854 100644 --- a/extensions/cornerstone/src/hps/fourUp.ts +++ b/extensions/cornerstone/src/hps/fourUp.ts @@ -77,8 +77,11 @@ export const fourUp = { { id: 'mprDisplaySet', options: { - // ToDo: choose appropriate preset - displayPreset: 'CT-Bone', + displayPreset: { + CT: 'CT-Bone', + MR: 'MR-Default', + default: 'CT-Bone', + }, }, }, ], diff --git a/extensions/cornerstone/src/hps/main3D.ts b/extensions/cornerstone/src/hps/main3D.ts index a00ccc4a7..5976dae2c 100644 --- a/extensions/cornerstone/src/hps/main3D.ts +++ b/extensions/cornerstone/src/hps/main3D.ts @@ -77,8 +77,11 @@ export const main3D = { { id: 'mprDisplaySet', options: { - // ToDo: choose appropriate preset - displayPreset: 'CT-Bone', + displayPreset: { + CT: 'CT-Bone', + MR: 'MR-Default', + default: 'CT-Bone', + }, }, }, ], diff --git a/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts b/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts index 759ce1849..53289f829 100644 --- a/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts +++ b/extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts @@ -84,7 +84,11 @@ export const mprAnd3DVolumeViewport = { { id: 'mprDisplaySet', options: { - displayPreset: 'CT-Bone', + displayPreset: { + CT: 'CT-Bone', + MR: 'MR-Default', + default: 'CT-Bone', + }, }, }, ], diff --git a/extensions/cornerstone/src/hps/only3D.ts b/extensions/cornerstone/src/hps/only3D.ts index 53c32cf61..17d6ceecd 100644 --- a/extensions/cornerstone/src/hps/only3D.ts +++ b/extensions/cornerstone/src/hps/only3D.ts @@ -51,8 +51,11 @@ export const only3D = { { id: 'mprDisplaySet', options: { - // ToDo: choose appropriate preset - displayPreset: 'CT-Bone', + displayPreset: { + CT: 'CT-Bone', + MR: 'MR-Default', + default: 'CT-Bone', + }, }, }, ], diff --git a/extensions/cornerstone/src/hps/primary3D.ts b/extensions/cornerstone/src/hps/primary3D.ts index 11054d106..ebb8a59d9 100644 --- a/extensions/cornerstone/src/hps/primary3D.ts +++ b/extensions/cornerstone/src/hps/primary3D.ts @@ -77,8 +77,11 @@ export const primary3D = { { id: 'mprDisplaySet', options: { - // ToDo: choose appropriate preset - displayPreset: 'CT-Bone', + displayPreset: { + CT: 'CT-Bone', + MR: 'MR-Default', + default: 'CT-Bone', + }, }, }, ], diff --git a/extensions/cornerstone/src/init.tsx b/extensions/cornerstone/src/init.tsx index c06bff08a..2282abb5b 100644 --- a/extensions/cornerstone/src/init.tsx +++ b/extensions/cornerstone/src/init.tsx @@ -160,7 +160,7 @@ export default async function init({ const labelmapRepresentation = cornerstoneTools.Enums.SegmentationRepresentations.Labelmap; cornerstoneTools.segmentation.config.setGlobalRepresentationConfig(labelmapRepresentation, { - fillAlpha: 0.3, + fillAlpha: 0.5, fillAlphaInactive: 0.2, outlineOpacity: 1, outlineOpacityInactive: 0.65, diff --git a/extensions/cornerstone/src/initMeasurementService.js b/extensions/cornerstone/src/initMeasurementService.js index 61145aa18..79d94f78f 100644 --- a/extensions/cornerstone/src/initMeasurementService.js +++ b/extensions/cornerstone/src/initMeasurementService.js @@ -33,6 +33,8 @@ const initMeasurementService = ( PlanarFreehandROI, SplineROI, LivewireContour, + Probe, + UltrasoundDirectional, } = measurementServiceMappingsFactory( measurementService, displaySetService, @@ -157,6 +159,22 @@ const initMeasurementService = ( LivewireContour.toMeasurement ); + measurementService.addMapping( + csTools3DVer1MeasurementSource, + 'Probe', + Probe.matchingCriteria, + Probe.toAnnotation, + Probe.toMeasurement + ); + + measurementService.addMapping( + csTools3DVer1MeasurementSource, + 'UltrasoundDirectionalTool', + UltrasoundDirectional.matchingCriteria, + UltrasoundDirectional.toAnnotation, + UltrasoundDirectional.toMeasurement + ); + return csTools3DVer1MeasurementSource; }; diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index fa33ef58b..319884d62 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -721,10 +721,14 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } public async setVolumesForViewport(viewport, volumeInputArray, presentations) { - const { displaySetService, toolGroupService } = this.servicesManager.services; + const { displaySetService, toolGroupService, viewportGridService } = + this.servicesManager.services; const viewportInfo = this.getViewportInfo(viewport.id); const displaySetOptions = viewportInfo.getDisplaySetOptions(); + const displaySetUIDs = viewportGridService.getDisplaySetsUIDsForViewport(viewport.id); + const displaySet = displaySetService.getDisplaySetByUID(displaySetUIDs[0]); + const displaySetModality = displaySet?.Modality; // Todo: use presentations states const volumesProperties = volumeInputArray.map((volumeInput, index) => { @@ -750,7 +754,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi } if (displayPreset !== undefined) { - properties.preset = displayPreset; + properties.preset = displayPreset[displaySetModality] || displayPreset.default; } return { properties, volumeId }; diff --git a/extensions/cornerstone/src/utils/colormaps.js b/extensions/cornerstone/src/utils/colormaps.js index 85946725c..a21df96ac 100644 --- a/extensions/cornerstone/src/utils/colormaps.js +++ b/extensions/cornerstone/src/utils/colormaps.js @@ -1,4 +1,20 @@ const colormaps = [ + { + ColorSpace: 'RGB', + Name: 'Grayscale', + name: 'Grayscale', + NanColor: [1, 0, 0], + RGBPoints: [0, 0, 0, 0, 1, 1, 1, 1], + description: 'Grayscale', + }, + { + ColorSpace: 'RGB', + Name: 'X Ray', + name: 'X Ray', + NanColor: [1, 0, 0], + RGBPoints: [0, 1, 1, 1, 1, 0, 0, 0], + description: 'X Ray', + }, { ColorSpace: 'RGB', Name: 'hsv', @@ -1579,22 +1595,6 @@ const colormaps = [ ], description: 'Siemens', }, - { - ColorSpace: 'RGB', - Name: 'X Ray', - name: 'X Ray', - NanColor: [1, 0, 0], - RGBPoints: [0, 1, 1, 1, 1, 0, 0, 0], - description: 'X Ray', - }, - { - ColorSpace: 'RGB', - Name: 'Grayscale', - name: 'Grayscale', - NanColor: [1, 0, 0], - RGBPoints: [0, 0, 0, 0, 1, 1, 1, 1], - description: 'Grayscale', - }, ]; export { colormaps }; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/Probe.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/Probe.ts new file mode 100644 index 000000000..554df1842 --- /dev/null +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/Probe.ts @@ -0,0 +1,187 @@ +import SUPPORTED_TOOLS from './constants/supportedTools'; +import { getDisplayUnit } from './utils'; +import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes'; +import { utils } from '@ohif/core'; + +const Probe = { + toAnnotation: measurement => {}, + + /** + * Maps cornerstone annotation event data to measurement service format. + * + * @param {Object} cornerstone Cornerstone event data + * @return {Measurement} Measurement instance + */ + toMeasurement: ( + csToolsEventDetail, + displaySetService, + CornerstoneViewportService, + getValueTypeFromToolType, + customizationService + ) => { + const { annotation, viewportId } = csToolsEventDetail; + const { metadata, data, annotationUID } = annotation; + + if (!metadata || !data) { + console.warn('Length tool: Missing metadata or data'); + return null; + } + + const { toolName, referencedImageId, FrameOfReferenceUID } = metadata; + const validToolType = SUPPORTED_TOOLS.includes(toolName); + + if (!validToolType) { + throw new Error('Tool not supported'); + } + + const { SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID } = + getSOPInstanceAttributes(referencedImageId); + + let displaySet; + + if (SOPInstanceUID) { + displaySet = displaySetService.getDisplaySetForSOPInstanceUID( + SOPInstanceUID, + SeriesInstanceUID + ); + } else { + displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); + } + + const { points } = data.handles; + + const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); + + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); + + return { + uid: annotationUID, + SOPInstanceUID, + FrameOfReferenceUID, + points, + metadata, + referenceSeriesUID: SeriesInstanceUID, + referenceStudyUID: StudyInstanceUID, + frameNumber: mappedAnnotations?.[0]?.frameNumber || 1, + toolName: metadata.toolName, + displaySetInstanceUID: displaySet.displaySetInstanceUID, + label: data.label, + displayText: displayText, + data: data.cachedStats, + type: getValueTypeFromToolType(toolName), + getReport, + }; + }, +}; + +function getMappedAnnotations(annotation, DisplaySetService) { + const { metadata, data } = annotation; + const { cachedStats } = data; + const { referencedImageId } = metadata; + const targets = Object.keys(cachedStats); + + if (!targets.length) { + return; + } + + const annotations = []; + Object.keys(cachedStats).forEach(targetId => { + const targetStats = cachedStats[targetId]; + + if (!referencedImageId) { + throw new Error('Non-acquisition plane measurement mapping not supported'); + } + + const { SOPInstanceUID, SeriesInstanceUID, frameNumber } = + getSOPInstanceAttributes(referencedImageId); + + const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID( + SOPInstanceUID, + SeriesInstanceUID, + frameNumber + ); + + const { SeriesNumber } = displaySet; + const { value } = targetStats; + const unit = 'HU'; + + annotations.push({ + SeriesInstanceUID, + SOPInstanceUID, + SeriesNumber, + frameNumber, + unit, + value, + }); + }); + + return annotations; +} + +/* +This function is used to convert the measurement data to a format that is +suitable for the report generation (e.g. for the csv report). The report +returns a list of columns and corresponding values. +*/ +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { + const columns = []; + const values = []; + + // Add Type + columns.push('AnnotationType'); + values.push('Cornerstone:Probe'); + + mappedAnnotations.forEach(annotation => { + const { value, unit } = annotation; + columns.push(`Probe (${unit})`); + values.push(value); + }); + + if (FrameOfReferenceUID) { + columns.push('FrameOfReferenceUID'); + values.push(FrameOfReferenceUID); + } + + if (points) { + columns.push('points'); + values.push(points.map(p => p.join(' ')).join(';')); + } + + return { + columns, + values, + }; +} + +function getDisplayText(mappedAnnotations, displaySet, customizationService) { + if (!mappedAnnotations || !mappedAnnotations.length) { + return ''; + } + + const displayText = []; + + const { value, unit, SeriesNumber, SOPInstanceUID, frameNumber } = mappedAnnotations[0]; + + const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); + + let InstanceNumber; + if (instance) { + InstanceNumber = instance.InstanceNumber; + } + + const instanceText = InstanceNumber ? ` I: ${InstanceNumber}` : ''; + const frameText = displaySet.isMultiFrame ? ` F: ${frameNumber}` : ''; + if (value === undefined) { + return displayText; + } + const roundedValue = utils.roundNumber(value, 2); + displayText.push( + `${roundedValue} ${getDisplayUnit(unit)} (S: ${SeriesNumber}${instanceText}${frameText})` + ); + + return displayText; +} + +export default Probe; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/UltrasoundDirectional.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/UltrasoundDirectional.ts new file mode 100644 index 000000000..f88973ae9 --- /dev/null +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/UltrasoundDirectional.ts @@ -0,0 +1,206 @@ +import SUPPORTED_TOOLS from './constants/supportedTools'; +import { getDisplayUnit } from './utils'; +import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes'; +import { utils } from '@ohif/core'; + +const UltrasoundDirectional = { + toAnnotation: measurement => {}, + + /** + * Maps cornerstone annotation event data to measurement service format. + * + * @param {Object} cornerstone Cornerstone event data + * @return {Measurement} Measurement instance + */ + toMeasurement: ( + csToolsEventDetail, + displaySetService, + CornerstoneViewportService, + getValueTypeFromToolType, + customizationService + ) => { + const { annotation, viewportId } = csToolsEventDetail; + const { metadata, data, annotationUID } = annotation; + + if (!metadata || !data) { + console.warn('Length tool: Missing metadata or data'); + return null; + } + + const { toolName, referencedImageId, FrameOfReferenceUID } = metadata; + const validToolType = SUPPORTED_TOOLS.includes(toolName); + + if (!validToolType) { + throw new Error('Tool not supported'); + } + + const { SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID } = + getSOPInstanceAttributes(referencedImageId); + + let displaySet; + + if (SOPInstanceUID) { + displaySet = displaySetService.getDisplaySetForSOPInstanceUID( + SOPInstanceUID, + SeriesInstanceUID + ); + } else { + displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID); + } + + const { points } = data.handles; + + const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); + + const displayText = getDisplayText(mappedAnnotations, displaySet, customizationService); + const getReport = () => + _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService); + + return { + uid: annotationUID, + SOPInstanceUID, + FrameOfReferenceUID, + points, + metadata, + referenceSeriesUID: SeriesInstanceUID, + referenceStudyUID: StudyInstanceUID, + frameNumber: mappedAnnotations?.[0]?.frameNumber || 1, + toolName: metadata.toolName, + displaySetInstanceUID: displaySet.displaySetInstanceUID, + label: data.label, + displayText: displayText, + data: data.cachedStats, + type: getValueTypeFromToolType(toolName), + getReport, + }; + }, +}; + +function getMappedAnnotations(annotation, DisplaySetService) { + const { metadata, data } = annotation; + const { cachedStats } = data; + const { referencedImageId } = metadata; + const targets = Object.keys(cachedStats); + + if (!targets.length) { + return; + } + + const annotations = []; + Object.keys(cachedStats).forEach(targetId => { + const targetStats = cachedStats[targetId]; + + if (!referencedImageId) { + throw new Error('Non-acquisition plane measurement mapping not supported'); + } + + const { SOPInstanceUID, SeriesInstanceUID, frameNumber } = + getSOPInstanceAttributes(referencedImageId); + + const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID( + SOPInstanceUID, + SeriesInstanceUID, + frameNumber + ); + + const { SeriesNumber } = displaySet; + const { xValues, yValues, units, isUnitless, isHorizontal } = targetStats; + + annotations.push({ + SeriesInstanceUID, + SOPInstanceUID, + SeriesNumber, + frameNumber, + xValues, + yValues, + units, + isUnitless, + isHorizontal, + }); + }); + + return annotations; +} + +/* +This function is used to convert the measurement data to a format that is +suitable for the report generation (e.g. for the csv report). The report +returns a list of columns and corresponding values. +*/ +function _getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService) { + const columns = []; + const values = []; + + // Add Type + columns.push('AnnotationType'); + values.push('Cornerstone:UltrasoundDirectional'); + + mappedAnnotations.forEach(annotation => { + const { xValues, yValues, units, isUnitless } = annotation; + if (isUnitless) { + columns.push('Length' + units[0]); + values.push(utils.roundNumber(xValues[0], 2)); + } else { + const dist1 = Math.abs(xValues[1] - xValues[0]); + const dist2 = Math.abs(yValues[1] - yValues[0]); + columns.push('Time' + units[0]); + values.push(utils.roundNumber(dist1, 2)); + columns.push('Length' + units[1]); + values.push(utils.roundNumber(dist2, 2)); + } + }); + + if (FrameOfReferenceUID) { + columns.push('FrameOfReferenceUID'); + values.push(FrameOfReferenceUID); + } + + if (points) { + columns.push('points'); + values.push(points.map(p => p.join(' ')).join(';')); + } + + return { + columns, + values, + }; +} + +function getDisplayText(mappedAnnotations, displaySet, customizationService) { + if (!mappedAnnotations || !mappedAnnotations.length) { + return ''; + } + + const displayText = []; + + const { xValues, yValues, units, isUnitless, SeriesNumber, SOPInstanceUID, frameNumber } = + mappedAnnotations[0]; + + const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID); + + let InstanceNumber; + if (instance) { + InstanceNumber = instance.InstanceNumber; + } + + const instanceText = InstanceNumber ? ` I: ${InstanceNumber}` : ''; + const frameText = displaySet.isMultiFrame ? ` F: ${frameNumber}` : ''; + const seriesText = `(S: ${SeriesNumber}${instanceText}${frameText})`; + + if (xValues === undefined || yValues === undefined) { + return displayText; + } + + if (isUnitless) { + displayText.push(`${utils.roundNumber(xValues[0], 2)} ${units[0]} ${seriesText}`); + } else { + const dist1 = Math.abs(xValues[1] - xValues[0]); + const dist2 = Math.abs(yValues[1] - yValues[0]); + displayText.push(`${utils.roundNumber(dist1)} ${units[0]} ${seriesText}`); + displayText.push(`${utils.roundNumber(dist2)} ${units[1]} ${seriesText}`); + } + + return displayText; +} + +export default UltrasoundDirectional; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js b/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js index 8f69319da..9f7bbb04a 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js @@ -11,4 +11,6 @@ export default [ 'PlanarFreehandROI', 'SplineROI', 'LivewireContour', + 'Probe', + 'UltrasoundDirectionalTool', ]; diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts index 19de0308f..0cc991fe7 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/measurementServiceMappingsFactory.ts @@ -10,6 +10,8 @@ import PlanarFreehandROI from './PlanarFreehandROI'; import RectangleROI from './RectangleROI'; import SplineROI from './SplineROI'; import LivewireContour from './LivewireContour'; +import Probe from './Probe'; +import UltrasoundDirectional from './UltrasoundDirectional'; const measurementServiceMappingsFactory = ( measurementService: MeasurementService, @@ -44,6 +46,8 @@ const measurementServiceMappingsFactory = ( Angle: ANGLE, SplineROI: POLYLINE, LivewireContour: POLYLINE, + Probe: POINT, + UltrasoundDirectional: POLYLINE, }; return TOOL_TYPE_TO_VALUE_TYPE[toolType]; @@ -211,6 +215,24 @@ const measurementServiceMappingsFactory = ( ], }, + Probe: { + toAnnotation: Probe.toAnnotation, + toMeasurement: csToolsAnnotation => + Probe.toMeasurement( + csToolsAnnotation, + displaySetService, + cornerstoneViewportService, + _getValueTypeFromToolType, + customizationService + ), + matchingCriteria: [ + { + valueType: MeasurementService.VALUE_TYPES.POINT, + points: 1, + }, + ], + }, + CobbAngle: { toAnnotation: CobbAngle.toAnnotation, toMeasurement: csToolsAnnotation => @@ -244,6 +266,23 @@ const measurementServiceMappingsFactory = ( }, ], }, + UltrasoundDirectional: { + toAnnotation: UltrasoundDirectional.toAnnotation, + toMeasurement: csToolsAnnotation => + UltrasoundDirectional.toMeasurement( + csToolsAnnotation, + displaySetService, + cornerstoneViewportService, + _getValueTypeFromToolType, + customizationService + ), + matchingCriteria: [ + { + valueType: MeasurementService.VALUE_TYPES.POLYLINE, + points: 2, + }, + ], + }, }; return factories; diff --git a/extensions/default/src/ViewerLayout/ViewerHeader.tsx b/extensions/default/src/ViewerLayout/ViewerHeader.tsx index 9d676bcbe..6d5ab60f7 100644 --- a/extensions/default/src/ViewerLayout/ViewerHeader.tsx +++ b/extensions/default/src/ViewerLayout/ViewerHeader.tsx @@ -53,6 +53,7 @@ function ViewerHeader({ hotkeysManager, extensionManager, servicesManager, appCo content: AboutModal, title: t('AboutModal:About OHIF Viewer'), contentProps: { versionNumber, commitHash }, + containerDimensions: 'max-w-4xl max-h-4xl', }), }, { @@ -114,7 +115,7 @@ function ViewerHeader({ hotkeysManager, extensionManager, servicesManager, appCo appConfig={appConfig} > -
+
diff --git a/extensions/default/src/commandsModule.ts b/extensions/default/src/commandsModule.ts index c86663239..04fd54029 100644 --- a/extensions/default/src/commandsModule.ts +++ b/extensions/default/src/commandsModule.ts @@ -445,6 +445,7 @@ const commandsModule = ({ displaySetInstanceUID, onClose: UIModalService.hide, }, + containerDimensions: 'max-w-4xl max-h-4xl', title: 'DICOM Tag Browser', }); }, diff --git a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js index 1881337ce..579ff9c7b 100644 --- a/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js +++ b/extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js @@ -74,6 +74,12 @@ function _askTrackMeasurements(uiViewportDialogService, viewportId) { uiViewportDialogService.hide(); resolve(RESPONSE.CANCEL); }, + onKeyPress: event => { + if (event.key === 'Enter') { + const action = actions.find(action => action.value === RESPONSE.HYDRATE_REPORT); + onSubmit(action.value); + } + }, }); }); } diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx index c085b15fb..4d9dc3a4d 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx @@ -329,6 +329,65 @@ function PanelStudyBrowserTracking({ } }, [expandedStudyInstanceUIDs, jumpToDisplaySet, tabs]); + const onClickUntrack = displaySetInstanceUID => { + const onConfirm = () => { + const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID); + sendTrackedMeasurementsEvent('UNTRACK_SERIES', { + SeriesInstanceUID: displaySet.SeriesInstanceUID, + }); + const measurements = measurementService.getMeasurements(); + measurements.forEach(m => { + if (m.referenceSeriesUID === displaySet.SeriesInstanceUID) { + measurementService.remove(m.uid); + } + }); + }; + + uiDialogService.create({ + id: 'untrack-series', + centralize: true, + isDraggable: false, + showOverlay: true, + content: Dialog, + contentProps: { + title: 'Untrack Series', + body: () => ( +
+

Are you sure you want to untrack this series?

+

+ This action cannot be undone and will delete all your existing measurements. +

+
+ ), + actions: [ + { + id: 'cancel', + text: 'Cancel', + type: ButtonEnums.type.secondary, + }, + { + id: 'yes', + text: 'Yes', + type: ButtonEnums.type.primary, + classes: ['untrack-yes-button'], + }, + ], + onClose: () => uiDialogService.dismiss({ id: 'untrack-series' }), + onSubmit: async ({ action }) => { + switch (action.id) { + case 'yes': + onConfirm(); + uiDialogService.dismiss({ id: 'untrack-series' }); + break; + case 'cancel': + uiDialogService.dismiss({ id: 'untrack-series' }); + break; + } + }, + }, + }); + }; + return ( { - const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID); - // TODO: shift this somewhere else where we're centralizing this logic? - // Potentially a helper from displaySetInstanceUID to this - sendTrackedMeasurementsEvent('UNTRACK_SERIES', { - SeriesInstanceUID: displaySet.SeriesInstanceUID, - }); - const measurements = measurementService.getMeasurements(); - measurements.forEach(m => { - if (m.referenceSeriesUID === displaySet.SeriesInstanceUID) { - measurementService.remove(m.uid); - } - }); + onClickUntrack(displaySetInstanceUID); }} onClickThumbnail={() => {}} onDoubleClickThumbnail={onDoubleClickThumbnailHandler} diff --git a/extensions/tmtv/src/Panels/PanelPetSUV.tsx b/extensions/tmtv/src/Panels/PanelPetSUV.tsx index 3252a08ac..eccd76afb 100644 --- a/extensions/tmtv/src/Panels/PanelPetSUV.tsx +++ b/extensions/tmtv/src/Panels/PanelPetSUV.tsx @@ -127,7 +127,7 @@ export default function PanelPetSUV({ servicesManager, commandsManager }) { } return (
-
+
diff --git a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx index d8da1f504..181240e6c 100644 --- a/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx +++ b/extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx @@ -77,7 +77,7 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command return ( <> -
+
{tmtvValue !== null ? (
@@ -87,7 +87,7 @@ export default function PanelRoiThresholdSegmentation({ servicesManager, command
{`${tmtvValue} mL`}
) : null} -
+
), title: (instances || 0).toString(), - gridCol: 4, + gridCol: 2, }, ], // Todo: This is actually running for all rows, even if they are @@ -454,6 +454,7 @@ function WorkList({ content: AboutModal, title: t('AboutModal:About OHIF Viewer'), contentProps: { versionNumber, commitHash }, + containerDimensions: 'max-w-4xl max-h-4xl', }), }, { diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index be62938f3..1c945f4cb 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -123,7 +123,8 @@ Here are a list of some options available: what is specified by `maxNumberOfWebWorkers`. Some windows machines require smaller values. - `acceptHeader` : accept header to request specific dicom transfer syntax ex : [ 'multipart/related; type=image/jls; q=1', 'multipart/related; type=application/octet-stream; q=0.1' ] - `investigationalUseDialog`: This should contain an object with `option` value, it can be either `always` which always shows the dialog once per session, `never` which never shows the dialog, or `configure` which shows the dialog once and won't show it again until a set number of days defined by the user, if it's set to configure, you are required to add an additional property `days` which is the number of days to wait before showing the dialog again. -- `groupEnabled`: boolean, if set to true, all valid modes for the study get grouped together first, then the rest of the modes. If false, all modes are shown in the order they are defined in the configuration. +- `groupEnabledModesFirst`: boolean, if set to true, all valid modes for the study get grouped together first, then the rest of the modes. If false, all modes are shown in the order they are defined in the configuration. +- `showPatientInfo`: string, if set to 'visible', the patient info header will be shown and its initial state is expanded. If set to 'visibleCollapsed', the patient info header will be shown but it's initial state is collapsed. If set to 'disabled', the patient info header will never be shown, and if set to 'visibleReadOnly', the patient info header will be shown and always expanded. - `requestTransferSyntaxUID` : Request a specific Transfer syntax from dicom web server ex: 1.2.840.10008.1.2.4.80 (applied only if acceptHeader is not set) - `omitQuotationForMultipartRequest`: Some servers (e.g., .NET) require the `multipart/related` request to be sent without quotation marks. Defaults to `false`. If your server doesn't require this, then setting this flag to `true` might improve performance (by removing the need for preflight requests). Also note that if auth headers are used, a preflight request is required. diff --git a/platform/ui/src/assets/icons/tool-layout.svg b/platform/ui/src/assets/icons/tool-layout.svg index 7e8bf1494..2ebbcabc6 100644 --- a/platform/ui/src/assets/icons/tool-layout.svg +++ b/platform/ui/src/assets/icons/tool-layout.svg @@ -3,19 +3,20 @@ tool-layout - - - - - + + + + + + + - + - \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-seg-brush.svg b/platform/ui/src/assets/icons/tool-seg-brush.svg new file mode 100644 index 000000000..2258260d9 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-seg-brush.svg @@ -0,0 +1,9 @@ + + + tool-seg-brush + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-seg-eraser.svg b/platform/ui/src/assets/icons/tool-seg-eraser.svg new file mode 100644 index 000000000..a1f78fed4 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-seg-eraser.svg @@ -0,0 +1,10 @@ + + + tool-seg-eraser + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-seg-shape.svg b/platform/ui/src/assets/icons/tool-seg-shape.svg new file mode 100644 index 000000000..290d156e6 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-seg-shape.svg @@ -0,0 +1,9 @@ + + + tool-seg-shape + + + + + + \ No newline at end of file diff --git a/platform/ui/src/assets/icons/tool-seg-threshold.svg b/platform/ui/src/assets/icons/tool-seg-threshold.svg new file mode 100644 index 000000000..4870fa5a4 --- /dev/null +++ b/platform/ui/src/assets/icons/tool-seg-threshold.svg @@ -0,0 +1,17 @@ + + + tool-seg-threshold + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx index a8f89d249..32b294082 100644 --- a/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx +++ b/platform/ui/src/components/ButtonGroup/ButtonGroup.tsx @@ -40,27 +40,30 @@ const ButtonGroup = ({ 'border-secondary-light rounded-[5px] border bg-black': !separated, })} > - {!separated && - Children.map(children, (child, index) => { - if (React.isValidElement(child)) { - return cloneElement(child, { - key: index, - className: classnames( - 'rounded-[4px] px-2 py-1', - index === activeIndex - ? 'bg-customblue-40 text-white' - : 'text-primary-active bg-black', - child.props.className, - disabled ? 'ohif-disabled' : '' - ), - onClick: e => { - child.props.onClick && child.props.onClick(e); - handleButtonClick(index); - }, - }); - } - return child; - })} + {!separated && ( +
+ {Children.map(children, (child, index) => { + if (React.isValidElement(child)) { + return cloneElement(child, { + key: index, + className: classnames( + 'rounded-[4px] px-2 py-1', + index === activeIndex + ? 'bg-customblue-40 text-white' + : 'text-primary-active bg-black', + child.props.className, + disabled ? 'ohif-disabled' : '' + ), + onClick: e => { + child.props.onClick && child.props.onClick(e); + handleButtonClick(index); + }, + }); + } + return child; + })} +
+ )} {separated && (
{Children.map(children, (child, index) => { diff --git a/platform/ui/src/components/Header/Header.tsx b/platform/ui/src/components/Header/Header.tsx index 2ba958b08..c75dfa923 100644 --- a/platform/ui/src/components/Header/Header.tsx +++ b/platform/ui/src/components/Header/Header.tsx @@ -65,8 +65,7 @@ function Header({
{children}
- {(showPatientInfo === PatientInfoVisibility.VISIBLE || - showPatientInfo === PatientInfoVisibility.VISIBLE_COLLAPSED) && ( + {showPatientInfo !== PatientInfoVisibility.DISABLED && ( { - if (!isMixedPatients) { + if (!isMixedPatients && appConfig.showPatientInfo !== PatientInfoVisibility.VISIBLE_READONLY) { setExpanded(!expanded); } }; diff --git a/platform/ui/src/components/Icon/getIcon.js b/platform/ui/src/components/Icon/getIcon.js index c2edee38d..494b8ce3b 100644 --- a/platform/ui/src/components/Icon/getIcon.js +++ b/platform/ui/src/components/Icon/getIcon.js @@ -145,11 +145,11 @@ import iconAdd from './../../assets/icons/icon-add.svg'; import iconRename from './../../assets/icons/icon-rename.svg'; import iconDelete from './../../assets/icons/icon-delete.svg'; import iconMoreMenu from './../../assets/icons/icon-more-menu.svg'; -import iconToolBrush from './../../assets/icons/icon-tool-brush.svg'; -import iconToolEraser from './../../assets/icons/icon-tool-eraser.svg'; +import iconToolBrush from './../../assets/icons/tool-seg-brush.svg'; +import iconToolEraser from './../../assets/icons/tool-seg-eraser.svg'; import iconToolScissor from './../../assets/icons/icon-tool-scissor.svg'; -import iconToolShape from './../../assets/icons/icon-tool-shape.svg'; -import iconToolThreshold from './../../assets/icons/icon-tool-threshold.svg'; +import iconToolShape from './../../assets/icons/tool-seg-shape.svg'; +import iconToolThreshold from './../../assets/icons/tool-seg-threshold.svg'; import viewportWindowLevel from './../../assets/icons/viewport-window-level.svg'; import dicomTagBrowser from './../../assets/icons/tool-dicom-tag-browser.svg'; import iconToolFreehandRoi from './../../assets/icons/tool-freehand-roi.svg'; diff --git a/platform/ui/src/components/IconButton/IconButton.tsx b/platform/ui/src/components/IconButton/IconButton.tsx index ea6922455..fff9d168f 100644 --- a/platform/ui/src/components/IconButton/IconButton.tsx +++ b/platform/ui/src/components/IconButton/IconButton.tsx @@ -64,6 +64,7 @@ const iconSizeClasses = { medium: 'w-5 h-5', large: 'w-6 h-6', toolbar: 'w-[28px] h-[28px]', + toolbox: 'w-[24px] h-[24px]', }; const fullWidthClasses = { @@ -92,7 +93,7 @@ const IconButton = ({ onClick(e); }; - const padding = size === 'toolbar' ? '6px' : size === 'toolbox' ? '6px' : null; + const padding = size === 'toolbar' ? '6px' : size === 'toolbox' ? '4px' : null; return (

M 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 literal 0 HcmV?d00001 diff --git a/platform/docs/docs/assets/img/toolbox-modal.png b/platform/docs/docs/assets/img/toolbox-modal.png new file mode 100644 index 0000000000000000000000000000000000000000..ce97f732ed82457061b04e93af71bf0736dfc91f GIT binary patch literal 669748 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 z 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