feat(ViewportActionMenu): window level per viewport / new patient info / colorbars/ 3D presets and 3D volume rendering (#3963)

Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
This commit is contained in:
IbrahimandJoe Boccanfuso authored and GitHub committed 2024-04-02 09:35:30 -04:00
1 parent 07301fc020
commit b7f90e3951
164 files changed
+5887 -932

No files matched your search

@@ -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);
}
@@ -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 (
<div className={color}>
<div
className={classnames(
color ? color : 'text-aqua-pale',
'text-[13px]',
'leading-5',
'overlay-text'
)}
>
<div
data-cy={'viewport-overlay-top-left'}
className={classnames(overlay, classes.topLeft)}
@@ -37,12 +49,14 @@ const ViewportOverlay = ({
<div
data-cy={'viewport-overlay-top-right'}
className={classnames(overlay, classes.topRight)}
style={{ transform: 'translateX(-8px)' }} // shift right side overlays by 4px for better alignment with ViewportActionCorners' icons
>
{topRight}
</div>
<div
data-cy={'viewport-overlay-bottom-right'}
className={classnames(overlay, classes.bottomRight)}
style={{ transform: 'translateX(-8px)' }} // shift right side overlays by 4px for better alignment with ViewportActionCorners' icons
>
{bottomRight}
</div>