UNPKG

react-fancy-qrcode

Version:

Customizable QR code generated for React & React Native

51 lines 2.03 kB
import React from "react"; /** * Builds a positioning set of squares */ export default function PositionPattern(_a) { var placement = _a.placement, cellSize = _a.cellSize, positionColor = _a.positionColor, sideCount = _a.sideCount, positionRadius = _a.positionRadius, svgDom = _a.svgDom; var innerOffset = cellSize * 2; var innerSize = 3 * cellSize; var outerSize = 7 * cellSize; var outerX = 0; var outerY = 0; if (placement === "top-right") { outerX = (sideCount - 7) * cellSize; } else if (placement === "bottom-left") { outerY = (sideCount - 7) * cellSize; } // Keep the stroke inside the box outerSize -= cellSize; var strokeCorrection = cellSize / 2; // Get radius values var outerRx = 0; var outerRy = 0; var innerRx = 0; var innerRy = 0; if (typeof positionRadius === "string" || typeof positionRadius === "number") { outerRx = outerRy = innerRx = innerRy = positionRadius; } else if (Array.isArray(positionRadius)) { if (typeof positionRadius[0] === "object") { outerRx = positionRadius[0].rx; outerRy = positionRadius[0].ry; } else { outerRx = outerRy = positionRadius[0]; } if (typeof positionRadius[1] === "object") { innerRx = positionRadius[1].rx; innerRy = positionRadius[1].ry; } else { innerRx = innerRy = positionRadius[1]; } } var G = svgDom.G, Rect = svgDom.Rect; return (React.createElement(G, null, React.createElement(Rect, { x: outerX + strokeCorrection, y: outerY + strokeCorrection, width: outerSize, height: outerSize, stroke: positionColor, strokeWidth: cellSize, rx: outerRx, ry: outerRy, fillOpacity: 0 }), React.createElement(Rect, { x: outerX + innerOffset, y: outerY + innerOffset, width: innerSize, height: innerSize, fill: positionColor, rx: innerRx, ry: innerRy }))); } //# sourceMappingURL=PositionPattern.js.map