@pjaudiomv/qrcode-svg 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -167,20 +167,18 @@ Output with `defs` and `use` elements
167
167
  </html>
168
168
  ```
169
169
 
170
- ## Thanks
170
+ ## Credits & lineage
171
171
 
172
- Thanks to [davidshimjs](https://github.com/davidshimjs/qrcodejs) for the base library.
172
+ This package is a modernized (ESM-only, browser-only, Vite-built, typed) fork of the `qrcode-svg` library. Full lineage:
173
173
 
174
- Thanks to [Kazuhiko Arase](http://www.d-project.com/) for the original QR Code in JavaScript algorithm.
174
+ - Originally created by [papnkukn/qrcode-svg](https://github.com/papnkukn/qrcode-svg).
175
+ - Forked and deobfuscated by [leMaik/qrcode-svg](https://github.com/leMaik/qrcode-svg/)
176
+ - This fork (`@pjaudiomv/qrcode-svg`) drops the Node CLI, `save()`/`fs` usage, and the ASCII helper; converts to ESM; adds Vite + Vitest + TypeScript declarations.
175
177
 
176
- Thanks to all contributors on the GitHub.
178
+ Thanks to [davidshimjs](https://github.com/davidshimjs/qrcodejs) for the base library, and to [Kazuhiko Arase](http://www.d-project.com/) for the original QR Code in JavaScript algorithm.
177
179
 
178
180
  ## Legal notice
179
181
 
180
- ```
181
- Licensed under the MIT license:
182
- http://www.opensource.org/licenses/mit-license.php
182
+ Licensed under the [MIT license](https://opensource.org/license/mit).
183
183
 
184
- The word "QR Code" is registered trademark of DENSO WAVE INCORPORATED
185
- http://www.denso-wave.com/qrcode/faqpatent-e.html
186
- ```
184
+ The word "QR Code" is a registered trademark of [DENSO WAVE INCORPORATED](https://www.qrcode.com/en/patent.html).
package/dist/qrcode.js CHANGED
@@ -2103,5 +2103,3 @@ f.prototype.svg = function(e) {
2103
2103
  };
2104
2104
  //#endregion
2105
2105
  export { f as default };
2106
-
2107
- //# sourceMappingURL=qrcode.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pjaudiomv/qrcode-svg",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "A simple QR Code generator in pure JavaScript (browser, ESM)",
5
5
  "author": "pjaudiomv",
6
6
  "license": "MIT",
@@ -17,8 +17,7 @@
17
17
  }
18
18
  },
19
19
  "files": [
20
- "dist",
21
- "src"
20
+ "dist"
22
21
  ],
23
22
  "sideEffects": false,
24
23
  "scripts": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"qrcode.js","names":[],"sources":["../src/qrcode.js"],"sourcesContent":["/**\n * @fileoverview\n * - modified davidshimjs/qrcodejs library for use in node.js\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n *\n * @version 0.9.1 (2016-02-12)\n * @author davidshimjs, papnkukn\n * @see <a href=\"http://www.d-project.com/\" target=\"_blank\">http://www.d-project.com/</a>\n * @see <a href=\"http://jeromeetienne.github.com/jquery-qrcode/\" target=\"_blank\">http://jeromeetienne.github.com/jquery-qrcode/</a>\n * @see <a href=\"https://github.com/davidshimjs/qrcodejs\" target=\"_blank\">https://github.com/davidshimjs/qrcodejs</a>\n */\n\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\n//---------------------------------------------------------------------\n// QR8bitByte\n//---------------------------------------------------------------------\n\nfunction QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE\n this.data = data\n this.parsedData = []\n\n // Added to support UTF-8 Characters\n for (let i = 0, l = this.data.length; i < l; i++) {\n const byteArray = []\n const code = this.data.charCodeAt(i)\n\n if (code > 0x10000) {\n byteArray[0] = 0xf0 | ((code & 0x1c0000) >>> 18)\n byteArray[1] = 0x80 | ((code & 0x3f000) >>> 12)\n byteArray[2] = 0x80 | ((code & 0xfc0) >>> 6)\n byteArray[3] = 0x80 | (code & 0x3f)\n } else if (code > 0x800) {\n byteArray[0] = 0xe0 | ((code & 0xf000) >>> 12)\n byteArray[1] = 0x80 | ((code & 0xfc0) >>> 6)\n byteArray[2] = 0x80 | (code & 0x3f)\n } else if (code > 0x80) {\n byteArray[0] = 0xc0 | ((code & 0x7c0) >>> 6)\n byteArray[1] = 0x80 | (code & 0x3f)\n } else {\n byteArray[0] = code\n }\n\n this.parsedData.push(byteArray)\n }\n\n this.parsedData = Array.prototype.concat.apply([], this.parsedData)\n\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191)\n this.parsedData.unshift(187)\n this.parsedData.unshift(239)\n }\n}\n\nQR8bitByte.prototype = {\n getLength: function (buffer) {\n return this.parsedData.length\n },\n write: function (buffer) {\n for (let i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8)\n }\n },\n}\n\n//---------------------------------------------------------------------\n// QRCodeModel\n//---------------------------------------------------------------------\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber\n this.errorCorrectLevel = errorCorrectLevel\n this.modules = null\n this.moduleCount = 0\n this.dataCache = null\n this.dataList = []\n}\n\nQRCodeModel.prototype = {\n addData: function (data) {\n const newData = new QR8bitByte(data)\n this.dataList.push(newData)\n this.dataCache = null\n },\n\n isDark: function (row, col) {\n if (\n row < 0 ||\n this.moduleCount <= row ||\n col < 0 ||\n this.moduleCount <= col\n ) {\n throw new Error(row + ',' + col)\n }\n return this.modules[row][col]\n },\n\n getModuleCount: function () {\n return this.moduleCount\n },\n\n make: function () {\n // Calculate automatically typeNumber if provided is < 1\n if (this.typeNumber < 1) {\n let typeNumber = 1\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n const rsBlocks = QRRSBlock.getRSBlocks(\n typeNumber,\n this.errorCorrectLevel,\n )\n\n const buffer = new QRBitBuffer()\n let totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n for (var i = 0; i < this.dataList.length; i++) {\n const data = this.dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber),\n )\n data.write(buffer)\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8) break\n }\n this.typeNumber = typeNumber\n }\n this.makeImpl(false, this.getBestMaskPattern())\n },\n\n makeImpl: function (test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17\n this.modules = new Array(this.moduleCount)\n\n for (let row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount)\n\n for (let col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null //(col + row) % 3;\n }\n }\n\n this.setupPositionProbePattern(0, 0)\n this.setupPositionProbePattern(this.moduleCount - 7, 0)\n this.setupPositionProbePattern(0, this.moduleCount - 7)\n this.setupPositionAdjustPattern()\n this.setupTimingPattern()\n this.setupTypeInfo(test, maskPattern)\n\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test)\n }\n\n if (this.dataCache == null) {\n this.dataCache = QRCodeModel.createData(\n this.typeNumber,\n this.errorCorrectLevel,\n this.dataList,\n )\n }\n\n this.mapData(this.dataCache, maskPattern)\n },\n\n setupPositionProbePattern: function (row, col) {\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c) continue\n\n if (\n (0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n },\n\n getBestMaskPattern: function () {\n let minLostPoint = 0\n let pattern = 0\n\n for (let i = 0; i < 8; i++) {\n this.makeImpl(true, i)\n\n const lostPoint = QRUtil.getLostPoint(this)\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint\n pattern = i\n }\n }\n\n return pattern\n },\n\n createMovieClip: function (target_mc, instance_name, depth) {\n const qr_mc = target_mc.createEmptyMovieClip(instance_name, depth)\n const cs = 1\n\n this.make()\n\n for (let row = 0; row < this.modules.length; row++) {\n const y = row * cs\n\n for (let col = 0; col < this.modules[row].length; col++) {\n const x = col * cs\n const dark = this.modules[row][col]\n\n if (dark) {\n qr_mc.beginFill(0, 100)\n qr_mc.moveTo(x, y)\n qr_mc.lineTo(x + cs, y)\n qr_mc.lineTo(x + cs, y + cs)\n qr_mc.lineTo(x, y + cs)\n qr_mc.endFill()\n }\n }\n }\n\n return qr_mc\n },\n\n setupTimingPattern: function () {\n for (let r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue\n }\n this.modules[r][6] = r % 2 == 0\n }\n\n for (let c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue\n }\n this.modules[6][c] = c % 2 == 0\n }\n },\n\n setupPositionAdjustPattern: function () {\n const pos = QRUtil.getPatternPosition(this.typeNumber)\n\n for (let i = 0; i < pos.length; i++) {\n for (let j = 0; j < pos.length; j++) {\n const row = pos[i]\n const col = pos[j]\n\n if (this.modules[row][col] != null) {\n continue\n }\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (\n r == -2 ||\n r == 2 ||\n c == -2 ||\n c == 2 ||\n (r == 0 && c == 0)\n ) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n }\n }\n },\n\n setupTypeNumber: function (test) {\n const bits = QRUtil.getBCHTypeNumber(this.typeNumber)\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[Math.floor(i / 3)][\n (i % 3) + this.moduleCount - 8 - 3\n ] = mod\n }\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[(i % 3) + this.moduleCount - 8 - 3][\n Math.floor(i / 3)\n ] = mod\n }\n },\n\n setupTypeInfo: function (test, maskPattern) {\n const data = (this.errorCorrectLevel << 3) | maskPattern\n const bits = QRUtil.getBCHTypeInfo(data)\n\n // vertical\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 6) {\n this.modules[i][8] = mod\n } else if (i < 8) {\n this.modules[i + 1][8] = mod\n } else {\n this.modules[this.moduleCount - 15 + i][8] = mod\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod\n } else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod\n } else {\n this.modules[8][15 - i - 1] = mod\n }\n }\n\n // fixed module\n this.modules[this.moduleCount - 8][8] = !test\n },\n\n mapData: function (data, maskPattern) {\n let inc = -1\n let row = this.moduleCount - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1\n }\n\n const mask = QRUtil.getMask(maskPattern, row, col - c)\n\n if (mask) {\n dark = !dark\n }\n\n this.modules[row][col - c] = dark\n bitIndex--\n\n if (bitIndex == -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || this.moduleCount <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n },\n}\n\nQRCodeModel.PAD0 = 0xec\nQRCodeModel.PAD1 = 0x11\n\nQRCodeModel.createData = function (typeNumber, errorCorrectLevel, dataList) {\n const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel)\n\n const buffer = new QRBitBuffer()\n\n for (var i = 0; i < dataList.length; i++) {\n const data = dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber),\n )\n data.write(buffer)\n }\n\n // calc num max data.\n let totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error(\n 'code length overflow. (' +\n buffer.getLengthInBits() +\n '>' +\n totalDataCount * 8 +\n ')',\n )\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4)\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false)\n }\n\n // padding\n while (true) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCodeModel.PAD0, 8)\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCodeModel.PAD1, 8)\n }\n\n return QRCodeModel.createBytes(buffer, rsBlocks)\n}\n\nQRCodeModel.createBytes = function (buffer, rsBlocks) {\n let offset = 0\n\n let maxDcCount = 0\n let maxEcCount = 0\n\n const dcdata = new Array(rsBlocks.length)\n const ecdata = new Array(rsBlocks.length)\n\n for (var r = 0; r < rsBlocks.length; r++) {\n const dcCount = rsBlocks[r].dataCount\n const ecCount = rsBlocks[r].totalCount - dcCount\n\n maxDcCount = Math.max(maxDcCount, dcCount)\n maxEcCount = Math.max(maxEcCount, ecCount)\n\n dcdata[r] = new Array(dcCount)\n\n for (var i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset]\n }\n offset += dcCount\n\n const rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount)\n const rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1)\n\n const modPoly = rawPoly.mod(rsPoly)\n ecdata[r] = new Array(rsPoly.getLength() - 1)\n for (var i = 0; i < ecdata[r].length; i++) {\n const modIndex = i + modPoly.getLength() - ecdata[r].length\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0\n }\n }\n\n let totalCodeCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount\n }\n\n const data = new Array(totalCodeCount)\n let index = 0\n\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i]\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i]\n }\n }\n }\n\n return data\n}\n\n//---------------------------------------------------------------------\n// QRMode\n//---------------------------------------------------------------------\n\nvar QRMode = {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3,\n}\n\n//---------------------------------------------------------------------\n// QRErrorCorrectLevel\n//---------------------------------------------------------------------\n\nconst QRErrorCorrectLevel = {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n}\n\n//---------------------------------------------------------------------\n// QRMaskPattern\n//---------------------------------------------------------------------\n\nconst QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7,\n}\n\n//---------------------------------------------------------------------\n// QRUtil\n//---------------------------------------------------------------------\n\nvar QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170],\n ],\n\n G15:\n (1 << 10) |\n (1 << 8) |\n (1 << 5) |\n (1 << 4) |\n (1 << 2) |\n (1 << 1) |\n (1 << 0),\n G18:\n (1 << 12) |\n (1 << 11) |\n (1 << 10) |\n (1 << 9) |\n (1 << 8) |\n (1 << 5) |\n (1 << 2) |\n (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n\n getBCHTypeInfo: function (data) {\n let d = data << 10\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^=\n QRUtil.G15 <<\n (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK\n },\n\n getBCHTypeNumber: function (data) {\n let d = data << 12\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^=\n QRUtil.G18 <<\n (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))\n }\n return (data << 12) | d\n },\n\n getBCHDigit: function (data) {\n let digit = 0\n\n while (data != 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n },\n\n getPatternPosition: function (typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]\n },\n\n getMask: function (maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0\n\n default:\n throw new Error('bad maskPattern:' + maskPattern)\n }\n },\n\n getErrorCorrectPolynomial: function (errorCorrectLength) {\n let a = new QRPolynomial([1], 0)\n\n for (let i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0))\n }\n\n return a\n },\n\n getLengthInBits: function (mode, type) {\n if (1 <= type && type < 10) {\n // 1 - 9\n\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 10\n case QRMode.MODE_ALPHA_NUM:\n return 9\n case QRMode.MODE_8BIT_BYTE:\n return 8\n case QRMode.MODE_KANJI:\n return 8\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 27) {\n // 10 - 26\n\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 12\n case QRMode.MODE_ALPHA_NUM:\n return 11\n case QRMode.MODE_8BIT_BYTE:\n return 16\n case QRMode.MODE_KANJI:\n return 10\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 41) {\n // 27 - 40\n\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 14\n case QRMode.MODE_ALPHA_NUM:\n return 13\n case QRMode.MODE_8BIT_BYTE:\n return 16\n case QRMode.MODE_KANJI:\n return 12\n default:\n throw new Error('mode:' + mode)\n }\n } else {\n throw new Error('type:' + type)\n }\n },\n\n getLostPoint: function (qrCode) {\n const moduleCount = qrCode.getModuleCount()\n\n let lostPoint = 0\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount; col++) {\n let sameCount = 0\n const dark = qrCode.isDark(row, col)\n\n for (let r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue\n }\n\n for (let c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue\n }\n\n if (r == 0 && c == 0) {\n continue\n }\n\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5\n }\n }\n }\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row++) {\n for (var col = 0; col < moduleCount - 1; col++) {\n let count = 0\n if (qrCode.isDark(row, col)) count++\n if (qrCode.isDark(row + 1, col)) count++\n if (qrCode.isDark(row, col + 1)) count++\n if (qrCode.isDark(row + 1, col + 1)) count++\n if (count == 0 || count == 4) {\n lostPoint += 3\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount - 6; col++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)\n ) {\n lostPoint += 40\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount - 6; row++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)\n ) {\n lostPoint += 40\n }\n }\n }\n\n // LEVEL4\n\n let darkCount = 0\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++\n }\n }\n }\n\n const ratio =\n Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5\n lostPoint += ratio * 10\n\n return lostPoint\n },\n}\n\n//---------------------------------------------------------------------\n// QRMath\n//---------------------------------------------------------------------\n\nvar QRMath = {\n glog: function (n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')')\n }\n\n return QRMath.LOG_TABLE[n]\n },\n\n gexp: function (n) {\n while (n < 0) {\n n += 255\n }\n\n while (n >= 256) {\n n -= 255\n }\n\n return QRMath.EXP_TABLE[n]\n },\n\n EXP_TABLE: new Array(256),\n\n LOG_TABLE: new Array(256),\n}\n\nfor (var i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i\n}\nfor (var i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8]\n}\nfor (var i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i\n}\n\n//---------------------------------------------------------------------\n// QRPolynomial\n//---------------------------------------------------------------------\n\nfunction QRPolynomial(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift)\n }\n\n let offset = 0\n\n while (offset < num.length && num[offset] == 0) {\n offset++\n }\n\n this.num = new Array(num.length - offset + shift)\n for (let i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset]\n }\n}\n\nQRPolynomial.prototype = {\n get: function (index) {\n return this.num[index]\n },\n\n getLength: function () {\n return this.num.length\n },\n\n multiply: function (e) {\n const num = new Array(this.getLength() + e.getLength() - 1)\n\n for (let i = 0; i < this.getLength(); i++) {\n for (let j = 0; j < e.getLength(); j++) {\n num[i + j] ^= QRMath.gexp(\n QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)),\n )\n }\n }\n\n return new QRPolynomial(num, 0)\n },\n\n mod: function (e) {\n if (this.getLength() - e.getLength() < 0) {\n return this\n }\n\n const ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0))\n\n const num = new Array(this.getLength())\n\n for (var i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i)\n }\n\n for (var i = 0; i < e.getLength(); i++) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio)\n }\n\n // recursive call\n return new QRPolynomial(num, 0).mod(e)\n },\n}\n\n//---------------------------------------------------------------------\n// QRRSBlock\n//---------------------------------------------------------------------\n\nfunction QRRSBlock(totalCount, dataCount) {\n this.totalCount = totalCount\n this.dataCount = dataCount\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16],\n]\n\nQRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) {\n const rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel)\n\n if (rsBlock == undefined) {\n throw new Error(\n 'bad rs block @ typeNumber:' +\n typeNumber +\n '/errorCorrectLevel:' +\n errorCorrectLevel,\n )\n }\n\n const length = rsBlock.length / 3\n\n const list = []\n\n for (let i = 0; i < length; i++) {\n const count = rsBlock[i * 3 + 0]\n const totalCount = rsBlock[i * 3 + 1]\n const dataCount = rsBlock[i * 3 + 2]\n\n for (let j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount))\n }\n }\n\n return list\n}\n\nQRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case QRErrorCorrectLevel.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]\n case QRErrorCorrectLevel.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]\n case QRErrorCorrectLevel.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]\n case QRErrorCorrectLevel.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]\n default:\n return undefined\n }\n}\n\n//---------------------------------------------------------------------\n// QRBitBuffer\n//---------------------------------------------------------------------\n\nfunction QRBitBuffer() {\n this.buffer = []\n this.length = 0\n}\n\nQRBitBuffer.prototype = {\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> (this.length % 8)\n }\n\n this.length++\n },\n}\n\nconst QRCodeLimitLength = [\n [17, 14, 11, 7],\n [32, 26, 20, 14],\n [53, 42, 32, 24],\n [78, 62, 46, 34],\n [106, 84, 60, 44],\n [134, 106, 74, 58],\n [154, 122, 86, 64],\n [192, 152, 108, 84],\n [230, 180, 130, 98],\n [271, 213, 151, 119],\n [321, 251, 177, 137],\n [367, 287, 203, 155],\n [425, 331, 241, 177],\n [458, 362, 258, 194],\n [520, 412, 292, 220],\n [586, 450, 322, 250],\n [644, 504, 364, 280],\n [718, 560, 394, 310],\n [792, 624, 442, 338],\n [858, 666, 482, 382],\n [929, 711, 509, 403],\n [1003, 779, 565, 439],\n [1091, 857, 611, 461],\n [1171, 911, 661, 511],\n [1273, 997, 715, 535],\n [1367, 1059, 751, 593],\n [1465, 1125, 805, 625],\n [1528, 1190, 868, 658],\n [1628, 1264, 908, 698],\n [1732, 1370, 982, 742],\n [1840, 1452, 1030, 790],\n [1952, 1538, 1112, 842],\n [2068, 1628, 1168, 898],\n [2188, 1722, 1228, 958],\n [2303, 1809, 1283, 983],\n [2431, 1911, 1351, 1051],\n [2563, 1989, 1423, 1093],\n [2699, 2099, 1499, 1139],\n [2809, 2213, 1579, 1219],\n [2953, 2331, 1663, 1273],\n]\n\n/** Constructor */\nfunction QRCode(options) {\n const instance = this\n\n //Default options\n this.options = {\n padding: 4,\n width: 256,\n height: 256,\n typeNumber: 4,\n color: '#000000',\n background: '#ffffff',\n ecl: 'M',\n }\n\n //In case the options is string\n if (typeof options === 'string') {\n options = {\n content: options,\n }\n }\n\n //Merge options\n if (options) {\n for (const i in options) {\n this.options[i] = options[i]\n }\n }\n\n if (typeof this.options.content !== 'string') {\n throw new Error(\"Expected 'content' as string!\")\n }\n\n if (\n this.options.content.length ===\n 0 /* || this.options.content.length > 7089 */\n ) {\n throw new Error(\"Expected 'content' to be non-empty!\")\n }\n\n if (!(this.options.padding >= 0)) {\n throw new Error(\"Expected 'padding' value to be non-negative!\")\n }\n\n if (!(this.options.width > 0) || !(this.options.height > 0)) {\n throw new Error(\n \"Expected 'width' or 'height' value to be higher than zero!\",\n )\n }\n\n //Gets the error correction level\n function _getErrorCorrectLevel(ecl) {\n switch (ecl) {\n case 'L':\n return QRErrorCorrectLevel.L\n\n case 'M':\n return QRErrorCorrectLevel.M\n\n case 'Q':\n return QRErrorCorrectLevel.Q\n\n case 'H':\n return QRErrorCorrectLevel.H\n\n default:\n throw new Error('Unknwon error correction level: ' + ecl)\n }\n }\n\n //Get type number\n function _getTypeNumber(content, ecl) {\n const length = _getUTF8Length(content)\n\n let type = 1\n let limit = 0\n for (let i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n const table = QRCodeLimitLength[i]\n if (!table) {\n throw new Error(\n 'Content too long: expected ' +\n limit +\n ' but got ' +\n length,\n )\n }\n\n switch (ecl) {\n case 'L':\n limit = table[0]\n break\n\n case 'M':\n limit = table[1]\n break\n\n case 'Q':\n limit = table[2]\n break\n\n case 'H':\n limit = table[3]\n break\n\n default:\n throw new Error('Unknwon error correction level: ' + ecl)\n }\n\n if (length <= limit) {\n break\n }\n\n type++\n }\n\n if (type > QRCodeLimitLength.length) {\n throw new Error('Content too long')\n }\n\n return type\n }\n\n //Gets text length\n function _getUTF8Length(content) {\n const result = encodeURI(content)\n .toString()\n .replace(/\\%[0-9a-fA-F]{2}/g, 'a')\n return result.length + (result.length != content ? 3 : 0)\n }\n\n //Generate QR Code matrix\n const content = this.options.content\n const type = _getTypeNumber(content, this.options.ecl)\n const ecl = _getErrorCorrectLevel(this.options.ecl)\n this.qrcode = new QRCodeModel(type, ecl)\n this.qrcode.addData(content)\n this.qrcode.make()\n}\n\n/** Generates QR Code as SVG image */\nQRCode.prototype.svg = function (opt) {\n const options = this.options || {}\n const modules = this.qrcode.modules\n\n if (typeof opt == 'undefined') {\n opt = { container: options.container || 'svg' }\n }\n\n //Apply new lines and indents in SVG?\n const pretty =\n typeof options.pretty != 'undefined' ? !!options.pretty : true\n\n const indent = pretty ? ' ' : ''\n const EOL = pretty ? '\\r\\n' : ''\n const width = options.width\n const height = options.height\n const length = modules.length\n const xsize = width / (length + 2 * options.padding)\n const ysize = height / (length + 2 * options.padding)\n\n //Join (union, merge) rectangles into one shape?\n const join =\n opt.container == 'path-data' ||\n (typeof options.join != 'undefined' ? !!options.join : false)\n\n //Swap the X and Y modules, pull request #2\n const swap = typeof options.swap != 'undefined' ? !!options.swap : false\n\n //Apply <?xml...?> declaration in SVG?\n const xmlDeclaration =\n typeof options.xmlDeclaration != 'undefined'\n ? !!options.xmlDeclaration\n : true\n\n //Populate with predefined shape instead of \"rect\" elements, thanks to @kkocdko\n const predefined =\n typeof options.predefined != 'undefined' ? !!options.predefined : false\n const defs = predefined\n ? indent +\n '<defs><path id=\"qrmodule\" d=\"M0 0 h' +\n ysize +\n ' v' +\n xsize +\n ' H0 z\" style=\"fill:' +\n options.color +\n ';shape-rendering:crispEdges;\" /></defs>' +\n EOL\n : ''\n\n //Background rectangle\n const bgrect =\n indent +\n '<rect x=\"0\" y=\"0\" width=\"' +\n width +\n '\" height=\"' +\n height +\n '\" style=\"fill:' +\n options.background +\n ';shape-rendering:crispEdges;\"/>' +\n EOL\n\n //Rectangles representing modules\n let modrect = ''\n let pathdata = ''\n\n for (let y = 0; y < length; y++) {\n for (let x = 0; x < length; x++) {\n const module = modules[x][y]\n if (module) {\n let px = x * xsize + options.padding * xsize\n let py = y * ysize + options.padding * ysize\n\n //Some users have had issues with the QR Code, thanks to @danioso for the solution\n if (swap) {\n const t = px\n px = py\n py = t\n }\n\n if (join) {\n //Module as a part of svg path data, thanks to @danioso\n let w = xsize + px\n let h = ysize + py\n\n px = Number.isInteger(px) ? Number(px) : px.toFixed(2)\n py = Number.isInteger(py) ? Number(py) : py.toFixed(2)\n w = Number.isInteger(w) ? Number(w) : w.toFixed(2)\n h = Number.isInteger(h) ? Number(h) : h.toFixed(2)\n\n pathdata +=\n 'M' +\n px +\n ',' +\n py +\n ' V' +\n h +\n ' H' +\n w +\n ' V' +\n py +\n ' H' +\n px +\n ' Z '\n } else if (predefined) {\n //Module as a predefined shape, thanks to @kkocdko\n modrect +=\n indent +\n '<use x=\"' +\n px.toString() +\n '\" y=\"' +\n py.toString() +\n '\" href=\"#qrmodule\" />' +\n EOL\n } else {\n //Module as rectangle element\n modrect +=\n indent +\n '<rect x=\"' +\n px.toString() +\n '\" y=\"' +\n py.toString() +\n '\" width=\"' +\n xsize +\n '\" height=\"' +\n ysize +\n '\" style=\"fill:' +\n options.color +\n ';shape-rendering:crispEdges;\"/>' +\n EOL\n }\n }\n }\n }\n\n if (join) {\n modrect =\n indent +\n '<path x=\"0\" y=\"0\" style=\"fill:' +\n options.color +\n ';shape-rendering:crispEdges;\" d=\"' +\n pathdata +\n '\" />'\n }\n\n let svg = ''\n switch (opt.container) {\n //Wrapped in SVG document\n case 'svg':\n if (xmlDeclaration) {\n svg += '<?xml version=\"1.0\" standalone=\"yes\"?>' + EOL\n }\n svg +=\n '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"' +\n width +\n '\" height=\"' +\n height +\n '\">' +\n EOL\n svg += defs + bgrect + modrect\n svg += '</svg>'\n break\n\n //Viewbox for responsive use in a browser, thanks to @danioso\n case 'svg-viewbox':\n if (xmlDeclaration) {\n svg += '<?xml version=\"1.0\" standalone=\"yes\"?>' + EOL\n }\n svg +=\n '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 ' +\n width +\n ' ' +\n height +\n '\">' +\n EOL\n svg += defs + bgrect + modrect\n svg += '</svg>'\n break\n\n //Wrapped in group element\n case 'g':\n svg += '<g width=\"' + width + '\" height=\"' + height + '\">' + EOL\n svg += defs + bgrect + modrect\n svg += '</g>'\n break\n\n //SVG path data only\n case 'path-data':\n svg = pathdata\n break\n\n //Without a container\n default: //Clear indents on each line\n svg += (defs + bgrect + modrect).replace(/^\\s+/, '')\n break\n }\n\n return svg\n}\n\nexport default QRCode\n"],"mappings":"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"}
package/src/qrcode.d.ts DELETED
@@ -1,49 +0,0 @@
1
- export type ErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H'
2
-
3
- export type Container =
4
- | 'svg'
5
- | 'svg-viewbox'
6
- | 'g'
7
- | 'none'
8
- | 'path-data'
9
-
10
- export interface QRCodeOptions {
11
- /** QR Code content (required). */
12
- content: string
13
- /** White-space padding in modules. Default: `4`. */
14
- padding?: number
15
- /** Image width in pixels. Default: `256`. */
16
- width?: number
17
- /** Image height in pixels. Default: `256`. */
18
- height?: number
19
- /** Foreground color. Default: `'#000000'`. */
20
- color?: string
21
- /** Background color. Default: `'#ffffff'`. */
22
- background?: string
23
- /** Error correction level. Default: `'M'`. */
24
- ecl?: ErrorCorrectionLevel
25
- /** Join modules into a single `<path>` element. Default: `false`. */
26
- join?: boolean
27
- /** Use `<defs>`/`<use>` for module shapes. Default: `false`. */
28
- predefined?: boolean
29
- /** Pretty-print the SVG output. Default: `true`. */
30
- pretty?: boolean
31
- /** Swap X and Y (workaround for some readers). Default: `false`. */
32
- swap?: boolean
33
- /** Prepend the `<?xml ... ?>` declaration. Default: `true`. */
34
- xmlDeclaration?: boolean
35
- /** Wrapper element. Default: `'svg'`. */
36
- container?: Container
37
- /** QR version hint. Default: `4`. */
38
- typeNumber?: number
39
- }
40
-
41
- export interface SvgOptions {
42
- container?: Container
43
- }
44
-
45
- export default class QRCode {
46
- constructor(options: QRCodeOptions | string)
47
- options: Required<Pick<QRCodeOptions, 'padding' | 'width' | 'height' | 'color' | 'background' | 'ecl' | 'typeNumber'>> & QRCodeOptions
48
- svg(options?: SvgOptions): string
49
- }