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.
@@ -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
- props.nv.clearDrawing();
196
- props.resampleImage();
197
- props.setDrawingChanged(false);
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudmr-ux",
3
- "version": "4.6.9",
3
+ "version": "4.7.1",
4
4
  "author": "erosmontin@gmail.com",
5
5
  "license": "MIT",
6
6
  "repository": "erosmontin/cloudmr-ux",