@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 @@
|
|
|
1
|
+
{"version":3,"names":["React","Path","Line","SkiaLine","Rect","Oval","Group","Skia","useDerivedValue","jsx","_jsx","jsxs","_jsxs","EMPTY_PATH","Make","FreehandInProgress","memo","path","color","lineWidth","safePath","value","style","strokeWidth","strokeCap","strokeJoin","POLYGON_VERTEX_RADIUS","POLYGON_VERTEX_COLOR","PolygonInProgress","pointsFlat","pointCount","verticesPath","p","count","flat","i","cx","cy","addCircle","ShapeInProgress","shapeType","startX","startY","currentX","currentY","fillColor","fillAlpha","isDrawing","opacity","x","Math","min","y","width","abs","height","p1","p2","resolvedFillColor","replace","children"],"sourceRoot":"../../../src","sources":["renderers/InProgressRenderer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import { Line as SkiaLine } from "@shopify/react-native-skia";
|
|
5
|
+
import { denormalize } from "../utils/coordinates";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const LineRenderer = /*#__PURE__*/React.memo(function LineRenderer({
|
|
8
|
+
object,
|
|
9
|
+
canvasSize
|
|
10
|
+
}) {
|
|
11
|
+
const from = useMemo(() => denormalize(object.from, canvasSize), [object.from, canvasSize]);
|
|
12
|
+
const to = useMemo(() => denormalize(object.to, canvasSize), [object.to, canvasSize]);
|
|
13
|
+
return /*#__PURE__*/_jsx(SkiaLine, {
|
|
14
|
+
p1: from,
|
|
15
|
+
p2: to,
|
|
16
|
+
color: object.color,
|
|
17
|
+
style: "stroke",
|
|
18
|
+
strokeWidth: object.lineWidth,
|
|
19
|
+
strokeCap: "round"
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=LineRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","Line","SkiaLine","denormalize","jsx","_jsx","LineRenderer","memo","object","canvasSize","from","to","p1","p2","color","style","strokeWidth","lineWidth","strokeCap"],"sourceRoot":"../../../src","sources":["renderers/LineRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,IAAIC,QAAQ,QAAQ,4BAA4B;AAE7D,SAASC,WAAW,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOnD,OAAO,MAAMC,YAAY,gBAAGP,KAAK,CAACQ,IAAI,CAAC,SAASD,YAAYA,CAAC;EAC3DE,MAAM;EACNC;AACiB,CAAC,EAAE;EACpB,MAAMC,IAAI,GAAGV,OAAO,CAClB,MAAMG,WAAW,CAACK,MAAM,CAACE,IAAI,EAAED,UAAU,CAAC,EAC1C,CAACD,MAAM,CAACE,IAAI,EAAED,UAAU,CAC1B,CAAC;EACD,MAAME,EAAE,GAAGX,OAAO,CAChB,MAAMG,WAAW,CAACK,MAAM,CAACG,EAAE,EAAEF,UAAU,CAAC,EACxC,CAACD,MAAM,CAACG,EAAE,EAAEF,UAAU,CACxB,CAAC;EAED,oBACEJ,IAAA,CAACH,QAAQ;IACPU,EAAE,EAAEF,IAAK;IACTG,EAAE,EAAEF,EAAG;IACPG,KAAK,EAAEN,MAAM,CAACM,KAAM;IACpBC,KAAK,EAAC,QAAQ;IACdC,WAAW,EAAER,MAAM,CAACS,SAAU;IAC9BC,SAAS,EAAC;EAAO,CAClB,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import { Platform } from "react-native";
|
|
5
|
+
import { Path, Group, Text, matchFont } from "@shopify/react-native-skia";
|
|
6
|
+
import { denormalize } from "../utils/coordinates";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const FONT_FAMILY = Platform.OS === "android" ? "sans-serif" : "System";
|
|
9
|
+
const TEXT_GAP_PADDING = 6;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Build a measurement / cotation path with a gap in the middle for the label.
|
|
13
|
+
* - Two inward-pointing arrowheads
|
|
14
|
+
* - Perpendicular extension lines at endpoints
|
|
15
|
+
* - Main line split in two halves around a central gap
|
|
16
|
+
*/
|
|
17
|
+
function buildMeasurementPath(fx, fy, tx, ty, lineWidth, style, gapHalfWidth) {
|
|
18
|
+
const dx = tx - fx;
|
|
19
|
+
const dy = ty - fy;
|
|
20
|
+
const len = Math.sqrt(dx * dx + dy * dy);
|
|
21
|
+
if (len === 0) return "";
|
|
22
|
+
const angle = Math.atan2(dy, dx);
|
|
23
|
+
const cos = Math.cos(angle);
|
|
24
|
+
const sin = Math.sin(angle);
|
|
25
|
+
const perpCos = Math.cos(angle + Math.PI / 2);
|
|
26
|
+
const perpSin = Math.sin(angle + Math.PI / 2);
|
|
27
|
+
const headLen = Math.min(lineWidth * 3, len / 4);
|
|
28
|
+
const headW = lineWidth * 2;
|
|
29
|
+
const extLen = lineWidth * 4;
|
|
30
|
+
|
|
31
|
+
// Midpoint
|
|
32
|
+
const mx = (fx + tx) / 2;
|
|
33
|
+
const my = (fy + ty) / 2;
|
|
34
|
+
let svg = "";
|
|
35
|
+
|
|
36
|
+
// Main line — split into two segments with gap
|
|
37
|
+
if (gapHalfWidth > 0 && len > gapHalfWidth * 2) {
|
|
38
|
+
const gapStartX = mx - gapHalfWidth * cos;
|
|
39
|
+
const gapStartY = my - gapHalfWidth * sin;
|
|
40
|
+
const gapEndX = mx + gapHalfWidth * cos;
|
|
41
|
+
const gapEndY = my + gapHalfWidth * sin;
|
|
42
|
+
svg += `M ${fx} ${fy} L ${gapStartX} ${gapStartY} `;
|
|
43
|
+
svg += `M ${gapEndX} ${gapEndY} L ${tx} ${ty} `;
|
|
44
|
+
} else {
|
|
45
|
+
svg += `M ${fx} ${fy} L ${tx} ${ty} `;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Arrowhead at "from" pointing toward "to"
|
|
49
|
+
const ah1x = fx + headLen * cos + headW / 2 * perpCos;
|
|
50
|
+
const ah1y = fy + headLen * sin + headW / 2 * perpSin;
|
|
51
|
+
const ah2x = fx + headLen * cos - headW / 2 * perpCos;
|
|
52
|
+
const ah2y = fy + headLen * sin - headW / 2 * perpSin;
|
|
53
|
+
svg += `M ${fx} ${fy} L ${ah1x} ${ah1y} M ${fx} ${fy} L ${ah2x} ${ah2y} `;
|
|
54
|
+
|
|
55
|
+
// Arrowhead at "to" pointing toward "from"
|
|
56
|
+
const bh1x = tx - headLen * cos + headW / 2 * perpCos;
|
|
57
|
+
const bh1y = ty - headLen * sin + headW / 2 * perpSin;
|
|
58
|
+
const bh2x = tx - headLen * cos - headW / 2 * perpCos;
|
|
59
|
+
const bh2y = ty - headLen * sin - headW / 2 * perpSin;
|
|
60
|
+
svg += `M ${tx} ${ty} L ${bh1x} ${bh1y} M ${tx} ${ty} L ${bh2x} ${bh2y} `;
|
|
61
|
+
|
|
62
|
+
// Extension lines (perpendicular to the main line at each endpoint)
|
|
63
|
+
if (style === 0 || style === 2) {
|
|
64
|
+
svg += `M ${fx + extLen * perpCos} ${fy + extLen * perpSin} L ${fx - extLen * perpCos} ${fy - extLen * perpSin} `;
|
|
65
|
+
svg += `M ${tx + extLen * perpCos} ${ty + extLen * perpSin} L ${tx - extLen * perpCos} ${ty - extLen * perpSin} `;
|
|
66
|
+
}
|
|
67
|
+
return svg;
|
|
68
|
+
}
|
|
69
|
+
export const MeasurementRenderer = /*#__PURE__*/React.memo(function MeasurementRenderer({
|
|
70
|
+
object,
|
|
71
|
+
canvasSize
|
|
72
|
+
}) {
|
|
73
|
+
const from = useMemo(() => denormalize(object.from, canvasSize), [object.from, canvasSize]);
|
|
74
|
+
const to = useMemo(() => denormalize(object.to, canvasSize), [object.to, canvasSize]);
|
|
75
|
+
const labelText = `${object.text}${object.unit}`;
|
|
76
|
+
const hasLabel = object.text.length > 0;
|
|
77
|
+
const fontSize = Math.max(14, object.lineWidth * 3);
|
|
78
|
+
const font = useMemo(() => matchFont({
|
|
79
|
+
fontFamily: FONT_FAMILY,
|
|
80
|
+
fontSize
|
|
81
|
+
}), [fontSize]);
|
|
82
|
+
|
|
83
|
+
// Measure text width for the gap
|
|
84
|
+
const textWidth = useMemo(() => {
|
|
85
|
+
if (!hasLabel) return 0;
|
|
86
|
+
return font.getTextWidth(labelText);
|
|
87
|
+
}, [font, labelText, hasLabel]);
|
|
88
|
+
const gapHalfWidth = hasLabel ? textWidth / 2 + TEXT_GAP_PADDING : 0;
|
|
89
|
+
const pathString = useMemo(() => buildMeasurementPath(from.x, from.y, to.x, to.y, object.lineWidth, object.measureStyle, gapHalfWidth), [from, to, object.lineWidth, object.measureStyle, gapHalfWidth]);
|
|
90
|
+
|
|
91
|
+
// Center of the line
|
|
92
|
+
const midX = (from.x + to.x) / 2;
|
|
93
|
+
const midY = (from.y + to.y) / 2;
|
|
94
|
+
|
|
95
|
+
// Angle of the line — keep text readable (never upside down)
|
|
96
|
+
const rawAngle = Math.atan2(to.y - from.y, to.x - from.x);
|
|
97
|
+
const angle = rawAngle > Math.PI / 2 ? rawAngle - Math.PI : rawAngle < -Math.PI / 2 ? rawAngle + Math.PI : rawAngle;
|
|
98
|
+
|
|
99
|
+
// Position text centered at origin (will be transformed to midpoint)
|
|
100
|
+
const textX = -textWidth / 2;
|
|
101
|
+
const textY = fontSize / 3;
|
|
102
|
+
if (!pathString) return null;
|
|
103
|
+
return /*#__PURE__*/_jsxs(Group, {
|
|
104
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
105
|
+
path: pathString,
|
|
106
|
+
style: "stroke",
|
|
107
|
+
strokeWidth: object.lineWidth,
|
|
108
|
+
color: object.color,
|
|
109
|
+
strokeCap: "round",
|
|
110
|
+
strokeJoin: "round"
|
|
111
|
+
}), hasLabel && /*#__PURE__*/_jsx(Group, {
|
|
112
|
+
transform: [{
|
|
113
|
+
translateX: midX
|
|
114
|
+
}, {
|
|
115
|
+
translateY: midY
|
|
116
|
+
}, {
|
|
117
|
+
rotate: angle
|
|
118
|
+
}],
|
|
119
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
120
|
+
x: textX,
|
|
121
|
+
y: textY,
|
|
122
|
+
text: labelText,
|
|
123
|
+
font: font,
|
|
124
|
+
color: object.color
|
|
125
|
+
})
|
|
126
|
+
})]
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=MeasurementRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","Platform","Path","Group","Text","matchFont","denormalize","jsx","_jsx","jsxs","_jsxs","FONT_FAMILY","OS","TEXT_GAP_PADDING","buildMeasurementPath","fx","fy","tx","ty","lineWidth","style","gapHalfWidth","dx","dy","len","Math","sqrt","angle","atan2","cos","sin","perpCos","PI","perpSin","headLen","min","headW","extLen","mx","my","svg","gapStartX","gapStartY","gapEndX","gapEndY","ah1x","ah1y","ah2x","ah2y","bh1x","bh1y","bh2x","bh2y","MeasurementRenderer","memo","object","canvasSize","from","to","labelText","text","unit","hasLabel","length","fontSize","max","font","fontFamily","textWidth","getTextWidth","pathString","x","y","measureStyle","midX","midY","rawAngle","textX","textY","children","path","strokeWidth","color","strokeCap","strokeJoin","transform","translateX","translateY","rotate"],"sourceRoot":"../../../src","sources":["renderers/MeasurementRenderer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { FreehandRenderer } from "./FreehandRenderer";
|
|
5
|
+
import { LineRenderer } from "./LineRenderer";
|
|
6
|
+
import { ArrowRenderer } from "./ArrowRenderer";
|
|
7
|
+
import { RectRenderer } from "./RectRenderer";
|
|
8
|
+
import { CircleRenderer } from "./CircleRenderer";
|
|
9
|
+
import { PolygonRenderer } from "./PolygonRenderer";
|
|
10
|
+
import { MeasurementRenderer } from "./MeasurementRenderer";
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
/**
|
|
13
|
+
* Routes a drawing object to its specialized renderer component.
|
|
14
|
+
*/
|
|
15
|
+
export const ObjectRenderer = /*#__PURE__*/React.memo(function ObjectRenderer({
|
|
16
|
+
object,
|
|
17
|
+
canvasSize
|
|
18
|
+
}) {
|
|
19
|
+
switch (object.type) {
|
|
20
|
+
case "freehand":
|
|
21
|
+
return /*#__PURE__*/_jsx(FreehandRenderer, {
|
|
22
|
+
object: object,
|
|
23
|
+
canvasSize: canvasSize
|
|
24
|
+
});
|
|
25
|
+
case "line":
|
|
26
|
+
return /*#__PURE__*/_jsx(LineRenderer, {
|
|
27
|
+
object: object,
|
|
28
|
+
canvasSize: canvasSize
|
|
29
|
+
});
|
|
30
|
+
case "arrow":
|
|
31
|
+
return /*#__PURE__*/_jsx(ArrowRenderer, {
|
|
32
|
+
object: object,
|
|
33
|
+
canvasSize: canvasSize
|
|
34
|
+
});
|
|
35
|
+
case "rectangle":
|
|
36
|
+
return /*#__PURE__*/_jsx(RectRenderer, {
|
|
37
|
+
object: object,
|
|
38
|
+
canvasSize: canvasSize
|
|
39
|
+
});
|
|
40
|
+
case "circle":
|
|
41
|
+
return /*#__PURE__*/_jsx(CircleRenderer, {
|
|
42
|
+
object: object,
|
|
43
|
+
canvasSize: canvasSize
|
|
44
|
+
});
|
|
45
|
+
case "polygon":
|
|
46
|
+
return /*#__PURE__*/_jsx(PolygonRenderer, {
|
|
47
|
+
object: object,
|
|
48
|
+
canvasSize: canvasSize
|
|
49
|
+
});
|
|
50
|
+
case "measure":
|
|
51
|
+
return /*#__PURE__*/_jsx(MeasurementRenderer, {
|
|
52
|
+
object: object,
|
|
53
|
+
canvasSize: canvasSize
|
|
54
|
+
});
|
|
55
|
+
case "text":
|
|
56
|
+
// Text objects are rendered outside the Skia Canvas as native RN views
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=ObjectRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","FreehandRenderer","LineRenderer","ArrowRenderer","RectRenderer","CircleRenderer","PolygonRenderer","MeasurementRenderer","jsx","_jsx","ObjectRenderer","memo","object","canvasSize","type"],"sourceRoot":"../../../src","sources":["renderers/ObjectRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,mBAAmB,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO5D;AACA;AACA;AACA,OAAO,MAAMC,cAAc,gBAAGV,KAAK,CAACW,IAAI,CAAC,SAASD,cAAcA,CAAC;EAC/DE,MAAM;EACNC;AACmB,CAAC,EAAE;EACtB,QAAQD,MAAM,CAACE,IAAI;IACjB,KAAK,UAAU;MACb,oBAAOL,IAAA,CAACR,gBAAgB;QAACW,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IACrE,KAAK,MAAM;MACT,oBAAOJ,IAAA,CAACP,YAAY;QAACU,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IACjE,KAAK,OAAO;MACV,oBAAOJ,IAAA,CAACN,aAAa;QAACS,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IAClE,KAAK,WAAW;MACd,oBAAOJ,IAAA,CAACL,YAAY;QAACQ,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IACjE,KAAK,QAAQ;MACX,oBAAOJ,IAAA,CAACJ,cAAc;QAACO,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IACnE,KAAK,SAAS;MACZ,oBAAOJ,IAAA,CAACH,eAAe;QAACM,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IACpE,KAAK,SAAS;MACZ,oBAAOJ,IAAA,CAACF,mBAAmB;QAACK,MAAM,EAAEA,MAAO;QAACC,UAAU,EAAEA;MAAW,CAAE,CAAC;IACxE,KAAK,MAAM;MACT;MACA,OAAO,IAAI;EACf;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import { Path, Group } from "@shopify/react-native-skia";
|
|
5
|
+
import { denormalizePoints } from "../utils/coordinates";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
function buildPolygonPath(points, closed) {
|
|
8
|
+
if (points.length < 2) return null;
|
|
9
|
+
const parts = [`M ${points[0].x} ${points[0].y}`];
|
|
10
|
+
for (let i = 1; i < points.length; i++) {
|
|
11
|
+
parts.push(`L ${points[i].x} ${points[i].y}`);
|
|
12
|
+
}
|
|
13
|
+
if (closed) parts.push("Z");
|
|
14
|
+
return parts.join(" ");
|
|
15
|
+
}
|
|
16
|
+
export const PolygonRenderer = /*#__PURE__*/React.memo(function PolygonRenderer({
|
|
17
|
+
object,
|
|
18
|
+
canvasSize
|
|
19
|
+
}) {
|
|
20
|
+
const denormalized = useMemo(() => denormalizePoints(object.points, canvasSize), [object.points, canvasSize]);
|
|
21
|
+
const pathString = useMemo(() => buildPolygonPath(denormalized, object.closed), [denormalized, object.closed]);
|
|
22
|
+
if (!pathString) return null;
|
|
23
|
+
const hasFill = object.closed && object.backgroundColor && object.backgroundAlpha;
|
|
24
|
+
const fillColor = hasFill ? object.backgroundColor.replace(/[\d.]+\)$/, `${object.backgroundAlpha})`) : undefined;
|
|
25
|
+
return /*#__PURE__*/_jsxs(Group, {
|
|
26
|
+
children: [fillColor && /*#__PURE__*/_jsx(Path, {
|
|
27
|
+
path: pathString,
|
|
28
|
+
style: "fill",
|
|
29
|
+
color: fillColor
|
|
30
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
31
|
+
path: pathString,
|
|
32
|
+
style: "stroke",
|
|
33
|
+
strokeWidth: object.lineWidth,
|
|
34
|
+
color: object.color,
|
|
35
|
+
strokeCap: "round",
|
|
36
|
+
strokeJoin: "round"
|
|
37
|
+
})]
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
export { buildPolygonPath };
|
|
41
|
+
//# sourceMappingURL=PolygonRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","Path","Group","denormalizePoints","jsx","_jsx","jsxs","_jsxs","buildPolygonPath","points","closed","length","parts","x","y","i","push","join","PolygonRenderer","memo","object","canvasSize","denormalized","pathString","hasFill","backgroundColor","backgroundAlpha","fillColor","replace","undefined","children","path","style","color","strokeWidth","lineWidth","strokeCap","strokeJoin"],"sourceRoot":"../../../src","sources":["renderers/PolygonRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,KAAK,QAAQ,4BAA4B;AAExD,SAASC,iBAAiB,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOzD,SAASC,gBAAgBA,CACvBC,MAAkC,EAClCC,MAAe,EACA;EACf,IAAID,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI;EAClC,MAAMC,KAAK,GAAG,CAAC,KAAKH,MAAM,CAAC,CAAC,CAAC,CAAEI,CAAC,IAAIJ,MAAM,CAAC,CAAC,CAAC,CAAEK,CAAC,EAAE,CAAC;EACnD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,MAAM,CAACE,MAAM,EAAEI,CAAC,EAAE,EAAE;IACtCH,KAAK,CAACI,IAAI,CAAC,KAAKP,MAAM,CAACM,CAAC,CAAC,CAAEF,CAAC,IAAIJ,MAAM,CAACM,CAAC,CAAC,CAAED,CAAC,EAAE,CAAC;EACjD;EACA,IAAIJ,MAAM,EAAEE,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;EAC3B,OAAOJ,KAAK,CAACK,IAAI,CAAC,GAAG,CAAC;AACxB;AAEA,OAAO,MAAMC,eAAe,gBAAGnB,KAAK,CAACoB,IAAI,CAAC,SAASD,eAAeA,CAAC;EACjEE,MAAM;EACNC;AACoB,CAAC,EAAE;EACvB,MAAMC,YAAY,GAAGtB,OAAO,CAC1B,MAAMG,iBAAiB,CAACiB,MAAM,CAACX,MAAM,EAAEY,UAAU,CAAC,EAClD,CAACD,MAAM,CAACX,MAAM,EAAEY,UAAU,CAC5B,CAAC;EAED,MAAME,UAAU,GAAGvB,OAAO,CACxB,MAAMQ,gBAAgB,CAACc,YAAY,EAAEF,MAAM,CAACV,MAAM,CAAC,EACnD,CAACY,YAAY,EAAEF,MAAM,CAACV,MAAM,CAC9B,CAAC;EAED,IAAI,CAACa,UAAU,EAAE,OAAO,IAAI;EAE5B,MAAMC,OAAO,GACXJ,MAAM,CAACV,MAAM,IAAIU,MAAM,CAACK,eAAe,IAAIL,MAAM,CAACM,eAAe;EACnE,MAAMC,SAAS,GAAGH,OAAO,GACrBJ,MAAM,CAACK,eAAe,CAAEG,OAAO,CAC7B,WAAW,EACX,GAAGR,MAAM,CAACM,eAAe,GAC3B,CAAC,GACDG,SAAS;EAEb,oBACEtB,KAAA,CAACL,KAAK;IAAA4B,QAAA,GACHH,SAAS,iBACRtB,IAAA,CAACJ,IAAI;MAAC8B,IAAI,EAAER,UAAW;MAACS,KAAK,EAAC,MAAM;MAACC,KAAK,EAAEN;IAAU,CAAE,CACzD,eACDtB,IAAA,CAACJ,IAAI;MACH8B,IAAI,EAAER,UAAW;MACjBS,KAAK,EAAC,QAAQ;MACdE,WAAW,EAAEd,MAAM,CAACe,SAAU;MAC9BF,KAAK,EAAEb,MAAM,CAACa,KAAM;MACpBG,SAAS,EAAC,OAAO;MACjBC,UAAU,EAAC;IAAO,CACnB,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC,CAAC;AAEF,SAAS7B,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import { Rect, Group } from "@shopify/react-native-skia";
|
|
5
|
+
import { denormalize } from "../utils/coordinates";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export const RectRenderer = /*#__PURE__*/React.memo(function RectRenderer({
|
|
8
|
+
object,
|
|
9
|
+
canvasSize
|
|
10
|
+
}) {
|
|
11
|
+
const from = useMemo(() => denormalize(object.from, canvasSize), [object.from, canvasSize]);
|
|
12
|
+
const to = useMemo(() => denormalize(object.to, canvasSize), [object.to, canvasSize]);
|
|
13
|
+
const rect = useMemo(() => {
|
|
14
|
+
const x = Math.min(from.x, to.x);
|
|
15
|
+
const y = Math.min(from.y, to.y);
|
|
16
|
+
const width = Math.abs(to.x - from.x);
|
|
17
|
+
const height = Math.abs(to.y - from.y);
|
|
18
|
+
return {
|
|
19
|
+
x,
|
|
20
|
+
y,
|
|
21
|
+
width,
|
|
22
|
+
height
|
|
23
|
+
};
|
|
24
|
+
}, [from, to]);
|
|
25
|
+
const hasFill = object.backgroundColor && object.backgroundAlpha;
|
|
26
|
+
const fillColor = hasFill ? object.backgroundColor.replace(/[\d.]+\)$/, `${object.backgroundAlpha})`) : undefined;
|
|
27
|
+
return /*#__PURE__*/_jsxs(Group, {
|
|
28
|
+
children: [fillColor && /*#__PURE__*/_jsx(Rect, {
|
|
29
|
+
x: rect.x,
|
|
30
|
+
y: rect.y,
|
|
31
|
+
width: rect.width,
|
|
32
|
+
height: rect.height,
|
|
33
|
+
color: fillColor,
|
|
34
|
+
style: "fill"
|
|
35
|
+
}), /*#__PURE__*/_jsx(Rect, {
|
|
36
|
+
x: rect.x,
|
|
37
|
+
y: rect.y,
|
|
38
|
+
width: rect.width,
|
|
39
|
+
height: rect.height,
|
|
40
|
+
color: object.color,
|
|
41
|
+
style: "stroke",
|
|
42
|
+
strokeWidth: object.lineWidth
|
|
43
|
+
})]
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=RectRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","Rect","Group","denormalize","jsx","_jsx","jsxs","_jsxs","RectRenderer","memo","object","canvasSize","from","to","rect","x","Math","min","y","width","abs","height","hasFill","backgroundColor","backgroundAlpha","fillColor","replace","undefined","children","color","style","strokeWidth","lineWidth"],"sourceRoot":"../../../src","sources":["renderers/RectRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,KAAK,QAAQ,4BAA4B;AAExD,SAASC,WAAW,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOnD,OAAO,MAAMC,YAAY,gBAAGT,KAAK,CAACU,IAAI,CAAC,SAASD,YAAYA,CAAC;EAC3DE,MAAM;EACNC;AACiB,CAAC,EAAE;EACpB,MAAMC,IAAI,GAAGZ,OAAO,CAClB,MAAMG,WAAW,CAACO,MAAM,CAACE,IAAI,EAAED,UAAU,CAAC,EAC1C,CAACD,MAAM,CAACE,IAAI,EAAED,UAAU,CAC1B,CAAC;EACD,MAAME,EAAE,GAAGb,OAAO,CAChB,MAAMG,WAAW,CAACO,MAAM,CAACG,EAAE,EAAEF,UAAU,CAAC,EACxC,CAACD,MAAM,CAACG,EAAE,EAAEF,UAAU,CACxB,CAAC;EAED,MAAMG,IAAI,GAAGd,OAAO,CAAC,MAAM;IACzB,MAAMe,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACL,IAAI,CAACG,CAAC,EAAEF,EAAE,CAACE,CAAC,CAAC;IAChC,MAAMG,CAAC,GAAGF,IAAI,CAACC,GAAG,CAACL,IAAI,CAACM,CAAC,EAAEL,EAAE,CAACK,CAAC,CAAC;IAChC,MAAMC,KAAK,GAAGH,IAAI,CAACI,GAAG,CAACP,EAAE,CAACE,CAAC,GAAGH,IAAI,CAACG,CAAC,CAAC;IACrC,MAAMM,MAAM,GAAGL,IAAI,CAACI,GAAG,CAACP,EAAE,CAACK,CAAC,GAAGN,IAAI,CAACM,CAAC,CAAC;IACtC,OAAO;MAAEH,CAAC;MAAEG,CAAC;MAAEC,KAAK;MAAEE;IAAO,CAAC;EAChC,CAAC,EAAE,CAACT,IAAI,EAAEC,EAAE,CAAC,CAAC;EAEd,MAAMS,OAAO,GAAGZ,MAAM,CAACa,eAAe,IAAIb,MAAM,CAACc,eAAe;EAChE,MAAMC,SAAS,GAAGH,OAAO,GACrBZ,MAAM,CAACa,eAAe,CAAEG,OAAO,CAAC,WAAW,EAAE,GAAGhB,MAAM,CAACc,eAAe,GAAG,CAAC,GAC1EG,SAAS;EAEb,oBACEpB,KAAA,CAACL,KAAK;IAAA0B,QAAA,GACHH,SAAS,iBACRpB,IAAA,CAACJ,IAAI;MACHc,CAAC,EAAED,IAAI,CAACC,CAAE;MACVG,CAAC,EAAEJ,IAAI,CAACI,CAAE;MACVC,KAAK,EAAEL,IAAI,CAACK,KAAM;MAClBE,MAAM,EAAEP,IAAI,CAACO,MAAO;MACpBQ,KAAK,EAAEJ,SAAU;MACjBK,KAAK,EAAC;IAAM,CACb,CACF,eACDzB,IAAA,CAACJ,IAAI;MACHc,CAAC,EAAED,IAAI,CAACC,CAAE;MACVG,CAAC,EAAEJ,IAAI,CAACI,CAAE;MACVC,KAAK,EAAEL,IAAI,CAACK,KAAM;MAClBE,MAAM,EAAEP,IAAI,CAACO,MAAO;MACpBQ,KAAK,EAAEnB,MAAM,CAACmB,KAAM;MACpBC,KAAK,EAAC,QAAQ;MACdC,WAAW,EAAErB,MAAM,CAACsB;IAAU,CAC/B,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC,CAAC","ignoreList":[]}
|