cloudmr-ux 4.6.9 → 4.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CmrComponents/niivue-viewer/CloudMrNiivuePanel.d.ts +1 -0
- package/dist/CmrComponents/niivue-viewer/CloudMrNiivueViewer.js +42 -1
- package/dist/CmrComponents/niivue-viewer/mro-draw-toolkit/MroDrawToolkit.js +4 -3
- package/dist/core/features/data/dataActionCreation.js +2 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ export type CloudMrDrawToolkitProps = Omit<DrawToolkitProps, "rois" | "selectedR
|
|
|
13
13
|
penDraftActive?: boolean;
|
|
14
14
|
onActivateEraser?: () => void;
|
|
15
15
|
onDeactivateDrawTools?: () => void;
|
|
16
|
+
onClearDrawing?: () => void;
|
|
16
17
|
shapeDraftActive?: boolean;
|
|
17
18
|
onApplyShapeDraft?: () => void;
|
|
18
19
|
onCancelShapeDraft?: () => void;
|
|
@@ -931,6 +931,46 @@ export default function CloudMrNiivueViewer(props) {
|
|
|
931
931
|
penDraftRef.current = null;
|
|
932
932
|
}
|
|
933
933
|
};
|
|
934
|
+
function discardShapeDraft() {
|
|
935
|
+
setShapeDraft(null);
|
|
936
|
+
shapeDraftRef.current = null;
|
|
937
|
+
nv._cloudMrShapeDraftActive = false;
|
|
938
|
+
}
|
|
939
|
+
function discardPenDraft() {
|
|
940
|
+
var _a;
|
|
941
|
+
setPenDraft(null);
|
|
942
|
+
penDraftRef.current = null;
|
|
943
|
+
nv._cloudMrPenDraftActive = false;
|
|
944
|
+
(_a = nv.cloudMrResetPolyline) === null || _a === void 0 ? void 0 : _a.call(nv);
|
|
945
|
+
setPolylineVertexCount(0);
|
|
946
|
+
}
|
|
947
|
+
function resetNiivueDrawSession() {
|
|
948
|
+
nv.drawShapeStartLocation = [NaN, NaN, NaN];
|
|
949
|
+
nv.drawShapePreviewBitmap = null;
|
|
950
|
+
nv._cloudMrFreehandSessionStartBitmap = null;
|
|
951
|
+
nv._cloudMrPolylineVertices = null;
|
|
952
|
+
nv._cloudMrPolylineBaseBitmap = null;
|
|
953
|
+
nv._cloudMrPolylineSessionStartBitmap = null;
|
|
954
|
+
nv._cloudMrToolKindBitmap = null;
|
|
955
|
+
}
|
|
956
|
+
function clearDrawingHandler() {
|
|
957
|
+
var _a;
|
|
958
|
+
// Discard drafts without restoring baseBitmap — clearDrawing wipes the canvas anyway.
|
|
959
|
+
discardShapeDraft();
|
|
960
|
+
discardPenDraft();
|
|
961
|
+
resetNiivueDrawSession();
|
|
962
|
+
setDrawShapeTool(null);
|
|
963
|
+
nv.opts.penType = NI_PEN_TYPE.PEN;
|
|
964
|
+
nv.opts.deferShapeCommit = false;
|
|
965
|
+
nv.opts.deferFreehandCommit = false;
|
|
966
|
+
nv.opts.polylinePenMode = false;
|
|
967
|
+
(_a = nv.cloudMrResetPolyline) === null || _a === void 0 ? void 0 : _a.call(nv);
|
|
968
|
+
nvSetDrawingEnabled(false);
|
|
969
|
+
nv.clearDrawing();
|
|
970
|
+
nv.drawScene();
|
|
971
|
+
resampleImage();
|
|
972
|
+
setDrawingChanged(false);
|
|
973
|
+
}
|
|
934
974
|
function cancelShapeDraft() {
|
|
935
975
|
var draft = shapeDraftRef.current;
|
|
936
976
|
if (!draft)
|
|
@@ -1584,7 +1624,8 @@ export default function CloudMrNiivueViewer(props) {
|
|
|
1584
1624
|
brushSize: brushSize,
|
|
1585
1625
|
updateBrushSize: nvUpdateBrushSize,
|
|
1586
1626
|
onActivateEraser: activateEraser,
|
|
1587
|
-
onDeactivateDrawTools: deactivateDrawTools
|
|
1627
|
+
onDeactivateDrawTools: deactivateDrawTools,
|
|
1628
|
+
onClearDrawing: clearDrawingHandler
|
|
1588
1629
|
};
|
|
1589
1630
|
return (_jsxs(Box, __assign({ sx: {
|
|
1590
1631
|
display: 'flex',
|
|
@@ -192,9 +192,10 @@ export function MroDrawToolkit(props) {
|
|
|
192
192
|
} }, { children: [_jsxs(Box, __assign({ sx: { position: "relative", zIndex: expandedOption === "d" ? 1600 : "auto", display: "inline-flex", alignItems: "center" } }, { children: [_jsx(Tooltip, __assign({ title: "Pen" }, { children: _jsx(IconButton, __assign({ "aria-label": "pen", size: "small", onClick: clickPen, sx: __assign(__assign({}, toolBtnSx), shapeSelectedSx("pen")) }, { children: _jsx(DrawIcon, { sx: { color: "inherit" } }) })) })), _jsx(DrawColorPlatte, { expanded: expandedOption === "d", updateDrawPen: props.updateDrawPen, setDrawingEnabled: props.setDrawingEnabled, showPenModes: true, penDrawMode: props.penDrawMode, onPenDrawModeChange: props.onPenDrawModeChange, polylineVertexCount: props.polylineVertexCount, onCancelPolyline: props.onCancelPolyline, penDraftActive: props.penDraftActive, onApplyPenDraft: props.onApplyPenDraft, onFillPenDraft: props.onFillPenDraft, brushSize: props.brushSize, updateBrushSize: props.updateBrushSize })] })), _jsxs(Box, __assign({ sx: { position: "relative", zIndex: expandedOption === "r" ? 1600 : "auto", display: "inline-flex", alignItems: "center" } }, { children: [_jsx(Tooltip, __assign({ title: "Rectangle" }, { children: _jsx(IconButton, __assign({ "aria-label": "rectangle", size: "small", onClick: clickRectangle, sx: __assign(__assign({}, toolBtnSx), shapeSelectedSx("rectangle")) }, { children: _jsx(CropSquareOutlinedIcon, { sx: { color: "inherit" } }) })) })), _jsx(DrawColorPlatte, { expanded: expandedOption === "r", updateDrawPen: props.updateDrawPen, setDrawingEnabled: props.setDrawingEnabled, shapeDraftActive: props.shapeDraftActive && drawShapeTool === "rectangle", onApplyShapeDraft: props.onApplyShapeDraft })] })), _jsxs(Box, __assign({ sx: { position: "relative", zIndex: expandedOption === "l" ? 1600 : "auto", display: "inline-flex", alignItems: "center" } }, { children: [_jsx(Tooltip, __assign({ title: "Ellipse" }, { children: _jsx(IconButton, __assign({ "aria-label": "ellipse", size: "small", onClick: clickEllipse, sx: __assign(__assign({}, toolBtnSx), shapeSelectedSx("ellipse")) }, { children: _jsx(CircleOutlinedIcon, { sx: { color: "inherit" } }) })) })), _jsx(DrawColorPlatte, { expanded: expandedOption === "l", updateDrawPen: props.updateDrawPen, setDrawingEnabled: props.setDrawingEnabled, shapeDraftActive: props.shapeDraftActive && drawShapeTool === "ellipse", onApplyShapeDraft: props.onApplyShapeDraft })] })), _jsxs(Box, __assign({ sx: { position: "relative", zIndex: expandedOption === "e" ? 1600 : "auto", display: "inline-flex", alignItems: "center" } }, { children: [_jsx(Tooltip, __assign({ title: "Eraser" }, { children: _jsx(IconButton, __assign({ "aria-label": "erase", size: "small", onClick: clickEraser, sx: __assign(__assign({}, toolBtnSx), (eraserActive
|
|
193
193
|
? { backgroundColor: "rgba(88, 15, 139, 0.12)", color: "#580f8b" }
|
|
194
194
|
: {})) }, { children: filled || !eraserActive ? (_jsx(EraserIcon, {})) : (_jsx(AutoFixNormalOutlinedIcon, { sx: { color: ICON_COLOR } })) })) })), _jsx(EraserPlatte, { expandEraseOptions: expandedOption === "e", updateDrawPen: props.updateDrawPen, setDrawingEnabled: props.setDrawingEnabled, brushSize: props.brushSize, updateBrushSize: props.updateBrushSize })] })), _jsx(Tooltip, __assign({ title: "Undo" }, { children: _jsx(IconButton, __assign({ "aria-label": "revert", size: "small", onClick: function () { return props.drawUndo(); }, sx: toolBtnSx }, { children: _jsx(ReplyIcon, { sx: { color: ICON_COLOR } }) })) })), _jsx(Tooltip, __assign({ title: "Save screenshot" }, { children: _jsx("span", { children: _jsx(IconButton, __assign({ "aria-label": "capture", size: "small", disabled: !vol, onClick: function () { return vol && props.nv.saveScene("".concat(vol.name, "_drawing.png")); }, sx: toolBtnSx }, { children: _jsx(CameraAltIcon, { sx: { color: ICON_COLOR } }) })) }) })), _jsx(Tooltip, __assign({ title: "Clear drawing" }, { children: _jsx(IconButton, __assign({ "aria-label": "delete", size: "small", onClick: function () {
|
|
195
|
-
|
|
196
|
-
props.
|
|
197
|
-
|
|
195
|
+
var _a;
|
|
196
|
+
(_a = props.onClearDrawing) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
197
|
+
setExpandedOption("n");
|
|
198
|
+
setExpandOpacityOptions(false);
|
|
198
199
|
}, sx: toolBtnSx }, { children: _jsx(DeleteIcon, { sx: { color: ICON_COLOR } }) })) })), _jsx(Tooltip, __assign({ title: "ROI visibility" }, { children: _jsx(IconButton, __assign({ "aria-label": "visible", size: "small", onClick: function () { return props.toggleROIVisible(); }, sx: toolBtnSx }, { children: props.roiVisible ? (_jsx(VisibilityIcon, { sx: { color: ICON_COLOR } })) : (_jsx(VisibilityOffIcon, { sx: { color: ICON_COLOR, opacity: 0.45 } })) })) })), _jsxs(Box, __assign({ sx: {
|
|
199
200
|
position: "relative",
|
|
200
201
|
zIndex: expandOpacityOptions ? 1600 : "auto",
|
|
@@ -283,7 +283,8 @@ var ALLOWED_EXTENSIONS = [
|
|
|
283
283
|
"png",
|
|
284
284
|
"jpg",
|
|
285
285
|
"jpeg",
|
|
286
|
-
"zip"
|
|
286
|
+
"zip",
|
|
287
|
+
"seq",
|
|
287
288
|
];
|
|
288
289
|
var createPayload = function (uploadToken, file, fileAlias) { return __awaiter(void 0, void 0, void 0, function () {
|
|
289
290
|
var fileExtension, lowerExt, fileType, isSafe, lambdaFile, UploadHeaders, endpoints;
|