NGTools/pagesPackage/ucenter/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js
ldeyun 9dbfdc6c71 V1.0.0
微信小程序运行成功;
H5运行成功
2024-09-30 01:30:39 +08:00

1606 lines
47 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//---------------------------------------------------------------------
// uQRCode二维码生成插件 v4.0.6
//
// uQRCode是一款基于Javascript环境开发的二维码生成插件适用所有Javascript运行环境的前端应用和Node.js。
//
// Copyright (c) Sansnn uQRCode All rights reserved.
//
// Licensed under the Apache License, Version 2.0.
// http://www.apache.org/licenses/LICENSE-2.0
//
// github地址
// https://github.com/Sansnn/uQRCode
//
// npm地址
// https://www.npmjs.com/package/uqrcodejs
//
// uni-app插件市场地址
// https://ext.dcloud.net.cn/plugin?id=1287
//
// 复制使用请保留本段注释,感谢支持开源!
//
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// 当前文件格式为 es将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esmmodule
// 如需在其他环境使用,请获取环境对应的格式文件
// 格式说明:
// amd - 异步模块定义,适用于 RequireJS 等模块加载器
// cjs - CommonJS适用于 Node 环境和其他打包工具别名commonjs
// es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esmmodule
// umd - 通用模块定义,生成的包同时支持 amd、cjs 和 iife 三种格式
//---------------------------------------------------------------------
function o(o) {
this.mode = r.MODE_8BIT_BYTE, this.data = o;
}
function e(o, e) {
this.typeNumber = o, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null,
this.dataList = new Array;
}
o.prototype = {
getLength: function(o) {
return this.data.length
},
write: function(o) {
for (var e = 0; e < this.data.length; e++) o.put(this.data.charCodeAt(e), 8);
}
}, e.prototype = {
addData: function(e) {
var r = new o(e);
this.dataList.push(r), this.dataCache = null;
},
isDark: function(o, e) {
if (o < 0 || this.moduleCount <= o || e < 0 || this.moduleCount <= e) throw new Error(o + "," + e);
return this.modules[o][e]
},
getModuleCount: function() {
return this.moduleCount
},
make: function() {
if (this.typeNumber < 1) {
var o = 1;
for (o = 1; o < 40; o++) {
for (var e = v.getRSBlocks(o, this.errorCorrectLevel), r = new p, t = 0, i = 0; i < e
.length; i++) t += e[i].dataCount;
for (i = 0; i < this.dataList.length; i++) {
var n = this.dataList[i];
r.put(n.mode, 4), r.put(n.getLength(), h.getLengthInBits(n.mode, o)), n.write(r);
}
if (r.getLengthInBits() <= 8 * t) break
}
this.typeNumber = o;
}
this.makeImpl(!1, this.getBestMaskPattern());
},
makeImpl: function(o, r) {
this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
for (var t = 0; t < this.moduleCount; t++) {
this.modules[t] = new Array(this.moduleCount);
for (var i = 0; i < this.moduleCount; i++) this.modules[t][i] = null;
}
this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this
.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this
.setupTimingPattern(), this.setupTypeInfo(o, r), this.typeNumber >= 7 && this.setupTypeNumber(o),
null == this.dataCache && (this.dataCache = e.createData(this.typeNumber, this.errorCorrectLevel,
this.dataList)), this.mapData(this.dataCache, r);
},
setupPositionProbePattern: function(o, e) {
for (var r = -1; r <= 7; r++)
if (!(o + r <= -1 || this.moduleCount <= o + r))
for (var t = -1; t <= 7; t++) e + t <= -1 || this.moduleCount <= e + t || (this.modules[o + r][
e + t
] = 0 <= r && r <= 6 && (0 == t || 6 == t) || 0 <= t && t <= 6 && (0 == r || 6 == r) ||
2 <= r && r <= 4 && 2 <= t && t <= 4);
},
getBestMaskPattern: function() {
for (var o = 0, e = 0, r = 0; r < 8; r++) {
this.makeImpl(!0, r);
var t = h.getLostPoint(this);
(0 == r || o > t) && (o = t, e = r);
}
return e
},
createMovieClip: function(o, e, r) {
var t = o.createEmptyMovieClip(e, r);
this.make();
for (var i = 0; i < this.modules.length; i++)
for (var n = 1 * i, a = 0; a < this.modules[i].length; a++) {
var d = 1 * a;
this.modules[i][a] && (t.beginFill(0, 100), t.moveTo(d, n), t.lineTo(d + 1, n), t.lineTo(d + 1,
n + 1), t.lineTo(d, n + 1), t.endFill());
}
return t
},
setupTimingPattern: function() {
for (var o = 8; o < this.moduleCount - 8; o++) null == this.modules[o][6] && (this.modules[o][6] = o %
2 == 0);
for (var e = 8; e < this.moduleCount - 8; e++) null == this.modules[6][e] && (this.modules[6][e] = e %
2 == 0);
},
setupPositionAdjustPattern: function() {
for (var o = h.getPatternPosition(this.typeNumber), e = 0; e < o.length; e++)
for (var r = 0; r < o.length; r++) {
var t = o[e],
i = o[r];
if (null == this.modules[t][i])
for (var n = -2; n <= 2; n++)
for (var a = -2; a <= 2; a++) this.modules[t + n][i + a] = -2 == n || 2 == n || -2 ==
a || 2 == a || 0 == n && 0 == a;
}
},
setupTypeNumber: function(o) {
for (var e = h.getBCHTypeNumber(this.typeNumber), r = 0; r < 18; r++) {
var t = !o && 1 == (e >> r & 1);
this.modules[Math.floor(r / 3)][r % 3 + this.moduleCount - 8 - 3] = t;
}
for (r = 0; r < 18; r++) {
t = !o && 1 == (e >> r & 1);
this.modules[r % 3 + this.moduleCount - 8 - 3][Math.floor(r / 3)] = t;
}
},
setupTypeInfo: function(o, e) {
for (var r = this.errorCorrectLevel << 3 | e, t = h.getBCHTypeInfo(r), i = 0; i < 15; i++) {
var n = !o && 1 == (t >> i & 1);
i < 6 ? this.modules[i][8] = n : i < 8 ? this.modules[i + 1][8] = n : this.modules[this
.moduleCount - 15 + i][8] = n;
}
for (i = 0; i < 15; i++) {
n = !o && 1 == (t >> i & 1);
i < 8 ? this.modules[8][this.moduleCount - i - 1] = n : i < 9 ? this.modules[8][15 - i - 1 + 1] =
n : this.modules[8][15 - i - 1] = n;
}
this.modules[this.moduleCount - 8][8] = !o;
},
mapData: function(o, e) {
for (var r = -1, t = this.moduleCount - 1, i = 7, n = 0, a = this.moduleCount - 1; a > 0; a -= 2)
for (6 == a && a--;;) {
for (var d = 0; d < 2; d++)
if (null == this.modules[t][a - d]) {
var u = !1;
n < o.length && (u = 1 == (o[n] >>> i & 1)), h.getMask(e, t, a - d) && (u = !u), this
.modules[t][a - d] = u, -1 == --i && (n++, i = 7);
} if ((t += r) < 0 || this.moduleCount <= t) {
t -= r, r = -r;
break
}
}
}
}, e.PAD0 = 236, e.PAD1 = 17, e.createData = function(o, r, t) {
for (var i = v.getRSBlocks(o, r), n = new p, a = 0; a < t.length; a++) {
var d = t[a];
n.put(d.mode, 4), n.put(d.getLength(), h.getLengthInBits(d.mode, o)), d.write(n);
}
var u = 0;
for (a = 0; a < i.length; a++) u += i[a].dataCount;
if (n.getLengthInBits() > 8 * u) throw new Error("code length overflow. (" + n.getLengthInBits() + ">" + 8 * u +
")");
for (n.getLengthInBits() + 4 <= 8 * u && n.put(0, 4); n.getLengthInBits() % 8 != 0;) n.putBit(!1);
for (; !(n.getLengthInBits() >= 8 * u || (n.put(e.PAD0, 8), n.getLengthInBits() >= 8 * u));) n.put(e.PAD1, 8);
return e.createBytes(n, i)
}, e.createBytes = function(o, e) {
for (var r = 0, t = 0, i = 0, n = new Array(e.length), a = new Array(e.length), d = 0; d < e.length; d++) {
var u = e[d].dataCount,
s = e[d].totalCount - u;
t = Math.max(t, u), i = Math.max(i, s), n[d] = new Array(u);
for (var g = 0; g < n[d].length; g++) n[d][g] = 255 & o.buffer[g + r];
r += u;
var l = h.getErrorCorrectPolynomial(s),
c = new f(n[d], l.getLength() - 1).mod(l);
a[d] = new Array(l.getLength() - 1);
for (g = 0; g < a[d].length; g++) {
var m = g + c.getLength() - a[d].length;
a[d][g] = m >= 0 ? c.get(m) : 0;
}
}
var v = 0;
for (g = 0; g < e.length; g++) v += e[g].totalCount;
var p = new Array(v),
C = 0;
for (g = 0; g < t; g++)
for (d = 0; d < e.length; d++) g < n[d].length && (p[C++] = n[d][g]);
for (g = 0; g < i; g++)
for (d = 0; d < e.length; d++) g < a[d].length && (p[C++] = a[d][g]);
return p
};
for (var r = {
MODE_NUMBER: 1,
MODE_ALPHA_NUM: 2,
MODE_8BIT_BYTE: 4,
MODE_KANJI: 8
}, t = {
L: 1,
M: 0,
Q: 3,
H: 2
}, i = 0, n = 1, a = 2, d = 3, u = 4, s = 5, g = 6, l = 7, h = {
PATTERN_POSITION_TABLE: [
[],
[6, 18],
[6, 22],
[6, 26],
[6, 30],
[6, 34],
[6, 22, 38],
[6, 24, 42],
[6, 26, 46],
[6, 28, 50],
[6, 30, 54],
[6, 32, 58],
[6, 34, 62],
[6, 26, 46, 66],
[6, 26, 48, 70],
[6, 26, 50, 74],
[6, 30, 54, 78],
[6, 30, 56, 82],
[6, 30, 58, 86],
[6, 34, 62, 90],
[6, 28, 50, 72, 94],
[6, 26, 50, 74, 98],
[6, 30, 54, 78, 102],
[6, 28, 54, 80, 106],
[6, 32, 58, 84, 110],
[6, 30, 58, 86, 114],
[6, 34, 62, 90, 118],
[6, 26, 50, 74, 98, 122],
[6, 30, 54, 78, 102, 126],
[6, 26, 52, 78, 104, 130],
[6, 30, 56, 82, 108, 134],
[6, 34, 60, 86, 112, 138],
[6, 30, 58, 86, 114, 142],
[6, 34, 62, 90, 118, 146],
[6, 30, 54, 78, 102, 126, 150],
[6, 24, 50, 76, 102, 128, 154],
[6, 28, 54, 80, 106, 132, 158],
[6, 32, 58, 84, 110, 136, 162],
[6, 26, 54, 82, 110, 138, 166],
[6, 30, 58, 86, 114, 142, 170]
],
G15: 1335,
G18: 7973,
G15_MASK: 21522,
getBCHTypeInfo: function(o) {
for (var e = o << 10; h.getBCHDigit(e) - h.getBCHDigit(h.G15) >= 0;) e ^= h.G15 << h.getBCHDigit(
e) - h.getBCHDigit(h.G15);
return (o << 10 | e) ^ h.G15_MASK
},
getBCHTypeNumber: function(o) {
for (var e = o << 12; h.getBCHDigit(e) - h.getBCHDigit(h.G18) >= 0;) e ^= h.G18 << h.getBCHDigit(
e) - h.getBCHDigit(h.G18);
return o << 12 | e
},
getBCHDigit: function(o) {
for (var e = 0; 0 != o;) e++, o >>>= 1;
return e
},
getPatternPosition: function(o) {
return h.PATTERN_POSITION_TABLE[o - 1]
},
getMask: function(o, e, r) {
switch (o) {
case i:
return (e + r) % 2 == 0;
case n:
return e % 2 == 0;
case a:
return r % 3 == 0;
case d:
return (e + r) % 3 == 0;
case u:
return (Math.floor(e / 2) + Math.floor(r / 3)) % 2 == 0;
case s:
return e * r % 2 + e * r % 3 == 0;
case g:
return (e * r % 2 + e * r % 3) % 2 == 0;
case l:
return (e * r % 3 + (e + r) % 2) % 2 == 0;
default:
throw new Error("bad maskPattern:" + o)
}
},
getErrorCorrectPolynomial: function(o) {
for (var e = new f([1], 0), r = 0; r < o; r++) e = e.multiply(new f([1, c.gexp(r)], 0));
return e
},
getLengthInBits: function(o, e) {
if (1 <= e && e < 10) switch (o) {
case r.MODE_NUMBER:
return 10;
case r.MODE_ALPHA_NUM:
return 9;
case r.MODE_8BIT_BYTE:
case r.MODE_KANJI:
return 8;
default:
throw new Error("mode:" + o)
} else if (e < 27) switch (o) {
case r.MODE_NUMBER:
return 12;
case r.MODE_ALPHA_NUM:
return 11;
case r.MODE_8BIT_BYTE:
return 16;
case r.MODE_KANJI:
return 10;
default:
throw new Error("mode:" + o)
} else {
if (!(e < 41)) throw new Error("type:" + e);
switch (o) {
case r.MODE_NUMBER:
return 14;
case r.MODE_ALPHA_NUM:
return 13;
case r.MODE_8BIT_BYTE:
return 16;
case r.MODE_KANJI:
return 12;
default:
throw new Error("mode:" + o)
}
}
},
getLostPoint: function(o) {
for (var e = o.getModuleCount(), r = 0, t = 0; t < e; t++)
for (var i = 0; i < e; i++) {
for (var n = 0, a = o.isDark(t, i), d = -1; d <= 1; d++)
if (!(t + d < 0 || e <= t + d))
for (var u = -1; u <= 1; u++) i + u < 0 || e <= i + u || 0 == d && 0 == u || a == o
.isDark(t + d, i + u) && n++;
n > 5 && (r += 3 + n - 5);
}
for (t = 0; t < e - 1; t++)
for (i = 0; i < e - 1; i++) {
var s = 0;
o.isDark(t, i) && s++, o.isDark(t + 1, i) && s++, o.isDark(t, i + 1) && s++, o.isDark(t + 1,
i + 1) && s++, 0 != s && 4 != s || (r += 3);
}
for (t = 0; t < e; t++)
for (i = 0; i < e - 6; i++) o.isDark(t, i) && !o.isDark(t, i + 1) && o.isDark(t, i + 2) && o
.isDark(t, i + 3) && o.isDark(t, i + 4) && !o.isDark(t, i + 5) && o.isDark(t, i + 6) && (
r += 40);
for (i = 0; i < e; i++)
for (t = 0; t < e - 6; t++) o.isDark(t, i) && !o.isDark(t + 1, i) && o.isDark(t + 2, i) && o
.isDark(t + 3, i) && o.isDark(t + 4, i) && !o.isDark(t + 5, i) && o.isDark(t + 6, i) && (
r += 40);
var g = 0;
for (i = 0; i < e; i++)
for (t = 0; t < e; t++) o.isDark(t, i) && g++;
return r += 10 * (Math.abs(100 * g / e / e - 50) / 5)
}
}, c = {
glog: function(o) {
if (o < 1) throw new Error("glog(" + o + ")");
return c.LOG_TABLE[o]
},
gexp: function(o) {
for (; o < 0;) o += 255;
for (; o >= 256;) o -= 255;
return c.EXP_TABLE[o]
},
EXP_TABLE: new Array(256),
LOG_TABLE: new Array(256)
}, m = 0; m < 8; m++) c.EXP_TABLE[m] = 1 << m;
for (m = 8; m < 256; m++) c.EXP_TABLE[m] = c.EXP_TABLE[m - 4] ^ c.EXP_TABLE[m - 5] ^ c.EXP_TABLE[m - 6] ^ c.EXP_TABLE[
m - 8];
for (m = 0; m < 255; m++) c.LOG_TABLE[c.EXP_TABLE[m]] = m;
function f(o, e) {
if (null == o.length) throw new Error(o.length + "/" + e);
for (var r = 0; r < o.length && 0 == o[r];) r++;
this.num = new Array(o.length - r + e);
for (var t = 0; t < o.length - r; t++) this.num[t] = o[t + r];
}
function v(o, e) {
this.totalCount = o, this.dataCount = e;
}
function p() {
this.buffer = new Array, this.length = 0;
}
function C(o) {
return o.setFillStyle = o.setFillStyle || function(e) {
o.fillStyle = e;
}, o.setFontSize = o.setFontSize || function(e) {
o.font = `${e}px`;
}, o.setTextAlign = o.setTextAlign || function(e) {
o.textAlign = e;
}, o.setTextBaseline = o.setTextBaseline || function(e) {
o.textBaseline = e;
}, o.setGlobalAlpha = o.setGlobalAlpha || function(e) {
o.globalAlpha = e;
}, o.setStrokeStyle = o.setStrokeStyle || function(e) {
o.strokeStyle = e;
}, o.setShadow = o.setShadow || function(e, r, t, i) {
o.shadowOffsetX = e, o.shadowOffsetY = r, o.shadowBlur = t, o.shadowColor = i;
}, o.draw = o.draw || function(o, e) {
e && e();
}, o.clearRect = o.clearRect || function(e, r, t, i) {
o.draw(!1);
}, o
}
function b(o, e) {
var r = this.data = "",
t = this.size = 200;
this.useDynamicSize = !1, this.dynamicSize = t;
var i = this.typeNumber = -1;
this.errorCorrectLevel = b.errorCorrectLevel.H;
var n = this.margin = 0;
this.areaColor = "#FFFFFF", this.backgroundColor = "rgba(255,255,255,0)", this.backgroundImageSrc = void 0;
var a = this.backgroundImageWidth = void 0,
d = this.backgroundImageHeight = void 0,
u = this.backgroundImageX = void 0,
s = this.backgroundImageY = void 0;
this.backgroundImageAlpha = 1, this.backgroundImageBorderRadius = 0;
var g = this.backgroundPadding = 0;
this.foregroundColor = "#000000", this.foregroundImageSrc = void 0;
var l = this.foregroundImageWidth = void 0,
h = this.foregroundImageHeight = void 0,
c = this.foregroundImageX = void 0,
m = this.foregroundImageY = void 0,
f = this.foregroundImagePadding = 0;
this.foregroundImageBackgroundColor = "#FFFFFF";
var v = this.foregroundImageBorderRadius = 0,
p = this.foregroundImageShadowOffsetX = 0,
k = this.foregroundImageShadowOffsetY = 0,
y = this.foregroundImageShadowBlur = 0;
this.foregroundImageShadowColor = "#808080";
var w = this.foregroundPadding = 0,
I = this.positionProbeBackgroundColor = void 0,
B = this.positionProbeForegroundColor = void 0,
S = this.separatorColor = void 0,
P = this.positionAdjustBackgroundColor = void 0,
L = this.positionAdjustForegroundColor = void 0,
D = this.timingBackgroundColor = void 0,
A = this.timingForegroundColor = void 0,
E = this.typeNumberBackgroundColor = void 0,
T = this.typeNumberForegroundColor = void 0,
N = this.darkBlockColor = void 0;
this.base = void 0, this.modules = [], this.moduleCount = 0, this.drawModules = [];
var M = this.canvasContext = void 0;
this.loadImage, this.drawReserve = !1, this.isMaked = !1, Object.defineProperties(this, {
data: {
get() {
if ("" === r || void 0 === r) throw console.error("[uQRCode]: data must be set!"), new b
.Error("data must be set!");
return r
},
set(o) {
r = String(o);
}
},
size: {
get: () => t,
set(o) {
t = Number(o);
}
},
typeNumber: {
get: () => i,
set(o) {
i = Number(o);
}
},
margin: {
get: () => n,
set(o) {
n = Number(o);
}
},
backgroundImageWidth: {
get() {
return void 0 === a ? this.dynamicSize : this.useDynamicSize ? this.dynamicSize / this
.size * a : a
},
set(o) {
a = Number(o);
}
},
backgroundImageHeight: {
get() {
return void 0 === d ? this.dynamicSize : this.useDynamicSize ? this.dynamicSize / this
.size * d : d
},
set(o) {
d = Number(o);
}
},
backgroundImageX: {
get() {
return void 0 === u ? 0 : this.useDynamicSize ? this.dynamicSize / this.size * u : u
},
set(o) {
u = Number(o);
}
},
backgroundImageY: {
get() {
return void 0 === s ? 0 : this.useDynamicSize ? this.dynamicSize / this.size * s : s
},
set(o) {
s = Number(o);
}
},
backgroundPadding: {
get: () => g,
set(o) {
g = o > 1 ? 1 : o < 0 ? 0 : o;
}
},
foregroundImageWidth: {
get() {
return void 0 === l ? (this.dynamicSize - 2 * this.margin) / 4 : this.useDynamicSize ? this
.dynamicSize / this.size * l : l
},
set(o) {
l = Number(o);
}
},
foregroundImageHeight: {
get() {
return void 0 === h ? (this.dynamicSize - 2 * this.margin) / 4 : this.useDynamicSize ? this
.dynamicSize / this.size * h : h
},
set(o) {
h = Number(o);
}
},
foregroundImageX: {
get() {
return void 0 === c ? this.dynamicSize / 2 - this.foregroundImageWidth / 2 : this
.useDynamicSize ? this.dynamicSize / this.size * c : c
},
set(o) {
c = Number(o);
}
},
foregroundImageY: {
get() {
return void 0 === m ? this.dynamicSize / 2 - this.foregroundImageHeight / 2 : this
.useDynamicSize ? this.dynamicSize / this.size * m : m
},
set(o) {
m = Number(o);
}
},
foregroundImagePadding: {
get() {
return this.useDynamicSize ? this.dynamicSize / this.size * f : f
},
set(o) {
f = Number(o);
}
},
foregroundImageBorderRadius: {
get() {
return this.useDynamicSize ? this.dynamicSize / this.size * v : v
},
set(o) {
v = Number(o);
}
},
foregroundImageShadowOffsetX: {
get() {
return this.useDynamicSize ? this.dynamicSize / this.size * p : p
},
set(o) {
p = Number(o);
}
},
foregroundImageShadowOffsetY: {
get() {
return this.useDynamicSize ? this.dynamicSize / this.size * k : k
},
set(o) {
k = Number(o);
}
},
foregroundImageShadowBlur: {
get() {
return this.useDynamicSize ? this.dynamicSize / this.size * y : y
},
set(o) {
y = Number(o);
}
},
foregroundPadding: {
get: () => w,
set(o) {
w = o > 1 ? 1 : o < 0 ? 0 : o;
}
},
positionProbeBackgroundColor: {
get() {
return I || this.backgroundColor
},
set(o) {
I = o;
}
},
positionProbeForegroundColor: {
get() {
return B || this.foregroundColor
},
set(o) {
B = o;
}
},
separatorColor: {
get() {
return S || this.backgroundColor
},
set(o) {
S = o;
}
},
positionAdjustBackgroundColor: {
get() {
return P || this.backgroundColor
},
set(o) {
P = o;
}
},
positionAdjustForegroundColor: {
get() {
return L || this.foregroundColor
},
set(o) {
L = o;
}
},
timingBackgroundColor: {
get() {
return D || this.backgroundColor
},
set(o) {
D = o;
}
},
timingForegroundColor: {
get() {
return A || this.foregroundColor
},
set(o) {
A = o;
}
},
typeNumberBackgroundColor: {
get() {
return E || this.backgroundColor
},
set(o) {
E = o;
}
},
typeNumberForegroundColor: {
get() {
return T || this.foregroundColor
},
set(o) {
T = o;
}
},
darkBlockColor: {
get() {
return N || this.foregroundColor
},
set(o) {
N = o;
}
},
canvasContext: {
get() {
if (void 0 === M) throw console.error(
"[uQRCode]: use drawCanvas, you need to set the canvasContext!"), new b.Error(
"use drawCanvas, you need to set the canvasContext!");
return M
},
set(o) {
M = C(o);
}
}
}), b.plugins.forEach((o => o(b, this, !1))), o && this.setOptions(o), e && (this.canvasContext = C(e));
}
f.prototype = {
get: function(o) {
return this.num[o]
},
getLength: function() {
return this.num.length
},
multiply: function(o) {
for (var e = new Array(this.getLength() + o.getLength() - 1), r = 0; r < this.getLength(); r++)
for (var t = 0; t < o.getLength(); t++) e[r + t] ^= c.gexp(c.glog(this.get(r)) + c.glog(o.get(t)));
return new f(e, 0)
},
mod: function(o) {
if (this.getLength() - o.getLength() < 0) return this;
for (var e = c.glog(this.get(0)) - c.glog(o.get(0)), r = new Array(this.getLength()), t = 0; t < this
.getLength(); t++) r[t] = this.get(t);
for (t = 0; t < o.getLength(); t++) r[t] ^= c.gexp(c.glog(o.get(t)) + e);
return new f(r, 0).mod(o)
}
}, v.RS_BLOCK_TABLE = [
[1, 26, 19],
[1, 26, 16],
[1, 26, 13],
[1, 26, 9],
[1, 44, 34],
[1, 44, 28],
[1, 44, 22],
[1, 44, 16],
[1, 70, 55],
[1, 70, 44],
[2, 35, 17],
[2, 35, 13],
[1, 100, 80],
[2, 50, 32],
[2, 50, 24],
[4, 25, 9],
[1, 134, 108],
[2, 67, 43],
[2, 33, 15, 2, 34, 16],
[2, 33, 11, 2, 34, 12],
[2, 86, 68],
[4, 43, 27],
[4, 43, 19],
[4, 43, 15],
[2, 98, 78],
[4, 49, 31],
[2, 32, 14, 4, 33, 15],
[4, 39, 13, 1, 40, 14],
[2, 121, 97],
[2, 60, 38, 2, 61, 39],
[4, 40, 18, 2, 41, 19],
[4, 40, 14, 2, 41, 15],
[2, 146, 116],
[3, 58, 36, 2, 59, 37],
[4, 36, 16, 4, 37, 17],
[4, 36, 12, 4, 37, 13],
[2, 86, 68, 2, 87, 69],
[4, 69, 43, 1, 70, 44],
[6, 43, 19, 2, 44, 20],
[6, 43, 15, 2, 44, 16],
[4, 101, 81],
[1, 80, 50, 4, 81, 51],
[4, 50, 22, 4, 51, 23],
[3, 36, 12, 8, 37, 13],
[2, 116, 92, 2, 117, 93],
[6, 58, 36, 2, 59, 37],
[4, 46, 20, 6, 47, 21],
[7, 42, 14, 4, 43, 15],
[4, 133, 107],
[8, 59, 37, 1, 60, 38],
[8, 44, 20, 4, 45, 21],
[12, 33, 11, 4, 34, 12],
[3, 145, 115, 1, 146, 116],
[4, 64, 40, 5, 65, 41],
[11, 36, 16, 5, 37, 17],
[11, 36, 12, 5, 37, 13],
[5, 109, 87, 1, 110, 88],
[5, 65, 41, 5, 66, 42],
[5, 54, 24, 7, 55, 25],
[11, 36, 12],
[5, 122, 98, 1, 123, 99],
[7, 73, 45, 3, 74, 46],
[15, 43, 19, 2, 44, 20],
[3, 45, 15, 13, 46, 16],
[1, 135, 107, 5, 136, 108],
[10, 74, 46, 1, 75, 47],
[1, 50, 22, 15, 51, 23],
[2, 42, 14, 17, 43, 15],
[5, 150, 120, 1, 151, 121],
[9, 69, 43, 4, 70, 44],
[17, 50, 22, 1, 51, 23],
[2, 42, 14, 19, 43, 15],
[3, 141, 113, 4, 142, 114],
[3, 70, 44, 11, 71, 45],
[17, 47, 21, 4, 48, 22],
[9, 39, 13, 16, 40, 14],
[3, 135, 107, 5, 136, 108],
[3, 67, 41, 13, 68, 42],
[15, 54, 24, 5, 55, 25],
[15, 43, 15, 10, 44, 16],
[4, 144, 116, 4, 145, 117],
[17, 68, 42],
[17, 50, 22, 6, 51, 23],
[19, 46, 16, 6, 47, 17],
[2, 139, 111, 7, 140, 112],
[17, 74, 46],
[7, 54, 24, 16, 55, 25],
[34, 37, 13],
[4, 151, 121, 5, 152, 122],
[4, 75, 47, 14, 76, 48],
[11, 54, 24, 14, 55, 25],
[16, 45, 15, 14, 46, 16],
[6, 147, 117, 4, 148, 118],
[6, 73, 45, 14, 74, 46],
[11, 54, 24, 16, 55, 25],
[30, 46, 16, 2, 47, 17],
[8, 132, 106, 4, 133, 107],
[8, 75, 47, 13, 76, 48],
[7, 54, 24, 22, 55, 25],
[22, 45, 15, 13, 46, 16],
[10, 142, 114, 2, 143, 115],
[19, 74, 46, 4, 75, 47],
[28, 50, 22, 6, 51, 23],
[33, 46, 16, 4, 47, 17],
[8, 152, 122, 4, 153, 123],
[22, 73, 45, 3, 74, 46],
[8, 53, 23, 26, 54, 24],
[12, 45, 15, 28, 46, 16],
[3, 147, 117, 10, 148, 118],
[3, 73, 45, 23, 74, 46],
[4, 54, 24, 31, 55, 25],
[11, 45, 15, 31, 46, 16],
[7, 146, 116, 7, 147, 117],
[21, 73, 45, 7, 74, 46],
[1, 53, 23, 37, 54, 24],
[19, 45, 15, 26, 46, 16],
[5, 145, 115, 10, 146, 116],
[19, 75, 47, 10, 76, 48],
[15, 54, 24, 25, 55, 25],
[23, 45, 15, 25, 46, 16],
[13, 145, 115, 3, 146, 116],
[2, 74, 46, 29, 75, 47],
[42, 54, 24, 1, 55, 25],
[23, 45, 15, 28, 46, 16],
[17, 145, 115],
[10, 74, 46, 23, 75, 47],
[10, 54, 24, 35, 55, 25],
[19, 45, 15, 35, 46, 16],
[17, 145, 115, 1, 146, 116],
[14, 74, 46, 21, 75, 47],
[29, 54, 24, 19, 55, 25],
[11, 45, 15, 46, 46, 16],
[13, 145, 115, 6, 146, 116],
[14, 74, 46, 23, 75, 47],
[44, 54, 24, 7, 55, 25],
[59, 46, 16, 1, 47, 17],
[12, 151, 121, 7, 152, 122],
[12, 75, 47, 26, 76, 48],
[39, 54, 24, 14, 55, 25],
[22, 45, 15, 41, 46, 16],
[6, 151, 121, 14, 152, 122],
[6, 75, 47, 34, 76, 48],
[46, 54, 24, 10, 55, 25],
[2, 45, 15, 64, 46, 16],
[17, 152, 122, 4, 153, 123],
[29, 74, 46, 14, 75, 47],
[49, 54, 24, 10, 55, 25],
[24, 45, 15, 46, 46, 16],
[4, 152, 122, 18, 153, 123],
[13, 74, 46, 32, 75, 47],
[48, 54, 24, 14, 55, 25],
[42, 45, 15, 32, 46, 16],
[20, 147, 117, 4, 148, 118],
[40, 75, 47, 7, 76, 48],
[43, 54, 24, 22, 55, 25],
[10, 45, 15, 67, 46, 16],
[19, 148, 118, 6, 149, 119],
[18, 75, 47, 31, 76, 48],
[34, 54, 24, 34, 55, 25],
[20, 45, 15, 61, 46, 16]
], v.getRSBlocks = function(o, e) {
var r = v.getRsBlockTable(o, e);
if (null == r) throw new Error("bad rs block @ typeNumber:" + o + "/errorCorrectLevel:" + e);
for (var t = r.length / 3, i = new Array, n = 0; n < t; n++)
for (var a = r[3 * n + 0], d = r[3 * n + 1], u = r[3 * n + 2], s = 0; s < a; s++) i.push(new v(d, u));
return i
}, v.getRsBlockTable = function(o, e) {
switch (e) {
case t.L:
return v.RS_BLOCK_TABLE[4 * (o - 1) + 0];
case t.M:
return v.RS_BLOCK_TABLE[4 * (o - 1) + 1];
case t.Q:
return v.RS_BLOCK_TABLE[4 * (o - 1) + 2];
case t.H:
return v.RS_BLOCK_TABLE[4 * (o - 1) + 3];
default:
return
}
}, p.prototype = {
get: function(o) {
var e = Math.floor(o / 8);
return 1 == (this.buffer[e] >>> 7 - o % 8 & 1)
},
put: function(o, e) {
for (var r = 0; r < e; r++) this.putBit(1 == (o >>> e - r - 1 & 1));
},
getLengthInBits: function() {
return this.length
},
putBit: function(o) {
var e = Math.floor(this.length / 8);
this.buffer.length <= e && this.buffer.push(0), o && (this.buffer[e] |= 128 >>> this.length % 8), this
.length++;
}
}, e.errorCorrectLevel = t, b.errorCorrectLevel = e.errorCorrectLevel, b.Error = function(o) {
this.errMsg = "[uQRCode]: " + o;
}, b.plugins = [], b.use = function(o) {
"function" == typeof o && b.plugins.push(o);
}, b.prototype.loadImage = function(o) {
return Promise.resolve(o)
}, b.prototype.setOptions = function(o) {
var e, r, t, i, n, a, d, u, s, g, l, h, c, m, f, v, p, C, b, k, y, w, I, B, S, P, L, D, A, E, T, N, M, z, R, _,
O, F, x, H, X, Y, j, W, G, K, Q, U, $, J, q, V, Z, oo, eo, ro;
o && (Object.keys(o).forEach((e => {
this[e] = o[e];
})), function(o = {}, e = {}, r = !1) {
let t;
t = r ? o : {
...o
};
for (let o in e) {
var i = e[o];
null != i && (i.constructor == Object ? t[o] = this.deepReplace(t[o], i) : i.constructor !=
String || i ? t[o] = i : t[o] = t[o]);
}
}(this, {
data: o.data || o.text,
size: o.size,
useDynamicSize: o.useDynamicSize,
typeNumber: o.typeNumber,
errorCorrectLevel: o.errorCorrectLevel,
margin: o.margin,
areaColor: o.areaColor,
backgroundColor: o.backgroundColor || (null === (e = o.background) || void 0 === e ? void 0 : e
.color),
backgroundImageSrc: o.backgroundImageSrc || (null === (r = o.background) || void 0 === r ||
null === (t = r.image) || void 0 === t ? void 0 : t.src),
backgroundImageWidth: o.backgroundImageWidth || (null === (i = o.background) || void 0 === i ||
null === (n = i.image) || void 0 === n ? void 0 : n.width),
backgroundImageHeight: o.backgroundImageHeight || (null === (a = o.background) || void 0 ===
a || null === (d = a.image) || void 0 === d ? void 0 : d.height),
backgroundImageX: o.backgroundImageX || (null === (u = o.background) || void 0 === u || null ===
(s = u.image) || void 0 === s ? void 0 : s.x),
backgroundImageY: o.backgroundImageY || (null === (g = o.background) || void 0 === g || null ===
(l = g.image) || void 0 === l ? void 0 : l.y),
backgroundImageAlpha: o.backgroundImageAlpha || (null === (h = o.background) || void 0 === h ||
null === (c = h.image) || void 0 === c ? void 0 : c.alpha),
backgroundImageBorderRadius: o.backgroundImageBorderRadius || (null === (m = o.background) ||
void 0 === m || null === (f = m.image) || void 0 === f ? void 0 : f.borderRadius),
backgroundPadding: o.backgroundPadding,
foregroundColor: o.foregroundColor || (null === (v = o.foreground) || void 0 === v ? void 0 : v
.color),
foregroundImageSrc: o.foregroundImageSrc || (null === (p = o.foreground) || void 0 === p ||
null === (C = p.image) || void 0 === C ? void 0 : C.src),
foregroundImageWidth: o.foregroundImageWidth || (null === (b = o.foreground) || void 0 === b ||
null === (k = b.image) || void 0 === k ? void 0 : k.width),
foregroundImageHeight: o.foregroundImageHeight || (null === (y = o.foreground) || void 0 ===
y || null === (w = y.image) || void 0 === w ? void 0 : w.height),
foregroundImageX: o.foregroundImageX || (null === (I = o.foreground) || void 0 === I || null ===
(B = I.image) || void 0 === B ? void 0 : B.x),
foregroundImageY: o.foregroundImageY || (null === (S = o.foreground) || void 0 === S || null ===
(P = S.image) || void 0 === P ? void 0 : P.y),
foregroundImagePadding: o.foregroundImagePadding || (null === (L = o.foreground) || void 0 ===
L || null === (D = L.image) || void 0 === D ? void 0 : D.padding),
foregroundImageBackgroundColor: o.foregroundImageBackgroundColor || (null === (A = o
.foreground) || void 0 === A || null === (E = A.image) || void 0 === E ? void 0 : E
.backgroundColor),
foregroundImageBorderRadius: o.foregroundImageBorderRadius || (null === (T = o.foreground) ||
void 0 === T || null === (N = T.image) || void 0 === N ? void 0 : N.borderRadius),
foregroundImageShadowOffsetX: o.foregroundImageShadowOffsetX || (null === (M = o.foreground) ||
void 0 === M || null === (z = M.image) || void 0 === z ? void 0 : z.shadowOffsetX),
foregroundImageShadowOffsetY: o.foregroundImageShadowOffsetY || (null === (R = o.foreground) ||
void 0 === R || null === (_ = R.image) || void 0 === _ ? void 0 : _.shadowOffsetY),
foregroundImageShadowBlur: o.foregroundImageShadowBlur || (null === (O = o.foreground) ||
void 0 === O || null === (F = O.image) || void 0 === F ? void 0 : F.shadowBlur),
foregroundImageShadowColor: o.foregroundImageShadowColor || (null === (x = o.foreground) ||
void 0 === x || null === (H = x.image) || void 0 === H ? void 0 : H.shadowColor),
foregroundPadding: o.foregroundPadding,
positionProbeBackgroundColor: o.positionProbeBackgroundColor || (null === (X = o
.positionProbe) || void 0 === X ? void 0 : X.backgroundColor) || (null === (Y = o
.positionDetection) || void 0 === Y ? void 0 : Y.backgroundColor),
positionProbeForegroundColor: o.positionProbeForegroundColor || (null === (j = o
.positionProbe) || void 0 === j ? void 0 : j.foregroundColor) || (null === (W = o
.positionDetection) || void 0 === W ? void 0 : W.foregroundColor),
separatorColor: o.separatorColor || (null === (G = o.separator) || void 0 === G ? void 0 : G
.color),
positionAdjustBackgroundColor: o.positionAdjustBackgroundColor || (null === (K = o
.positionAdjust) || void 0 === K ? void 0 : K.backgroundColor) || (null === (Q = o
.alignment) || void 0 === Q ? void 0 : Q.backgroundColor),
positionAdjustForegroundColor: o.positionAdjustForegroundColor || (null === (U = o
.positionAdjust) || void 0 === U ? void 0 : U.foregroundColor) || (null === ($ = o
.alignment) || void 0 === $ ? void 0 : $.foregroundColor),
timingBackgroundColor: o.timingBackgroundColor || (null === (J = o.timing) || void 0 === J ?
void 0 : J.backgroundColor),
timingForegroundColor: o.timingForegroundColor || (null === (q = o.timing) || void 0 === q ?
void 0 : q.foregroundColor),
typeNumberBackgroundColor: o.typeNumberBackgroundColor || (null === (V = o.typeNumber) ||
void 0 === V ? void 0 : V.backgroundColor) || (null === (Z = o.versionInformation) ||
void 0 === Z ? void 0 : Z.backgroundColor),
typeNumberForegroundColor: o.typeNumberForegroundColor || (null === (oo = o.typeNumber) ||
void 0 === oo ? void 0 : oo.foregroundColor) || (null === (eo = o.versionInformation) ||
void 0 === eo ? void 0 : eo.foregroundColor),
darkBlockColor: o.darkBlockColor || (null === (ro = o.darkBlock) || void 0 === ro ? void 0 : ro
.color)
}, !0));
}, b.prototype.make = function() {
let {
foregroundColor: o,
backgroundColor: r,
typeNumber: t,
errorCorrectLevel: i,
data: n,
size: a,
margin: d,
useDynamicSize: u
} = this;
if (o === r) throw console.error("[uQRCode]: foregroundColor and backgroundColor cannot be the same!"), new b
.Error("foregroundColor and backgroundColor cannot be the same!");
var s = new e(t, i);
s.addData(function(o) {
o = o.toString();
for (var e, r = "", t = 0; t < o.length; t++)(e = o.charCodeAt(t)) >= 1 && e <= 127 ? r += o.charAt(
t) : e > 2047 ? (r += String.fromCharCode(224 | e >> 12 & 15), r += String.fromCharCode(
128 | e >> 6 & 63), r += String.fromCharCode(128 | e >> 0 & 63)) : (r += String
.fromCharCode(192 | e >> 6 & 31), r += String.fromCharCode(128 | e >> 0 & 63));
return r
}(n)), s.make(), this.base = s, this.typeNumber = s.typeNumber, this.modules = s.modules, this.moduleCount =
s.moduleCount, this.dynamicSize = u ? Math.ceil((a - 2 * d) / s.moduleCount) * s.moduleCount + 2 * d : a,
function(o) {
let {
dynamicSize: e,
margin: r,
backgroundColor: t,
backgroundPadding: i,
foregroundColor: n,
foregroundPadding: a,
modules: d,
moduleCount: u
} = o, s = (e - 2 * r) / u, g = s, l = 0;
i > 0 && (l = g * i / 2, g -= 2 * l);
let h = s,
c = 0;
a > 0 && (c = h * a / 2, h -= 2 * c);
for (var m = 0; m < u; m++)
for (var f = 0; f < u; f++) {
var v = f * s + r,
p = m * s + r;
if (d[m][f]) {
var C = c,
b = v + c,
k = p + c,
y = h,
w = h;
d[m][f] = {
type: ["foreground"],
color: n,
isBlack: !0,
isDrawn: !1,
destX: v,
destY: p,
destWidth: s,
destHeight: s,
x: b,
y: k,
width: y,
height: w,
paddingTop: C,
paddingRight: C,
paddingBottom: C,
paddingLeft: C
};
} else C = l, b = v + l, k = p + l, y = g, w = g, d[m][f] = {
type: ["background"],
color: t,
isBlack: !1,
isDrawn: !1,
destX: v,
destY: p,
destWidth: s,
destHeight: s,
x: b,
y: k,
width: y,
height: w,
paddingTop: C,
paddingRight: C,
paddingBottom: C,
paddingLeft: C
};
}
}(this),
function(o) {
let {
modules: e,
moduleCount: r,
positionProbeBackgroundColor: t,
positionProbeForegroundColor: i
} = o, n = r - 7;
[
[0, 0, 1],
[1, 0, 1],
[2, 0, 1],
[3, 0, 1],
[4, 0, 1],
[5, 0, 1],
[6, 0, 1],
[0, 1, 1],
[1, 1, 0],
[2, 1, 0],
[3, 1, 0],
[4, 1, 0],
[5, 1, 0],
[6, 1, 1],
[0, 2, 1],
[1, 2, 0],
[2, 2, 1],
[3, 2, 1],
[4, 2, 1],
[5, 2, 0],
[6, 2, 1],
[0, 3, 1],
[1, 3, 0],
[2, 3, 1],
[3, 3, 1],
[4, 3, 1],
[5, 3, 0],
[6, 3, 1],
[0, 4, 1],
[1, 4, 0],
[2, 4, 1],
[3, 4, 1],
[4, 4, 1],
[5, 4, 0],
[6, 4, 1],
[0, 5, 1],
[1, 5, 0],
[2, 5, 0],
[3, 5, 0],
[4, 5, 0],
[5, 5, 0],
[6, 5, 1],
[0, 6, 1],
[1, 6, 1],
[2, 6, 1],
[3, 6, 1],
[4, 6, 1],
[5, 6, 1],
[6, 6, 1]
].forEach((o => {
var r = e[o[0]][o[1]],
a = e[o[0] + n][o[1]],
d = e[o[0]][o[1] + n];
d.type.push("positionProbe"), a.type.push("positionProbe"), r.type.push(
"positionProbe"), r.color = 1 == o[2] ? i : t, a.color = 1 == o[2] ? i : t, d
.color = 1 == o[2] ? i : t;
}));
}(this),
function(o) {
let {
modules: e,
moduleCount: r,
separatorColor: t
} = o;
[
[7, 0],
[7, 1],
[7, 2],
[7, 3],
[7, 4],
[7, 5],
[7, 6],
[7, 7],
[0, 7],
[1, 7],
[2, 7],
[3, 7],
[4, 7],
[5, 7],
[6, 7]
].forEach((o => {
var i = e[o[0]][o[1]],
n = e[r - o[0] - 1][o[1]],
a = e[o[0]][r - o[1] - 1];
a.type.push("separator"), n.type.push("separator"), i.type.push("separator"), i.color =
t, n.color = t, a.color = t;
}));
}(this),
function(o) {
let {
typeNumber: e,
modules: r,
moduleCount: t,
foregroundColor: i,
backgroundColor: n,
positionAdjustForegroundColor: a,
positionAdjustBackgroundColor: d,
timingForegroundColor: u,
timingBackgroundColor: s
} = o;
const g = [
[],
[6, 18],
[6, 22],
[6, 26],
[6, 30],
[6, 34],
[6, 22, 38],
[6, 24, 42],
[6, 26, 46],
[6, 28, 50],
[6, 30, 54],
[6, 32, 58],
[6, 34, 62],
[6, 26, 46, 66],
[6, 26, 48, 70],
[6, 26, 50, 74],
[6, 30, 54, 78],
[6, 30, 56, 82],
[6, 30, 58, 86],
[6, 34, 62, 90],
[6, 28, 50, 72, 94],
[6, 26, 50, 74, 98],
[6, 30, 54, 78, 102],
[6, 28, 54, 80, 106],
[6, 32, 58, 84, 110],
[6, 30, 58, 86, 114],
[6, 34, 62, 90, 118],
[6, 26, 50, 74, 98, 122],
[6, 30, 54, 78, 102, 126],
[6, 26, 52, 78, 104, 130],
[6, 30, 56, 82, 108, 134],
[6, 34, 60, 86, 112, 138],
[6, 30, 58, 86, 114, 142],
[6, 34, 62, 90, 118, 146],
[6, 30, 54, 78, 102, 126, 150],
[6, 24, 50, 76, 102, 128, 154],
[6, 28, 54, 80, 106, 132, 158],
[6, 32, 58, 84, 110, 136, 162],
[6, 26, 54, 82, 110, 138, 166],
[6, 30, 58, 86, 114, 142, 170]
][e - 1];
if (g) {
const o = [
[-2, -2, 1],
[-1, -2, 1],
[0, -2, 1],
[1, -2, 1],
[2, -2, 1],
[-2, -1, 1],
[-1, -1, 0],
[0, -1, 0],
[1, -1, 0],
[2, -1, 1],
[-2, 0, 1],
[-1, 0, 0],
[0, 0, 1],
[1, 0, 0],
[2, 0, 1],
[-2, 1, 1],
[-1, 1, 0],
[0, 1, 0],
[1, 1, 0],
[2, 1, 1],
[-2, 2, 1],
[-1, 2, 1],
[0, 2, 1],
[1, 2, 1],
[2, 2, 1]
],
e = g.length;
for (let l = 0; l < e; l++)
for (let h = 0; h < e; h++) {
let {
x: e,
y: c
} = {
x: g[l],
y: g[h]
};
e < 9 && c < 9 || e > t - 9 - 1 && c < 9 || c > t - 9 - 1 && e < 9 || o.forEach((o => {
var t = r[e + o[0]][c + o[1]];
t.type.push("positionAdjust"), t.type.includes("timing") ? 1 == o[2] ? t
.color = a == i ? u : a : t.color = a == i && d == n ? s : d : t.color =
1 == o[2] ? a : d;
}));
}
}
}(this),
function(o) {
let {
modules: e,
moduleCount: r,
timingForegroundColor: t,
timingBackgroundColor: i
} = o, n = r - 16;
for (let o = 0; o < n; o++) {
var a = e[6][8 + o],
d = e[8 + o][6];
a.type.push("timing"), d.type.push("timing"), a.color = 1 & o ^ 1 ? t : i, d.color = 1 & o ^ 1 ? t :
i;
}
}(this),
function(o) {
let {
modules: e,
moduleCount: r,
darkBlockColor: t
} = o;
var i = e[r - 7 - 1][8];
i.type.push("darkBlock"), i.color = t;
}(this),
function(o) {
let {
typeNumber: e,
modules: r,
moduleCount: t,
typeNumberBackgroundColor: i,
typeNumberForegroundColor: n
} = o;
if (e < 7) return r;
const a = [0, 0, 0, 0, 0, 0, 0, "000111110010010100", "001000010110111100", "001001101010011001",
"001010010011010011", "001011101111110110", "001100011101100010", "001101100001000111",
"001110011000001101", "001111100100101000", "010000101101111000", "010001010001011101",
"010010101000010111", "010011010100110010", "010100100110100110", "010101011010000011",
"010110100011001001", "010111011111101100", "011000111011000100", "011001000111100001",
"011010111110101011", "011011000010001110", "011100110000011010", "011101001100111111",
"011110110101110101", "011111001001010000", "100000100111010101", "100001011011110000",
"100010100010111010", "100011011110011111", "100100101100001011", "100101010000101110",
"100110101001100100", "100111010101000001", "101000110001101001"
];
let d = a[e] + a[e],
u = [t - 11, t - 10, t - 9];
[
[5, u[2]],
[5, u[1]],
[5, u[0]],
[4, u[2]],
[4, u[1]],
[4, u[0]],
[3, u[2]],
[3, u[1]],
[3, u[0]],
[2, u[2]],
[2, u[1]],
[2, u[0]],
[1, u[2]],
[1, u[1]],
[1, u[0]],
[0, u[2]],
[0, u[1]],
[0, u[0]],
[u[2], 5],
[u[1], 5],
[u[0], 5],
[u[2], 4],
[u[1], 4],
[u[0], 4],
[u[2], 3],
[u[1], 3],
[u[0], 3],
[u[2], 2],
[u[1], 2],
[u[0], 2],
[u[2], 1],
[u[1], 1],
[u[0], 1],
[u[2], 0],
[u[1], 0],
[u[0], 0]
].forEach(((o, e) => {
var t = r[o[0]][o[1]];
t.type.push("typeNumber"), t.color = "1" == d[e] ? n : i;
}));
}(this), this.isMaked = !0, this.drawModules = [];
}, b.prototype.getDrawModules = function() {
if (this.drawModules && this.drawModules.length > 0) return this.drawModules;
let o = this.drawModules = [],
{
modules: e,
moduleCount: r,
dynamicSize: t,
areaColor: i,
backgroundImageSrc: n,
backgroundImageX: a,
backgroundImageY: d,
backgroundImageWidth: u,
backgroundImageHeight: s,
backgroundImageAlpha: g,
backgroundImageBorderRadius: l,
foregroundImageSrc: h,
foregroundImageX: c,
foregroundImageY: m,
foregroundImageWidth: f,
foregroundImageHeight: v,
foregroundImagePadding: p,
foregroundImageBackgroundColor: C,
foregroundImageBorderRadius: b,
foregroundImageShadowOffsetX: k,
foregroundImageShadowOffsetY: y,
foregroundImageShadowBlur: w,
foregroundImageShadowColor: I
} = this;
i && o.push({
name: "area",
type: "area",
color: i,
x: 0,
y: 0,
width: t,
height: t
}), n && o.push({
name: "backgroundImage",
type: "image",
imageSrc: n,
mappingName: "backgroundImageSrc",
x: a,
y: d,
width: u,
height: s,
alpha: g,
borderRadius: l
});
for (var B = 0; B < r; B++)
for (var S = 0; S < r; S++) {
var P = e[B][S];
P.isDrawn || (P.type.includes("foreground") ? o.push({
name: "foreground",
type: "tile",
color: P.color,
destX: P.destX,
destY: P.destY,
destWidth: P.destWidth,
destHeight: P.destHeight,
x: P.x,
y: P.y,
width: P.width,
height: P.height,
paddingTop: P.paddingTop,
paddingRight: P.paddingRight,
paddingBottom: P.paddingBottom,
paddingLeft: P.paddingLeft,
rowIndex: B,
colIndex: S
}) : o.push({
name: "background",
type: "tile",
color: P.color,
destX: P.destX,
destY: P.destY,
destWidth: P.destWidth,
destHeight: P.destHeight,
x: P.x,
y: P.y,
width: P.width,
height: P.height,
paddingTop: P.paddingTop,
paddingRight: P.paddingRight,
paddingBottom: P.paddingBottom,
paddingLeft: P.paddingLeft,
rowIndex: B,
colIndex: S
}), P.isDrawn = !0);
}
return h && o.push({
name: "foregroundImage",
type: "image",
imageSrc: h,
mappingName: "foregroundImageSrc",
x: c,
y: m,
width: f,
height: v,
padding: p,
backgroundColor: C,
borderRadius: b,
shadowOffsetX: k,
shadowOffsetY: y,
shadowBlur: w,
shadowColor: I
}), o
}, b.prototype.isBlack = function(o, e) {
var r = this.moduleCount;
return !(0 > o || 0 > e || o >= r || e >= r) && this.modules[o][e].isBlack
}, b.prototype.drawCanvas = function() {
let {
isMaked: o,
canvasContext: e,
useDynamicSize: r,
dynamicSize: t,
foregroundColor: i,
foregroundPadding: n,
backgroundColor: a,
backgroundPadding: d,
drawReserve: u,
margin: s
} = this;
if (!o) return console.error("[uQRCode]: please execute the make method first!"), Promise.reject(new b.Error(
"please execute the make method first!"));
let g = this.getDrawModules(),
l = async (o, r) => {
try {
e.clearRect(0, 0, t, t), e.draw(!1);
for (var i = 0; i < g.length; i++) {
var n = g[i];
switch (e.save(), n.type) {
case "area":
e.setFillStyle(n.color), e.fillRect(n.x, n.y, n.width, n.height);
break;
case "tile":
var a = n.x,
d = n.y,
s = n.width,
l = n.height;
e.setFillStyle(n.color), e.fillRect(a, d, s, l);
break;
case "image":
if ("backgroundImage" === n.name) {
a = Math.round(n.x), d = Math.round(n.y), s = Math.round(n.width), l = Math
.round(n.height);
s < 2 * (c = Math.round(n.borderRadius)) && (c = s / 2), l < 2 * c && (c = l /
2), e.setGlobalAlpha(n.alpha), c > 0 && (e.beginPath(), e.moveTo(a + c,
d), e.arcTo(a + s, d, a + s, d + l, c), e.arcTo(a + s, d + l, a, d +
l, c), e.arcTo(a, d + l, a, d, c), e.arcTo(a, d, a + s, d, c), e
.closePath(), e.setStrokeStyle("rgba(0,0,0,0)"), e.stroke(), e.clip());
try {
var h = await this.loadImage(n.imageSrc);
e.drawImage(h, a, d, s, l);
} catch (o) {
throw console.error(`[uQRCode]: ${n.mappingName} invalid!`), new b.Error(
`${n.mappingName} invalid!`)
}
} else if ("foregroundImage" === n.name) {
a = Math.round(n.x), d = Math.round(n.y), s = Math.round(n.width), l = Math
.round(n.height);
var c, m = Math.round(n.padding);
s < 2 * (c = Math.round(n.borderRadius)) && (c = s / 2), l < 2 * c && (c = l /
2);
var f = a - m,
v = d - m,
p = s + 2 * m,
C = l + 2 * m,
k = Math.round(p / s * c);
p < 2 * k && (k = p / 2), C < 2 * k && (k = C / 2), e.save(), e.setShadow(n
.shadowOffsetX, n.shadowOffsetY, n.shadowBlur, n.shadowColor), k > 0 ? (
e.beginPath(), e.moveTo(f + k, v), e.arcTo(f + p, v, f + p, v + C, k), e
.arcTo(f + p, v + C, f, v + C, k), e.arcTo(f, v + C, f, v, k), e.arcTo(
f, v, f + p, v, k), e.closePath(), e.setFillStyle(n
.backgroundColor), e.fill()) : (e.setFillStyle(n.backgroundColor), e
.fillRect(f, v, p, C)), e.restore(), e.save(), k > 0 ? (e.beginPath(), e
.moveTo(f + k, v), e.arcTo(f + p, v, f + p, v + C, k), e.arcTo(f + p,
v + C, f, v + C, k), e.arcTo(f, v + C, f, v, k), e.arcTo(f, v, f +
p, v, k), e.closePath(), e.setFillStyle(m > 0 ? n.backgroundColor :
"rgba(0,0,0,0)"), e.fill()) : (e.setFillStyle(m > 0 ? n
.backgroundColor : "rgba(0,0,0,0)"), e.fillRect(f, v, p, C)), e
.restore(), c > 0 && (e.beginPath(), e.moveTo(a + c, d), e.arcTo(a + s, d,
a + s, d + l, c), e.arcTo(a + s, d + l, a, d + l, c), e.arcTo(a, d +
l, a, d, c), e.arcTo(a, d, a + s, d, c), e.closePath(), e
.setStrokeStyle("rgba(0,0,0,0)"), e.stroke(), e.clip());
try {
h = await this.loadImage(n.imageSrc);
e.drawImage(h, a, d, s, l);
} catch (o) {
throw console.error(`[uQRCode]: ${n.mappingName} invalid!`), new b.Error(
`${n.mappingName} invalid!`)
}
}
}
u && e.draw(!0), e.restore();
}
e.draw(!0), setTimeout(o, 150);
} catch (o) {
if (!(o instanceof b.Error)) throw o;
r(o);
}
};
return new Promise(((o, e) => {
l(o, e);
}))
}, b.prototype.draw = function() {
return this.drawCanvas()
}, b.prototype.register = function(o) {
o && o(b, this, !0);
};
export {
b as
default
};