UNPKG

@tplc/wot

Version:

1,660 lines (1,657 loc) 60.8 kB
// --------------------------------------------------------------------- // 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> 标签的浏览器(别名: esm,module) // 如需在其他环境使用,请获取环境对应的格式文件 // 格式说明: // amd - 异步模块定义,适用于 RequireJS 等模块加载器 // cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs) // es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esm,module) // 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 = []) } ;(o.prototype = { getLength: function (o) { return this.data.length }, write: function (o) { for (let e = 0; e < this.data.length; e++) o.put(this.data.charCodeAt(e), 8) }, }), (e.prototype = { addData: function (e) { const 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) { let 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++) { const 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 (let t = 0; t < this.moduleCount; t++) { this.modules[t] = new Array(this.moduleCount) for (let 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), this.dataCache == null && (this.dataCache = e.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)), this.mapData(this.dataCache, r) }, setupPositionProbePattern: function (o, e) { for (let r = -1; r <= 7; r++) if (!(o + r <= -1 || this.moduleCount <= o + r)) for (let t = -1; t <= 7; t++) e + t <= -1 || this.moduleCount <= e + t || (this.modules[o + r][e + t] = (r >= 0 && r <= 6 && (t == 0 || t == 6)) || (t >= 0 && t <= 6 && (r == 0 || r == 6)) || (r >= 2 && r <= 4 && t >= 2 && t <= 4)) }, getBestMaskPattern: function () { for (var o = 0, e = 0, r = 0; r < 8; r++) { this.makeImpl(!0, r) const t = h.getLostPoint(this) ;(r == 0 || o > t) && ((o = t), (e = r)) } return e }, createMovieClip: function (o, e, r) { const t = o.createEmptyMovieClip(e, r) this.make() for (let i = 0; i < this.modules.length; i++) for (let n = 1 * i, a = 0; a < this.modules[i].length; a++) { const 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 (let o = 8; o < this.moduleCount - 8; o++) this.modules[o][6] == null && (this.modules[o][6] = o % 2 == 0) for (let e = 8; e < this.moduleCount - 8; e++) this.modules[6][e] == null && (this.modules[6][e] = e % 2 == 0) }, setupPositionAdjustPattern: function () { for (let o = h.getPatternPosition(this.typeNumber), e = 0; e < o.length; e++) for (let r = 0; r < o.length; r++) { const t = o[e] const i = o[r] if (this.modules[t][i] == null) for (let n = -2; n <= 2; n++) for (let a = -2; a <= 2; a++) this.modules[t + n][i + a] = n == -2 || n == 2 || a == -2 || a == 2 || (n == 0 && a == 0) } }, setupTypeNumber: function (o) { for (var e = h.getBCHTypeNumber(this.typeNumber), r = 0; r < 18; r++) { var t = !o && ((e >> r) & 1) == 1 this.modules[Math.floor(r / 3)][(r % 3) + this.moduleCount - 8 - 3] = t } for (r = 0; r < 18; r++) { t = !o && ((e >> r) & 1) == 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 && ((t >> i) & 1) == 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 && ((t >> i) & 1) == 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 ( let r = -1, t = this.moduleCount - 1, i = 7, n = 0, a = this.moduleCount - 1; a > 0; a -= 2 ) for (a == 6 && a--; ; ) { for (let d = 0; d < 2; d++) if (this.modules[t][a - d] == null) { let u = !1 n < o.length && (u = ((o[n] >>> i) & 1) == 1), h.getMask(e, t, a - d) && (u = !u), (this.modules[t][a - d] = u), --i == -1 && (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++) { const d = t[a] n.put(d.mode, 4), n.put(d.getLength(), h.getLengthInBits(d.mode, o)), d.write(n) } let 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++ ) { const u = e[d].dataCount const 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 const l = h.getErrorCorrectPolynomial(s) const 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++) { const m = g + c.getLength() - a[d].length a[d][g] = m >= 0 ? c.get(m) : 0 } } let v = 0 for (g = 0; g < e.length; g++) v += e[g].totalCount const p = new Array(v) let 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; o != 0; ) 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 (e >= 1 && 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 (let u = -1; u <= 1; u++) i + u < 0 || e <= i + u || (d == 0 && u == 0) || (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++) { let 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++, (s != 0 && s != 4) || (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) let 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 (o.length == null) throw new Error(o.length + '/' + e) for (var r = 0; r < o.length && o[r] == 0; ) r++ this.num = new Array(o.length - r + e) for (let 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 = []), (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) { let r = (this.data = '') let t = (this.size = 200) ;(this.useDynamicSize = !1), (this.dynamicSize = t) let i = (this.typeNumber = -1) this.errorCorrectLevel = b.errorCorrectLevel.H let n = (this.margin = 0) ;(this.areaColor = '#FFFFFF'), (this.backgroundColor = 'rgba(255,255,255,0)'), (this.backgroundImageSrc = void 0) let a = (this.backgroundImageWidth = void 0) let d = (this.backgroundImageHeight = void 0) let u = (this.backgroundImageX = void 0) let s = (this.backgroundImageY = void 0) ;(this.backgroundImageAlpha = 1), (this.backgroundImageBorderRadius = 0) let g = (this.backgroundPadding = 0) ;(this.foregroundColor = '#000000'), (this.foregroundImageSrc = void 0) let l = (this.foregroundImageWidth = void 0) let h = (this.foregroundImageHeight = void 0) let c = (this.foregroundImageX = void 0) let m = (this.foregroundImageY = void 0) let f = (this.foregroundImagePadding = 0) this.foregroundImageBackgroundColor = '#FFFFFF' let v = (this.foregroundImageBorderRadius = 0) let p = (this.foregroundImageShadowOffsetX = 0) let k = (this.foregroundImageShadowOffsetY = 0) let y = (this.foregroundImageShadowBlur = 0) this.foregroundImageShadowColor = '#808080' let w = (this.foregroundPadding = 0) let I = (this.positionProbeBackgroundColor = void 0) let B = (this.positionProbeForegroundColor = void 0) let S = (this.separatorColor = void 0) let P = (this.positionAdjustBackgroundColor = void 0) let L = (this.positionAdjustForegroundColor = void 0) let D = (this.timingBackgroundColor = void 0) let A = (this.timingForegroundColor = void 0) let E = (this.typeNumberBackgroundColor = void 0) let T = (this.typeNumberForegroundColor = void 0) let N = (this.darkBlockColor = void 0) ;(this.base = void 0), (this.modules = []), (this.moduleCount = 0), (this.drawModules = []) let 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 (let 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) { const r = v.getRsBlockTable(o, e) if (r == null) throw new Error('bad rs block @ typeNumber:' + o + '/errorCorrectLevel:' + e) for (var t = r.length / 3, i = [], n = 0; n < t; n++) for (let 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: } }), (p.prototype = { get: function (o) { const e = Math.floor(o / 8) return ((this.buffer[e] >>> (7 - (o % 8))) & 1) == 1 }, put: function (o, e) { for (let r = 0; r < e; r++) this.putBit(((o >>> (e - r - 1)) & 1) == 1) }, getLengthInBits: function () { return this.length }, putBit: function (o) { const 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) { typeof o === 'function' && b.plugins.push(o) }), (b.prototype.loadImage = function (o) { return Promise.resolve(o) }), (b.prototype.setOptions = function (o) { let 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 (const o in e) { const i = e[o] i != null && (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 || ((e = o.background) === null || void 0 === e ? void 0 : e.color), backgroundImageSrc: o.backgroundImageSrc || ((r = o.background) === null || void 0 === r || (t = r.image) === null || void 0 === t ? void 0 : t.src), backgroundImageWidth: o.backgroundImageWidth || ((i = o.background) === null || void 0 === i || (n = i.image) === null || void 0 === n ? void 0 : n.width), backgroundImageHeight: o.backgroundImageHeight || ((a = o.background) === null || void 0 === a || (d = a.image) === null || void 0 === d ? void 0 : d.height), backgroundImageX: o.backgroundImageX || ((u = o.background) === null || void 0 === u || (s = u.image) === null || void 0 === s ? void 0 : s.x), backgroundImageY: o.backgroundImageY || ((g = o.background) === null || void 0 === g || (l = g.image) === null || void 0 === l ? void 0 : l.y), backgroundImageAlpha: o.backgroundImageAlpha || ((h = o.background) === null || void 0 === h || (c = h.image) === null || void 0 === c ? void 0 : c.alpha), backgroundImageBorderRadius: o.backgroundImageBorderRadius || ((m = o.background) === null || void 0 === m || (f = m.image) === null || void 0 === f ? void 0 : f.borderRadius), backgroundPadding: o.backgroundPadding, foregroundColor: o.foregroundColor || ((v = o.foreground) === null || void 0 === v ? void 0 : v.color), foregroundImageSrc: o.foregroundImageSrc || ((p = o.foreground) === null || void 0 === p || (C = p.image) === null || void 0 === C ? void 0 : C.src), foregroundImageWidth: o.foregroundImageWidth || ((b = o.foreground) === null || void 0 === b || (k = b.image) === null || void 0 === k ? void 0 : k.width), foregroundImageHeight: o.foregroundImageHeight || ((y = o.foreground) === null || void 0 === y || (w = y.image) === null || void 0 === w ? void 0 : w.height), foregroundImageX: o.foregroundImageX || ((I = o.foreground) === null || void 0 === I || (B = I.image) === null || void 0 === B ? void 0 : B.x), foregroundImageY: o.foregroundImageY || ((S = o.foreground) === null || void 0 === S || (P = S.image) === null || void 0 === P ? void 0 : P.y), foregroundImagePadding: o.foregroundImagePadding || ((L = o.foreground) === null || void 0 === L || (D = L.image) === null || void 0 === D ? void 0 : D.padding), foregroundImageBackgroundColor: o.foregroundImageBackgroundColor || ((A = o.foreground) === null || void 0 === A || (E = A.image) === null || void 0 === E ? void 0 : E.backgroundColor), foregroundImageBorderRadius: o.foregroundImageBorderRadius || ((T = o.foreground) === null || void 0 === T || (N = T.image) === null || void 0 === N ? void 0 : N.borderRadius), foregroundImageShadowOffsetX: o.foregroundImageShadowOffsetX || ((M = o.foreground) === null || void 0 === M || (z = M.image) === null || void 0 === z ? void 0 : z.shadowOffsetX), foregroundImageShadowOffsetY: o.foregroundImageShadowOffsetY || ((R = o.foreground) === null || void 0 === R || (_ = R.image) === null || void 0 === _ ? void 0 : _.shadowOffsetY), foregroundImageShadowBlur: o.foregroundImageShadowBlur || ((O = o.foreground) === null || void 0 === O || (F = O.image) === null || void 0 === F ? void 0 : F.shadowBlur), foregroundImageShadowColor: o.foregroundImageShadowColor || ((x = o.foreground) === null || void 0 === x || (H = x.image) === null || void 0 === H ? void 0 : H.shadowColor), foregroundPadding: o.foregroundPadding, positionProbeBackgroundColor: o.positionProbeBackgroundColor || ((X = o.positionProbe) === null || void 0 === X ? void 0 : X.backgroundColor) || ((Y = o.positionDetection) === null || void 0 === Y ? void 0 : Y.backgroundColor), positionProbeForegroundColor: o.positionProbeForegroundColor || ((j = o.positionProbe) === null || void 0 === j ? void 0 : j.foregroundColor) || ((W = o.positionDetection) === null || void 0 === W ? void 0 : W.foregroundColor), separatorColor: o.separatorColor || ((G = o.separator) === null || void 0 === G ? void 0 : G.color), positionAdjustBackgroundColor: o.positionAdjustBackgroundColor || ((K = o.positionAdjust) === null || void 0 === K ? void 0 : K.backgroundColor) || ((Q = o.alignment) === null || void 0 === Q ? void 0 : Q.backgroundColor), positionAdjustForegroundColor: o.positionAdjustForegroundColor || ((U = o.positionAdjust) === null || void 0 === U ? void 0 : U.foregroundColor) || (($ = o.alignment) === null || void 0 === $ ? void 0 : $.foregroundColor), timingBackgroundColor: o.timingBackgroundColor || ((J = o.timing) === null || void 0 === J ? void 0 : J.backgroundColor), timingForegroundColor: o.timingForegroundColor || ((q = o.timing) === null || void 0 === q ? void 0 : q.foregroundColor), typeNumberBackgroundColor: o.typeNumberBackgroundColor || ((V = o.typeNumber) === null || void 0 === V ? void 0 : V.backgroundColor) || ((Z = o.versionInformation) === null || void 0 === Z ? void 0 : Z.backgroundColor), typeNumberForegroundColor: o.typeNumberForegroundColor || ((oo = o.typeNumber) === null || void 0 === oo ? void 0 : oo.foregroundColor) || ((eo = o.versionInformation) === null || void 0 === eo ? void 0 : eo.foregroundColor), darkBlockColor: o.darkBlockColor || ((ro = o.darkBlock) === null || void 0 === ro ? void 0 : ro.color), }, !0, )) }), (b.prototype.make = function () { const { 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!')) ) const 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) { const { dynamicSize: e, margin: r, backgroundColor: t, backgroundPadding: i, foregroundColor: n, foregroundPadding: a, modules: d, moduleCount: u, } = o const s = (e - 2 * r) / u let g = s let l = 0 i > 0 && ((l = (g * i) / 2), (g -= 2 * l)) let h = s let c = 0 a > 0 && ((c = (h * a) / 2), (h -= 2 * c)) for (let m = 0; m < u; m++) for (let f = 0; f < u; f++) { const v = f * s + r const p = m * s + r if (d[m][f]) { var C = c var b = v + c var k = p + c var y = h var 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) { const { modules: e, moduleCount: r, positionProbeBackgroundColor: t, positionProbeForegroundColor: i, } = o const 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) => { const r = e[o[0]][o[1]] const a = e[o[0] + n][o[1]] const d = e[o[0]][o[1] + n] d.type.push('positionProbe'), a.type.push('positionProbe'), r.type.push('positionProbe'), (r.color = o[2] == 1 ? i : t), (a.color = o[2] == 1 ? i : t), (d.color = o[2] == 1 ? i : t) }) })(this), (function (o) { const { 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) => { const i = e[o[0]][o[1]] const n = e[r - o[0] - 1][o[1]] const 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) { const { 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], ] const e = g.length for (let l = 0; l < e; l++) for (let h = 0; h < e; h++) { const { 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) => { const t = r[e + o[0]][c + o[1]] t.type.push('positionAdjust'), t.type.includes('timing') ? o[2] == 1 ? (t.color = a == i ? u : a) : (t.color = a == i && d == n ? s : d) : (t.color = o[2] == 1 ? a : d) }) } } })(this), (function (o) { const { modules: e, moduleCount: r, timingForegroundColor: t, timingBackgroundColor: i } = o const n = r - 16 for (let o = 0; o < n; o++) { const a = e[6][8 + o] const 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) { const { modules: e, moduleCount: r, darkBlockColor: t } = o const i = e[r - 7 - 1][8] i.type.push('darkBlock'), (i.color = t) })(this), (function (o) { const { 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',