tdesign-mobile-vue
Version:
tdesign-mobile-vue
48 lines (44 loc) • 1.39 kB
JavaScript
/**
* tdesign v1.13.2
* (c) 2026 TDesign Group
* @license MIT
*/
import { computed } from 'vue';
import { ERROR_LEVEL_MAP, getMarginSize, getImageSettings } from '../../_common/js/qrcode/utils.mjs';
import { QrSegment, QrCode } from '../../_common/js/qrcode/qrcodegen.mjs';
import '../../_chunks/dep-fd8e79ab.mjs';
import '../../_chunks/dep-57504cfb.mjs';
import '../../_chunks/dep-77efd536.mjs';
var 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;
var memoizedQrcode = computed(function () {
var segments = QrSegment.makeSegments(value);
return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);
});
var cs = computed(function () {
return memoizedQrcode.value.getModules();
});
var mg = computed(function () {
return getMarginSize(includeMargin, marginSize);
});
var cis = computed(function () {
return getImageSettings(cs.value, size, mg.value, imageSettings);
});
return {
cells: cs,
margin: mg,
numCells: computed(function () {
return cs.value.length + mg.value * 2;
}),
calculatedImageSettings: cis,
qrcode: memoizedQrcode
};
};
export { useQRCode };
//# sourceMappingURL=useQRCode.mjs.map