Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,24 @@
|
||||
// Generated, do not edit. sha256:0357e7318367558ea1c4f3c06bae817f3ef795f556618cac3bc184f31a478f4c
|
||||
import qrcode from '../vendor/qrcode/qrcode.mjs';
|
||||
import { esc } from './escape.js';
|
||||
|
||||
const ALPHANUMERIC = /^[0-9A-Z $%*+\-./:]*$/;
|
||||
|
||||
export const invoiceQrText = (paymentRequest) => `LIGHTNING:${String(paymentRequest).toUpperCase()}`;
|
||||
|
||||
export function qrMatrix(text) {
|
||||
const qr = qrcode(0, 'M');
|
||||
qr.addData(text, ALPHANUMERIC.test(text) ? 'Alphanumeric' : 'Byte');
|
||||
qr.make();
|
||||
const n = qr.getModuleCount();
|
||||
return Array.from({ length: n }, (_, r) => Array.from({ length: n }, (_, c) => qr.isDark(r, c)));
|
||||
}
|
||||
|
||||
export function qrSvg(text, { quiet = 4, label = '', px = 240 } = {}) {
|
||||
const m = qrMatrix(text);
|
||||
const size = m.length + quiet * 2;
|
||||
let d = '';
|
||||
m.forEach((row, r) => row.forEach((dark, c) => { if (dark) d += `M${c + quiet} ${r + quiet}h1v1h-1z`; }));
|
||||
return `<svg class="qr" width="${px}" height="${px}" viewBox="0 0 ${size} ${size}" role="img"${label ? ` aria-label="${esc(label)}"` : ''} shape-rendering="crispEdges">`
|
||||
+ `<rect width="${size}" height="${size}" fill="#fff"/><path d="${d}" fill="#000"/></svg>`;
|
||||
}
|
||||
Reference in new issue
Block a user