@reown/appkit-ui-react-native 0.0.0-chore-examples-20251009175707 → 0.0.0-chore-use-theme-hook-20251105184714
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/assets/svg/WalletConnect.js +4 -5
- package/lib/commonjs/assets/svg/WalletConnect.js.map +1 -1
- package/lib/commonjs/composites/wui-qr-code/index.js +51 -19
- package/lib/commonjs/composites/wui-qr-code/index.js.map +1 -1
- package/lib/commonjs/composites/wui-qr-code/styles.js +0 -3
- package/lib/commonjs/composites/wui-qr-code/styles.js.map +1 -1
- package/lib/commonjs/utils/QRCodeUtil.js +217 -116
- package/lib/commonjs/utils/QRCodeUtil.js.map +1 -1
- package/lib/module/assets/svg/WalletConnect.js +4 -5
- package/lib/module/assets/svg/WalletConnect.js.map +1 -1
- package/lib/module/composites/wui-qr-code/index.js +50 -19
- package/lib/module/composites/wui-qr-code/index.js.map +1 -1
- package/lib/module/composites/wui-qr-code/styles.js +0 -3
- package/lib/module/composites/wui-qr-code/styles.js.map +1 -1
- package/lib/module/utils/QRCodeUtil.js +216 -116
- package/lib/module/utils/QRCodeUtil.js.map +1 -1
- package/lib/typescript/assets/svg/WalletConnect.d.ts.map +1 -1
- package/lib/typescript/composites/wui-qr-code/index.d.ts +3 -1
- package/lib/typescript/composites/wui-qr-code/index.d.ts.map +1 -1
- package/lib/typescript/composites/wui-qr-code/styles.d.ts +0 -3
- package/lib/typescript/composites/wui-qr-code/styles.d.ts.map +1 -1
- package/lib/typescript/utils/QRCodeUtil.d.ts +22 -2
- package/lib/typescript/utils/QRCodeUtil.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/assets/svg/WalletConnect.tsx +4 -5
- package/src/composites/wui-qr-code/index.tsx +75 -16
- package/src/composites/wui-qr-code/styles.ts +0 -3
- package/src/utils/QRCodeUtil.tsx +265 -142
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_qrcode","_interopRequireDefault","require","e","__esModule","default","CONNECTING_ERROR_MARGIN","CIRCLE_SIZE_MODIFIER","QRCODE_MATRIX_MARGIN","LOGO_PADDING","isAdjacentDots","cy","otherCy","cellSize","diff","getMatrix","value","errorCorrectionLevel","arr","Array","prototype","slice","call","QRCode","create","modules","data","sqrt","Math","length","reduce","rows","key","index","push","processQRMatrix","matrix","size","logoSize","logoBorderRadius","matrixLength","halfCellSize","strokeWidth","circleRadius","rects","circles","lines","qrList","x","y","baseOffset","qrIdx","qr","x1","y1","i","dotSize","fillType","circleCoords","isCircular","undefined","effectiveBorderRadius","row","rowLength","j","cx","centerX","centerY","isOutsideLogoArea","dx","dy","distanceFromCenter","pixelRadius","halfLogoArea","abs","cornerDx","cornerDy","cornerDistance","circlesToConnect","k","existing","cxKey","Number","cys","firstCy","r","sort","a","b","isConnected","fill","currentCy","nextCy","groupStart","groupEnd","x2","y2","prevCy","generateQRData","uri","Error","QRCodeUtil","exports","generate"],"sourceRoot":"../../../src","sources":["utils/QRCodeUtil.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,15 +4,14 @@ import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg';
|
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
const SvgWalletConnect = props => /*#__PURE__*/_jsxs(Svg, {
|
|
6
6
|
fill: "none",
|
|
7
|
-
viewBox: "0 0
|
|
7
|
+
viewBox: "0 0 37 23",
|
|
8
8
|
...props,
|
|
9
9
|
children: [/*#__PURE__*/_jsx(Path, {
|
|
10
10
|
fill: props.fill ?? '#fff',
|
|
11
|
-
d: "
|
|
11
|
+
d: "M26.6428 8.62163L29.8418 5.42265C22.6115 -1.80755 13.6277 -1.80755 6.39746 5.42265L9.59644 8.62163C15.0953 3.12281 21.1477 3.12281 26.6465 8.62163H26.6428Z"
|
|
12
12
|
}), /*#__PURE__*/_jsx(Path, {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
d: "M25.67 19.15a32.06 32.06 0 0 1 44.66 0l1.5 1.48c.43.42.43 1.09 0 1.5l-5.15 5.05a.31.31 0 0 1-.44 0l-2.07-2.03a23.21 23.21 0 0 0-32.34 0l-2.22 2.18a.31.31 0 0 1-.44 0l-5.15-5.05a1.05 1.05 0 0 1 0-1.5l1.65-1.63ZM81 29.6l4.6 4.5c.42.41.42 1.09 0 1.5l-20.7 20.26c-.43.43-1.14.43-1.57 0L48.63 41.47a.9.9 0 0 0-1.26 0L32.68 55.85c-.43.43-1.14.43-1.57 0L10.42 35.6a1.05 1.05 0 0 1 0-1.5l4.59-4.5a1.13 1.13 0 0 1 1.57 0l14.68 14.38a.9.9 0 0 0 1.27 0l-.35-.35.35.35L47.22 29.6a1.13 1.13 0 0 1 1.56 0l14.7 14.38a.9.9 0 0 0 1.26 0L79.42 29.6a1.13 1.13 0 0 1 1.57 0Z"
|
|
13
|
+
fill: props.fill ?? '#fff',
|
|
14
|
+
d: "M25.5769 16.0749L18.1164 8.61435L10.6558 16.0749L3.19526 8.61435L0 11.8096L10.6558 22.4691L18.1164 15.0086L25.5769 22.4691L36.2328 11.8096L33.0375 8.61435L25.5769 16.0749Z"
|
|
16
15
|
})]
|
|
17
16
|
});
|
|
18
17
|
export default SvgWalletConnect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Svg","ClipPath","Defs","G","Path","jsx","_jsx","jsxs","_jsxs","SvgWalletConnect","props","fill","viewBox","children","d","
|
|
1
|
+
{"version":3,"names":["Svg","ClipPath","Defs","G","Path","jsx","_jsx","jsxs","_jsxs","SvgWalletConnect","props","fill","viewBox","children","d","WalletConnectLightBrownSvg","clipPath","id"],"sourceRoot":"../../../../src","sources":["assets/svg/WalletConnect.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,QAAQ,EAAEC,IAAI,EAAEC,CAAC,EAAEC,IAAI,QAAuB,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAC/E,MAAMC,gBAAgB,GAAIC,KAAe,iBACvCF,KAAA,CAACR,GAAG;EAACW,IAAI,EAAC,MAAM;EAACC,OAAO,EAAC,WAAW;EAAA,GAAKF,KAAK;EAAAG,QAAA,gBAC5CP,IAAA,CAACF,IAAI;IACHO,IAAI,EAAED,KAAK,CAACC,IAAI,IAAI,MAAO;IAC3BG,CAAC,EAAC;EAA6J,CAChK,CAAC,eACFR,IAAA,CAACF,IAAI;IACHO,IAAI,EAAED,KAAK,CAACC,IAAI,IAAI,MAAO;IAC3BG,CAAC,EAAC;EAA6K,CAChL,CAAC;AAAA,CACC,CACN;AACD,eAAeL,gBAAgB;AAE/B,OAAO,MAAMM,0BAA0B,GAAIL,KAAe,iBACxDF,KAAA,CAACR,GAAG;EAACY,OAAO,EAAC,WAAW;EAACD,IAAI,EAAC,MAAM;EAAA,GAAKD,KAAK;EAAAG,QAAA,gBAC5CL,KAAA,CAACL,CAAC;IAACa,QAAQ,EAAC,wBAAwB;IAAAH,QAAA,gBAClCP,IAAA,CAACF,IAAI;MACHU,CAAC,EAAC,4eAA4e;MAC9eH,IAAI,EAAC;IAAS,CACf,CAAC,eACFL,IAAA,CAACF,IAAI;MACHU,CAAC,EAAC,yhCAAyhC;MAC3hCH,IAAI,EAAC;IAAS,CACf,CAAC;EAAA,CACD,CAAC,eACJL,IAAA,CAACJ,IAAI;IAAAW,QAAA,eACHP,IAAA,CAACL,QAAQ;MAACgB,EAAE,EAAC,kBAAkB;MAAAJ,QAAA,eAC7BP,IAAA,CAACF,IAAI;QACHU,CAAC,EAAC,6GAA6G;QAC/GH,IAAI,EAAC;MAAO,CACb;IAAC,CACM;EAAC,CACP,CAAC;AAAA,CACJ,CACN","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo, useMemo } from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
|
-
import Svg from 'react-native-svg';
|
|
5
|
+
import Svg, { Circle, Line, Rect } from 'react-native-svg';
|
|
6
6
|
import { Icon } from '../../components/wui-icon';
|
|
7
7
|
import { Image } from '../../components/wui-image';
|
|
8
8
|
import { Shimmer } from '../../components/wui-shimmer';
|
|
@@ -17,13 +17,17 @@ export function QrCode_({
|
|
|
17
17
|
testID,
|
|
18
18
|
arenaClear,
|
|
19
19
|
icon,
|
|
20
|
-
style
|
|
20
|
+
style,
|
|
21
|
+
logoSize,
|
|
22
|
+
logoBorderRadius
|
|
21
23
|
}) {
|
|
22
24
|
const Theme = LightTheme;
|
|
23
25
|
const containerPadding = Spacing.l;
|
|
24
26
|
const qrSize = size - containerPadding * 2;
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
+
const _logoSize = arenaClear ? 0 : logoSize ?? qrSize / 4;
|
|
28
|
+
const dotColor = Theme['inverse-000'];
|
|
29
|
+
const edgeColor = Theme['inverse-100'];
|
|
30
|
+
const qrData = useMemo(() => uri ? QRCodeUtil.generate(uri, qrSize, _logoSize, logoBorderRadius) : null, [uri, qrSize, _logoSize, logoBorderRadius]);
|
|
27
31
|
const logoTemplate = () => {
|
|
28
32
|
if (arenaClear) {
|
|
29
33
|
return null;
|
|
@@ -31,40 +35,67 @@ export function QrCode_({
|
|
|
31
35
|
if (imageSrc) {
|
|
32
36
|
return /*#__PURE__*/_jsx(Image, {
|
|
33
37
|
source: imageSrc,
|
|
34
|
-
style: [
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
style: [{
|
|
39
|
+
position: 'absolute',
|
|
40
|
+
height: _logoSize,
|
|
41
|
+
width: _logoSize,
|
|
42
|
+
borderRadius: logoBorderRadius
|
|
38
43
|
}]
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
46
|
return /*#__PURE__*/_jsx(Icon, {
|
|
42
47
|
name: icon ?? 'walletConnect',
|
|
43
48
|
color: "accent-100",
|
|
44
|
-
height:
|
|
45
|
-
width:
|
|
46
|
-
style:
|
|
49
|
+
height: _logoSize,
|
|
50
|
+
width: _logoSize,
|
|
51
|
+
style: {
|
|
52
|
+
position: 'absolute'
|
|
53
|
+
}
|
|
47
54
|
});
|
|
48
55
|
};
|
|
49
|
-
|
|
56
|
+
if (!uri || !qrData) {
|
|
57
|
+
return /*#__PURE__*/_jsx(Shimmer, {
|
|
58
|
+
width: size,
|
|
59
|
+
height: size,
|
|
60
|
+
borderRadius: BorderRadius.l
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
50
64
|
style: [styles.container, {
|
|
51
65
|
width: size,
|
|
52
66
|
backgroundColor: Theme['inverse-100'],
|
|
53
67
|
padding: containerPadding
|
|
54
68
|
}, style],
|
|
55
69
|
testID: testID,
|
|
56
|
-
children: [/*#__PURE__*/
|
|
70
|
+
children: [/*#__PURE__*/_jsxs(Svg, {
|
|
57
71
|
height: qrSize,
|
|
58
72
|
width: qrSize,
|
|
59
|
-
children:
|
|
73
|
+
children: [qrData.rects.map(rect => /*#__PURE__*/_jsx(Rect, {
|
|
74
|
+
fill: rect.fillType === 'dot' ? dotColor : edgeColor,
|
|
75
|
+
height: rect.size,
|
|
76
|
+
rx: rect.size * 0.32,
|
|
77
|
+
ry: rect.size * 0.32,
|
|
78
|
+
width: rect.size,
|
|
79
|
+
x: rect.x,
|
|
80
|
+
y: rect.y
|
|
81
|
+
}, `rect_${rect.x}_${rect.y}`)), qrData.circles.map(circle => /*#__PURE__*/_jsx(Circle, {
|
|
82
|
+
cx: circle.cx,
|
|
83
|
+
cy: circle.cy,
|
|
84
|
+
fill: dotColor,
|
|
85
|
+
r: circle.r
|
|
86
|
+
}, `circle_${circle.cx}_${circle.cy}`)), qrData.lines.map(line => /*#__PURE__*/_jsx(Line, {
|
|
87
|
+
x1: line.x1,
|
|
88
|
+
x2: line.x2,
|
|
89
|
+
y1: line.y1,
|
|
90
|
+
y2: line.y2,
|
|
91
|
+
stroke: dotColor,
|
|
92
|
+
strokeWidth: line.strokeWidth,
|
|
93
|
+
strokeLinecap: "round"
|
|
94
|
+
}, `line_${line.x1}_${line.y1}_${line.y2}`))]
|
|
60
95
|
}), logoTemplate()]
|
|
61
|
-
}) : /*#__PURE__*/_jsx(Shimmer, {
|
|
62
|
-
width: size,
|
|
63
|
-
height: size,
|
|
64
|
-
borderRadius: BorderRadius.l
|
|
65
96
|
});
|
|
66
97
|
}
|
|
67
98
|
export const QrCode = /*#__PURE__*/memo(QrCode_, (prevProps, nextProps) => {
|
|
68
|
-
return prevProps.size === nextProps.size && prevProps.uri === nextProps.uri && prevProps.style === nextProps.style;
|
|
99
|
+
return prevProps.size === nextProps.size && prevProps.uri === nextProps.uri && prevProps.style === nextProps.style && prevProps.logoBorderRadius === nextProps.logoBorderRadius;
|
|
69
100
|
});
|
|
70
101
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useMemo","View","Svg","Icon","Image","Shimmer","QRCodeUtil","BorderRadius","LightTheme","Spacing","styles","jsx","_jsx","jsxs","_jsxs","QrCode_","size","uri","imageSrc","testID","arenaClear","icon","style","Theme","containerPadding","l","qrSize","
|
|
1
|
+
{"version":3,"names":["memo","useMemo","View","Svg","Circle","Line","Rect","Icon","Image","Shimmer","QRCodeUtil","BorderRadius","LightTheme","Spacing","styles","jsx","_jsx","jsxs","_jsxs","QrCode_","size","uri","imageSrc","testID","arenaClear","icon","style","logoSize","logoBorderRadius","Theme","containerPadding","l","qrSize","_logoSize","dotColor","edgeColor","qrData","generate","logoTemplate","source","position","height","width","borderRadius","name","color","container","backgroundColor","padding","children","rects","map","rect","fill","fillType","rx","ry","x","y","circles","circle","cx","cy","r","lines","line","x1","x2","y1","y2","stroke","strokeWidth","strokeLinecap","QrCode","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["composites/wui-qr-code/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AACrC,SAASC,IAAI,QAAwC,cAAc;AACnE,OAAOC,GAAG,IAAIC,MAAM,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAC1D,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,KAAK,QAAQ,4BAA4B;AAClD,SAASC,OAAO,QAAQ,8BAA8B;AACtD,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,YAAY,EAAEC,UAAU,EAAEC,OAAO,QAAQ,uBAAuB;AAEzE,OAAOC,MAAM,MAAM,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc9B,OAAO,SAASC,OAAOA,CAAC;EACtBC,IAAI;EACJC,GAAG;EACHC,QAAQ;EACRC,MAAM;EACNC,UAAU;EACVC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AACW,CAAC,EAAE;EACd,MAAMC,KAAK,GAAGjB,UAAU;EACxB,MAAMkB,gBAAgB,GAAGjB,OAAO,CAACkB,CAAC;EAClC,MAAMC,MAAM,GAAGZ,IAAI,GAAGU,gBAAgB,GAAG,CAAC;EAC1C,MAAMG,SAAS,GAAGT,UAAU,GAAG,CAAC,GAAGG,QAAQ,IAAIK,MAAM,GAAG,CAAC;EAEzD,MAAME,QAAQ,GAAGL,KAAK,CAAC,aAAa,CAAC;EACrC,MAAMM,SAAS,GAAGN,KAAK,CAAC,aAAa,CAAC;EAEtC,MAAMO,MAAM,GAAGnC,OAAO,CACpB,MAAOoB,GAAG,GAAGX,UAAU,CAAC2B,QAAQ,CAAChB,GAAG,EAAEW,MAAM,EAAEC,SAAS,EAAEL,gBAAgB,CAAC,GAAG,IAAK,EAClF,CAACP,GAAG,EAAEW,MAAM,EAAEC,SAAS,EAAEL,gBAAgB,CAC3C,CAAC;EAED,MAAMU,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAId,UAAU,EAAE;MACd,OAAO,IAAI;IACb;IAEA,IAAIF,QAAQ,EAAE;MACZ,oBACEN,IAAA,CAACR,KAAK;QACJ+B,MAAM,EAAEjB,QAAS;QACjBI,KAAK,EAAE,CACL;UACEc,QAAQ,EAAE,UAAmB;UAC7BC,MAAM,EAAER,SAAS;UACjBS,KAAK,EAAET,SAAS;UAChBU,YAAY,EAAEf;QAChB,CAAC;MACD,CACH,CAAC;IAEN;IAEA,oBACEZ,IAAA,CAACT,IAAI;MACHqC,IAAI,EAAEnB,IAAI,IAAI,eAAgB;MAC9BoB,KAAK,EAAC,YAAY;MAClBJ,MAAM,EAAER,SAAU;MAClBS,KAAK,EAAET,SAAU;MACjBP,KAAK,EAAE;QAAEc,QAAQ,EAAE;MAAoB;IAAE,CAC1C,CAAC;EAEN,CAAC;EAED,IAAI,CAACnB,GAAG,IAAI,CAACe,MAAM,EAAE;IACnB,oBAAOpB,IAAA,CAACP,OAAO;MAACiC,KAAK,EAAEtB,IAAK;MAACqB,MAAM,EAAErB,IAAK;MAACuB,YAAY,EAAEhC,YAAY,CAACoB;IAAE,CAAE,CAAC;EAC7E;EAEA,oBACEb,KAAA,CAAChB,IAAI;IACHwB,KAAK,EAAE,CACLZ,MAAM,CAACgC,SAAS,EAChB;MAAEJ,KAAK,EAAEtB,IAAI;MAAE2B,eAAe,EAAElB,KAAK,CAAC,aAAa,CAAC;MAAEmB,OAAO,EAAElB;IAAiB,CAAC,EACjFJ,KAAK,CACL;IACFH,MAAM,EAAEA,MAAO;IAAA0B,QAAA,gBAEf/B,KAAA,CAACf,GAAG;MAACsC,MAAM,EAAET,MAAO;MAACU,KAAK,EAAEV,MAAO;MAAAiB,QAAA,GAEhCb,MAAM,CAACc,KAAK,CAACC,GAAG,CAACC,IAAI,iBACpBpC,IAAA,CAACV,IAAI;QAEH+C,IAAI,EAAED,IAAI,CAACE,QAAQ,KAAK,KAAK,GAAGpB,QAAQ,GAAGC,SAAU;QACrDM,MAAM,EAAEW,IAAI,CAAChC,IAAK;QAClBmC,EAAE,EAAEH,IAAI,CAAChC,IAAI,GAAG,IAAK;QACrBoC,EAAE,EAAEJ,IAAI,CAAChC,IAAI,GAAG,IAAK;QACrBsB,KAAK,EAAEU,IAAI,CAAChC,IAAK;QACjBqC,CAAC,EAAEL,IAAI,CAACK,CAAE;QACVC,CAAC,EAAEN,IAAI,CAACM;MAAE,GAPL,QAAQN,IAAI,CAACK,CAAC,IAAIL,IAAI,CAACM,CAAC,EAQ9B,CACF,CAAC,EAGDtB,MAAM,CAACuB,OAAO,CAACR,GAAG,CAACS,MAAM,iBACxB5C,IAAA,CAACZ,MAAM;QAELyD,EAAE,EAAED,MAAM,CAACC,EAAG;QACdC,EAAE,EAAEF,MAAM,CAACE,EAAG;QACdT,IAAI,EAAEnB,QAAS;QACf6B,CAAC,EAAEH,MAAM,CAACG;MAAE,GAJP,UAAUH,MAAM,CAACC,EAAE,IAAID,MAAM,CAACE,EAAE,EAKtC,CACF,CAAC,EAGD1B,MAAM,CAAC4B,KAAK,CAACb,GAAG,CAACc,IAAI,iBACpBjD,IAAA,CAACX,IAAI;QAEH6D,EAAE,EAAED,IAAI,CAACC,EAAG;QACZC,EAAE,EAAEF,IAAI,CAACE,EAAG;QACZC,EAAE,EAAEH,IAAI,CAACG,EAAG;QACZC,EAAE,EAAEJ,IAAI,CAACI,EAAG;QACZC,MAAM,EAAEpC,QAAS;QACjBqC,WAAW,EAAEN,IAAI,CAACM,WAAY;QAC9BC,aAAa,EAAC;MAAO,GAPhB,QAAQP,IAAI,CAACC,EAAE,IAAID,IAAI,CAACG,EAAE,IAAIH,IAAI,CAACI,EAAE,EAQ3C,CACF,CAAC;IAAA,CACC,CAAC,EACL/B,YAAY,CAAC,CAAC;EAAA,CACX,CAAC;AAEX;AAEA,OAAO,MAAMmC,MAAM,gBAAGzE,IAAI,CAACmB,OAAO,EAAE,CAACuD,SAAS,EAAEC,SAAS,KAAK;EAC5D,OACED,SAAS,CAACtD,IAAI,KAAKuD,SAAS,CAACvD,IAAI,IACjCsD,SAAS,CAACrD,GAAG,KAAKsD,SAAS,CAACtD,GAAG,IAC/BqD,SAAS,CAAChD,KAAK,KAAKiD,SAAS,CAACjD,KAAK,IACnCgD,SAAS,CAAC9C,gBAAgB,KAAK+C,SAAS,CAAC/C,gBAAgB;AAE7D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","BorderRadius","Spacing","create","container","alignItems","justifyContent","borderRadius","l","padding","alignSelf"
|
|
1
|
+
{"version":3,"names":["StyleSheet","BorderRadius","Spacing","create","container","alignItems","justifyContent","borderRadius","l","padding","alignSelf"],"sourceRoot":"../../../../src","sources":["composites/wui-qr-code/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,EAAEC,OAAO,QAAQ,uBAAuB;AAE7D,eAAeF,UAAU,CAACG,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAEN,YAAY,CAACO,CAAC;IAC5BC,OAAO,EAAEP,OAAO,CAACM,CAAC;IAClBE,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Line, Rect, Circle } from 'react-native-svg';
|
|
4
3
|
import QRCode from 'qrcode';
|
|
5
|
-
import { LightTheme } from '../utils/ThemeUtil';
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
4
|
const CONNECTING_ERROR_MARGIN = 0.1;
|
|
8
5
|
const CIRCLE_SIZE_MODIFIER = 2.5;
|
|
9
6
|
const QRCODE_MATRIX_MARGIN = 7;
|
|
10
|
-
|
|
7
|
+
const LOGO_PADDING = 25;
|
|
8
|
+
function isAdjacentDots(cy, otherCy, cellSize) {
|
|
11
9
|
if (cy === otherCy) {
|
|
12
10
|
return false;
|
|
13
11
|
}
|
|
@@ -21,128 +19,230 @@ function getMatrix(value, errorCorrectionLevel) {
|
|
|
21
19
|
const sqrt = Math.sqrt(arr.length);
|
|
22
20
|
return arr.reduce((rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows, []);
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
y: y1 + cellSize * i
|
|
58
|
-
}, `rect_${x1 + cellSize * i}_${y1 + cellSize * i}`));
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
const clearArenaSize = Math.floor((logoSize + 25) / cellSize);
|
|
62
|
-
const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2;
|
|
63
|
-
const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1;
|
|
64
|
-
const circles = [];
|
|
65
|
-
|
|
66
|
-
// Getting coordinates for each of the QR code dots
|
|
67
|
-
matrix.forEach((row, i) => {
|
|
68
|
-
row.forEach((_, j) => {
|
|
69
|
-
if (matrix[i][j]) {
|
|
70
|
-
if (!(i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN || i > matrix.length - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN || i < QRCODE_MATRIX_MARGIN && j > matrix.length - (QRCODE_MATRIX_MARGIN + 1))) {
|
|
71
|
-
if (!(i > matrixMiddleStart && i < matrixMiddleEnd && j > matrixMiddleStart && j < matrixMiddleEnd)) {
|
|
72
|
-
const cx = i * cellSize + cellSize / 2;
|
|
73
|
-
const cy = j * cellSize + cellSize / 2;
|
|
74
|
-
circles.push([cx, cy]);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
22
|
+
function processQRMatrix(matrix, size, logoSize, logoBorderRadius) {
|
|
23
|
+
const matrixLength = matrix.length;
|
|
24
|
+
const cellSize = size / matrixLength;
|
|
25
|
+
const halfCellSize = cellSize / 2;
|
|
26
|
+
const strokeWidth = cellSize / (CIRCLE_SIZE_MODIFIER / 2);
|
|
27
|
+
const circleRadius = cellSize / CIRCLE_SIZE_MODIFIER;
|
|
28
|
+
const rects = [];
|
|
29
|
+
const circles = [];
|
|
30
|
+
const lines = [];
|
|
31
|
+
|
|
32
|
+
// Generate corner rectangles - optimized with direct indexing
|
|
33
|
+
const qrList = [{
|
|
34
|
+
x: 0,
|
|
35
|
+
y: 0
|
|
36
|
+
}, {
|
|
37
|
+
x: 1,
|
|
38
|
+
y: 0
|
|
39
|
+
}, {
|
|
40
|
+
x: 0,
|
|
41
|
+
y: 1
|
|
42
|
+
}];
|
|
43
|
+
const baseOffset = (matrixLength - QRCODE_MATRIX_MARGIN) * cellSize;
|
|
44
|
+
for (let qrIdx = 0; qrIdx < 3; qrIdx++) {
|
|
45
|
+
const qr = qrList[qrIdx];
|
|
46
|
+
const x1 = baseOffset * qr.x;
|
|
47
|
+
const y1 = baseOffset * qr.y;
|
|
48
|
+
for (let i = 0; i < 3; i++) {
|
|
49
|
+
const dotSize = cellSize * (QRCODE_MATRIX_MARGIN - i * 2);
|
|
50
|
+
rects.push({
|
|
51
|
+
x: x1 + cellSize * i,
|
|
52
|
+
y: y1 + cellSize * i,
|
|
53
|
+
size: dotSize,
|
|
54
|
+
fillType: i % 2 === 0 ? 'dot' : 'edge'
|
|
78
55
|
});
|
|
79
|
-
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const circleCoords = [];
|
|
59
|
+
|
|
60
|
+
// Determine if using circular or rounded rectangle hole
|
|
61
|
+
const isCircular = logoBorderRadius === undefined;
|
|
62
|
+
const effectiveBorderRadius = logoBorderRadius ?? (logoSize + LOGO_PADDING) / 2;
|
|
80
63
|
|
|
81
|
-
|
|
82
|
-
|
|
64
|
+
// Calculate circle coordinates - optimized with configurable hole shape
|
|
65
|
+
for (let i = 0; i < matrixLength; i++) {
|
|
66
|
+
const row = matrix[i];
|
|
67
|
+
const rowLength = row.length;
|
|
68
|
+
for (let j = 0; j < rowLength; j++) {
|
|
69
|
+
if (!row[j]) continue;
|
|
70
|
+
|
|
71
|
+
// Skip corners check
|
|
72
|
+
if (i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN || i > matrixLength - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN || i < QRCODE_MATRIX_MARGIN && j > matrixLength - (QRCODE_MATRIX_MARGIN + 1)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
83
75
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
76
|
+
// Calculate pixel coordinates first
|
|
77
|
+
const cx = i * cellSize + halfCellSize;
|
|
78
|
+
const cy = j * cellSize + halfCellSize;
|
|
79
|
+
|
|
80
|
+
// Skip hole calculation if logoSize is 0 (arenaClear)
|
|
81
|
+
if (logoSize === 0) {
|
|
82
|
+
circleCoords.push([cx, cy]);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Calculate distance from center in pixel space
|
|
87
|
+
const centerX = size / 2;
|
|
88
|
+
const centerY = size / 2;
|
|
89
|
+
let isOutsideLogoArea = false;
|
|
90
|
+
if (isCircular) {
|
|
91
|
+
// Circular hole
|
|
92
|
+
const dx = cx - centerX;
|
|
93
|
+
const dy = cy - centerY;
|
|
94
|
+
const distanceFromCenter = Math.sqrt(dx * dx + dy * dy);
|
|
95
|
+
const pixelRadius = (logoSize + LOGO_PADDING) / 2;
|
|
96
|
+
isOutsideLogoArea = distanceFromCenter >= pixelRadius;
|
|
88
97
|
} else {
|
|
89
|
-
|
|
98
|
+
// Rounded rectangle hole
|
|
99
|
+
const halfLogoArea = (logoSize + LOGO_PADDING) / 2;
|
|
100
|
+
const dx = Math.abs(cx - centerX);
|
|
101
|
+
const dy = Math.abs(cy - centerY);
|
|
102
|
+
|
|
103
|
+
// Check if point is outside the rounded rectangle
|
|
104
|
+
if (dx > halfLogoArea || dy > halfLogoArea) {
|
|
105
|
+
isOutsideLogoArea = true;
|
|
106
|
+
} else if (dx > halfLogoArea - effectiveBorderRadius && dy > halfLogoArea - effectiveBorderRadius) {
|
|
107
|
+
// Check corner radius
|
|
108
|
+
const cornerDx = dx - (halfLogoArea - effectiveBorderRadius);
|
|
109
|
+
const cornerDy = dy - (halfLogoArea - effectiveBorderRadius);
|
|
110
|
+
const cornerDistance = Math.sqrt(cornerDx * cornerDx + cornerDy * cornerDy);
|
|
111
|
+
isOutsideLogoArea = cornerDistance >= effectiveBorderRadius;
|
|
112
|
+
} else {
|
|
113
|
+
isOutsideLogoArea = false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (isOutsideLogoArea) {
|
|
117
|
+
circleCoords.push([cx, cy]);
|
|
90
118
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Build circlesToConnect - optimized loop
|
|
123
|
+
const circlesToConnect = {};
|
|
124
|
+
for (let k = 0; k < circleCoords.length; k++) {
|
|
125
|
+
const [cx, cy] = circleCoords[k];
|
|
126
|
+
const existing = circlesToConnect[cx];
|
|
127
|
+
if (existing) {
|
|
128
|
+
existing.push(cy);
|
|
129
|
+
} else {
|
|
130
|
+
circlesToConnect[cx] = [cy];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Process circles and lines - optimized to avoid Object.entries
|
|
135
|
+
for (const cxKey in circlesToConnect) {
|
|
136
|
+
const cx = Number(cxKey);
|
|
137
|
+
const cys = circlesToConnect[cxKey];
|
|
138
|
+
if (cys.length === 1) {
|
|
139
|
+
const firstCy = cys[0];
|
|
140
|
+
if (firstCy === undefined) continue;
|
|
141
|
+
|
|
142
|
+
// Single dot, add as circle
|
|
143
|
+
circles.push({
|
|
144
|
+
cx,
|
|
145
|
+
cy: firstCy,
|
|
146
|
+
r: circleRadius
|
|
107
147
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Sort once for line grouping
|
|
152
|
+
cys.sort((a, b) => a - b);
|
|
153
|
+
|
|
154
|
+
// Track which dots are connected and which are lonely
|
|
155
|
+
const isConnected = new Array(cys.length).fill(false);
|
|
156
|
+
|
|
157
|
+
// Find all adjacent pairs
|
|
158
|
+
for (let i = 0; i < cys.length - 1; i++) {
|
|
159
|
+
const currentCy = cys[i];
|
|
160
|
+
const nextCy = cys[i + 1];
|
|
161
|
+
if (currentCy !== undefined && nextCy !== undefined && isAdjacentDots(currentCy, nextCy, cellSize)) {
|
|
162
|
+
isConnected[i] = true;
|
|
163
|
+
isConnected[i + 1] = true;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Add lonely dots as circles and build line groups
|
|
168
|
+
let groupStart = -1;
|
|
169
|
+
let groupEnd = -1;
|
|
170
|
+
for (let i = 0; i < cys.length; i++) {
|
|
171
|
+
const cy = cys[i];
|
|
172
|
+
if (cy === undefined) continue;
|
|
173
|
+
if (!isConnected[i]) {
|
|
174
|
+
// Lonely dot - add as circle
|
|
175
|
+
circles.push({
|
|
176
|
+
cx,
|
|
177
|
+
cy,
|
|
178
|
+
r: circleRadius
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// Finish any ongoing line group
|
|
182
|
+
if (groupStart !== -1 && groupEnd !== -1 && groupStart !== groupEnd) {
|
|
183
|
+
lines.push({
|
|
184
|
+
x1: cx,
|
|
185
|
+
x2: cx,
|
|
186
|
+
y1: groupStart,
|
|
187
|
+
y2: groupEnd,
|
|
188
|
+
strokeWidth
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
groupStart = -1;
|
|
192
|
+
groupEnd = -1;
|
|
193
|
+
} else {
|
|
194
|
+
// Part of a line group
|
|
195
|
+
if (groupStart === -1) {
|
|
196
|
+
groupStart = cy;
|
|
197
|
+
groupEnd = cy;
|
|
127
198
|
} else {
|
|
128
|
-
|
|
199
|
+
// Check if adjacent to previous
|
|
200
|
+
const prevCy = cys[i - 1];
|
|
201
|
+
if (i > 0 && prevCy !== undefined && isAdjacentDots(cy, prevCy, cellSize)) {
|
|
202
|
+
groupEnd = cy;
|
|
203
|
+
} else {
|
|
204
|
+
// Gap in the group, finish previous line
|
|
205
|
+
if (groupStart !== groupEnd) {
|
|
206
|
+
lines.push({
|
|
207
|
+
x1: cx,
|
|
208
|
+
x2: cx,
|
|
209
|
+
y1: groupStart,
|
|
210
|
+
y2: groupEnd,
|
|
211
|
+
strokeWidth
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
groupStart = cy;
|
|
215
|
+
groupEnd = cy;
|
|
216
|
+
}
|
|
129
217
|
}
|
|
130
218
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
strokeLinecap: "round"
|
|
142
|
-
}, `line_${cx}_${y1}_${y2}`));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Don't forget the last group
|
|
222
|
+
if (groupStart !== -1 && groupEnd !== -1 && groupStart !== groupEnd) {
|
|
223
|
+
lines.push({
|
|
224
|
+
x1: cx,
|
|
225
|
+
x2: cx,
|
|
226
|
+
y1: groupStart,
|
|
227
|
+
y2: groupEnd,
|
|
228
|
+
strokeWidth
|
|
143
229
|
});
|
|
144
|
-
}
|
|
145
|
-
return dots;
|
|
230
|
+
}
|
|
146
231
|
}
|
|
232
|
+
return {
|
|
233
|
+
rects,
|
|
234
|
+
circles,
|
|
235
|
+
lines
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
export function generateQRData(uri, size, logoSize, logoBorderRadius) {
|
|
239
|
+
if (!uri || size <= 0) {
|
|
240
|
+
throw new Error('Invalid QR code parameters');
|
|
241
|
+
}
|
|
242
|
+
const matrix = getMatrix(uri, 'Q');
|
|
243
|
+
return processQRMatrix(matrix, size, logoSize, logoBorderRadius);
|
|
244
|
+
}
|
|
245
|
+
export const QRCodeUtil = {
|
|
246
|
+
generate: generateQRData
|
|
147
247
|
};
|
|
148
248
|
//# sourceMappingURL=QRCodeUtil.js.map
|