@archireport/react-native-drawing 0.2.0
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 +181 -0
- package/lib/commonjs/DrawingEditor.js +815 -0
- package/lib/commonjs/DrawingEditor.js.map +1 -0
- package/lib/commonjs/assets/toolbar-icons/arrow-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/arrow-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/arrow.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/circle-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/circle-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/circle.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/freehand-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/freehand-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/freehand.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/line-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/line-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/line.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/measure-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/measure-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/measure.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/move-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/move-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/move.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/polygon-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/polygon-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/polygon.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/rectangle-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/rectangle-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/rectangle.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/text-disabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/text-enabled.png +0 -0
- package/lib/commonjs/assets/toolbar-icons/text.png +0 -0
- package/lib/commonjs/components/ColorPalette.js +379 -0
- package/lib/commonjs/components/ColorPalette.js.map +1 -0
- package/lib/commonjs/components/LineWidthSlider.js +70 -0
- package/lib/commonjs/components/LineWidthSlider.js.map +1 -0
- package/lib/commonjs/components/MeasurementEditModal.js +153 -0
- package/lib/commonjs/components/MeasurementEditModal.js.map +1 -0
- package/lib/commonjs/components/MiniMap.js +244 -0
- package/lib/commonjs/components/MiniMap.js.map +1 -0
- package/lib/commonjs/components/TextAnnotation.js +162 -0
- package/lib/commonjs/components/TextAnnotation.js.map +1 -0
- package/lib/commonjs/components/TextEditModal.js +133 -0
- package/lib/commonjs/components/TextEditModal.js.map +1 -0
- package/lib/commonjs/components/Toolbar.js +198 -0
- package/lib/commonjs/components/Toolbar.js.map +1 -0
- package/lib/commonjs/components/ZoomBadge.js +161 -0
- package/lib/commonjs/components/ZoomBadge.js.map +1 -0
- package/lib/commonjs/hooks/useFreehandGesture.js +173 -0
- package/lib/commonjs/hooks/useFreehandGesture.js.map +1 -0
- package/lib/commonjs/hooks/usePolygonGesture.js +109 -0
- package/lib/commonjs/hooks/usePolygonGesture.js.map +1 -0
- package/lib/commonjs/hooks/useSelectionGesture.js +236 -0
- package/lib/commonjs/hooks/useSelectionGesture.js.map +1 -0
- package/lib/commonjs/hooks/useShapeGesture.js +181 -0
- package/lib/commonjs/hooks/useShapeGesture.js.map +1 -0
- package/lib/commonjs/hooks/useViewportGesture.js +238 -0
- package/lib/commonjs/hooks/useViewportGesture.js.map +1 -0
- package/lib/commonjs/index.js +104 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/renderers/ArrowRenderer.js +118 -0
- package/lib/commonjs/renderers/ArrowRenderer.js.map +1 -0
- package/lib/commonjs/renderers/CircleRenderer.js +51 -0
- package/lib/commonjs/renderers/CircleRenderer.js.map +1 -0
- package/lib/commonjs/renderers/FreehandRenderer.js +31 -0
- package/lib/commonjs/renderers/FreehandRenderer.js.map +1 -0
- package/lib/commonjs/renderers/InProgressRenderer.js +174 -0
- package/lib/commonjs/renderers/InProgressRenderer.js.map +1 -0
- package/lib/commonjs/renderers/LineRenderer.js +27 -0
- package/lib/commonjs/renderers/LineRenderer.js.map +1 -0
- package/lib/commonjs/renderers/MeasurementRenderer.js +134 -0
- package/lib/commonjs/renderers/MeasurementRenderer.js.map +1 -0
- package/lib/commonjs/renderers/ObjectRenderer.js +65 -0
- package/lib/commonjs/renderers/ObjectRenderer.js.map +1 -0
- package/lib/commonjs/renderers/PolygonRenderer.js +46 -0
- package/lib/commonjs/renderers/PolygonRenderer.js.map +1 -0
- package/lib/commonjs/renderers/RectRenderer.js +51 -0
- package/lib/commonjs/renderers/RectRenderer.js.map +1 -0
- package/lib/commonjs/renderers/SelectedObjectRenderer.js +592 -0
- package/lib/commonjs/renderers/SelectedObjectRenderer.js.map +1 -0
- package/lib/commonjs/renderers/SelectionOverlay.js +120 -0
- package/lib/commonjs/renderers/SelectionOverlay.js.map +1 -0
- package/lib/commonjs/store/useDrawingStore.js +354 -0
- package/lib/commonjs/store/useDrawingStore.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/colors.js +44 -0
- package/lib/commonjs/utils/colors.js.map +1 -0
- package/lib/commonjs/utils/coordinates.js +81 -0
- package/lib/commonjs/utils/coordinates.js.map +1 -0
- package/lib/commonjs/utils/hitTesting.js +181 -0
- package/lib/commonjs/utils/hitTesting.js.map +1 -0
- package/lib/commonjs/utils/serialization.js +42 -0
- package/lib/commonjs/utils/serialization.js.map +1 -0
- package/lib/commonjs/utils/shapeDetection.js +151 -0
- package/lib/commonjs/utils/shapeDetection.js.map +1 -0
- package/lib/commonjs/utils/smoothing.js +85 -0
- package/lib/commonjs/utils/smoothing.js.map +1 -0
- package/lib/module/DrawingEditor.js +811 -0
- package/lib/module/DrawingEditor.js.map +1 -0
- package/lib/module/assets/toolbar-icons/arrow-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/arrow-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/arrow.png +0 -0
- package/lib/module/assets/toolbar-icons/circle-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/circle-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/circle.png +0 -0
- package/lib/module/assets/toolbar-icons/freehand-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/freehand-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/freehand.png +0 -0
- package/lib/module/assets/toolbar-icons/line-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/line-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/line.png +0 -0
- package/lib/module/assets/toolbar-icons/measure-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/measure-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/measure.png +0 -0
- package/lib/module/assets/toolbar-icons/move-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/move-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/move.png +0 -0
- package/lib/module/assets/toolbar-icons/polygon-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/polygon-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/polygon.png +0 -0
- package/lib/module/assets/toolbar-icons/rectangle-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/rectangle-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/rectangle.png +0 -0
- package/lib/module/assets/toolbar-icons/text-disabled.png +0 -0
- package/lib/module/assets/toolbar-icons/text-enabled.png +0 -0
- package/lib/module/assets/toolbar-icons/text.png +0 -0
- package/lib/module/components/ColorPalette.js +374 -0
- package/lib/module/components/ColorPalette.js.map +1 -0
- package/lib/module/components/LineWidthSlider.js +64 -0
- package/lib/module/components/LineWidthSlider.js.map +1 -0
- package/lib/module/components/MeasurementEditModal.js +148 -0
- package/lib/module/components/MeasurementEditModal.js.map +1 -0
- package/lib/module/components/MiniMap.js +239 -0
- package/lib/module/components/MiniMap.js.map +1 -0
- package/lib/module/components/TextAnnotation.js +157 -0
- package/lib/module/components/TextAnnotation.js.map +1 -0
- package/lib/module/components/TextEditModal.js +128 -0
- package/lib/module/components/TextEditModal.js.map +1 -0
- package/lib/module/components/Toolbar.js +193 -0
- package/lib/module/components/Toolbar.js.map +1 -0
- package/lib/module/components/ZoomBadge.js +155 -0
- package/lib/module/components/ZoomBadge.js.map +1 -0
- package/lib/module/hooks/useFreehandGesture.js +169 -0
- package/lib/module/hooks/useFreehandGesture.js.map +1 -0
- package/lib/module/hooks/usePolygonGesture.js +106 -0
- package/lib/module/hooks/usePolygonGesture.js.map +1 -0
- package/lib/module/hooks/useSelectionGesture.js +232 -0
- package/lib/module/hooks/useSelectionGesture.js.map +1 -0
- package/lib/module/hooks/useShapeGesture.js +177 -0
- package/lib/module/hooks/useShapeGesture.js.map +1 -0
- package/lib/module/hooks/useViewportGesture.js +234 -0
- package/lib/module/hooks/useViewportGesture.js.map +1 -0
- package/lib/module/index.js +20 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/renderers/ArrowRenderer.js +113 -0
- package/lib/module/renderers/ArrowRenderer.js.map +1 -0
- package/lib/module/renderers/CircleRenderer.js +46 -0
- package/lib/module/renderers/CircleRenderer.js.map +1 -0
- package/lib/module/renderers/FreehandRenderer.js +26 -0
- package/lib/module/renderers/FreehandRenderer.js.map +1 -0
- package/lib/module/renderers/InProgressRenderer.js +169 -0
- package/lib/module/renderers/InProgressRenderer.js.map +1 -0
- package/lib/module/renderers/LineRenderer.js +22 -0
- package/lib/module/renderers/LineRenderer.js.map +1 -0
- package/lib/module/renderers/MeasurementRenderer.js +129 -0
- package/lib/module/renderers/MeasurementRenderer.js.map +1 -0
- package/lib/module/renderers/ObjectRenderer.js +60 -0
- package/lib/module/renderers/ObjectRenderer.js.map +1 -0
- package/lib/module/renderers/PolygonRenderer.js +41 -0
- package/lib/module/renderers/PolygonRenderer.js.map +1 -0
- package/lib/module/renderers/RectRenderer.js +46 -0
- package/lib/module/renderers/RectRenderer.js.map +1 -0
- package/lib/module/renderers/SelectedObjectRenderer.js +587 -0
- package/lib/module/renderers/SelectedObjectRenderer.js.map +1 -0
- package/lib/module/renderers/SelectionOverlay.js +116 -0
- package/lib/module/renderers/SelectionOverlay.js.map +1 -0
- package/lib/module/store/useDrawingStore.js +350 -0
- package/lib/module/store/useDrawingStore.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/colors.js +40 -0
- package/lib/module/utils/colors.js.map +1 -0
- package/lib/module/utils/coordinates.js +71 -0
- package/lib/module/utils/coordinates.js.map +1 -0
- package/lib/module/utils/hitTesting.js +171 -0
- package/lib/module/utils/hitTesting.js.map +1 -0
- package/lib/module/utils/serialization.js +36 -0
- package/lib/module/utils/serialization.js.map +1 -0
- package/lib/module/utils/shapeDetection.js +147 -0
- package/lib/module/utils/shapeDetection.js.map +1 -0
- package/lib/module/utils/smoothing.js +80 -0
- package/lib/module/utils/smoothing.js.map +1 -0
- package/lib/typescript/DrawingEditor.d.ts +3 -0
- package/lib/typescript/DrawingEditor.d.ts.map +1 -0
- package/lib/typescript/components/ColorPalette.d.ts +9 -0
- package/lib/typescript/components/ColorPalette.d.ts.map +1 -0
- package/lib/typescript/components/LineWidthSlider.d.ts +11 -0
- package/lib/typescript/components/LineWidthSlider.d.ts.map +1 -0
- package/lib/typescript/components/MeasurementEditModal.d.ts +11 -0
- package/lib/typescript/components/MeasurementEditModal.d.ts.map +1 -0
- package/lib/typescript/components/MiniMap.d.ts +23 -0
- package/lib/typescript/components/MiniMap.d.ts.map +1 -0
- package/lib/typescript/components/TextAnnotation.d.ts +22 -0
- package/lib/typescript/components/TextAnnotation.d.ts.map +1 -0
- package/lib/typescript/components/TextEditModal.d.ts +10 -0
- package/lib/typescript/components/TextEditModal.d.ts.map +1 -0
- package/lib/typescript/components/Toolbar.d.ts +13 -0
- package/lib/typescript/components/Toolbar.d.ts.map +1 -0
- package/lib/typescript/components/ZoomBadge.d.ts +9 -0
- package/lib/typescript/components/ZoomBadge.d.ts.map +1 -0
- package/lib/typescript/hooks/useFreehandGesture.d.ts +47 -0
- package/lib/typescript/hooks/useFreehandGesture.d.ts.map +1 -0
- package/lib/typescript/hooks/usePolygonGesture.d.ts +47 -0
- package/lib/typescript/hooks/usePolygonGesture.d.ts.map +1 -0
- package/lib/typescript/hooks/useSelectionGesture.d.ts +32 -0
- package/lib/typescript/hooks/useSelectionGesture.d.ts.map +1 -0
- package/lib/typescript/hooks/useShapeGesture.d.ts +54 -0
- package/lib/typescript/hooks/useShapeGesture.d.ts.map +1 -0
- package/lib/typescript/hooks/useViewportGesture.d.ts +37 -0
- package/lib/typescript/hooks/useViewportGesture.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +11 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/renderers/ArrowRenderer.d.ts +9 -0
- package/lib/typescript/renderers/ArrowRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/CircleRenderer.d.ts +9 -0
- package/lib/typescript/renderers/CircleRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/FreehandRenderer.d.ts +9 -0
- package/lib/typescript/renderers/FreehandRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/InProgressRenderer.d.ts +32 -0
- package/lib/typescript/renderers/InProgressRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/LineRenderer.d.ts +9 -0
- package/lib/typescript/renderers/LineRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/MeasurementRenderer.d.ts +9 -0
- package/lib/typescript/renderers/MeasurementRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/ObjectRenderer.d.ts +12 -0
- package/lib/typescript/renderers/ObjectRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/PolygonRenderer.d.ts +13 -0
- package/lib/typescript/renderers/PolygonRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/RectRenderer.d.ts +9 -0
- package/lib/typescript/renderers/RectRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/SelectedObjectRenderer.d.ts +18 -0
- package/lib/typescript/renderers/SelectedObjectRenderer.d.ts.map +1 -0
- package/lib/typescript/renderers/SelectionOverlay.d.ts +21 -0
- package/lib/typescript/renderers/SelectionOverlay.d.ts.map +1 -0
- package/lib/typescript/store/useDrawingStore.d.ts +30 -0
- package/lib/typescript/store/useDrawingStore.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +130 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/utils/colors.d.ts +11 -0
- package/lib/typescript/utils/colors.d.ts.map +1 -0
- package/lib/typescript/utils/coordinates.d.ts +34 -0
- package/lib/typescript/utils/coordinates.d.ts.map +1 -0
- package/lib/typescript/utils/hitTesting.d.ts +18 -0
- package/lib/typescript/utils/hitTesting.d.ts.map +1 -0
- package/lib/typescript/utils/serialization.d.ts +17 -0
- package/lib/typescript/utils/serialization.d.ts.map +1 -0
- package/lib/typescript/utils/shapeDetection.d.ts +22 -0
- package/lib/typescript/utils/shapeDetection.d.ts.map +1 -0
- package/lib/typescript/utils/smoothing.d.ts +16 -0
- package/lib/typescript/utils/smoothing.d.ts.map +1 -0
- package/package.json +108 -0
- package/src/DrawingEditor.tsx +1071 -0
- package/src/assets/toolbar-icons/arrow-disabled.png +0 -0
- package/src/assets/toolbar-icons/arrow-enabled.png +0 -0
- package/src/assets/toolbar-icons/arrow.png +0 -0
- package/src/assets/toolbar-icons/circle-disabled.png +0 -0
- package/src/assets/toolbar-icons/circle-enabled.png +0 -0
- package/src/assets/toolbar-icons/circle.png +0 -0
- package/src/assets/toolbar-icons/freehand-disabled.png +0 -0
- package/src/assets/toolbar-icons/freehand-enabled.png +0 -0
- package/src/assets/toolbar-icons/freehand.png +0 -0
- package/src/assets/toolbar-icons/line-disabled.png +0 -0
- package/src/assets/toolbar-icons/line-enabled.png +0 -0
- package/src/assets/toolbar-icons/line.png +0 -0
- package/src/assets/toolbar-icons/measure-disabled.png +0 -0
- package/src/assets/toolbar-icons/measure-enabled.png +0 -0
- package/src/assets/toolbar-icons/measure.png +0 -0
- package/src/assets/toolbar-icons/move-disabled.png +0 -0
- package/src/assets/toolbar-icons/move-enabled.png +0 -0
- package/src/assets/toolbar-icons/move.png +0 -0
- package/src/assets/toolbar-icons/polygon-disabled.png +0 -0
- package/src/assets/toolbar-icons/polygon-enabled.png +0 -0
- package/src/assets/toolbar-icons/polygon.png +0 -0
- package/src/assets/toolbar-icons/rectangle-disabled.png +0 -0
- package/src/assets/toolbar-icons/rectangle-enabled.png +0 -0
- package/src/assets/toolbar-icons/rectangle.png +0 -0
- package/src/assets/toolbar-icons/text-disabled.png +0 -0
- package/src/assets/toolbar-icons/text-enabled.png +0 -0
- package/src/assets/toolbar-icons/text.png +0 -0
- package/src/components/ColorPalette.tsx +497 -0
- package/src/components/LineWidthSlider.tsx +87 -0
- package/src/components/MeasurementEditModal.tsx +163 -0
- package/src/components/MiniMap.tsx +275 -0
- package/src/components/TextAnnotation.tsx +198 -0
- package/src/components/TextEditModal.tsx +139 -0
- package/src/components/Toolbar.tsx +254 -0
- package/src/components/ZoomBadge.tsx +166 -0
- package/src/hooks/useFreehandGesture.ts +249 -0
- package/src/hooks/usePolygonGesture.ts +162 -0
- package/src/hooks/useSelectionGesture.ts +293 -0
- package/src/hooks/useShapeGesture.ts +256 -0
- package/src/hooks/useViewportGesture.ts +337 -0
- package/src/index.tsx +51 -0
- package/src/renderers/ArrowRenderer.tsx +123 -0
- package/src/renderers/CircleRenderer.tsx +60 -0
- package/src/renderers/FreehandRenderer.tsx +33 -0
- package/src/renderers/InProgressRenderer.tsx +217 -0
- package/src/renderers/LineRenderer.tsx +34 -0
- package/src/renderers/MeasurementRenderer.tsx +179 -0
- package/src/renderers/ObjectRenderer.tsx +42 -0
- package/src/renderers/PolygonRenderer.tsx +66 -0
- package/src/renderers/RectRenderer.tsx +60 -0
- package/src/renderers/SelectedObjectRenderer.tsx +738 -0
- package/src/renderers/SelectionOverlay.tsx +170 -0
- package/src/store/useDrawingStore.ts +357 -0
- package/src/types.ts +186 -0
- package/src/utils/colors.ts +98 -0
- package/src/utils/coordinates.ts +75 -0
- package/src/utils/hitTesting.ts +242 -0
- package/src/utils/serialization.ts +45 -0
- package/src/utils/shapeDetection.ts +160 -0
- package/src/utils/smoothing.ts +84 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Size } from "../types";
|
|
2
|
+
interface UseFreehandGestureOptions {
|
|
3
|
+
colorSV: {
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
lineWidthSV: {
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
fillColorSV: {
|
|
10
|
+
value: string | null;
|
|
11
|
+
};
|
|
12
|
+
fillAlphaSV: {
|
|
13
|
+
value: number;
|
|
14
|
+
};
|
|
15
|
+
canvasSize: Size;
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
imageOffsetX: {
|
|
18
|
+
value: number;
|
|
19
|
+
};
|
|
20
|
+
imageOffsetY: {
|
|
21
|
+
value: number;
|
|
22
|
+
};
|
|
23
|
+
imageWidth: {
|
|
24
|
+
value: number;
|
|
25
|
+
};
|
|
26
|
+
imageHeight: {
|
|
27
|
+
value: number;
|
|
28
|
+
};
|
|
29
|
+
viewScale: {
|
|
30
|
+
value: number;
|
|
31
|
+
};
|
|
32
|
+
viewTranslateX: {
|
|
33
|
+
value: number;
|
|
34
|
+
};
|
|
35
|
+
viewTranslateY: {
|
|
36
|
+
value: number;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare function useFreehandGesture({ colorSV, lineWidthSV, fillColorSV, fillAlphaSV, canvasSize, enabled, imageOffsetX, imageOffsetY, imageWidth, imageHeight, viewScale, viewTranslateX, viewTranslateY, }: UseFreehandGestureOptions): {
|
|
40
|
+
gesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
|
|
41
|
+
inProgressPath: import("react-native-reanimated").DerivedValue<import("@shopify/react-native-skia").SkPath | null>;
|
|
42
|
+
inProgressColor: import("react-native-reanimated").DerivedValue<string>;
|
|
43
|
+
inProgressWidth: import("react-native-reanimated").DerivedValue<number>;
|
|
44
|
+
isDrawing: import("react-native-reanimated").SharedValue<boolean>;
|
|
45
|
+
};
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=useFreehandGesture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFreehandGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFreehandGesture.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAS,IAAI,EAAiC,MAAM,UAAU,CAAC;AAU3E,UAAU,yBAAyB;IACjC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,GACf,EAAE,yBAAyB;;;;;;EAwM3B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Size } from "../types";
|
|
2
|
+
interface UsePolygonGestureOptions {
|
|
3
|
+
colorSV: {
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
lineWidthSV: {
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
fillColorSV: {
|
|
10
|
+
value: string | null;
|
|
11
|
+
};
|
|
12
|
+
fillAlphaSV: {
|
|
13
|
+
value: number;
|
|
14
|
+
};
|
|
15
|
+
canvasSize: Size;
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
imageOffsetX: {
|
|
18
|
+
value: number;
|
|
19
|
+
};
|
|
20
|
+
imageOffsetY: {
|
|
21
|
+
value: number;
|
|
22
|
+
};
|
|
23
|
+
imageWidth: {
|
|
24
|
+
value: number;
|
|
25
|
+
};
|
|
26
|
+
imageHeight: {
|
|
27
|
+
value: number;
|
|
28
|
+
};
|
|
29
|
+
viewScale: {
|
|
30
|
+
value: number;
|
|
31
|
+
};
|
|
32
|
+
viewTranslateX: {
|
|
33
|
+
value: number;
|
|
34
|
+
};
|
|
35
|
+
viewTranslateY: {
|
|
36
|
+
value: number;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare function usePolygonGesture({ colorSV, lineWidthSV, fillColorSV, fillAlphaSV, canvasSize, enabled, imageOffsetX, imageOffsetY, imageWidth, imageHeight, viewScale, viewTranslateX, viewTranslateY, }: UsePolygonGestureOptions): {
|
|
40
|
+
gesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
|
|
41
|
+
pointsFlat: import("react-native-reanimated").SharedValue<number[]>;
|
|
42
|
+
pointCount: import("react-native-reanimated").SharedValue<number>;
|
|
43
|
+
isActive: import("react-native-reanimated").SharedValue<boolean>;
|
|
44
|
+
cancel: () => void;
|
|
45
|
+
};
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=usePolygonGesture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePolygonGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePolygonGesture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,IAAI,EAAS,MAAM,UAAU,CAAC;AAQ3D,UAAU,wBAAwB;IAChC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,GACf,EAAE,wBAAwB;;;;;;EAwH1B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { SharedValue } from "react-native-reanimated";
|
|
2
|
+
import type { Size } from "../types";
|
|
3
|
+
interface UseSelectionGestureOptions {
|
|
4
|
+
canvasSize: Size;
|
|
5
|
+
imageOffsetX: {
|
|
6
|
+
value: number;
|
|
7
|
+
};
|
|
8
|
+
imageOffsetY: {
|
|
9
|
+
value: number;
|
|
10
|
+
};
|
|
11
|
+
viewScale: {
|
|
12
|
+
value: number;
|
|
13
|
+
};
|
|
14
|
+
viewTranslateX: {
|
|
15
|
+
value: number;
|
|
16
|
+
};
|
|
17
|
+
viewTranslateY: {
|
|
18
|
+
value: number;
|
|
19
|
+
};
|
|
20
|
+
onTapEmpty?: (x: number, y: number) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function useSelectionGesture({ canvasSize, imageOffsetX, imageOffsetY, viewScale, viewTranslateX, viewTranslateY, onTapEmpty, }: UseSelectionGestureOptions): {
|
|
23
|
+
tapGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
|
|
24
|
+
panGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
|
|
25
|
+
doubleTapGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
|
|
26
|
+
isDragging: SharedValue<boolean>;
|
|
27
|
+
dragOffsetX: SharedValue<number>;
|
|
28
|
+
dragOffsetY: SharedValue<number>;
|
|
29
|
+
draggingAnchorIndex: SharedValue<number>;
|
|
30
|
+
};
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=useSelectionGesture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectionGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSelectionGesture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,IAAI,EAAS,MAAM,UAAU,CAAC;AAQ5C,UAAU,0BAA0B;IAClC,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,GACX,EAAE,0BAA0B;;;;;;;;EAqQ5B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { TwoPointShapeType, Size } from "../types";
|
|
2
|
+
interface UseShapeGestureOptions {
|
|
3
|
+
shapeType: TwoPointShapeType;
|
|
4
|
+
colorSV: {
|
|
5
|
+
value: string;
|
|
6
|
+
};
|
|
7
|
+
lineWidthSV: {
|
|
8
|
+
value: number;
|
|
9
|
+
};
|
|
10
|
+
fillColorSV: {
|
|
11
|
+
value: string | null;
|
|
12
|
+
};
|
|
13
|
+
fillAlphaSV: {
|
|
14
|
+
value: number;
|
|
15
|
+
};
|
|
16
|
+
canvasSize: Size;
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
imageOffsetX: {
|
|
19
|
+
value: number;
|
|
20
|
+
};
|
|
21
|
+
imageOffsetY: {
|
|
22
|
+
value: number;
|
|
23
|
+
};
|
|
24
|
+
imageWidth: {
|
|
25
|
+
value: number;
|
|
26
|
+
};
|
|
27
|
+
imageHeight: {
|
|
28
|
+
value: number;
|
|
29
|
+
};
|
|
30
|
+
viewScale: {
|
|
31
|
+
value: number;
|
|
32
|
+
};
|
|
33
|
+
viewTranslateX: {
|
|
34
|
+
value: number;
|
|
35
|
+
};
|
|
36
|
+
viewTranslateY: {
|
|
37
|
+
value: number;
|
|
38
|
+
};
|
|
39
|
+
onMeasureCreated?: (id: string) => void;
|
|
40
|
+
}
|
|
41
|
+
export declare function useShapeGesture({ shapeType, colorSV, lineWidthSV, fillColorSV, fillAlphaSV, canvasSize, enabled, imageOffsetX, imageOffsetY, imageWidth, imageHeight, viewScale, viewTranslateX, viewTranslateY, onMeasureCreated, }: UseShapeGestureOptions): {
|
|
42
|
+
gesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
|
|
43
|
+
startX: import("react-native-reanimated").SharedValue<number>;
|
|
44
|
+
startY: import("react-native-reanimated").SharedValue<number>;
|
|
45
|
+
currentX: import("react-native-reanimated").SharedValue<number>;
|
|
46
|
+
currentY: import("react-native-reanimated").SharedValue<number>;
|
|
47
|
+
isDrawing: import("react-native-reanimated").SharedValue<boolean>;
|
|
48
|
+
inProgressColor: import("react-native-reanimated").DerivedValue<string>;
|
|
49
|
+
inProgressWidth: import("react-native-reanimated").DerivedValue<number>;
|
|
50
|
+
inProgressFillColor: import("react-native-reanimated").DerivedValue<string | null>;
|
|
51
|
+
inProgressFillAlpha: import("react-native-reanimated").DerivedValue<number>;
|
|
52
|
+
};
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=useShapeGesture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useShapeGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useShapeGesture.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,IAAI,EAAE,MAAM,UAAU,CAAC;AAQvE,UAAU,sBAAsB;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,EAAE,sBAAsB;;;;;;;;;;;EA8MxB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
interface UseViewportGestureOptions {
|
|
2
|
+
maxZoom?: number;
|
|
3
|
+
layoutWidth: {
|
|
4
|
+
value: number;
|
|
5
|
+
};
|
|
6
|
+
layoutHeight: {
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
imageOffsetX: {
|
|
10
|
+
value: number;
|
|
11
|
+
};
|
|
12
|
+
imageOffsetY: {
|
|
13
|
+
value: number;
|
|
14
|
+
};
|
|
15
|
+
imageWidth: {
|
|
16
|
+
value: number;
|
|
17
|
+
};
|
|
18
|
+
imageHeight: {
|
|
19
|
+
value: number;
|
|
20
|
+
};
|
|
21
|
+
onPinchEnd?: () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function useViewportGesture({ maxZoom, layoutWidth, layoutHeight, imageOffsetX, imageOffsetY, imageWidth, imageHeight, onPinchEnd, }: UseViewportGestureOptions): {
|
|
24
|
+
pinchGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/pinchGesture").PinchGesture;
|
|
25
|
+
twoFingerPanGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
|
|
26
|
+
singleFingerPanGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
|
|
27
|
+
doubleTapResetGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
|
|
28
|
+
scale: import("react-native-reanimated").SharedValue<number>;
|
|
29
|
+
translateX: import("react-native-reanimated").SharedValue<number>;
|
|
30
|
+
translateY: import("react-native-reanimated").SharedValue<number>;
|
|
31
|
+
isPinching: import("react-native-reanimated").SharedValue<boolean>;
|
|
32
|
+
resetViewport: () => void;
|
|
33
|
+
panViewport: (dtx: number, dty: number) => void;
|
|
34
|
+
zoomAt: (screenX: number, screenY: number, scaleFactor: number) => void;
|
|
35
|
+
};
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=useViewportGesture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useViewportGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useViewportGesture.ts"],"names":[],"mappings":"AAOA,UAAU,yBAAyB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AA6CD,wBAAgB,kBAAkB,CAAC,EACjC,OAA0B,EAC1B,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,GACX,EAAE,yBAAyB;;;;;;;;;;uBA+NlB,MAAM,OAAO,MAAM;sBA5Df,MAAM,WAAW,MAAM,eAAe,MAAM;EAuGzD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { DrawingEditor } from "./DrawingEditor";
|
|
2
|
+
export { useDrawingStore } from "./store/useDrawingStore";
|
|
3
|
+
export type { DrawingState } from "./store/useDrawingStore";
|
|
4
|
+
export type { DrawingEditorProps, DrawingEditorRef, DrawingObject, FreehandObject, LineObject, ArrowObject, RectangleObject, CircleObject, PolygonObject, MeasureObject, TextObject, TwoPointObject, ToolType, TwoPointShapeType, MeasureStyle, Point, Size, UndoAction, UndoActionType, ToolbarRenderProps, ColorPaletteRenderProps, } from "./types";
|
|
5
|
+
export { normalize, denormalize, normalizePoints, denormalizePoints, screenToCanvas, } from "./utils/coordinates";
|
|
6
|
+
export { serializeObjects, deserializeObjects, generateId, } from "./utils/serialization";
|
|
7
|
+
export { PRESET_COLORS, DEFAULT_STROKE_COLOR } from "./utils/colors";
|
|
8
|
+
export { Toolbar } from "./components/Toolbar";
|
|
9
|
+
export { ColorPalette } from "./components/ColorPalette";
|
|
10
|
+
export { LineWidthSlider } from "./components/LineWidthSlider";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ArrowObject, Size } from "../types";
|
|
3
|
+
interface ArrowRendererProps {
|
|
4
|
+
object: ArrowObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
export declare const ArrowRenderer: React.NamedExoticComponent<ArrowRendererProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ArrowRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrowRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/ArrowRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGlD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;CAClB;AAiFD,eAAO,MAAM,aAAa,gDAiCxB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { CircleObject, Size } from "../types";
|
|
3
|
+
interface CircleRendererProps {
|
|
4
|
+
object: CircleObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
export declare const CircleRenderer: React.NamedExoticComponent<CircleRendererProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=CircleRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircleRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/CircleRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,iDAiDzB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { FreehandObject, Size } from "../types";
|
|
3
|
+
interface FreehandRendererProps {
|
|
4
|
+
object: FreehandObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
export declare const FreehandRenderer: React.NamedExoticComponent<FreehandRendererProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=FreehandRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FreehandRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/FreehandRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIrD,UAAU,qBAAqB;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,mDAqB3B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SharedValue } from "react-native-reanimated";
|
|
3
|
+
import type { TwoPointShapeType } from "../types";
|
|
4
|
+
import type { SkPath } from "@shopify/react-native-skia";
|
|
5
|
+
interface FreehandInProgressProps {
|
|
6
|
+
path: SharedValue<SkPath | null>;
|
|
7
|
+
color: SharedValue<string>;
|
|
8
|
+
lineWidth: SharedValue<number>;
|
|
9
|
+
isDrawing: SharedValue<boolean>;
|
|
10
|
+
}
|
|
11
|
+
export declare const FreehandInProgress: React.NamedExoticComponent<FreehandInProgressProps>;
|
|
12
|
+
interface PolygonInProgressProps {
|
|
13
|
+
pointsFlat: SharedValue<number[]>;
|
|
14
|
+
pointCount: SharedValue<number>;
|
|
15
|
+
isActive: SharedValue<boolean>;
|
|
16
|
+
}
|
|
17
|
+
export declare const PolygonInProgress: React.NamedExoticComponent<PolygonInProgressProps>;
|
|
18
|
+
interface ShapeInProgressProps {
|
|
19
|
+
shapeType: TwoPointShapeType;
|
|
20
|
+
startX: SharedValue<number>;
|
|
21
|
+
startY: SharedValue<number>;
|
|
22
|
+
currentX: SharedValue<number>;
|
|
23
|
+
currentY: SharedValue<number>;
|
|
24
|
+
color: SharedValue<string>;
|
|
25
|
+
lineWidth: SharedValue<number>;
|
|
26
|
+
fillColor: SharedValue<string | null>;
|
|
27
|
+
fillAlpha: SharedValue<number>;
|
|
28
|
+
isDrawing: SharedValue<boolean>;
|
|
29
|
+
}
|
|
30
|
+
export declare const ShapeInProgress: React.NamedExoticComponent<ShapeInProgressProps>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=InProgressRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InProgressRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/InProgressRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD,UAAU,uBAAuB;IAC/B,IAAI,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC;AAKD,eAAO,MAAM,kBAAkB,qDAiB7B,CAAC;AAOH,UAAU,sBAAsB;IAC9B,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,oDAwB5B,CAAC;AAIH,UAAU,oBAAoB;IAC5B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,eAAe,kDAuH1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { LineObject, Size } from "../types";
|
|
3
|
+
interface LineRendererProps {
|
|
4
|
+
object: LineObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
export declare const LineRenderer: React.NamedExoticComponent<LineRendererProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=LineRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/LineRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGjD,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,+CAuBvB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { MeasureObject, Size } from "../types";
|
|
3
|
+
interface MeasurementRendererProps {
|
|
4
|
+
object: MeasureObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
export declare const MeasurementRenderer: React.NamedExoticComponent<MeasurementRendererProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=MeasurementRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeasurementRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/MeasurementRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAKpD,UAAU,wBAAwB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AA2ED,eAAO,MAAM,mBAAmB,sDA4F9B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { DrawingObject, Size } from "../types";
|
|
3
|
+
interface ObjectRendererProps {
|
|
4
|
+
object: DrawingObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Routes a drawing object to its specialized renderer component.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ObjectRenderer: React.NamedExoticComponent<ObjectRendererProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ObjectRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/ObjectRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AASpD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,iDAuBzB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { PolygonObject, Size } from "../types";
|
|
3
|
+
interface PolygonRendererProps {
|
|
4
|
+
object: PolygonObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
declare function buildPolygonPath(points: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}[], closed: boolean): string | null;
|
|
11
|
+
export declare const PolygonRenderer: React.NamedExoticComponent<PolygonRendererProps>;
|
|
12
|
+
export { buildPolygonPath };
|
|
13
|
+
//# sourceMappingURL=PolygonRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolygonRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/PolygonRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGpD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,iBAAS,gBAAgB,CACvB,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAClC,MAAM,EAAE,OAAO,GACd,MAAM,GAAG,IAAI,CAQf;AAED,eAAO,MAAM,eAAe,kDAwC1B,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RectangleObject, Size } from "../types";
|
|
3
|
+
interface RectRendererProps {
|
|
4
|
+
object: RectangleObject;
|
|
5
|
+
canvasSize: Size;
|
|
6
|
+
}
|
|
7
|
+
export declare const RectRenderer: React.NamedExoticComponent<RectRendererProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=RectRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RectRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/RectRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGtD,UAAU,iBAAiB;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,+CAiDvB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SharedValue } from "react-native-reanimated";
|
|
3
|
+
import type { DrawingObject, Size } from "../types";
|
|
4
|
+
interface SelectedObjectRendererProps {
|
|
5
|
+
object: DrawingObject;
|
|
6
|
+
canvasSize: Size;
|
|
7
|
+
isDragging: SharedValue<boolean>;
|
|
8
|
+
draggingAnchorIndex: SharedValue<number>;
|
|
9
|
+
dragOffsetX: SharedValue<number>;
|
|
10
|
+
dragOffsetY: SharedValue<number>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Renders the selected object with animated positions that follow
|
|
14
|
+
* the drag gesture in real-time — both for move and resize.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SelectedObjectRenderer: React.NamedExoticComponent<SelectedObjectRendererProps>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=SelectedObjectRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectedObjectRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/SelectedObjectRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAalD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAgE,IAAI,EAAE,MAAM,UAAU,CAAC;AAOlH,UAAU,2BAA2B;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yDAuGlC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SharedValue } from "react-native-reanimated";
|
|
3
|
+
import type { DrawingObject, Size, Point } from "../types";
|
|
4
|
+
interface SelectionOverlayProps {
|
|
5
|
+
object: DrawingObject;
|
|
6
|
+
canvasSize: Size;
|
|
7
|
+
color?: string;
|
|
8
|
+
draggingAnchorIndex?: SharedValue<number>;
|
|
9
|
+
dragOffsetX?: SharedValue<number>;
|
|
10
|
+
dragOffsetY?: SharedValue<number>;
|
|
11
|
+
isDragging?: SharedValue<boolean>;
|
|
12
|
+
}
|
|
13
|
+
export declare const ANCHOR_RADIUS = 8;
|
|
14
|
+
declare const ANCHOR_HIT_RADIUS = 24;
|
|
15
|
+
/**
|
|
16
|
+
* Get the anchor points (in pixel coordinates) for a drawing object.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getAnchorPoints(object: DrawingObject, canvasSize: Size): Point[];
|
|
19
|
+
export { ANCHOR_HIT_RADIUS };
|
|
20
|
+
export declare const SelectionOverlay: React.NamedExoticComponent<SelectionOverlayProps>;
|
|
21
|
+
//# sourceMappingURL=SelectionOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionOverlay.d.ts","sourceRoot":"","sources":["../../../src/renderers/SelectionOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EAIb,IAAI,EACJ,KAAK,EACN,MAAM,UAAU,CAAC;AAGlB,UAAU,qBAAqB;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,QAAA,MAAM,iBAAiB,KAAK,CAAC;AAG7B;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,IAAI,GACf,KAAK,EAAE,CAmCT;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAoD7B,eAAO,MAAM,gBAAgB,mDA8C3B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DrawingObject, ToolType, UndoAction, Size } from "../types";
|
|
2
|
+
export interface DrawingState {
|
|
3
|
+
objects: DrawingObject[];
|
|
4
|
+
currentTool: ToolType | null;
|
|
5
|
+
strokeColor: string;
|
|
6
|
+
fillColor: string | null;
|
|
7
|
+
fillAlpha: number;
|
|
8
|
+
lineWidth: number;
|
|
9
|
+
selectedObjectId: string | null;
|
|
10
|
+
canvasSize: Size;
|
|
11
|
+
undoStack: UndoAction[];
|
|
12
|
+
setTool: (tool: ToolType | null) => void;
|
|
13
|
+
setStrokeColor: (color: string) => void;
|
|
14
|
+
setFillColor: (color: string | null) => void;
|
|
15
|
+
setFillAlpha: (alpha: number) => void;
|
|
16
|
+
setLineWidth: (width: number) => void;
|
|
17
|
+
setCanvasSize: (size: Size) => void;
|
|
18
|
+
addObject: (obj: DrawingObject) => void;
|
|
19
|
+
updateObject: (id: string, updates: Partial<DrawingObject>) => void;
|
|
20
|
+
deleteObject: (id: string) => void;
|
|
21
|
+
deleteSelectedObject: () => void;
|
|
22
|
+
selectObject: (id: string | null) => void;
|
|
23
|
+
moveObject: (id: string, dx: number, dy: number) => void;
|
|
24
|
+
resizeObject: (id: string, anchorIndex: number, dx: number, dy: number) => void;
|
|
25
|
+
undo: () => void;
|
|
26
|
+
clearAll: () => void;
|
|
27
|
+
loadObjects: (objects: DrawingObject[]) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const useDrawingStore: import("zustand").UseBoundStore<import("zustand").StoreApi<DrawingState>>;
|
|
30
|
+
//# sourceMappingURL=useDrawingStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDrawingStore.d.ts","sourceRoot":"","sources":["../../../src/store/useDrawingStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAGb,QAAQ,EACR,UAAU,EACV,IAAI,EAEL,MAAM,UAAU,CAAC;AAIlB,MAAM,WAAW,YAAY;IAE3B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,UAAU,EAAE,CAAC;IAGxB,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CACZ,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,IAAI,CAAC;IACV,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACjD;AA0CD,eAAO,MAAM,eAAe,2EA0QzB,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ViewStyle } from "react-native";
|
|
3
|
+
export type ToolType = "freehand" | "line" | "arrow" | "rectangle" | "circle" | "polygon" | "measure" | "text";
|
|
4
|
+
export type MeasureStyle = 0 | 1 | 2;
|
|
5
|
+
/** Normalized point: x and y are in [0, 1] relative to canvas size */
|
|
6
|
+
export interface Point {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}
|
|
10
|
+
export interface Size {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}
|
|
14
|
+
interface BaseDrawingObject {
|
|
15
|
+
id: string;
|
|
16
|
+
color: string;
|
|
17
|
+
lineWidth: number;
|
|
18
|
+
}
|
|
19
|
+
export interface FreehandObject extends BaseDrawingObject {
|
|
20
|
+
type: "freehand";
|
|
21
|
+
points: Point[];
|
|
22
|
+
}
|
|
23
|
+
export interface LineObject extends BaseDrawingObject {
|
|
24
|
+
type: "line";
|
|
25
|
+
from: Point;
|
|
26
|
+
to: Point;
|
|
27
|
+
}
|
|
28
|
+
export interface ArrowObject extends BaseDrawingObject {
|
|
29
|
+
type: "arrow";
|
|
30
|
+
from: Point;
|
|
31
|
+
to: Point;
|
|
32
|
+
}
|
|
33
|
+
export interface RectangleObject extends BaseDrawingObject {
|
|
34
|
+
type: "rectangle";
|
|
35
|
+
from: Point;
|
|
36
|
+
to: Point;
|
|
37
|
+
backgroundColor?: string;
|
|
38
|
+
backgroundAlpha?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface CircleObject extends BaseDrawingObject {
|
|
41
|
+
type: "circle";
|
|
42
|
+
from: Point;
|
|
43
|
+
to: Point;
|
|
44
|
+
backgroundColor?: string;
|
|
45
|
+
backgroundAlpha?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface MeasureObject extends BaseDrawingObject {
|
|
48
|
+
type: "measure";
|
|
49
|
+
from: Point;
|
|
50
|
+
to: Point;
|
|
51
|
+
text: string;
|
|
52
|
+
unit: string;
|
|
53
|
+
measureStyle: MeasureStyle;
|
|
54
|
+
}
|
|
55
|
+
export interface PolygonObject extends BaseDrawingObject {
|
|
56
|
+
type: "polygon";
|
|
57
|
+
points: Point[];
|
|
58
|
+
closed: boolean;
|
|
59
|
+
backgroundColor?: string;
|
|
60
|
+
backgroundAlpha?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface TextObject extends BaseDrawingObject {
|
|
63
|
+
type: "text";
|
|
64
|
+
position: Point;
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
value: string;
|
|
68
|
+
backgroundColor?: string;
|
|
69
|
+
backgroundAlpha?: number;
|
|
70
|
+
}
|
|
71
|
+
export type DrawingObject = FreehandObject | LineObject | ArrowObject | RectangleObject | CircleObject | PolygonObject | MeasureObject | TextObject;
|
|
72
|
+
export type TwoPointShapeType = "line" | "arrow" | "rectangle" | "circle" | "measure";
|
|
73
|
+
export type TwoPointObject = LineObject | ArrowObject | RectangleObject | CircleObject | MeasureObject;
|
|
74
|
+
export type UndoActionType = "add" | "delete" | "edit" | "move";
|
|
75
|
+
export interface UndoAction {
|
|
76
|
+
type: UndoActionType;
|
|
77
|
+
objectId: string;
|
|
78
|
+
previousState?: DrawingObject;
|
|
79
|
+
}
|
|
80
|
+
export interface DrawingEditorProps {
|
|
81
|
+
/** URI string or require() for the background image */
|
|
82
|
+
imageSource: string | number;
|
|
83
|
+
/** Pre-existing objects to restore */
|
|
84
|
+
initialObjects?: DrawingObject[];
|
|
85
|
+
/** Maximum zoom level (default: 5) */
|
|
86
|
+
maxZoom?: number;
|
|
87
|
+
/** Called when the user saves */
|
|
88
|
+
onSave?: (result: {
|
|
89
|
+
image: Uint8Array;
|
|
90
|
+
objects: DrawingObject[];
|
|
91
|
+
canvasSize: Size;
|
|
92
|
+
}) => void;
|
|
93
|
+
/** Called when the user dismisses the editor */
|
|
94
|
+
onDismiss?: () => void;
|
|
95
|
+
/** Custom style for the root container */
|
|
96
|
+
style?: ViewStyle;
|
|
97
|
+
/** Override the default toolbar */
|
|
98
|
+
renderToolbar?: (props: ToolbarRenderProps) => ReactNode;
|
|
99
|
+
/** Override the default color palette */
|
|
100
|
+
renderColorPalette?: (props: ColorPaletteRenderProps) => ReactNode;
|
|
101
|
+
}
|
|
102
|
+
export interface ToolbarRenderProps {
|
|
103
|
+
currentTool: ToolType | null;
|
|
104
|
+
onSelectTool: (tool: ToolType | null) => void;
|
|
105
|
+
onUndo: () => void;
|
|
106
|
+
canUndo: boolean;
|
|
107
|
+
/** Whether the canvas is currently zoomed in (scale > 1) */
|
|
108
|
+
isZoomed: boolean;
|
|
109
|
+
/** Reset zoom to 1x */
|
|
110
|
+
onResetZoom: () => void;
|
|
111
|
+
}
|
|
112
|
+
export interface ColorPaletteRenderProps {
|
|
113
|
+
strokeColor: string;
|
|
114
|
+
fillColor: string | null;
|
|
115
|
+
fillAlpha: number;
|
|
116
|
+
onSelectStrokeColor: (color: string) => void;
|
|
117
|
+
onSelectFillColor: (color: string | null) => void;
|
|
118
|
+
onSelectFillAlpha: (alpha: number) => void;
|
|
119
|
+
}
|
|
120
|
+
export interface DrawingEditorRef {
|
|
121
|
+
undo: () => void;
|
|
122
|
+
setTool: (tool: ToolType) => void;
|
|
123
|
+
exportImage: () => Promise<Uint8Array | null>;
|
|
124
|
+
exportImageBase64: () => Promise<string | null>;
|
|
125
|
+
getObjects: () => DrawingObject[];
|
|
126
|
+
clearAll: () => void;
|
|
127
|
+
resetZoom: () => void;
|
|
128
|
+
}
|
|
129
|
+
export {};
|
|
130
|
+
//# sourceMappingURL=types.d.ts.map
|