67 lines
2.0 KiB
JavaScript
67 lines
2.0 KiB
JavaScript
// ============================================================
|
|
// Module ID: 51887
|
|
// ============================================================
|
|
;(window.__modules__ = window.__modules__ || {})[51887] = (t, n, i) => {
|
|
const r = i(44794),
|
|
e = i(70298),
|
|
u = i(21973),
|
|
s = i(31620),
|
|
o = i(66610),
|
|
_ = r.getBCHDigit(7973);
|
|
function h(t, n) {
|
|
return s.getCharCountIndicator(t, n) + 4;
|
|
}
|
|
function a(t, n) {
|
|
let i = 0;
|
|
return (
|
|
t.forEach(function (t) {
|
|
const r = h(t.mode, n);
|
|
i += r + t.getBitsLength();
|
|
}),
|
|
i
|
|
);
|
|
}
|
|
((n.from = function (t, n) {
|
|
return o.isValid(t) ? parseInt(t, 10) : n;
|
|
}),
|
|
(n.getCapacity = function (t, n, i) {
|
|
if (!o.isValid(t)) throw new Error("Invalid QR Code version");
|
|
void 0 === i && (i = s.BYTE);
|
|
const u = 8 * (r.getSymbolTotalCodewords(t) - e.getTotalCodewordsCount(t, n));
|
|
if (i === s.MIXED) return u;
|
|
const _ = u - h(i, t);
|
|
switch (i) {
|
|
case s.NUMERIC:
|
|
return Math.floor((_ / 10) * 3);
|
|
case s.ALPHANUMERIC:
|
|
return Math.floor((_ / 11) * 2);
|
|
case s.KANJI:
|
|
return Math.floor(_ / 13);
|
|
case s.BYTE:
|
|
default:
|
|
return Math.floor(_ / 8);
|
|
}
|
|
}),
|
|
(n.getBestVersionForData = function (t, i) {
|
|
let r;
|
|
const e = u.from(i, u.M);
|
|
if (Array.isArray(t)) {
|
|
if (t.length > 1)
|
|
return (function (t, i) {
|
|
for (let r = 1; r <= 40; r++) if (a(t, r) <= n.getCapacity(r, i, s.MIXED)) return r;
|
|
})(t, e);
|
|
if (0 === t.length) return 1;
|
|
r = t[0];
|
|
} else r = t;
|
|
return (function (t, i, r) {
|
|
for (let e = 1; e <= 40; e++) if (i <= n.getCapacity(e, r, t)) return e;
|
|
})(r.mode, r.getLength(), e);
|
|
}),
|
|
(n.getEncodedBits = function (t) {
|
|
if (!o.isValid(t) || t < 7) throw new Error("Invalid QR Code version");
|
|
let n = t << 12;
|
|
for (; r.getBCHDigit(n) - _ >= 0;) n ^= 7973 << (r.getBCHDigit(n) - _);
|
|
return (t << 12) | n;
|
|
}));
|
|
};
|