@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,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TextEditModal = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
const TextEditModal = exports.TextEditModal = /*#__PURE__*/_react.default.memo(function TextEditModal({
|
|
12
|
+
visible,
|
|
13
|
+
initialValue,
|
|
14
|
+
onSubmit,
|
|
15
|
+
onCancel
|
|
16
|
+
}) {
|
|
17
|
+
const [text, setText] = (0, _react.useState)(initialValue);
|
|
18
|
+
const handleSubmit = (0, _react.useCallback)(() => {
|
|
19
|
+
if (text.trim()) {
|
|
20
|
+
onSubmit(text.trim());
|
|
21
|
+
}
|
|
22
|
+
}, [text, onSubmit]);
|
|
23
|
+
|
|
24
|
+
// Reset text when modal becomes visible
|
|
25
|
+
_react.default.useEffect(() => {
|
|
26
|
+
if (visible) {
|
|
27
|
+
setText(initialValue);
|
|
28
|
+
}
|
|
29
|
+
}, [visible, initialValue]);
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
|
|
31
|
+
visible: visible,
|
|
32
|
+
transparent: true,
|
|
33
|
+
animationType: "fade",
|
|
34
|
+
onRequestClose: onCancel,
|
|
35
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.KeyboardAvoidingView, {
|
|
36
|
+
style: styles.overlay,
|
|
37
|
+
behavior: _reactNative.Platform.OS === "ios" ? "padding" : "height",
|
|
38
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
39
|
+
style: styles.dialog,
|
|
40
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
41
|
+
style: styles.title,
|
|
42
|
+
children: "Edit Text"
|
|
43
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
44
|
+
style: styles.input,
|
|
45
|
+
value: text,
|
|
46
|
+
onChangeText: setText,
|
|
47
|
+
placeholder: "Enter text...",
|
|
48
|
+
placeholderTextColor: "#999",
|
|
49
|
+
multiline: true,
|
|
50
|
+
autoFocus: true,
|
|
51
|
+
textAlignVertical: "top"
|
|
52
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
53
|
+
style: styles.buttons,
|
|
54
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
55
|
+
style: styles.cancelButton,
|
|
56
|
+
onPress: onCancel,
|
|
57
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
58
|
+
style: styles.cancelText,
|
|
59
|
+
children: "Cancel"
|
|
60
|
+
})
|
|
61
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
62
|
+
style: styles.submitButton,
|
|
63
|
+
onPress: handleSubmit,
|
|
64
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
65
|
+
style: styles.submitText,
|
|
66
|
+
children: "Done"
|
|
67
|
+
})
|
|
68
|
+
})]
|
|
69
|
+
})]
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
const styles = _reactNative.StyleSheet.create({
|
|
75
|
+
overlay: {
|
|
76
|
+
flex: 1,
|
|
77
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
|
78
|
+
justifyContent: "center",
|
|
79
|
+
alignItems: "center",
|
|
80
|
+
padding: 24
|
|
81
|
+
},
|
|
82
|
+
dialog: {
|
|
83
|
+
backgroundColor: "#2C2C2E",
|
|
84
|
+
borderRadius: 14,
|
|
85
|
+
padding: 20,
|
|
86
|
+
width: "100%",
|
|
87
|
+
maxWidth: 400
|
|
88
|
+
},
|
|
89
|
+
title: {
|
|
90
|
+
color: "#FFFFFF",
|
|
91
|
+
fontSize: 18,
|
|
92
|
+
fontWeight: "600",
|
|
93
|
+
marginBottom: 16,
|
|
94
|
+
textAlign: "center"
|
|
95
|
+
},
|
|
96
|
+
input: {
|
|
97
|
+
backgroundColor: "#1C1C1E",
|
|
98
|
+
borderRadius: 10,
|
|
99
|
+
padding: 12,
|
|
100
|
+
color: "#FFFFFF",
|
|
101
|
+
fontSize: 16,
|
|
102
|
+
minHeight: 100,
|
|
103
|
+
marginBottom: 16
|
|
104
|
+
},
|
|
105
|
+
buttons: {
|
|
106
|
+
flexDirection: "row",
|
|
107
|
+
gap: 12
|
|
108
|
+
},
|
|
109
|
+
cancelButton: {
|
|
110
|
+
flex: 1,
|
|
111
|
+
paddingVertical: 12,
|
|
112
|
+
borderRadius: 10,
|
|
113
|
+
backgroundColor: "#3A3A3C",
|
|
114
|
+
alignItems: "center"
|
|
115
|
+
},
|
|
116
|
+
cancelText: {
|
|
117
|
+
color: "#FFFFFF",
|
|
118
|
+
fontSize: 16
|
|
119
|
+
},
|
|
120
|
+
submitButton: {
|
|
121
|
+
flex: 1,
|
|
122
|
+
paddingVertical: 12,
|
|
123
|
+
borderRadius: 10,
|
|
124
|
+
backgroundColor: "#007AFF",
|
|
125
|
+
alignItems: "center"
|
|
126
|
+
},
|
|
127
|
+
submitText: {
|
|
128
|
+
color: "#FFFFFF",
|
|
129
|
+
fontSize: 16,
|
|
130
|
+
fontWeight: "600"
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=TextEditModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TextEditModal","exports","React","memo","visible","initialValue","onSubmit","onCancel","text","setText","useState","handleSubmit","useCallback","trim","useEffect","jsx","Modal","transparent","animationType","onRequestClose","children","KeyboardAvoidingView","style","styles","overlay","behavior","Platform","OS","jsxs","View","dialog","Text","title","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","multiline","autoFocus","textAlignVertical","buttons","TouchableOpacity","cancelButton","onPress","cancelText","submitButton","submitText","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","padding","borderRadius","width","maxWidth","color","fontSize","fontWeight","marginBottom","textAlign","minHeight","flexDirection","gap","paddingVertical"],"sourceRoot":"../../../src","sources":["components/TextEditModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Toolbar = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
const BUTTON_SIZE = 44;
|
|
12
|
+
const BUTTON_GAP = 4;
|
|
13
|
+
const TOOLBAR_HORIZONTAL_PADDING = 12;
|
|
14
|
+
const TOOLS = [{
|
|
15
|
+
type: "freehand",
|
|
16
|
+
label: "Pen",
|
|
17
|
+
icons: {
|
|
18
|
+
default: require("../assets/toolbar-icons/freehand.png"),
|
|
19
|
+
active: require("../assets/toolbar-icons/freehand-enabled.png")
|
|
20
|
+
}
|
|
21
|
+
}, {
|
|
22
|
+
type: "line",
|
|
23
|
+
label: "Line",
|
|
24
|
+
icons: {
|
|
25
|
+
default: require("../assets/toolbar-icons/line.png"),
|
|
26
|
+
active: require("../assets/toolbar-icons/line-enabled.png")
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
type: "arrow",
|
|
30
|
+
label: "Arrow",
|
|
31
|
+
icons: {
|
|
32
|
+
default: require("../assets/toolbar-icons/arrow.png"),
|
|
33
|
+
active: require("../assets/toolbar-icons/arrow-enabled.png")
|
|
34
|
+
}
|
|
35
|
+
}, {
|
|
36
|
+
type: "rectangle",
|
|
37
|
+
label: "Rect",
|
|
38
|
+
icons: {
|
|
39
|
+
default: require("../assets/toolbar-icons/rectangle.png"),
|
|
40
|
+
active: require("../assets/toolbar-icons/rectangle-enabled.png")
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
type: "circle",
|
|
44
|
+
label: "Circle",
|
|
45
|
+
icons: {
|
|
46
|
+
default: require("../assets/toolbar-icons/circle.png"),
|
|
47
|
+
active: require("../assets/toolbar-icons/circle-enabled.png")
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
type: "polygon",
|
|
51
|
+
label: "Polygon",
|
|
52
|
+
icons: {
|
|
53
|
+
default: require("../assets/toolbar-icons/polygon.png"),
|
|
54
|
+
active: require("../assets/toolbar-icons/polygon-enabled.png")
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
type: "measure",
|
|
58
|
+
label: "Measure",
|
|
59
|
+
icons: {
|
|
60
|
+
default: require("../assets/toolbar-icons/measure.png"),
|
|
61
|
+
active: require("../assets/toolbar-icons/measure-enabled.png")
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
type: "text",
|
|
65
|
+
label: "Text",
|
|
66
|
+
icons: {
|
|
67
|
+
default: require("../assets/toolbar-icons/text.png"),
|
|
68
|
+
active: require("../assets/toolbar-icons/text-enabled.png")
|
|
69
|
+
}
|
|
70
|
+
}];
|
|
71
|
+
const FULL_TOOLBAR_WIDTH = TOOLS.length * BUTTON_SIZE + BUTTON_SIZE * 2 +
|
|
72
|
+
// undo + reset
|
|
73
|
+
BUTTON_GAP * (TOOLS.length + 1) + TOOLBAR_HORIZONTAL_PADDING * 2;
|
|
74
|
+
const Toolbar = exports.Toolbar = /*#__PURE__*/_react.default.memo(function Toolbar({
|
|
75
|
+
currentTool,
|
|
76
|
+
onSelectTool,
|
|
77
|
+
onUndo,
|
|
78
|
+
canUndo,
|
|
79
|
+
isZoomed,
|
|
80
|
+
onResetZoom
|
|
81
|
+
}) {
|
|
82
|
+
const {
|
|
83
|
+
width
|
|
84
|
+
} = (0, _reactNative.useWindowDimensions)();
|
|
85
|
+
const availableWidth = Math.max(width - 24, BUTTON_SIZE * 4);
|
|
86
|
+
const shellWidth = Math.min(availableWidth, 560);
|
|
87
|
+
const shouldCenterContent = shellWidth >= FULL_TOOLBAR_WIDTH;
|
|
88
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
89
|
+
style: styles.container,
|
|
90
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
91
|
+
style: [styles.shell, {
|
|
92
|
+
width: shellWidth
|
|
93
|
+
}],
|
|
94
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
|
|
95
|
+
horizontal: true,
|
|
96
|
+
bounces: false,
|
|
97
|
+
showsHorizontalScrollIndicator: false,
|
|
98
|
+
contentContainerStyle: [styles.scrollContent, shouldCenterContent && styles.scrollContentCentered],
|
|
99
|
+
children: [TOOLS.map(tool => /*#__PURE__*/(0, _jsxRuntime.jsx)(ToolButton, {
|
|
100
|
+
tool: tool,
|
|
101
|
+
isActive: currentTool === tool.type,
|
|
102
|
+
onPress: onSelectTool
|
|
103
|
+
}, tool.type)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
104
|
+
accessibilityLabel: "Undo",
|
|
105
|
+
style: [styles.button, !canUndo && styles.buttonDisabled],
|
|
106
|
+
onPress: onUndo,
|
|
107
|
+
disabled: !canUndo,
|
|
108
|
+
activeOpacity: 0.7,
|
|
109
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
110
|
+
style: [styles.undoIcon, !canUndo && styles.iconDisabled],
|
|
111
|
+
children: "\u21A9"
|
|
112
|
+
})
|
|
113
|
+
}), isZoomed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
114
|
+
accessibilityLabel: "Reset zoom",
|
|
115
|
+
style: styles.button,
|
|
116
|
+
onPress: onResetZoom,
|
|
117
|
+
activeOpacity: 0.7,
|
|
118
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
119
|
+
style: styles.undoIcon,
|
|
120
|
+
children: "\u2299"
|
|
121
|
+
})
|
|
122
|
+
})]
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
const ToolButton = /*#__PURE__*/_react.default.memo(function ToolButton({
|
|
128
|
+
tool,
|
|
129
|
+
isActive,
|
|
130
|
+
onPress
|
|
131
|
+
}) {
|
|
132
|
+
const handlePress = (0, _react.useCallback)(() => {
|
|
133
|
+
onPress(tool.type);
|
|
134
|
+
}, [onPress, tool.type]);
|
|
135
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
136
|
+
accessibilityLabel: tool.label,
|
|
137
|
+
style: styles.button,
|
|
138
|
+
onPress: handlePress,
|
|
139
|
+
activeOpacity: 0.7,
|
|
140
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
141
|
+
source: isActive ? tool.icons.active : tool.icons.default,
|
|
142
|
+
style: [styles.iconImage, isActive && styles.iconImageActive],
|
|
143
|
+
resizeMode: "contain"
|
|
144
|
+
})
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
const styles = _reactNative.StyleSheet.create({
|
|
148
|
+
container: {
|
|
149
|
+
width: "100%",
|
|
150
|
+
alignItems: "center",
|
|
151
|
+
paddingHorizontal: 12,
|
|
152
|
+
paddingVertical: 8
|
|
153
|
+
},
|
|
154
|
+
shell: {
|
|
155
|
+
backgroundColor: "rgba(0, 0, 0, 0.88)",
|
|
156
|
+
borderRadius: 18,
|
|
157
|
+
borderWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
158
|
+
borderColor: "rgba(255, 255, 255, 0.16)"
|
|
159
|
+
},
|
|
160
|
+
scrollContent: {
|
|
161
|
+
alignItems: "center",
|
|
162
|
+
flexGrow: 1,
|
|
163
|
+
paddingHorizontal: TOOLBAR_HORIZONTAL_PADDING,
|
|
164
|
+
paddingVertical: 10,
|
|
165
|
+
gap: BUTTON_GAP
|
|
166
|
+
},
|
|
167
|
+
scrollContentCentered: {
|
|
168
|
+
justifyContent: "center"
|
|
169
|
+
},
|
|
170
|
+
button: {
|
|
171
|
+
width: BUTTON_SIZE,
|
|
172
|
+
height: BUTTON_SIZE,
|
|
173
|
+
borderRadius: BUTTON_SIZE / 2,
|
|
174
|
+
justifyContent: "center",
|
|
175
|
+
alignItems: "center",
|
|
176
|
+
backgroundColor: "transparent"
|
|
177
|
+
},
|
|
178
|
+
buttonDisabled: {
|
|
179
|
+
opacity: 0.4
|
|
180
|
+
},
|
|
181
|
+
iconImage: {
|
|
182
|
+
width: 26,
|
|
183
|
+
height: 26
|
|
184
|
+
},
|
|
185
|
+
iconImageActive: {
|
|
186
|
+
width: 36,
|
|
187
|
+
height: 36
|
|
188
|
+
},
|
|
189
|
+
iconDisabled: {
|
|
190
|
+
color: "#666666"
|
|
191
|
+
},
|
|
192
|
+
undoIcon: {
|
|
193
|
+
fontSize: 24,
|
|
194
|
+
lineHeight: 24,
|
|
195
|
+
color: "#FFFFFF"
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BUTTON_SIZE","BUTTON_GAP","TOOLBAR_HORIZONTAL_PADDING","TOOLS","type","label","icons","active","FULL_TOOLBAR_WIDTH","length","Toolbar","exports","React","memo","currentTool","onSelectTool","onUndo","canUndo","isZoomed","onResetZoom","width","useWindowDimensions","availableWidth","Math","max","shellWidth","min","shouldCenterContent","jsx","View","style","styles","container","children","shell","jsxs","ScrollView","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","scrollContent","scrollContentCentered","map","tool","ToolButton","isActive","onPress","TouchableOpacity","accessibilityLabel","button","buttonDisabled","disabled","activeOpacity","Text","undoIcon","iconDisabled","handlePress","useCallback","Image","source","iconImage","iconImageActive","resizeMode","StyleSheet","create","alignItems","paddingHorizontal","paddingVertical","backgroundColor","borderRadius","borderWidth","hairlineWidth","borderColor","flexGrow","gap","justifyContent","height","opacity","color","fontSize","lineHeight"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ZoomBadge = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
const AnimatedTouchable = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.TouchableOpacity);
|
|
14
|
+
const HINT_DURATION = 3000;
|
|
15
|
+
const FADE_DURATION = 400;
|
|
16
|
+
const ZoomBadge = exports.ZoomBadge = /*#__PURE__*/_react.default.memo(function ZoomBadge({
|
|
17
|
+
scale,
|
|
18
|
+
onPress
|
|
19
|
+
}) {
|
|
20
|
+
const isZoomed = (0, _reactNativeReanimated.useDerivedValue)(() => scale.value > 1.02);
|
|
21
|
+
const [hintExpired, setHintExpired] = _react.default.useState(false);
|
|
22
|
+
const [mounted, setMounted] = _react.default.useState(true);
|
|
23
|
+
const [zoomed, setZoomed] = _react.default.useState(false);
|
|
24
|
+
|
|
25
|
+
// Start fade-out after HINT_DURATION, then unmount after animation
|
|
26
|
+
_react.default.useEffect(() => {
|
|
27
|
+
const fadeTimer = setTimeout(() => setHintExpired(true), HINT_DURATION);
|
|
28
|
+
const unmountTimer = setTimeout(() => setMounted(false), HINT_DURATION + FADE_DURATION);
|
|
29
|
+
return () => {
|
|
30
|
+
clearTimeout(fadeTimer);
|
|
31
|
+
clearTimeout(unmountTimer);
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
|
|
35
|
+
// Track zoom state on JS thread
|
|
36
|
+
_react.default.useEffect(() => {
|
|
37
|
+
const id = setInterval(() => {
|
|
38
|
+
setZoomed(isZoomed.value);
|
|
39
|
+
}, 100);
|
|
40
|
+
return () => clearInterval(id);
|
|
41
|
+
}, [isZoomed]);
|
|
42
|
+
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
43
|
+
const show = isZoomed.value || !hintExpired;
|
|
44
|
+
return {
|
|
45
|
+
opacity: (0, _reactNativeReanimated.withTiming)(show ? 1 : 0, {
|
|
46
|
+
duration: FADE_DURATION
|
|
47
|
+
}),
|
|
48
|
+
transform: [{
|
|
49
|
+
scale: (0, _reactNativeReanimated.withTiming)(show ? 1 : 0.85, {
|
|
50
|
+
duration: FADE_DURATION
|
|
51
|
+
})
|
|
52
|
+
}]
|
|
53
|
+
};
|
|
54
|
+
}, [hintExpired]);
|
|
55
|
+
const zoomText = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
56
|
+
const s = Math.round(scale.value * 10) / 10;
|
|
57
|
+
return `${s}x`;
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// Keep mounted while hint is visible OR zoomed
|
|
61
|
+
if (!mounted && !zoomed) return null;
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedTouchable, {
|
|
63
|
+
style: [styles.badge, animatedStyle],
|
|
64
|
+
onPress: onPress,
|
|
65
|
+
activeOpacity: 0.7,
|
|
66
|
+
children: zoomed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomLabel, {
|
|
67
|
+
zoomText: zoomText
|
|
68
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
69
|
+
style: styles.iconRow,
|
|
70
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(MagnifyIcon, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
71
|
+
style: styles.hintText,
|
|
72
|
+
children: "Pinch to zoom"
|
|
73
|
+
})]
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
function ZoomLabel({
|
|
78
|
+
zoomText
|
|
79
|
+
}) {
|
|
80
|
+
const [text, setText] = _react.default.useState("1x");
|
|
81
|
+
_react.default.useEffect(() => {
|
|
82
|
+
const id = setInterval(() => {
|
|
83
|
+
const val = zoomText.value;
|
|
84
|
+
setText(prev => prev !== val ? val : prev);
|
|
85
|
+
}, 100);
|
|
86
|
+
return () => clearInterval(id);
|
|
87
|
+
}, [zoomText]);
|
|
88
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
89
|
+
style: styles.text,
|
|
90
|
+
children: text
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function MagnifyIcon() {
|
|
94
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
95
|
+
style: styles.magnifyIcon,
|
|
96
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
97
|
+
style: styles.lens
|
|
98
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
99
|
+
style: styles.handle
|
|
100
|
+
})]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
const styles = _reactNative.StyleSheet.create({
|
|
104
|
+
badge: {
|
|
105
|
+
position: "absolute",
|
|
106
|
+
top: 12,
|
|
107
|
+
alignSelf: "center",
|
|
108
|
+
backgroundColor: "rgba(0, 0, 0, 0.55)",
|
|
109
|
+
borderRadius: 14,
|
|
110
|
+
paddingHorizontal: 10,
|
|
111
|
+
paddingVertical: 5,
|
|
112
|
+
borderWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
113
|
+
borderColor: "rgba(255, 255, 255, 0.25)",
|
|
114
|
+
flexDirection: "row",
|
|
115
|
+
alignItems: "center"
|
|
116
|
+
},
|
|
117
|
+
text: {
|
|
118
|
+
color: "#FFFFFF",
|
|
119
|
+
fontSize: 13,
|
|
120
|
+
fontWeight: "600",
|
|
121
|
+
fontVariant: ["tabular-nums"]
|
|
122
|
+
},
|
|
123
|
+
iconRow: {
|
|
124
|
+
flexDirection: "row",
|
|
125
|
+
alignItems: "center",
|
|
126
|
+
gap: 5
|
|
127
|
+
},
|
|
128
|
+
hintText: {
|
|
129
|
+
color: "rgba(255, 255, 255, 0.9)",
|
|
130
|
+
fontSize: 12,
|
|
131
|
+
fontWeight: "500"
|
|
132
|
+
},
|
|
133
|
+
magnifyIcon: {
|
|
134
|
+
width: 14,
|
|
135
|
+
height: 14,
|
|
136
|
+
position: "relative"
|
|
137
|
+
},
|
|
138
|
+
lens: {
|
|
139
|
+
width: 9,
|
|
140
|
+
height: 9,
|
|
141
|
+
borderRadius: 5,
|
|
142
|
+
borderWidth: 1.5,
|
|
143
|
+
borderColor: "#FFFFFF",
|
|
144
|
+
position: "absolute",
|
|
145
|
+
top: 0,
|
|
146
|
+
left: 0
|
|
147
|
+
},
|
|
148
|
+
handle: {
|
|
149
|
+
width: 5,
|
|
150
|
+
height: 1.5,
|
|
151
|
+
backgroundColor: "#FFFFFF",
|
|
152
|
+
borderRadius: 1,
|
|
153
|
+
position: "absolute",
|
|
154
|
+
bottom: 1.5,
|
|
155
|
+
right: 0,
|
|
156
|
+
transform: [{
|
|
157
|
+
rotate: "45deg"
|
|
158
|
+
}]
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=ZoomBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedTouchable","Animated","createAnimatedComponent","TouchableOpacity","HINT_DURATION","FADE_DURATION","ZoomBadge","exports","React","memo","scale","onPress","isZoomed","useDerivedValue","value","hintExpired","setHintExpired","useState","mounted","setMounted","zoomed","setZoomed","useEffect","fadeTimer","setTimeout","unmountTimer","clearTimeout","id","setInterval","clearInterval","animatedStyle","useAnimatedStyle","show","opacity","withTiming","duration","transform","zoomText","s","Math","round","jsx","style","styles","badge","activeOpacity","children","ZoomLabel","jsxs","View","iconRow","MagnifyIcon","Text","hintText","text","setText","val","prev","magnifyIcon","lens","handle","StyleSheet","create","position","top","alignSelf","backgroundColor","borderRadius","paddingHorizontal","paddingVertical","borderWidth","hairlineWidth","borderColor","flexDirection","alignItems","color","fontSize","fontWeight","fontVariant","gap","width","height","left","bottom","right","rotate"],"sourceRoot":"../../../src","sources":["components/ZoomBadge.tsx"],"mappings":"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","ignoreList":[]}
|