@abidibo/react-cam-roi 0.0.10 → 0.0.11
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/README.md
CHANGED
@@ -51,10 +51,15 @@ The `RoiEditor` props and the `Output` interface used both in import and export:
|
|
51
51
|
|
52
52
|
``` ts
|
53
53
|
export type RoiEditorProps = {
|
54
|
+
// id of this editor instance, should be unique
|
55
|
+
id: string
|
54
56
|
// the url of the image we want to annotate
|
55
57
|
imageUrl: string
|
58
|
+
// configuration object
|
56
59
|
configuration: Configuration
|
60
|
+
// callback called when exporting data
|
57
61
|
onSubmit: (data: Output) => void
|
62
|
+
// initial imported data
|
58
63
|
initialData?: Output
|
59
64
|
}
|
60
65
|
|
@@ -2,10 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as fabric from 'fabric';
|
3
3
|
import { useRef, useEffect, useState, useContext } from 'react';
|
4
4
|
import { useEditorContext } from '../../Providers/EditorProvider';
|
5
|
-
import { initCanvasData, useDispatcherEvents, useTool } from './Hooks';
|
6
5
|
import { UiContext } from '../../Providers/UiProvider';
|
6
|
+
import { initCanvasData, useDispatcherEvents, useTool } from './Hooks';
|
7
7
|
const Canvas = ({ canvasSize, initialData }) => {
|
8
|
-
const { metadata, setMetadata, addShapes } = useEditorContext();
|
8
|
+
const { metadata, setMetadata, addShapes, id } = useEditorContext();
|
9
9
|
const { enableLogs } = useContext(UiContext);
|
10
10
|
const [initialized, setInitialized] = useState(false);
|
11
11
|
const canvasRef = useRef(null);
|
@@ -17,12 +17,12 @@ const Canvas = ({ canvasSize, initialData }) => {
|
|
17
17
|
canvasRef.current.setDimensions({ width: canvasSize.width, height: canvasSize.height });
|
18
18
|
initCanvasData(canvasRef, addShapes, metadata, setMetadata, initialData, enableLogs);
|
19
19
|
setInitialized(true);
|
20
|
-
return () => {
|
21
|
-
var _a;
|
22
|
-
(_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.dispose();
|
23
|
-
};
|
24
20
|
}
|
21
|
+
return () => {
|
22
|
+
var _a;
|
23
|
+
(_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.dispose();
|
24
|
+
};
|
25
25
|
}, [canvasSize.width, canvasSize.height]); // eslint-disable-line
|
26
|
-
return (_jsx("canvas", { id:
|
26
|
+
return (_jsx("canvas", { id: `react-cam-roi-canvas-${id}`, style: { width: `${canvasSize.width}px`, height: `${canvasSize.height}px` } }));
|
27
27
|
};
|
28
28
|
export default Canvas;
|
@@ -11,7 +11,7 @@ import ShapesList from './ShapesList';
|
|
11
11
|
import Toolbar from './Toolbar';
|
12
12
|
import { fabricShapeToOutputShape, validate } from './Utils';
|
13
13
|
// https://github.com/n-mazaheri/image-editor
|
14
|
-
const RoiEditor = ({ imageUrl, configuration, onSubmit, initialData }) => {
|
14
|
+
const RoiEditor = ({ imageUrl, configuration, onSubmit, initialData, id }) => {
|
15
15
|
var _a, _b, _c;
|
16
16
|
const { themeMode, enableLogs, pickerColors, strings, notify } = useContext(UiContext);
|
17
17
|
const { imageSize, canvasSize, wrapperRef, isReady } = useCanvasSize(imageUrl);
|
@@ -65,7 +65,7 @@ const RoiEditor = ({ imageUrl, configuration, onSubmit, initialData }) => {
|
|
65
65
|
if (!isReady) {
|
66
66
|
return _jsx(Loader, {});
|
67
67
|
}
|
68
|
-
return (_jsx(EditorProvider, { hideForbiddenTools: (_c = (_b = configuration.options) === null || _b === void 0 ? void 0 : _b.hideForbiddenTools) !== null && _c !== void 0 ? _c : false, activeTool: activeTool, setActiveTool: setActiveTool, activeColor: activeColor, setActiveColor: setActiveColor, shapes: shapes, addShape: addShape, addShapes: addShapes, removeShape: removeShape, configuration: configuration, metadata: metadata, setMetadata: setMetadata, onSubmit: handleSubmit, children: _jsxs("div", { style: { maxWidth: '100%', width: `${imageSize.width}px` }, ref: wrapperRef, children: [_jsx(Toolbar, {}), _jsx("div", { className: css('canvasWrapper', styles, themeMode), style: {
|
68
|
+
return (_jsx(EditorProvider, { id: id, hideForbiddenTools: (_c = (_b = configuration.options) === null || _b === void 0 ? void 0 : _b.hideForbiddenTools) !== null && _c !== void 0 ? _c : false, activeTool: activeTool, setActiveTool: setActiveTool, activeColor: activeColor, setActiveColor: setActiveColor, shapes: shapes, addShape: addShape, addShapes: addShapes, removeShape: removeShape, configuration: configuration, metadata: metadata, setMetadata: setMetadata, onSubmit: handleSubmit, children: _jsxs("div", { style: { maxWidth: '100%', width: `${imageSize.width}px` }, ref: wrapperRef, children: [_jsx(Toolbar, {}), _jsx("div", { className: css('canvasWrapper', styles, themeMode), style: {
|
69
69
|
width: `${canvasSize.width}px`,
|
70
70
|
height: `${canvasSize.height}px`,
|
71
71
|
backgroundImage: `url(${imageUrl})`,
|
@@ -18,8 +18,9 @@ type EditorContextType = {
|
|
18
18
|
metadata: Metadata;
|
19
19
|
setMetadata: (data: Metadata) => void;
|
20
20
|
onSubmit: () => void;
|
21
|
+
id: string;
|
21
22
|
};
|
22
23
|
export declare const EditorContext: import("react").Context<EditorContextType | undefined>;
|
23
24
|
export declare function useEditorContext(): EditorContextType;
|
24
|
-
declare const EditorProvider: ({ children, hideForbiddenTools, activeTool, setActiveTool, activeColor, setActiveColor, shapes, addShape, addShapes, removeShape, configuration, metadata, setMetadata, onSubmit, }: PropsWithChildren<EditorContextType>) => import("react/jsx-runtime").JSX.Element;
|
25
|
+
declare const EditorProvider: ({ children, id, hideForbiddenTools, activeTool, setActiveTool, activeColor, setActiveColor, shapes, addShape, addShapes, removeShape, configuration, metadata, setMetadata, onSubmit, }: PropsWithChildren<EditorContextType>) => import("react/jsx-runtime").JSX.Element;
|
25
26
|
export default EditorProvider;
|
@@ -8,8 +8,9 @@ export function useEditorContext() {
|
|
8
8
|
}
|
9
9
|
return context;
|
10
10
|
}
|
11
|
-
const EditorProvider = ({ children, hideForbiddenTools, activeTool, setActiveTool, activeColor, setActiveColor, shapes, addShape, addShapes, removeShape, configuration, metadata, setMetadata, onSubmit, }) => {
|
11
|
+
const EditorProvider = ({ children, id, hideForbiddenTools, activeTool, setActiveTool, activeColor, setActiveColor, shapes, addShape, addShapes, removeShape, configuration, metadata, setMetadata, onSubmit, }) => {
|
12
12
|
return (_jsx(EditorContext.Provider, { value: {
|
13
|
+
id,
|
13
14
|
hideForbiddenTools,
|
14
15
|
activeTool,
|
15
16
|
setActiveTool,
|