add all frontend files

This commit is contained in:
2026-01-17 15:16:36 -05:00
parent ff16ae7858
commit e40287e4aa
25704 changed files with 1935289 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
import { QrCode } from '../libs/qrcodegen';
import type { ErrorCorrectionLevel, ImageSettings } from '../interface';
interface Options {
value: string | string[];
level: ErrorCorrectionLevel;
minVersion: number;
includeMargin: boolean;
marginSize?: number;
imageSettings?: ImageSettings;
size: number;
boostLevel?: boolean;
}
export declare const useQRCode: (opt: Options) => {
cells: boolean[][];
margin: number;
numCells: number;
calculatedImageSettings: {
x: number;
y: number;
h: number;
w: number;
excavation: import("../interface").Excavation;
opacity: number;
crossOrigin: import("../interface").CrossOrigin;
};
qrcode: QrCode;
};
export {};

View File

@@ -0,0 +1,42 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useQRCode = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _qrcodegen = require("../libs/qrcodegen");
var _utils = require("../utils");
var _react = _interopRequireDefault(require("react"));
var useQRCode = exports.useQRCode = function useQRCode(opt) {
var value = opt.value,
level = opt.level,
minVersion = opt.minVersion,
includeMargin = opt.includeMargin,
marginSize = opt.marginSize,
imageSettings = opt.imageSettings,
size = opt.size,
boostLevel = opt.boostLevel;
var memoizedQrcode = _react.default.useMemo(function () {
var values = Array.isArray(value) ? value : [value];
var segments = values.reduce(function (acc, val) {
acc.push.apply(acc, (0, _toConsumableArray2.default)(_qrcodegen.QrSegment.makeSegments(val)));
return acc;
}, []);
return _qrcodegen.QrCode.encodeSegments(segments, _utils.ERROR_LEVEL_MAP[level], minVersion, undefined, undefined, boostLevel);
}, [value, level, minVersion, boostLevel]);
return _react.default.useMemo(function () {
var cs = memoizedQrcode.getModules();
var mg = (0, _utils.getMarginSize)(includeMargin, marginSize);
var ncs = cs.length + mg * 2;
var cis = (0, _utils.getImageSettings)(cs, size, mg, imageSettings);
return {
cells: cs,
margin: mg,
numCells: ncs,
calculatedImageSettings: cis,
qrcode: memoizedQrcode
};
}, [memoizedQrcode, size, imageSettings, includeMargin, marginSize]);
};