@archireport/react-native-svg-draw 1.0.2 → 1.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/lib/commonjs/components/DrawCore/ColorSlider.js +23 -16
- package/lib/commonjs/components/DrawCore/ColorSlider.js.map +1 -1
- package/lib/commonjs/components/DrawCore/CurrentAnimatedItem.js +60 -9
- package/lib/commonjs/components/DrawCore/CurrentAnimatedItem.js.map +1 -1
- package/lib/commonjs/components/DrawCore/CurrentAnimatedText.js +5 -4
- package/lib/commonjs/components/DrawCore/CurrentAnimatedText.js.map +1 -1
- package/lib/commonjs/components/DrawCore/DrawPad.js +11 -10
- package/lib/commonjs/components/DrawCore/DrawPad.js.map +1 -1
- package/lib/commonjs/components/DrawCore/Item.js +10 -10
- package/lib/commonjs/components/DrawCore/Item.js.map +1 -1
- package/lib/commonjs/components/DrawCore/StrokeSlider.js +21 -14
- package/lib/commonjs/components/DrawCore/StrokeSlider.js.map +1 -1
- package/lib/commonjs/components/DrawCore/index.js +156 -63
- package/lib/commonjs/components/DrawCore/index.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/ArrowSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/ArrowSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/CancelSvg.js +35 -0
- package/lib/commonjs/components/DrawWithOptions/CancelSvg.js.map +1 -0
- package/lib/commonjs/components/DrawWithOptions/CircleSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/CircleSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/CloseSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/CloseSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/DoubleHeadSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/DoubleHeadSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/PenSvg.js +27 -0
- package/lib/commonjs/components/DrawWithOptions/PenSvg.js.map +1 -0
- package/lib/commonjs/components/DrawWithOptions/SendSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/SendSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/SquareSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/SquareSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/TextSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/TextSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/ThrashSvg.js +1 -1
- package/lib/commonjs/components/DrawWithOptions/ThrashSvg.js.map +1 -1
- package/lib/commonjs/components/DrawWithOptions/index.js +39 -8
- package/lib/commonjs/components/DrawWithOptions/index.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.d.js +4 -0
- package/lib/commonjs/types.d.js.map +1 -1
- package/lib/module/components/DrawCore/ColorSlider.js +24 -17
- package/lib/module/components/DrawCore/ColorSlider.js.map +1 -1
- package/lib/module/components/DrawCore/CurrentAnimatedItem.js +57 -10
- package/lib/module/components/DrawCore/CurrentAnimatedItem.js.map +1 -1
- package/lib/module/components/DrawCore/CurrentAnimatedText.js +5 -4
- package/lib/module/components/DrawCore/CurrentAnimatedText.js.map +1 -1
- package/lib/module/components/DrawCore/DrawPad.js +11 -10
- package/lib/module/components/DrawCore/DrawPad.js.map +1 -1
- package/lib/module/components/DrawCore/Item.js +9 -11
- package/lib/module/components/DrawCore/Item.js.map +1 -1
- package/lib/module/components/DrawCore/StrokeSlider.js +21 -14
- package/lib/module/components/DrawCore/StrokeSlider.js.map +1 -1
- package/lib/module/components/DrawCore/index.js +157 -64
- package/lib/module/components/DrawCore/index.js.map +1 -1
- package/lib/module/components/DrawWithOptions/ArrowSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/ArrowSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/CancelSvg.js +22 -0
- package/lib/module/components/DrawWithOptions/CancelSvg.js.map +1 -0
- package/lib/module/components/DrawWithOptions/CircleSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/CircleSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/CloseSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/CloseSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/DoubleHeadSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/DoubleHeadSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/PenSvg.js +14 -0
- package/lib/module/components/DrawWithOptions/PenSvg.js.map +1 -0
- package/lib/module/components/DrawWithOptions/SendSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/SendSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/SquareSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/SquareSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/TextSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/TextSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/ThrashSvg.js +1 -1
- package/lib/module/components/DrawWithOptions/ThrashSvg.js.map +1 -1
- package/lib/module/components/DrawWithOptions/index.js +37 -8
- package/lib/module/components/DrawWithOptions/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.d.js +1 -1
- package/lib/module/types.d.js.map +1 -1
- package/lib/typescript/components/DrawCore/ColorSlider.d.ts +2 -1
- package/lib/typescript/components/DrawCore/CurrentAnimatedItem.d.ts +3 -1
- package/lib/typescript/components/DrawCore/CurrentAnimatedText.d.ts +1 -0
- package/lib/typescript/components/DrawCore/DrawPad.d.ts +1 -0
- package/lib/typescript/components/DrawCore/Item.d.ts +1 -0
- package/lib/typescript/components/DrawCore/StrokeSlider.d.ts +3 -1
- package/lib/typescript/components/DrawCore/index.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/ArrowSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/CancelSvg.d.ts +3 -0
- package/lib/typescript/components/DrawWithOptions/CircleSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/CloseSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/DoubleHeadSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/PenSvg.d.ts +3 -0
- package/lib/typescript/components/DrawWithOptions/SendSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/SquareSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/TextSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/ThrashSvg.d.ts +1 -0
- package/lib/typescript/components/DrawWithOptions/index.d.ts +3 -1
- package/package.json +5 -5
- package/src/components/DrawCore/ColorSlider.tsx +11 -6
- package/src/components/DrawCore/CurrentAnimatedItem.tsx +59 -8
- package/src/components/DrawCore/DrawPad.tsx +2 -2
- package/src/components/DrawCore/Item.tsx +3 -11
- package/src/components/DrawCore/StrokeSlider.tsx +5 -1
- package/src/components/DrawCore/index.tsx +1105 -970
- package/src/components/DrawWithOptions/CancelSvg.tsx +23 -0
- package/src/components/DrawWithOptions/PenSvg.tsx +14 -0
- package/src/components/DrawWithOptions/index.tsx +38 -1
- package/src/types.d.ts +4 -1
|
@@ -13,7 +13,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function _extends() { _extends = Object.assign
|
|
16
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
17
|
|
|
18
18
|
function SendSvg(props) {
|
|
19
19
|
return /*#__PURE__*/React.createElement(_reactNativeSvg.default, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["SendSvg","props"],"sources":["SendSvg.tsx"],"sourcesContent":["import * as React from 'react';\nimport Svg, { SvgProps, Path, G } from 'react-native-svg';\n\nfunction SendSvg(props: SvgProps) {\n return (\n <Svg viewBox=\"0 0 12 19\" {...props}>\n <G>\n <Path d=\"M8.114,9.721 L1.057,16.778 C0.537,17.298 0.537,18.143 1.057,18.664 C1.577,19.184 2.422,19.184 2.943,18.664 L10.943,10.664 C11.463,10.144 11.463,9.299 10.943,8.778 L2.943,0.778 C2.423,0.258 1.578,0.258 1.057,0.778 C0.537,1.298 0.537,2.143 1.057,2.664 L8.114,9.721 Z\" />\n </G>\n </Svg>\n );\n}\n\nexport default SendSvg;\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEA,SAASA,OAAT,CAAiBC,KAAjB,EAAkC;EAChC,oBACE,oBAAC,uBAAD;IAAK,OAAO,EAAC;EAAb,GAA6BA,KAA7B,gBACE,oBAAC,iBAAD,qBACE,oBAAC,oBAAD;IAAM,CAAC,EAAC;EAAR,EADF,CADF,CADF;AAOD;;eAEcD,O"}
|
|
@@ -15,7 +15,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
-
function _extends() { _extends = Object.assign
|
|
18
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
19
|
|
|
20
20
|
function SquareSvg(props) {
|
|
21
21
|
return /*#__PURE__*/_react.default.createElement(_reactNativeSvg.default, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["SquareSvg","props"],"sources":["SquareSvg.tsx"],"sourcesContent":["import React from 'react';\nimport Svg, { Defs, Path, G, Mask, Use, SvgProps } from 'react-native-svg';\n\nexport default function SquareSvg(props: SvgProps) {\n return (\n <Svg viewBox=\"0 0 28 28\" {...props}>\n <Defs>\n <Path\n id=\"prefix__a\"\n d=\"M5.833 4.667c-.644 0-1.166.522-1.166 1.166v16.334c0 .644.522 1.166 1.166 1.166h16.334c.644 0 1.166-.522 1.166-1.166V5.833c0-.644-.522-1.166-1.166-1.166H5.833zm0-2.334h16.334a3.5 3.5 0 013.5 3.5v16.334a3.5 3.5 0 01-3.5 3.5H5.833a3.5 3.5 0 01-3.5-3.5V5.833a3.5 3.5 0 013.5-3.5z\"\n />\n </Defs>\n <G fill=\"none\" fillRule=\"evenodd\">\n <Mask id=\"prefix__b\" fill=\"#fff\">\n <Use xlinkHref=\"#prefix__a\" />\n </Mask>\n <Use fill=\"#000\" fillRule=\"nonzero\" xlinkHref=\"#prefix__a\" />\n <G fill=\"#FFF\" mask=\"url(#prefix__b)\">\n <Path d=\"M0 0h28v28H0z\" />\n </G>\n </G>\n </Svg>\n );\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;AAEe,SAASA,SAAT,CAAmBC,KAAnB,EAAoC;EACjD,oBACE,6BAAC,uBAAD;IAAK,OAAO,EAAC;EAAb,GAA6BA,KAA7B,gBACE,6BAAC,oBAAD,qBACE,6BAAC,oBAAD;IACE,EAAE,EAAC,WADL;IAEE,CAAC,EAAC;EAFJ,EADF,CADF,eAOE,6BAAC,iBAAD;IAAG,IAAI,EAAC,MAAR;IAAe,QAAQ,EAAC;EAAxB,gBACE,6BAAC,oBAAD;IAAM,EAAE,EAAC,WAAT;IAAqB,IAAI,EAAC;EAA1B,gBACE,6BAAC,mBAAD;IAAK,SAAS,EAAC;EAAf,EADF,CADF,eAIE,6BAAC,mBAAD;IAAK,IAAI,EAAC,MAAV;IAAiB,QAAQ,EAAC,SAA1B;IAAoC,SAAS,EAAC;EAA9C,EAJF,eAKE,6BAAC,iBAAD;IAAG,IAAI,EAAC,MAAR;IAAe,IAAI,EAAC;EAApB,gBACE,6BAAC,oBAAD;IAAM,CAAC,EAAC;EAAR,EADF,CALF,CAPF,CADF;AAmBD"}
|
|
@@ -13,7 +13,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function _extends() { _extends = Object.assign
|
|
16
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
17
|
|
|
18
18
|
function SvgComponent(props) {
|
|
19
19
|
return /*#__PURE__*/React.createElement(_reactNativeSvg.default, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["SvgComponent","props"],"sources":["TextSvg.tsx"],"sourcesContent":["import * as React from 'react';\nimport Svg, { SvgProps, Defs, Path, G, Mask, Use } from 'react-native-svg';\n\nfunction SvgComponent(props: SvgProps) {\n return (\n <Svg viewBox=\"0 0 28 28\" {...props}>\n <Defs>\n <Path\n id=\"prefix__a\"\n d=\"M23.333 3.5c.645 0 1.167.522 1.167 1.167v3.5a1.166 1.166 0 01-2.333 0V5.833h-7.001v16.333H17.5c.601 0 1.096.456 1.16 1.04l.007.127c0 .645-.523 1.167-1.167 1.167l-3.482-.001L14 24.5h-3.5a1.167 1.167 0 010-2.333l2.333-.001V5.833h-7v2.334a1.166 1.166 0 11-2.333 0v-3.5c0-.645.522-1.167 1.167-1.167z\"\n />\n </Defs>\n <G fill=\"none\" fillRule=\"evenodd\">\n <Mask id=\"prefix__b\" fill=\"#fff\">\n <Use xlinkHref=\"#prefix__a\" />\n </Mask>\n <Use fill=\"#000\" fillRule=\"nonzero\" xlinkHref=\"#prefix__a\" />\n <G fill=\"#FFF\" mask=\"url(#prefix__b)\">\n <Path d=\"M0 0h28v28H0z\" />\n </G>\n </G>\n </Svg>\n );\n}\n\nexport default SvgComponent;\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEA,SAASA,YAAT,CAAsBC,KAAtB,EAAuC;EACrC,oBACE,oBAAC,uBAAD;IAAK,OAAO,EAAC;EAAb,GAA6BA,KAA7B,gBACE,oBAAC,oBAAD,qBACE,oBAAC,oBAAD;IACE,EAAE,EAAC,WADL;IAEE,CAAC,EAAC;EAFJ,EADF,CADF,eAOE,oBAAC,iBAAD;IAAG,IAAI,EAAC,MAAR;IAAe,QAAQ,EAAC;EAAxB,gBACE,oBAAC,oBAAD;IAAM,EAAE,EAAC,WAAT;IAAqB,IAAI,EAAC;EAA1B,gBACE,oBAAC,mBAAD;IAAK,SAAS,EAAC;EAAf,EADF,CADF,eAIE,oBAAC,mBAAD;IAAK,IAAI,EAAC,MAAV;IAAiB,QAAQ,EAAC,SAA1B;IAAoC,SAAS,EAAC;EAA9C,EAJF,eAKE,oBAAC,iBAAD;IAAG,IAAI,EAAC,MAAR;IAAe,IAAI,EAAC;EAApB,gBACE,oBAAC,oBAAD;IAAM,CAAC,EAAC;EAAR,EADF,CALF,CAPF,CADF;AAmBD;;eAEcD,Y"}
|
|
@@ -15,7 +15,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
-
function _extends() { _extends = Object.assign
|
|
18
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
19
|
|
|
20
20
|
function ThrashSvg(props) {
|
|
21
21
|
return /*#__PURE__*/_react.default.createElement(_reactNativeSvg.default, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ThrashSvg","props"],"sources":["ThrashSvg.tsx"],"sourcesContent":["import React from 'react';\nimport Svg, { SvgProps, Path } from 'react-native-svg';\n\nfunction ThrashSvg(props: SvgProps) {\n return (\n <Svg viewBox=\"0 0 28 29\" {...props}>\n <Path d=\"M14 0a3.5 3.5 0 013.5 3.5l-.001 1.166h4.668c.601 0 1.096.456 1.16 1.04l.006.127c0 .645-.522 1.167-1.166 1.167l-1.168-.001L21 22.167a3.5 3.5 0 01-3.308 3.494l-.192.006H5.833a3.5 3.5 0 01-3.5-3.5V6.999L1.167 7a1.166 1.166 0 01-1.16-1.04L0 5.833c0-.644.522-1.166 1.167-1.166l4.666-.001V3.5A3.5 3.5 0 019.141.005L9.333 0zM6.982 7l-2.316-.001v15.168c0 .601.456 1.096 1.04 1.16l.127.006H17.5c.644 0 1.167-.522 1.167-1.166l-.001-15.168h-2.315L16.333 7h-.018l-9.298-.001L7 7h-.018zm2.351 3.5c.645 0 1.167.522 1.167 1.167v7a1.166 1.166 0 01-2.333 0v-7c0-.645.522-1.167 1.166-1.167zm4.667 0c.644 0 1.167.522 1.167 1.167v7a1.167 1.167 0 01-2.334 0v-7c0-.645.523-1.167 1.167-1.167zm0-8.167H9.333c-.644 0-1.166.523-1.166 1.167l-.001 1.166h7V3.5c0-.601-.454-1.096-1.039-1.16L14 2.333z\" />\n </Svg>\n );\n}\n\nexport default ThrashSvg;\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;AAEA,SAASA,SAAT,CAAmBC,KAAnB,EAAoC;EAClC,oBACE,6BAAC,uBAAD;IAAK,OAAO,EAAC;EAAb,GAA6BA,KAA7B,gBACE,6BAAC,oBAAD;IAAM,CAAC,EAAC;EAAR,EADF,CADF;AAKD;;eAEcD,S"}
|
|
@@ -11,6 +11,8 @@ var _reactNative = require("react-native");
|
|
|
11
11
|
|
|
12
12
|
var _DrawCore = _interopRequireDefault(require("../DrawCore"));
|
|
13
13
|
|
|
14
|
+
var _PenSvg = _interopRequireDefault(require("./PenSvg"));
|
|
15
|
+
|
|
14
16
|
var _DoubleHeadSvg = _interopRequireDefault(require("./DoubleHeadSvg"));
|
|
15
17
|
|
|
16
18
|
var _CircleSvg = _interopRequireDefault(require("./CircleSvg"));
|
|
@@ -27,6 +29,8 @@ var _ThrashSvg = _interopRequireDefault(require("./ThrashSvg"));
|
|
|
27
29
|
|
|
28
30
|
var _SendSvg = _interopRequireDefault(require("./SendSvg"));
|
|
29
31
|
|
|
32
|
+
var _CancelSvg = _interopRequireDefault(require("./CancelSvg"));
|
|
33
|
+
|
|
30
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
35
|
|
|
32
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -76,15 +80,18 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
76
80
|
}
|
|
77
81
|
});
|
|
78
82
|
|
|
79
|
-
function DrawWithOptions({
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
function DrawWithOptions(_ref) {
|
|
84
|
+
let {
|
|
85
|
+
close,
|
|
86
|
+
takeSnapshot,
|
|
87
|
+
linearGradient,
|
|
88
|
+
image,
|
|
89
|
+
defaultDrawingMode = 'ellipse'
|
|
90
|
+
} = _ref;
|
|
85
91
|
const drawRef = (0, _react.useRef)(null);
|
|
86
|
-
const [drawingMode, setDrawingMode] = (0, _react.useState)(
|
|
92
|
+
const [drawingMode, setDrawingMode] = (0, _react.useState)(defaultDrawingMode);
|
|
87
93
|
const [selectedItem, setSelectedItem] = (0, _react.useState)(false);
|
|
94
|
+
const [cancelEnabled, setCancelEnabled] = (0, _react.useState)(false);
|
|
88
95
|
const onPressSend = (0, _react.useCallback)(() => {
|
|
89
96
|
if (drawRef.current) {
|
|
90
97
|
takeSnapshot === null || takeSnapshot === void 0 ? void 0 : takeSnapshot(drawRef.current.takeSnapshot());
|
|
@@ -123,6 +130,17 @@ function DrawWithOptions({
|
|
|
123
130
|
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
124
131
|
style: styles.drawOptions
|
|
125
132
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
|
|
133
|
+
style: styles.option,
|
|
134
|
+
onPress: () => {
|
|
135
|
+
setDrawingMode('pen');
|
|
136
|
+
}
|
|
137
|
+
}, /*#__PURE__*/_react.default.createElement(_PenSvg.default, {
|
|
138
|
+
height: 23,
|
|
139
|
+
width: 22,
|
|
140
|
+
stroke: "#ffffff",
|
|
141
|
+
strokeWidth: "2",
|
|
142
|
+
opacity: drawingMode === 'pen' ? 1 : 0.5
|
|
143
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
|
|
126
144
|
style: styles.option,
|
|
127
145
|
onPress: () => {
|
|
128
146
|
setDrawingMode('doubleHead');
|
|
@@ -177,7 +195,8 @@ function DrawWithOptions({
|
|
|
177
195
|
drawingMode: drawingMode,
|
|
178
196
|
image: image,
|
|
179
197
|
linearGradient: linearGradient,
|
|
180
|
-
onSelectionChange: setSelectedItem
|
|
198
|
+
onSelectionChange: setSelectedItem,
|
|
199
|
+
onCancelChange: setCancelEnabled
|
|
181
200
|
}), showToolbar ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
182
201
|
style: styles.bottomToolBar
|
|
183
202
|
}, selectedItem ? /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
|
|
@@ -191,6 +210,18 @@ function DrawWithOptions({
|
|
|
191
210
|
width: 28,
|
|
192
211
|
height: 28,
|
|
193
212
|
fill: "white"
|
|
213
|
+
})) : null, cancelEnabled ? /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
|
|
214
|
+
style: styles.option,
|
|
215
|
+
onPress: () => {
|
|
216
|
+
var _drawRef$current2;
|
|
217
|
+
|
|
218
|
+
(_drawRef$current2 = drawRef.current) === null || _drawRef$current2 === void 0 ? void 0 : _drawRef$current2.cancelLastAction();
|
|
219
|
+
}
|
|
220
|
+
}, /*#__PURE__*/_react.default.createElement(_CancelSvg.default, {
|
|
221
|
+
width: 27,
|
|
222
|
+
height: 27,
|
|
223
|
+
stroke: "#ffffff",
|
|
224
|
+
strokeWidth: 2
|
|
194
225
|
})) : null, /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
|
|
195
226
|
style: styles.sendButton,
|
|
196
227
|
onPress: onPressSend
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["styles","StyleSheet","create","container","flex","backgroundColor","option","width","height","justifyContent","alignItems","marginHorizontal","toolbar","flexDirection","paddingBottom","paddingTop","paddingHorizontal","drawOptions","sendButton","borderRadius","marginLeft","bottomToolBar","DrawWithOptions","close","takeSnapshot","linearGradient","image","drawRef","drawingMode","setDrawingMode","selectedItem","setSelectedItem","onPressSend","current","showToolbar","setShowToolbar","sudDidHide","Keyboard","addListener","sudDidShow","event","endCoordinates","remove","deleteSelectedItem"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n Pressable,\n View,\n StyleSheet,\n ViewProps,\n ImageRequireSource,\n ImageURISource,\n Keyboard,\n} from 'react-native';\nimport DrawCore from '../DrawCore';\nimport type { DrawItemType, DrawCoreProps } from '../../types';\nimport DoubleHeadSvg from './DoubleHeadSvg';\nimport CircleSvg from './CircleSvg';\nimport SquareSvg from './SquareSvg';\nimport ArrowSvg from './ArrowSvg';\nimport TextSvg from './TextSvg';\nimport CloseSvg from './CloseSvg';\nimport ThrashSvg from './ThrashSvg';\nimport SendSvg from './SendSvg';\n\nconst styles = StyleSheet.create({\n container: { flex: 1, backgroundColor: '#000000' },\n option: {\n width: 30,\n height: 30,\n justifyContent: 'center',\n alignItems: 'center',\n marginHorizontal: 4,\n },\n toolbar: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: 30,\n paddingTop: 15,\n paddingHorizontal: 15,\n },\n drawOptions: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n sendButton: {\n backgroundColor: '#3a6cff',\n width: 48,\n height: 48,\n borderRadius: 24,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 20,\n },\n bottomToolBar: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingBottom: 30,\n paddingTop: 30,\n paddingHorizontal: 20,\n },\n});\n\nexport default function DrawWithOptions({\n close,\n takeSnapshot,\n linearGradient,\n image,\n}: {\n close?: () => void;\n takeSnapshot?: (snap: Promise<string | undefined>) => void;\n linearGradient: React.ComponentType<{ colors: any[] } & ViewProps>;\n image?: ImageRequireSource | ImageURISource;\n}) {\n const drawRef = useRef<DrawCoreProps>(null);\n\n const [drawingMode, setDrawingMode] = useState<DrawItemType>('ellipse');\n\n const [selectedItem, setSelectedItem] = useState(false);\n\n const onPressSend = useCallback(() => {\n if (drawRef.current) {\n takeSnapshot?.(drawRef.current.takeSnapshot());\n }\n }, [takeSnapshot]);\n\n const [showToolbar, setShowToolbar] = useState(true);\n\n useEffect(() => {\n const sudDidHide = Keyboard.addListener('keyboardDidHide', () => {\n setShowToolbar(true);\n });\n\n const sudDidShow = Keyboard.addListener('keyboardDidShow', (event) => {\n // avoid events triggered by InputAccessoryView\n if (event.endCoordinates.height > 100) {\n setShowToolbar(false);\n }\n });\n\n // cleanup function\n return () => {\n sudDidShow.remove();\n sudDidHide.remove();\n };\n }, []);\n\n return (\n <View style={styles.container}>\n <View style={styles.toolbar}>\n <Pressable style={styles.option} onPress={close}>\n <CloseSvg height={20} width={20} fill=\"#ffffff\" />\n </Pressable>\n <View style={styles.drawOptions}>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('doubleHead');\n }}\n >\n <DoubleHeadSvg\n height={20}\n width={20}\n fill=\"#ffffff\"\n opacity={drawingMode === 'doubleHead' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('singleHead');\n }}\n >\n <ArrowSvg\n height={23}\n width={23}\n fill=\"#ffffff\"\n opacity={drawingMode === 'singleHead' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('rectangle');\n }}\n >\n <SquareSvg\n height={27}\n width={27}\n fill=\"#ffffff\"\n opacity={drawingMode === 'rectangle' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('ellipse');\n }}\n >\n <CircleSvg\n fill=\"#ffffff\"\n height={26}\n width={26}\n opacity={drawingMode === 'ellipse' ? 1 : 0.5}\n />\n </Pressable>\n\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('text');\n }}\n >\n <TextSvg\n height={28}\n width={28}\n fill=\"#ffffff\"\n opacity={drawingMode === 'text' ? 1 : 0.5}\n />\n </Pressable>\n </View>\n </View>\n <DrawCore\n ref={drawRef}\n drawingMode={drawingMode}\n image={image}\n linearGradient={linearGradient}\n onSelectionChange={setSelectedItem}\n />\n\n {showToolbar ? (\n <View style={styles.bottomToolBar}>\n {selectedItem ? (\n <Pressable\n style={styles.option}\n onPress={() => {\n drawRef.current?.deleteSelectedItem();\n }}\n >\n <ThrashSvg width={28} height={28} fill=\"white\" />\n </Pressable>\n ) : null}\n <Pressable style={styles.sendButton} onPress={onPressSend}>\n <SendSvg fill=\"#fff\" width={20} height={20} />\n </Pressable>\n </View>\n ) : null}\n </View>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"names":["styles","StyleSheet","create","container","flex","backgroundColor","option","width","height","justifyContent","alignItems","marginHorizontal","toolbar","flexDirection","paddingBottom","paddingTop","paddingHorizontal","drawOptions","sendButton","borderRadius","marginLeft","bottomToolBar","DrawWithOptions","close","takeSnapshot","linearGradient","image","defaultDrawingMode","drawRef","useRef","drawingMode","setDrawingMode","useState","selectedItem","setSelectedItem","cancelEnabled","setCancelEnabled","onPressSend","useCallback","current","showToolbar","setShowToolbar","useEffect","sudDidHide","Keyboard","addListener","sudDidShow","event","endCoordinates","remove","deleteSelectedItem","cancelLastAction"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n Pressable,\n View,\n StyleSheet,\n ViewProps,\n ImageRequireSource,\n ImageURISource,\n Keyboard,\n} from 'react-native';\nimport DrawCore from '../DrawCore';\nimport type { DrawItemType, DrawCoreProps } from '../../types';\nimport PenSvg from './PenSvg';\nimport DoubleHeadSvg from './DoubleHeadSvg';\nimport CircleSvg from './CircleSvg';\nimport SquareSvg from './SquareSvg';\nimport ArrowSvg from './ArrowSvg';\nimport TextSvg from './TextSvg';\nimport CloseSvg from './CloseSvg';\nimport ThrashSvg from './ThrashSvg';\nimport SendSvg from './SendSvg';\nimport CancelSvg from './CancelSvg';\n\nconst styles = StyleSheet.create({\n container: { flex: 1, backgroundColor: '#000000' },\n option: {\n width: 30,\n height: 30,\n justifyContent: 'center',\n alignItems: 'center',\n marginHorizontal: 4,\n },\n toolbar: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: 30,\n paddingTop: 15,\n paddingHorizontal: 15,\n },\n drawOptions: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n sendButton: {\n backgroundColor: '#3a6cff',\n width: 48,\n height: 48,\n borderRadius: 24,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 20,\n },\n bottomToolBar: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingBottom: 30,\n paddingTop: 30,\n paddingHorizontal: 20,\n },\n});\n\nexport default function DrawWithOptions({\n close,\n takeSnapshot,\n linearGradient,\n image,\n defaultDrawingMode = 'ellipse',\n}: {\n close?: () => void;\n takeSnapshot?: (snap: Promise<string | undefined>) => void;\n linearGradient: React.ComponentType<{ colors: any[] } & ViewProps>;\n image?: ImageRequireSource | ImageURISource;\n defaultDrawingMode?: DrawItemType;\n}) {\n const drawRef = useRef<DrawCoreProps>(null);\n\n const [drawingMode, setDrawingMode] =\n useState<DrawItemType>(defaultDrawingMode);\n\n const [selectedItem, setSelectedItem] = useState(false);\n\n const [cancelEnabled, setCancelEnabled] = useState(false);\n\n const onPressSend = useCallback(() => {\n if (drawRef.current) {\n takeSnapshot?.(drawRef.current.takeSnapshot());\n }\n }, [takeSnapshot]);\n\n const [showToolbar, setShowToolbar] = useState(true);\n\n useEffect(() => {\n const sudDidHide = Keyboard.addListener('keyboardDidHide', () => {\n setShowToolbar(true);\n });\n\n const sudDidShow = Keyboard.addListener('keyboardDidShow', (event) => {\n // avoid events triggered by InputAccessoryView\n if (event.endCoordinates.height > 100) {\n setShowToolbar(false);\n }\n });\n\n // cleanup function\n return () => {\n sudDidShow.remove();\n sudDidHide.remove();\n };\n }, []);\n\n return (\n <View style={styles.container}>\n <View style={styles.toolbar}>\n <Pressable style={styles.option} onPress={close}>\n <CloseSvg height={20} width={20} fill=\"#ffffff\" />\n </Pressable>\n <View style={styles.drawOptions}>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('pen');\n }}\n >\n <PenSvg\n height={23}\n width={22}\n stroke=\"#ffffff\"\n strokeWidth=\"2\"\n opacity={drawingMode === 'pen' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('doubleHead');\n }}\n >\n <DoubleHeadSvg\n height={20}\n width={20}\n fill=\"#ffffff\"\n opacity={drawingMode === 'doubleHead' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('singleHead');\n }}\n >\n <ArrowSvg\n height={23}\n width={23}\n fill=\"#ffffff\"\n opacity={drawingMode === 'singleHead' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('rectangle');\n }}\n >\n <SquareSvg\n height={27}\n width={27}\n fill=\"#ffffff\"\n opacity={drawingMode === 'rectangle' ? 1 : 0.5}\n />\n </Pressable>\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('ellipse');\n }}\n >\n <CircleSvg\n fill=\"#ffffff\"\n height={26}\n width={26}\n opacity={drawingMode === 'ellipse' ? 1 : 0.5}\n />\n </Pressable>\n\n <Pressable\n style={styles.option}\n onPress={() => {\n setDrawingMode('text');\n }}\n >\n <TextSvg\n height={28}\n width={28}\n fill=\"#ffffff\"\n opacity={drawingMode === 'text' ? 1 : 0.5}\n />\n </Pressable>\n </View>\n </View>\n <DrawCore\n ref={drawRef}\n drawingMode={drawingMode}\n image={image}\n linearGradient={linearGradient}\n onSelectionChange={setSelectedItem}\n onCancelChange={setCancelEnabled}\n />\n\n {showToolbar ? (\n <View style={styles.bottomToolBar}>\n {selectedItem ? (\n <Pressable\n style={styles.option}\n onPress={() => {\n drawRef.current?.deleteSelectedItem();\n }}\n >\n <ThrashSvg width={28} height={28} fill=\"white\" />\n </Pressable>\n ) : null}\n {cancelEnabled ? (\n <Pressable\n style={styles.option}\n onPress={() => {\n drawRef.current?.cancelLastAction();\n }}\n >\n <CancelSvg\n width={27}\n height={27}\n stroke=\"#ffffff\"\n strokeWidth={2}\n />\n </Pressable>\n ) : null}\n <Pressable style={styles.sendButton} onPress={onPressSend}>\n <SendSvg fill=\"#fff\" width={20} height={20} />\n </Pressable>\n </View>\n ) : null}\n </View>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export { default as DrawCore } from './components/DrawCore';\nexport { default as DrawWithOptions } from './components/DrawWithOptions';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA"}
|
package/lib/commonjs/types.d.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["types.d.ts"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport {\n ForeignObjectProps,\n EllipseProps,\n LineProps,\n RectProps,\n} from 'react-native-svg';\n\nexport type Point = { x: number; y: number };\n\nexport type hslColor = `hsl(${number}, ${number | string}%, ${\n | number\n | string}%)`;\n\ntype Size = { width: number; height: number };\n\nexport type DrawItem = (\n | { type: 'singleHead'; data: LineProps }\n | { type: 'doubleHead'; data: LineProps }\n | { type: 'rectangle'; data: RectProps }\n | { type: 'ellipse'; data: EllipseProps }\n | { type: 'text'; data: ForeignObjectProps; text?: string }\n | { type: 'pen'; data: Point[] }\n) & { strokeWidth: number; color: hslColor };\n\nexport type DrawItemType = DrawItem['type'];\n\nexport type DrawCoreProps = {\n drawingContainer: React.Ref<View>;\n deleteSelectedItem: () => void;\n cancelLastAction: () => void;\n takeSnapshot: () => Promise<string | undefined>;\n};\n"],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import { StyleSheet, View } from 'react-native';
|
|
3
3
|
import { PanGestureHandler } from 'react-native-gesture-handler';
|
|
4
|
-
import Animated, { useAnimatedGestureHandler, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
4
|
+
import Animated, { runOnJS, useAnimatedGestureHandler, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
5
5
|
const TRACK_R = 10;
|
|
6
6
|
const gradientColors = ['hsl(0, 100%, 100%) 00%', 'hsl(0, 100%, 50%) 10%', 'hsl(45, 100%, 50%) 20%', 'hsl(90, 100%, 50%) 30%', 'hsl(135, 100%, 50%) 40%', 'hsl(180, 100%, 50%) 50%', 'hsl(225, 100%, 50%) 60%', 'hsl(270, 100%, 50%) 70%', 'hsl(315, 100%, 50%) 80%', 'hsl(360, 100%, 50%) 90%', 'hsl(0, 100%, 0%) 100% '];
|
|
7
7
|
const styles = StyleSheet.create({
|
|
@@ -32,10 +32,12 @@ const styles = StyleSheet.create({
|
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
const ColorSlider =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const ColorSlider = _ref => {
|
|
36
|
+
let {
|
|
37
|
+
color,
|
|
38
|
+
linearGradient: LinearGradient,
|
|
39
|
+
onColorChange
|
|
40
|
+
} = _ref;
|
|
39
41
|
const sliderHeight = useSharedValue(0);
|
|
40
42
|
const position = useDerivedValue(() => {
|
|
41
43
|
const hslRegExp = new RegExp(/hsl\(([\d.]+),\s*(\d+)%,\s*([\d.]+)%\)/);
|
|
@@ -54,27 +56,32 @@ const ColorSlider = ({
|
|
|
54
56
|
return Math.min(sliderHeight.value, Math.max(0, sliderHeight.value * 0.1 + tint * ((sliderHeight.value - sliderHeight.value * 0.2) / 360)));
|
|
55
57
|
}, [sliderHeight.value]);
|
|
56
58
|
const onGestureEvent = useAnimatedGestureHandler({
|
|
57
|
-
onStart: ({
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
onStart: (_ref2, ctx) => {
|
|
60
|
+
let {
|
|
61
|
+
y
|
|
62
|
+
} = _ref2;
|
|
60
63
|
ctx.startY = y;
|
|
61
64
|
},
|
|
62
|
-
onActive: ({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
onActive: (_ref3, _ref4) => {
|
|
66
|
+
let {
|
|
67
|
+
translationY
|
|
68
|
+
} = _ref3;
|
|
69
|
+
let {
|
|
70
|
+
startY
|
|
71
|
+
} = _ref4;
|
|
67
72
|
const slidePos = Math.min(sliderHeight.value, startY + translationY);
|
|
68
73
|
|
|
69
74
|
if (slidePos < 0.1 * sliderHeight.value) {
|
|
70
|
-
color.value = `hsl(
|
|
75
|
+
color.value = `hsl(0, 100%, ${Math.min(100, 100 - slidePos / (0.1 * sliderHeight.value) * 50).toFixed(10)}%)`;
|
|
71
76
|
} else if (slidePos > 0.9 * sliderHeight.value) {
|
|
72
|
-
color.value = `hsl(
|
|
77
|
+
color.value = `hsl(0, 100%, ${Math.max(50 - (slidePos - 0.9 * sliderHeight.value) / (0.1 * sliderHeight.value) * 50, 0).toFixed(10)}%)`;
|
|
73
78
|
} else {
|
|
74
|
-
color.value = `hsl(${(slidePos - sliderHeight.value * 0.1) / (sliderHeight.value - sliderHeight.value * 0.2) * 360},
|
|
79
|
+
color.value = `hsl(${(slidePos - sliderHeight.value * 0.1) / (sliderHeight.value - sliderHeight.value * 0.2) * 360}, 100%, 50%)`;
|
|
75
80
|
}
|
|
76
81
|
},
|
|
77
|
-
onEnd: () => {
|
|
82
|
+
onEnd: () => {
|
|
83
|
+
runOnJS(onColorChange)();
|
|
84
|
+
}
|
|
78
85
|
}, []);
|
|
79
86
|
const style = useAnimatedStyle(() => {
|
|
80
87
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","useCallback","StyleSheet","View","PanGestureHandler","Animated","runOnJS","useAnimatedGestureHandler","useAnimatedStyle","useDerivedValue","useSharedValue","TRACK_R","gradientColors","styles","create","container","flex","alignItems","width","thumb","position","height","borderRadius","top","backgroundColor","track","borderWidth","indicator","marginTop","ColorSlider","color","linearGradient","LinearGradient","onColorChange","sliderHeight","hslRegExp","RegExp","res","exec","value","lum","parseFloat","tint","Math","min","max","onGestureEvent","onStart","ctx","y","startY","onActive","translationY","slidePos","toFixed","onEnd","style","transform","translateY","selectedColorStyle","onLayout","event","nativeEvent","layout"],"sources":["ColorSlider.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { LayoutChangeEvent, StyleSheet, View, ViewProps } from 'react-native';\n\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n} from 'react-native-gesture-handler';\nimport Animated, {\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n} from 'react-native-reanimated';\nimport type { hslColor } from '../../types';\n\nconst TRACK_R = 10;\n\nconst gradientColors = [\n 'hsl(0, 100%, 100%) 00%',\n 'hsl(0, 100%, 50%) 10%',\n 'hsl(45, 100%, 50%) 20%',\n 'hsl(90, 100%, 50%) 30%',\n 'hsl(135, 100%, 50%) 40%',\n 'hsl(180, 100%, 50%) 50%',\n 'hsl(225, 100%, 50%) 60%',\n 'hsl(270, 100%, 50%) 70%',\n 'hsl(315, 100%, 50%) 80%',\n 'hsl(360, 100%, 50%) 90%',\n 'hsl(0, 100%, 0%) 100% ',\n];\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n width: '100%',\n },\n thumb: {\n position: 'absolute',\n width: TRACK_R * 2,\n height: TRACK_R * 2,\n borderRadius: TRACK_R,\n top: 0,\n backgroundColor: 'white',\n },\n track: { width: 10, flex: 1, borderRadius: 5, borderWidth: 1 },\n indicator: {\n width: 22,\n height: 22,\n borderRadius: 22,\n marginTop: 20,\n },\n});\n\nconst ColorSlider = ({\n color,\n linearGradient: LinearGradient,\n onColorChange,\n}: {\n color: Animated.SharedValue<hslColor>;\n linearGradient: React.ComponentType<{ colors: any[] } & ViewProps>;\n onColorChange: () => void;\n}) => {\n const sliderHeight = useSharedValue(0);\n\n const position = useDerivedValue(() => {\n const hslRegExp = new RegExp(/hsl\\(([\\d.]+),\\s*(\\d+)%,\\s*([\\d.]+)%\\)/);\n const res = hslRegExp.exec(color.value);\n\n const lum = res ? parseFloat(res[3]) : 0;\n\n const tint = res ? parseFloat(res[1]) : 0;\n\n if (lum > 50) {\n return ((sliderHeight.value * 0.1) / 50) * (100 - lum);\n }\n\n if (lum < 50) {\n return sliderHeight.value - ((sliderHeight.value * 0.1) / 50) * lum;\n }\n\n return Math.min(\n sliderHeight.value,\n Math.max(\n 0,\n sliderHeight.value * 0.1 +\n tint * ((sliderHeight.value - sliderHeight.value * 0.2) / 360)\n )\n );\n }, [sliderHeight.value]);\n\n const onGestureEvent = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n { startY: number }\n >(\n {\n onStart: ({ y }, ctx) => {\n ctx.startY = y;\n },\n onActive: ({ translationY }, { startY }) => {\n const slidePos = Math.min(sliderHeight.value, startY + translationY);\n\n if (slidePos < 0.1 * sliderHeight.value) {\n color.value = `hsl(0, 100%, ${Math.min(\n 100,\n 100 - (slidePos / (0.1 * sliderHeight.value)) * 50\n ).toFixed(10)}%)`;\n } else if (slidePos > 0.9 * sliderHeight.value) {\n color.value = `hsl(0, 100%, ${Math.max(\n 50 -\n ((slidePos - 0.9 * sliderHeight.value) /\n (0.1 * sliderHeight.value)) *\n 50,\n 0\n ).toFixed(10)}%)`;\n } else {\n color.value = `hsl(${\n ((slidePos - sliderHeight.value * 0.1) /\n (sliderHeight.value - sliderHeight.value * 0.2)) *\n 360\n }, 100%, 50%)`;\n }\n },\n onEnd: () => {\n runOnJS(onColorChange)();\n },\n },\n []\n );\n\n const style = useAnimatedStyle(() => {\n return {\n transform: [{ translateY: position.value - TRACK_R }],\n };\n }, [position.value]);\n\n const selectedColorStyle = useAnimatedStyle(() => {\n return {\n backgroundColor: color.value,\n };\n }, [color.value]);\n\n const onLayout = useCallback(\n (event: LayoutChangeEvent) => {\n sliderHeight.value = event.nativeEvent.layout.height;\n },\n [sliderHeight]\n );\n\n return (\n <View style={styles.container}>\n <PanGestureHandler onGestureEvent={onGestureEvent}>\n <Animated.View style={styles.container}>\n <LinearGradient\n colors={gradientColors}\n onLayout={onLayout}\n style={styles.track}\n />\n <Animated.View style={[styles.thumb, style]} />\n </Animated.View>\n </PanGestureHandler>\n\n <Animated.View style={[styles.indicator, selectedColorStyle]} />\n </View>\n );\n};\n\nexport default ColorSlider;\n"],"mappings":"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"}
|
|
@@ -4,12 +4,57 @@ import { Path, Ellipse, Rect, Line, G } from 'react-native-svg';
|
|
|
4
4
|
const AnimatedPath = Animated.createAnimatedComponent(Path);
|
|
5
5
|
const AnimatedEllipse = Animated.createAnimatedComponent(Ellipse);
|
|
6
6
|
const AnimatedRectangle = Animated.createAnimatedComponent(Rect);
|
|
7
|
-
const AnimatedLine = Animated.createAnimatedComponent(Line);
|
|
7
|
+
const AnimatedLine = Animated.createAnimatedComponent(Line); // properties of a line
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const line = (pointA, pointB) => {
|
|
10
10
|
'worklet';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
const lengthX = pointB.x - pointA.x;
|
|
13
|
+
const lengthY = pointB.y - pointA.y;
|
|
14
|
+
return {
|
|
15
|
+
length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),
|
|
16
|
+
angle: Math.atan2(lengthY, lengthX)
|
|
17
|
+
};
|
|
18
|
+
}; // position of a control point
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
const controlPoint = (current, previous, next, reverse) => {
|
|
22
|
+
'worklet'; // When 'current' is the first or last point of the array, 'previous' or 'next' don't exist --> replace with 'current'
|
|
23
|
+
|
|
24
|
+
const p = previous || current;
|
|
25
|
+
const n = next || current;
|
|
26
|
+
const smoothing = 0.2; // Properties of the opposed-line
|
|
27
|
+
|
|
28
|
+
const o = line(p, n); // If is end-control-point, add PI to the angle to go backward
|
|
29
|
+
|
|
30
|
+
const angle = o.angle + (reverse ? Math.PI : 0);
|
|
31
|
+
const length = o.length * smoothing;
|
|
32
|
+
const x = current.x + Math.cos(angle) * length;
|
|
33
|
+
const y = current.y + Math.sin(angle) * length;
|
|
34
|
+
return {
|
|
35
|
+
x: x,
|
|
36
|
+
y: y
|
|
37
|
+
};
|
|
38
|
+
}; // create the bezier curve command
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
const bezierCommand = (point, i, a) => {
|
|
42
|
+
'worklet';
|
|
43
|
+
|
|
44
|
+
const endPoint = controlPoint(point, a[i - 1], a[i + 1], true);
|
|
45
|
+
|
|
46
|
+
if (i === 1) {
|
|
47
|
+
const startPoint = controlPoint(a[i - 1], a[i - 2], point, true);
|
|
48
|
+
return `C ${startPoint.x},${startPoint.y} ${endPoint.x},${endPoint.y} ${point.x},${point.y}`;
|
|
49
|
+
} else {
|
|
50
|
+
return `S ${endPoint.x},${endPoint.y} ${point.x},${point.y}`;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const pointsToPath = points => {
|
|
55
|
+
'worklet';
|
|
56
|
+
|
|
57
|
+
return points.length > 0 ? points.reduce((acc, point, i, a) => i === 0 ? `M ${point.x},${point.y}` : `${acc} ${bezierCommand(point, i, a)}`, '') : '';
|
|
13
58
|
};
|
|
14
59
|
|
|
15
60
|
function hue2rgb(p, q, t) {
|
|
@@ -62,9 +107,10 @@ function hslToRgb(col) {
|
|
|
62
107
|
return `rgb(${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(b * 255)})`;
|
|
63
108
|
}
|
|
64
109
|
|
|
65
|
-
export default function CurrentAnimatedItem({
|
|
66
|
-
|
|
67
|
-
|
|
110
|
+
export default function CurrentAnimatedItem(_ref) {
|
|
111
|
+
let {
|
|
112
|
+
currentItem
|
|
113
|
+
} = _ref;
|
|
68
114
|
const ellipseAnimatedProps = useAnimatedProps(() => {
|
|
69
115
|
var _currentItem$value, _currentItem$value2, _currentItem$value3, _currentItem$value4;
|
|
70
116
|
|
|
@@ -149,11 +195,12 @@ export default function CurrentAnimatedItem({
|
|
|
149
195
|
const penAnimatedProps = useAnimatedProps(() => {
|
|
150
196
|
var _currentItem$value17, _currentItem$value18, _currentItem$value19, _currentItem$value20;
|
|
151
197
|
|
|
198
|
+
const d = pointsToPath(((_currentItem$value17 = currentItem.value) === null || _currentItem$value17 === void 0 ? void 0 : _currentItem$value17.type) === 'pen' ? currentItem.value.data : [{
|
|
199
|
+
x: -10,
|
|
200
|
+
y: -10
|
|
201
|
+
}]);
|
|
152
202
|
return {
|
|
153
|
-
d:
|
|
154
|
-
x: -10,
|
|
155
|
-
y: -10
|
|
156
|
-
}]),
|
|
203
|
+
d: d,
|
|
157
204
|
strokeWidth: ((_currentItem$value18 = currentItem.value) === null || _currentItem$value18 === void 0 ? void 0 : _currentItem$value18.type) === 'pen' ? currentItem.value.strokeWidth : 0,
|
|
158
205
|
stroke: hslToRgb(((_currentItem$value19 = currentItem.value) === null || _currentItem$value19 === void 0 ? void 0 : _currentItem$value19.color) || 'hsl(0, 0%, 0%)'),
|
|
159
206
|
opacity: ((_currentItem$value20 = currentItem.value) === null || _currentItem$value20 === void 0 ? void 0 : _currentItem$value20.type) === 'pen' ? 1 : 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CurrentAnimatedItem.tsx"],"names":["React","Animated","useAnimatedProps","Path","Ellipse","Rect","Line","G","AnimatedPath","createAnimatedComponent","AnimatedEllipse","AnimatedRectangle","AnimatedLine","pointsToPath","points","length","reduce","acc","point","x","y","hue2rgb","p","q","t","hslToRgb","col","hslRegExp","RegExp","res","exec","h","parseFloat","s","l","r","g","b","Math","round","CurrentAnimatedItem","currentItem","ellipseAnimatedProps","coordinates","value","type","data","cx","cy","rx","ry","stroke","color","opacity","strokeWidth","marker","singleHeadAnimatedProps","x1","y1","x2","y2","markerEnd","doubleHeadAnimatedProps","markerStart","rectangleAnimatedProps","width","height","penAnimatedProps","d"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Animated, { useAnimatedProps } from 'react-native-reanimated';\nimport { Path, Ellipse, Rect, Line, G } from 'react-native-svg';\nimport type { DrawItem, hslColor, Point } from '../../types';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nconst AnimatedEllipse = Animated.createAnimatedComponent(Ellipse);\n\nconst AnimatedRectangle = Animated.createAnimatedComponent(Rect);\n\nconst AnimatedLine = Animated.createAnimatedComponent(Line);\n\nconst pointsToPath = (points: Point[]) => {\n 'worklet';\n return points.length > 0\n ? points.reduce(\n (acc, point) => `${acc} L ${point.x},${point.y}`,\n `M ${points[0].x},${points[0].y}`\n )\n : '';\n};\n\nfunction hue2rgb(p: number, q: number, t: number) {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\n// see https://github.com/software-mansion/react-native-reanimated/issues/1909\nfunction hslToRgb(col: hslColor) {\n 'worklet';\n const hslRegExp = new RegExp(/hsl\\(([\\d.]+),\\s*(\\d+)%,\\s*([\\d.]+)%\\)/);\n const res = hslRegExp.exec(col);\n\n const h = res ? parseFloat(res[1]) / 360 : 0;\n const s = res ? parseFloat(res[2]) / 100 : 0;\n const l = res ? parseFloat(res[3]) / 100 : 0;\n\n var r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return `rgb(${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(\n b * 255\n )})`;\n}\n\nexport default function CurrentAnimatedItem({\n currentItem,\n}: {\n currentItem: Animated.SharedValue<DrawItem | null>;\n}) {\n const ellipseAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'ellipse'\n ? currentItem.value.data\n : { cx: -10, cy: -10, rx: 0, ry: 0 };\n\n return {\n cx: coordinates.cx,\n cy: coordinates.cy,\n rx: coordinates.rx,\n ry: coordinates.ry,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'ellipse' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'ellipse'\n ? currentItem.value.strokeWidth\n : 0,\n marker: 'url(#selection)',\n };\n }, [currentItem.value]);\n\n const singleHeadAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'singleHead'\n ? currentItem.value.data\n : { x1: -10, y1: -10, x2: -10, y2: -10 };\n return {\n x1: coordinates.x1,\n y1: coordinates.y1,\n x2: coordinates.x2,\n y2: coordinates.y2,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'singleHead' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'singleHead'\n ? currentItem.value.strokeWidth\n : 0,\n markerEnd: 'arrowhead',\n };\n }, [currentItem.value]);\n\n const doubleHeadAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'doubleHead'\n ? currentItem.value.data\n : { x1: -10, y1: -10, x2: -10, y2: -10 };\n\n return {\n x1: coordinates.x1,\n y1: coordinates.y1,\n x2: coordinates.x2,\n y2: coordinates.y2,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'doubleHead' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'doubleHead'\n ? currentItem.value.strokeWidth\n : 0,\n markerStart: 'side',\n markerEnd: 'side',\n };\n }, [currentItem.value]);\n\n const rectangleAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'rectangle'\n ? currentItem.value.data\n : { x: -10, y: -10, width: 0, height: 0 };\n return {\n x: coordinates.x,\n y: coordinates.y,\n width: coordinates.width,\n height: coordinates.height,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'rectangle' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'rectangle'\n ? currentItem.value.strokeWidth\n : 0,\n\n marker: 'url(#selection)',\n };\n }, [currentItem.value]);\n\n const penAnimatedProps = useAnimatedProps(() => {\n return {\n d: pointsToPath(\n currentItem.value?.type === 'pen'\n ? currentItem.value.data\n : [{ x: -10, y: -10 }]\n ),\n strokeWidth:\n currentItem.value?.type === 'pen' ? currentItem.value.strokeWidth : 0,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'pen' ? 1 : 0,\n markerStart: 'selection',\n markerEnd: 'selection',\n };\n }, [currentItem.value]);\n\n return (\n <>\n <AnimatedEllipse animatedProps={ellipseAnimatedProps} />\n <G markerStart=\"url(#selection)\" markerEnd=\"url(#selection)\">\n <AnimatedLine animatedProps={singleHeadAnimatedProps} />\n </G>\n <G markerStart=\"url(#selection)\" markerEnd=\"url(#selection)\">\n <AnimatedLine animatedProps={doubleHeadAnimatedProps} />\n </G>\n <AnimatedRectangle animatedProps={rectangleAnimatedProps} />\n <AnimatedPath animatedProps={penAnimatedProps} />\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"names":["React","Animated","useAnimatedProps","Path","Ellipse","Rect","Line","G","AnimatedPath","createAnimatedComponent","AnimatedEllipse","AnimatedRectangle","AnimatedLine","line","pointA","pointB","lengthX","x","lengthY","y","length","Math","sqrt","pow","angle","atan2","controlPoint","current","previous","next","reverse","p","n","smoothing","o","PI","cos","sin","bezierCommand","point","i","a","endPoint","startPoint","pointsToPath","points","reduce","acc","hue2rgb","q","t","hslToRgb","col","hslRegExp","RegExp","res","exec","h","parseFloat","s","l","r","g","b","round","CurrentAnimatedItem","currentItem","ellipseAnimatedProps","coordinates","value","type","data","cx","cy","rx","ry","stroke","color","opacity","strokeWidth","marker","singleHeadAnimatedProps","x1","y1","x2","y2","markerEnd","doubleHeadAnimatedProps","markerStart","rectangleAnimatedProps","width","height","penAnimatedProps","d"],"sources":["CurrentAnimatedItem.tsx"],"sourcesContent":["import React from 'react';\nimport Animated, { useAnimatedProps } from 'react-native-reanimated';\nimport { Path, Ellipse, Rect, Line, G } from 'react-native-svg';\nimport type { DrawItem, hslColor, Point } from '../../types';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nconst AnimatedEllipse = Animated.createAnimatedComponent(Ellipse);\n\nconst AnimatedRectangle = Animated.createAnimatedComponent(Rect);\n\nconst AnimatedLine = Animated.createAnimatedComponent(Line);\n\n// properties of a line\nconst line = (pointA: Point, pointB: Point) => {\n 'worklet';\n const lengthX = pointB.x - pointA.x;\n const lengthY = pointB.y - pointA.y;\n return {\n length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\n angle: Math.atan2(lengthY, lengthX),\n };\n};\n\n// position of a control point\nconst controlPoint = (\n current: Point,\n previous: Point,\n next: Point,\n reverse: boolean\n): Point => {\n 'worklet';\n // When 'current' is the first or last point of the array, 'previous' or 'next' don't exist --> replace with 'current'\n const p = previous || current;\n const n = next || current;\n const smoothing = 0.2;\n // Properties of the opposed-line\n const o = line(p, n);\n // If is end-control-point, add PI to the angle to go backward\n const angle = o.angle + (reverse ? Math.PI : 0);\n const length = o.length * smoothing;\n\n const x = current.x + Math.cos(angle) * length;\n const y = current.y + Math.sin(angle) * length;\n\n return { x: x, y: y };\n};\n\n// create the bezier curve command\nconst bezierCommand = (point: Point, i: number, a: Point[]) => {\n 'worklet';\n const endPoint: Point = controlPoint(point, a[i - 1], a[i + 1], true);\n if (i === 1) {\n const startPoint: Point = controlPoint(a[i - 1], a[i - 2], point, true);\n return `C ${startPoint.x},${startPoint.y} ${endPoint.x},${endPoint.y} ${point.x},${point.y}`;\n } else {\n return `S ${endPoint.x},${endPoint.y} ${point.x},${point.y}`;\n }\n};\n\nexport const pointsToPath = (points: Point[]) => {\n 'worklet';\n return points.length > 0\n ? points.reduce(\n (acc, point, i, a) =>\n i === 0\n ? `M ${point.x},${point.y}`\n : `${acc} ${bezierCommand(point, i, a)}`,\n ''\n )\n : '';\n};\n\nfunction hue2rgb(p: number, q: number, t: number) {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\n// see https://github.com/software-mansion/react-native-reanimated/issues/1909\nfunction hslToRgb(col: hslColor) {\n 'worklet';\n const hslRegExp = new RegExp(/hsl\\(([\\d.]+),\\s*(\\d+)%,\\s*([\\d.]+)%\\)/);\n const res = hslRegExp.exec(col);\n\n const h = res ? parseFloat(res[1]) / 360 : 0;\n const s = res ? parseFloat(res[2]) / 100 : 0;\n const l = res ? parseFloat(res[3]) / 100 : 0;\n\n var r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return `rgb(${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(\n b * 255\n )})`;\n}\n\nexport default function CurrentAnimatedItem({\n currentItem,\n}: {\n currentItem: Animated.SharedValue<DrawItem | null>;\n}) {\n const ellipseAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'ellipse'\n ? currentItem.value.data\n : { cx: -10, cy: -10, rx: 0, ry: 0 };\n\n return {\n cx: coordinates.cx,\n cy: coordinates.cy,\n rx: coordinates.rx,\n ry: coordinates.ry,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'ellipse' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'ellipse'\n ? currentItem.value.strokeWidth\n : 0,\n marker: 'url(#selection)',\n };\n }, [currentItem.value]);\n\n const singleHeadAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'singleHead'\n ? currentItem.value.data\n : { x1: -10, y1: -10, x2: -10, y2: -10 };\n return {\n x1: coordinates.x1,\n y1: coordinates.y1,\n x2: coordinates.x2,\n y2: coordinates.y2,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'singleHead' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'singleHead'\n ? currentItem.value.strokeWidth\n : 0,\n markerEnd: 'arrowhead',\n };\n }, [currentItem.value]);\n\n const doubleHeadAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'doubleHead'\n ? currentItem.value.data\n : { x1: -10, y1: -10, x2: -10, y2: -10 };\n\n return {\n x1: coordinates.x1,\n y1: coordinates.y1,\n x2: coordinates.x2,\n y2: coordinates.y2,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'doubleHead' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'doubleHead'\n ? currentItem.value.strokeWidth\n : 0,\n markerStart: 'side',\n markerEnd: 'side',\n };\n }, [currentItem.value]);\n\n const rectangleAnimatedProps = useAnimatedProps(() => {\n const coordinates =\n currentItem.value?.type === 'rectangle'\n ? currentItem.value.data\n : { x: -10, y: -10, width: 0, height: 0 };\n return {\n x: coordinates.x,\n y: coordinates.y,\n width: coordinates.width,\n height: coordinates.height,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'rectangle' ? 1 : 0,\n strokeWidth:\n currentItem.value?.type === 'rectangle'\n ? currentItem.value.strokeWidth\n : 0,\n\n marker: 'url(#selection)',\n };\n }, [currentItem.value]);\n\n const penAnimatedProps = useAnimatedProps(() => {\n const d = pointsToPath(\n currentItem.value?.type === 'pen'\n ? currentItem.value.data\n : [{ x: -10, y: -10 }]\n );\n return {\n d: d,\n strokeWidth:\n currentItem.value?.type === 'pen' ? currentItem.value.strokeWidth : 0,\n stroke: hslToRgb(currentItem.value?.color || 'hsl(0, 0%, 0%)'),\n opacity: currentItem.value?.type === 'pen' ? 1 : 0,\n markerStart: 'selection',\n markerEnd: 'selection',\n };\n }, [currentItem.value]);\n\n return (\n <>\n <AnimatedEllipse animatedProps={ellipseAnimatedProps} />\n <G markerStart=\"url(#selection)\" markerEnd=\"url(#selection)\">\n <AnimatedLine animatedProps={singleHeadAnimatedProps} />\n </G>\n <G markerStart=\"url(#selection)\" markerEnd=\"url(#selection)\">\n <AnimatedLine animatedProps={doubleHeadAnimatedProps} />\n </G>\n <AnimatedRectangle animatedProps={rectangleAnimatedProps} />\n <AnimatedPath animatedProps={penAnimatedProps} />\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -35,12 +35,13 @@ const styles = StyleSheet.create({
|
|
|
35
35
|
* So we cannot embed this component directly in the Svg
|
|
36
36
|
*/
|
|
37
37
|
|
|
38
|
-
export default function CurrentAnimatedText({
|
|
39
|
-
currentItem,
|
|
40
|
-
onHeightChange
|
|
41
|
-
}) {
|
|
38
|
+
export default function CurrentAnimatedText(_ref) {
|
|
42
39
|
var _currentItem$value, _currentItem$value4;
|
|
43
40
|
|
|
41
|
+
let {
|
|
42
|
+
currentItem,
|
|
43
|
+
onHeightChange
|
|
44
|
+
} = _ref;
|
|
44
45
|
const [text, setText] = useState(((_currentItem$value = currentItem.value) === null || _currentItem$value === void 0 ? void 0 : _currentItem$value.type) === 'text' ? currentItem.value.text || '' : '');
|
|
45
46
|
useDerivedValue(() => {
|
|
46
47
|
var _currentItem$value2;
|