{"version":3,"sources":["webpack:///./node_modules/qrcode-generator/qrcode.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/qrcanvas/lib/qrcanvas.esm.js","webpack:///./node_modules/qrcanvas-vue/dist/qrcanvas-vue.esm.js"],"names":["qrcode","typeNumber","errorCorrectionLevel","PAD0","PAD1","_typeNumber","_errorCorrectionLevel","QRErrorCorrectionLevel","_modules","_moduleCount","_dataCache","_dataList","_this","makeImpl","test","maskPattern","moduleCount","modules","Array","row","col","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","getBestMaskPattern","minLostPoint","pattern","i","lostPoint","QRUtil","getLostPoint","pos","getPatternPosition","length","j","bits","getBCHTypeNumber","mod","Math","floor","data","getBCHTypeInfo","inc","bitIndex","byteIndex","maskFunc","getMaskFunction","dark","mask","createBytes","buffer","rsBlocks","offset","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","dataCount","ecCount","totalCount","max","getBuffer","rsPoly","getErrorCorrectPolynomial","rawPoly","qrPolynomial","getLength","modPoly","modIndex","getAt","totalCodeCount","index","dataList","QRRSBlock","getRSBlocks","qrBitBuffer","put","getMode","getLengthInBits","write","totalDataCount","putBit","addData","mode","newData","qrNumber","qrAlphaNum","qr8BitByte","qrKanji","push","isDark","getModuleCount","make","createTableTag","cellSize","margin","qrHtml","createSvgTag","alt","title","opts","arguments","text","id","mc","mr","rect","size","qrSvg","scalable","escapeXml","join","trim","createDataURL","min","x","y","createImgTag","img","s","escaped","charAt","_createHalfASCII","r1","r2","p","blocks","blocksLastLineNoMargin","ascii","substring","createASCII","white","black","line","renderTo2dContext","context","fillStyle","fillRect","stringToBytesFuncs","bytes","charCodeAt","stringToBytes","createStringToBytes","unicodeData","numChars","unicodeMap","bin","base64DecodeInputStream","read","b","count","b0","b1","b2","b3","k","String","fromCharCode","v","unknownChar","QRMode","MODE_NUMBER","MODE_ALPHA_NUM","MODE_8BIT_BYTE","MODE_KANJI","L","M","Q","H","QRMaskPattern","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","digit","d","errorCorrectLength","a","multiply","QRMath","gexp","type","sameCount","darkCount","ratio","abs","EXP_TABLE","LOG_TABLE","n","num","shift","_num","e","glog","RS_BLOCK_TABLE","qrRSBlock","getRsBlockTable","rsBlock","list","_buffer","_length","bufIndex","bit","_mode","_data","strToNum","chatToNum","getCode","_bytes","code","byteArrayOutputStream","writeByte","off","len","base64EncodeOutputStream","_buflen","_base64","writeEncoded","encode","flush","padlen","toString","str","_str","_pos","match","decode","gifImage","width","height","_width","_height","pixel","out","writeString","writeShort","lzwMinCodeSize","raster","getLZWRaster","writeBytes","bitOutputStream","_out","_bitLength","_bitBuffer","clearCode","endCode","bitLength","table","lzwTable","add","byteOut","bitOut","dataIndex","contains","indexOf","toByteArray","_map","_size","key","getPixel","gif","setPixel","base64","toUTF8Array","utf8","charcode","factory","_extends","Object","assign","target","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","COLOR_BLACK","COLOR_WHITE","helpers","createCanvas","isCanvas","isDrawable","getCanvas","updateCanvas","drawCanvas","drawText","canvas","document","createElement","el","HTMLCanvasElement","HTMLImageElement","options","_options","_options$clear","clear","queue","ctx","getContext","clearRect","globalCompositeOperation","item","isArray","concat","obj","image","style","w","cols","h","rows","drawImage","padColorArr","_ref","_ref$fontSize","fontSize","_ref$fontStyle","fontStyle","_ref$fontFamily","fontFamily","_ref$color","color","_ref$pad","pad","_ref$padColor","padColor","_ref$mode","_ctx$getImageData","getImageData","font","filter","Boolean","resetContext","textAlign","textBaseline","ceil","measureText","fillText","imageData","total","padded","_loop","loop","current","unique","last","forEach","putImageData","effects","renderDefault","round","renderRound","fusion","renderFusion","spot","renderSpot","foreground","canvasMask","drawCells","_ref2","canvasFg","_ref3","maskOptions","_maskOptions$value","value","radius","_ref4","beginPath","moveTo","drawCorner","fill","_ref5","_maskOptions$value2","_ref6","corners","fillCorner","_ref7","_maskOptions$foregrou","foregroundLight","canvasLayer","ctxLayer","_ref8","fillSize","_ref9","drawEach","cornerX","cornerY","arcTo","lineTo","startX","startY","destX","destY","DEFAULTS","background","correctLevel","padding","QRCanvasRenderer","cache","_this$cache","qr","setOptions","_proto","render","config","canvasOut","canvasBg","_this$options","effect","logo","onRender","_config","_config2","_cellSize","sketchSize","logoLayer","imageRatio","posRatio","contentSize","normalizeEffect","normalizeLogo","_this$options2","qrcanvas","rest","renderer","Component","props","methods","update","mounted","$emit","$el","watch","QRCanvas","extend"],"mappings":"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","file":"js/consulta.nfse~dam.normal~dam.substituicao~declaracao.cartorio~declaracao.normal~declaracao.planocont~c97bbdb1.13c31507.js","sourcesContent":["//---------------------------------------------------------------------\n//\n// QR Code Generator 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\nvar qrcode = function() {\n\n //---------------------------------------------------------------------\n // qrcode\n //---------------------------------------------------------------------\n\n /**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectionLevel 'L','M','Q','H'\n */\n var qrcode = function(typeNumber, errorCorrectionLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = [];\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n _moduleCount = _typeNumber * 4 + 17;\n _modules = function(moduleCount) {\n var modules = new Array(moduleCount);\n for (var row = 0; row < moduleCount; row += 1) {\n modules[row] = new Array(moduleCount);\n for (var col = 0; col < moduleCount; col += 1) {\n modules[row][col] = null;\n }\n }\n return modules;\n }(_moduleCount);\n\n setupPositionProbePattern(0, 0);\n setupPositionProbePattern(_moduleCount - 7, 0);\n setupPositionProbePattern(0, _moduleCount - 7);\n setupPositionAdjustPattern();\n setupTimingPattern();\n setupTypeInfo(test, maskPattern);\n\n if (_typeNumber >= 7) {\n setupTypeNumber(test);\n }\n\n if (_dataCache == null) {\n _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);\n }\n\n mapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n for (var r = -1; r <= 7; r += 1) {\n\n if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n for (var c = -1; c <= 7; c += 1) {\n\n if (col + c <= -1 || _moduleCount <= col + c) continue;\n\n if ( (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 _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n };\n\n var getBestMaskPattern = function() {\n\n var minLostPoint = 0;\n var pattern = 0;\n\n for (var i = 0; i < 8; i += 1) {\n\n makeImpl(true, i);\n\n var 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 var setupTimingPattern = function() {\n\n for (var r = 8; r < _moduleCount - 8; r += 1) {\n if (_modules[r][6] != null) {\n continue;\n }\n _modules[r][6] = (r % 2 == 0);\n }\n\n for (var c = 8; c < _moduleCount - 8; c += 1) {\n if (_modules[6][c] != null) {\n continue;\n }\n _modules[6][c] = (c % 2 == 0);\n }\n };\n\n var setupPositionAdjustPattern = function() {\n\n var pos = QRUtil.getPatternPosition(_typeNumber);\n\n for (var i = 0; i < pos.length; i += 1) {\n\n for (var j = 0; j < pos.length; j += 1) {\n\n var row = pos[i];\n var col = pos[j];\n\n if (_modules[row][col] != null) {\n continue;\n }\n\n for (var r = -2; r <= 2; r += 1) {\n\n for (var c = -2; c <= 2; c += 1) {\n\n if (r == -2 || r == 2 || c == -2 || c == 2\n || (r == 0 && c == 0) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n\n var setupTypeNumber = function(test) {\n\n var bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n }\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n var data = (_errorCorrectionLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n\n // vertical\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 6) {\n _modules[i][8] = mod;\n } else if (i < 8) {\n _modules[i + 1][8] = mod;\n } else {\n _modules[_moduleCount - 15 + i][8] = mod;\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 8) {\n _modules[8][_moduleCount - i - 1] = mod;\n } else if (i < 9) {\n _modules[8][15 - i - 1 + 1] = mod;\n } else {\n _modules[8][15 - i - 1] = mod;\n }\n }\n\n // fixed module\n _modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n var inc = -1;\n var row = _moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n var maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n for (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n if (col == 6) col -= 1;\n\n while (true) {\n\n for (var c = 0; c < 2; c += 1) {\n\n if (_modules[row][col - c] == null) {\n\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n }\n\n var mask = maskFunc(row, col - c);\n\n if (mask) {\n dark = !dark;\n }\n\n _modules[row][col - c] = dark;\n bitIndex -= 1;\n\n if (bitIndex == -1) {\n byteIndex += 1;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || _moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n var offset = 0;\n\n var maxDcCount = 0;\n var maxEcCount = 0;\n\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n\n for (var r = 0; r < rsBlocks.length; r += 1) {\n\n var dcCount = rsBlocks[r].dataCount;\n var 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 += 1) {\n dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n }\n offset += dcCount;\n\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i += 1) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n }\n }\n\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n\n var data = new Array(totalCodeCount);\n var index = 0;\n\n for (var i = 0; i < maxDcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < dcdata[r].length) {\n data[index] = dcdata[r][i];\n index += 1;\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < ecdata[r].length) {\n data[index] = ecdata[r][i];\n index += 1;\n }\n }\n }\n\n return data;\n };\n\n var createData = function(typeNumber, errorCorrectionLevel, dataList) {\n\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);\n\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < dataList.length; i += 1) {\n var data = dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n // calc num max data.\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw 'code length overflow. ('\n + buffer.getLengthInBits()\n + '>'\n + totalDataCount * 8\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\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD0, 8);\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n\n return createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data, mode) {\n\n mode = mode || 'Byte';\n\n var newData = null;\n\n switch(mode) {\n case 'Numeric' :\n newData = qrNumber(data);\n break;\n case 'Alphanumeric' :\n newData = qrAlphaNum(data);\n break;\n case 'Byte' :\n newData = qr8BitByte(data);\n break;\n case 'Kanji' :\n newData = qrKanji(data);\n break;\n default :\n throw 'mode:' + mode;\n }\n\n _dataList.push(newData);\n _dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n throw row + ',' + col;\n }\n return _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n return _moduleCount;\n };\n\n _this.make = function() {\n if (_typeNumber < 1) {\n var typeNumber = 1;\n\n for (; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < _dataList.length; i++) {\n var data = _dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n var 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 break;\n }\n }\n\n _typeNumber = typeNumber;\n }\n\n makeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n cellSize = cellSize || 2;\n margin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n var qrHtml = '';\n\n qrHtml += '' +\n escapeXml(title.text) + '' : '';\n qrSvg += (alt.text) ? '' +\n escapeXml(alt.text) + '' : '';\n qrSvg += '';\n qrSvg += '': escaped += '>'; break;\n case '&': escaped += '&'; break;\n case '\"': escaped += '"'; break;\n default : escaped += c; break;\n }\n }\n return escaped;\n };\n\n var _createHalfASCII = function(margin) {\n var cellSize = 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r1, r2, p;\n\n var blocks = {\n '██': '█',\n '█ ': '▀',\n ' █': '▄',\n ' ': ' '\n };\n\n var blocksLastLineNoMargin = {\n '██': '▀',\n '█ ': '▀',\n ' █': ' ',\n ' ': ' '\n };\n\n var ascii = '';\n for (y = 0; y < size; y += 2) {\n r1 = Math.floor((y - min) / cellSize);\n r2 = Math.floor((y + 1 - min) / cellSize);\n for (x = 0; x < size; x += 1) {\n p = '█';\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {\n p = ' ';\n }\n\n if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {\n p += ' ';\n }\n else {\n p += '█';\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];\n }\n\n ascii += '\\n';\n }\n\n if (size % 2 && margin > 0) {\n return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('▀');\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.createASCII = function(cellSize, margin) {\n cellSize = cellSize || 1;\n\n if (cellSize < 2) {\n return _createHalfASCII(margin);\n }\n\n cellSize -= 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r, p;\n\n var white = Array(cellSize+1).join('██');\n var black = Array(cellSize+1).join(' ');\n\n var ascii = '';\n var line = '';\n for (y = 0; y < size; y += 1) {\n r = Math.floor( (y - min) / cellSize);\n line = '';\n for (x = 0; x < size; x += 1) {\n p = 1;\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {\n p = 0;\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n line += p ? white : black;\n }\n\n for (r = 0; r < cellSize; r += 1) {\n ascii += line + '\\n';\n }\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.renderTo2dContext = function(context, cellSize) {\n cellSize = cellSize || 2;\n var length = _this.getModuleCount();\n for (var row = 0; row < length; row++) {\n for (var col = 0; col < length; col++) {\n context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';\n context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);\n }\n }\n }\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrcode.stringToBytes\n //---------------------------------------------------------------------\n\n qrcode.stringToBytesFuncs = {\n 'default' : function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n bytes.push(c & 0xff);\n }\n return bytes;\n }\n };\n\n qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];\n\n //---------------------------------------------------------------------\n // qrcode.createStringToBytes\n //---------------------------------------------------------------------\n\n /**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\n qrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n var bin = base64DecodeInputStream(unicodeData);\n var read = function() {\n var b = bin.read();\n if (b == -1) throw 'eof';\n return b;\n };\n\n var count = 0;\n var unicodeMap = {};\n while (true) {\n var b0 = bin.read();\n if (b0 == -1) break;\n var b1 = read();\n var b2 = read();\n var b3 = read();\n var k = String.fromCharCode( (b0 << 8) | b1);\n var v = (b2 << 8) | b3;\n unicodeMap[k] = v;\n count += 1;\n }\n if (count != numChars) {\n throw count + ' != ' + numChars;\n }\n\n return unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n if (c < 128) {\n bytes.push(c);\n } else {\n var b = unicodeMap[s.charAt(i)];\n if (typeof b == 'number') {\n if ( (b & 0xff) == b) {\n // 1byte\n bytes.push(b);\n } else {\n // 2bytes\n bytes.push(b >>> 8);\n bytes.push(b & 0xff);\n }\n } else {\n bytes.push(unknownChar);\n }\n }\n }\n return bytes;\n };\n };\n\n //---------------------------------------------------------------------\n // QRMode\n //---------------------------------------------------------------------\n\n var 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 // QRErrorCorrectionLevel\n //---------------------------------------------------------------------\n\n var QRErrorCorrectionLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n };\n\n //---------------------------------------------------------------------\n // QRMaskPattern\n //---------------------------------------------------------------------\n\n var 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\n var QRUtil = function() {\n\n var 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 var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n var digit = 0;\n while (data != 0) {\n digit += 1;\n data >>>= 1;\n }\n return digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n var d = data << 10;\n while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n }\n return ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n var d = data << 12;\n while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n }\n return (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n return PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n switch (maskPattern) {\n\n case QRMaskPattern.PATTERN000 :\n return function(i, j) { return (i + j) % 2 == 0; };\n case QRMaskPattern.PATTERN001 :\n return function(i, j) { return i % 2 == 0; };\n case QRMaskPattern.PATTERN010 :\n return function(i, j) { return j % 3 == 0; };\n case QRMaskPattern.PATTERN011 :\n return function(i, j) { return (i + j) % 3 == 0; };\n case QRMaskPattern.PATTERN100 :\n return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n case QRMaskPattern.PATTERN101 :\n return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n case QRMaskPattern.PATTERN110 :\n return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n case QRMaskPattern.PATTERN111 :\n return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n default :\n throw 'bad maskPattern:' + maskPattern;\n }\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n var a = qrPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i += 1) {\n a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n }\n return a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n if (1 <= type && type < 10) {\n\n // 1 - 9\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 10;\n case QRMode.MODE_ALPHA_NUM : return 9;\n case QRMode.MODE_8BIT_BYTE : return 8;\n case QRMode.MODE_KANJI : return 8;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 27) {\n\n // 10 - 26\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 12;\n case QRMode.MODE_ALPHA_NUM : return 11;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 10;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 41) {\n\n // 27 - 40\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 14;\n case QRMode.MODE_ALPHA_NUM : return 13;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 12;\n default :\n throw 'mode:' + mode;\n }\n\n } else {\n throw 'type:' + type;\n }\n };\n\n _this.getLostPoint = function(qrcode) {\n\n var moduleCount = qrcode.getModuleCount();\n\n var lostPoint = 0;\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount; col += 1) {\n\n var sameCount = 0;\n var dark = qrcode.isDark(row, col);\n\n for (var r = -1; r <= 1; r += 1) {\n\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n\n for (var c = -1; c <= 1; c += 1) {\n\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 += 1;\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 += 1) {\n for (var col = 0; col < moduleCount - 1; col += 1) {\n var count = 0;\n if (qrcode.isDark(row, col) ) count += 1;\n if (qrcode.isDark(row + 1, col) ) count += 1;\n if (qrcode.isDark(row, col + 1) ) count += 1;\n if (qrcode.isDark(row + 1, col + 1) ) count += 1;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount - 6; col += 1) {\n if (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 lostPoint += 40;\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount - 6; row += 1) {\n if (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 lostPoint += 40;\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0;\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount; row += 1) {\n if (qrcode.isDark(row, col) ) {\n darkCount += 1;\n }\n }\n }\n\n var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n\n return lostPoint;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // QRMath\n //---------------------------------------------------------------------\n\n var QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n EXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n EXP_TABLE[i] = EXP_TABLE[i - 4]\n ^ EXP_TABLE[i - 5]\n ^ EXP_TABLE[i - 6]\n ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n LOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n if (n < 1) {\n throw 'glog(' + n + ')';\n }\n\n return LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n while (n < 0) {\n n += 255;\n }\n\n while (n >= 256) {\n n -= 255;\n }\n\n return EXP_TABLE[n];\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrPolynomial\n //---------------------------------------------------------------------\n\n function qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n throw num.length + '/' + shift;\n }\n\n var _num = function() {\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset += 1;\n }\n var _num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i += 1) {\n _num[i] = num[i + offset];\n }\n return _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n return _num[index];\n };\n\n _this.getLength = function() {\n return _num.length;\n };\n\n _this.multiply = function(e) {\n\n var num = new Array(_this.getLength() + e.getLength() - 1);\n\n for (var i = 0; i < _this.getLength(); i += 1) {\n for (var j = 0; j < e.getLength(); j += 1) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n }\n }\n\n return qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n if (_this.getLength() - e.getLength() < 0) {\n return _this;\n }\n\n var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n var num = new Array(_this.getLength() );\n for (var i = 0; i < _this.getLength(); i += 1) {\n num[i] = _this.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n }\n\n // recursive call\n return qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // QRRSBlock\n //---------------------------------------------------------------------\n\n var QRRSBlock = function() {\n\n var RS_BLOCK_TABLE = [\n\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, 7, 37, 13],\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\n var qrRSBlock = function(totalCount, dataCount) {\n var _this = {};\n _this.totalCount = totalCount;\n _this.dataCount = dataCount;\n return _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {\n\n switch(errorCorrectionLevel) {\n case QRErrorCorrectionLevel.L :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectionLevel.M :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectionLevel.Q :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectionLevel.H :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default :\n return undefined;\n }\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {\n\n var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);\n\n if (typeof rsBlock == 'undefined') {\n throw 'bad rs block @ typeNumber:' + typeNumber +\n '/errorCorrectionLevel:' + errorCorrectionLevel;\n }\n\n var length = rsBlock.length / 3;\n\n var list = [];\n\n for (var i = 0; i < length; i += 1) {\n\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n\n for (var j = 0; j < count; j += 1) {\n list.push(qrRSBlock(totalCount, dataCount) );\n }\n }\n\n return list;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrBitBuffer\n //---------------------------------------------------------------------\n\n var qrBitBuffer = function() {\n\n var _buffer = [];\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n return _buffer;\n };\n\n _this.getAt = function(index) {\n var bufIndex = Math.floor(index / 8);\n return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n for (var i = 0; i < length; i += 1) {\n _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n }\n };\n\n _this.getLengthInBits = function() {\n return _length;\n };\n\n _this.putBit = function(bit) {\n\n var bufIndex = Math.floor(_length / 8);\n if (_buffer.length <= bufIndex) {\n _buffer.push(0);\n }\n\n if (bit) {\n _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n }\n\n _length += 1;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrNumber\n //---------------------------------------------------------------------\n\n var qrNumber = function(data) {\n\n var _mode = QRMode.MODE_NUMBER;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var data = _data;\n\n var i = 0;\n\n while (i + 2 < data.length) {\n buffer.put(strToNum(data.substring(i, i + 3) ), 10);\n i += 3;\n }\n\n if (i < data.length) {\n if (data.length - i == 1) {\n buffer.put(strToNum(data.substring(i, i + 1) ), 4);\n } else if (data.length - i == 2) {\n buffer.put(strToNum(data.substring(i, i + 2) ), 7);\n }\n }\n };\n\n var strToNum = function(s) {\n var num = 0;\n for (var i = 0; i < s.length; i += 1) {\n num = num * 10 + chatToNum(s.charAt(i) );\n }\n return num;\n };\n\n var chatToNum = function(c) {\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n throw 'illegal char :' + c;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrAlphaNum\n //---------------------------------------------------------------------\n\n var qrAlphaNum = function(data) {\n\n var _mode = QRMode.MODE_ALPHA_NUM;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var s = _data;\n\n var i = 0;\n\n while (i + 1 < s.length) {\n buffer.put(\n getCode(s.charAt(i) ) * 45 +\n getCode(s.charAt(i + 1) ), 11);\n i += 2;\n }\n\n if (i < s.length) {\n buffer.put(getCode(s.charAt(i) ), 6);\n }\n };\n\n var getCode = function(c) {\n\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n } else if ('A' <= c && c <= 'Z') {\n return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n } else {\n switch (c) {\n case ' ' : return 36;\n case '$' : return 37;\n case '%' : return 38;\n case '*' : return 39;\n case '+' : return 40;\n case '-' : return 41;\n case '.' : return 42;\n case '/' : return 43;\n case ':' : return 44;\n default :\n throw 'illegal char :' + c;\n }\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qr8BitByte\n //---------------------------------------------------------------------\n\n var qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _bytes = qrcode.stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _bytes.length;\n };\n\n _this.write = function(buffer) {\n for (var i = 0; i < _bytes.length; i += 1) {\n buffer.put(_bytes[i], 8);\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrKanji\n //---------------------------------------------------------------------\n\n var qrKanji = function(data) {\n\n var _mode = QRMode.MODE_KANJI;\n var _data = data;\n\n var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];\n if (!stringToBytes) {\n throw 'sjis not supported.';\n }\n !function(c, code) {\n // self test for sjis support.\n var test = stringToBytes(c);\n if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {\n throw 'sjis not supported.';\n }\n }('\\u53cb', 0x9746);\n\n var _bytes = stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return ~~(_bytes.length / 2);\n };\n\n _this.write = function(buffer) {\n\n var data = _bytes;\n\n var i = 0;\n\n while (i + 1 < data.length) {\n\n var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);\n\n if (0x8140 <= c && c <= 0x9FFC) {\n c -= 0x8140;\n } else if (0xE040 <= c && c <= 0xEBBF) {\n c -= 0xC140;\n } else {\n throw 'illegal char at ' + (i + 1) + '/' + c;\n }\n\n c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);\n\n buffer.put(c, 13);\n\n i += 2;\n }\n\n if (i < data.length) {\n throw 'illegal char at ' + (i + 1);\n }\n };\n\n return _this;\n };\n\n //=====================================================================\n // GIF Support etc.\n //\n\n //---------------------------------------------------------------------\n // byteArrayOutputStream\n //---------------------------------------------------------------------\n\n var byteArrayOutputStream = function() {\n\n var _bytes = [];\n\n var _this = {};\n\n _this.writeByte = function(b) {\n _bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n _this.writeByte(i);\n _this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n off = off || 0;\n len = len || b.length;\n for (var i = 0; i < len; i += 1) {\n _this.writeByte(b[i + off]);\n }\n };\n\n _this.writeString = function(s) {\n for (var i = 0; i < s.length; i += 1) {\n _this.writeByte(s.charCodeAt(i) );\n }\n };\n\n _this.toByteArray = function() {\n return _bytes;\n };\n\n _this.toString = function() {\n var s = '';\n s += '[';\n for (var i = 0; i < _bytes.length; i += 1) {\n if (i > 0) {\n s += ',';\n }\n s += _bytes[i];\n }\n s += ']';\n return s;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64EncodeOutputStream\n //---------------------------------------------------------------------\n\n var base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n _base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n if (n < 0) {\n // error.\n } else if (n < 26) {\n return 0x41 + n;\n } else if (n < 52) {\n return 0x61 + (n - 26);\n } else if (n < 62) {\n return 0x30 + (n - 52);\n } else if (n == 62) {\n return 0x2b;\n } else if (n == 63) {\n return 0x2f;\n }\n throw 'n:' + n;\n };\n\n _this.writeByte = function(n) {\n\n _buffer = (_buffer << 8) | (n & 0xff);\n _buflen += 8;\n _length += 1;\n\n while (_buflen >= 6) {\n writeEncoded(_buffer >>> (_buflen - 6) );\n _buflen -= 6;\n }\n };\n\n _this.flush = function() {\n\n if (_buflen > 0) {\n writeEncoded(_buffer << (6 - _buflen) );\n _buffer = 0;\n _buflen = 0;\n }\n\n if (_length % 3 != 0) {\n // padding\n var padlen = 3 - _length % 3;\n for (var i = 0; i < padlen; i += 1) {\n _base64 += '=';\n }\n }\n };\n\n _this.toString = function() {\n return _base64;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64DecodeInputStream\n //---------------------------------------------------------------------\n\n var base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n while (_buflen < 8) {\n\n if (_pos >= _str.length) {\n if (_buflen == 0) {\n return -1;\n }\n throw 'unexpected end of file./' + _buflen;\n }\n\n var c = _str.charAt(_pos);\n _pos += 1;\n\n if (c == '=') {\n _buflen = 0;\n return -1;\n } else if (c.match(/^\\s$/) ) {\n // ignore if whitespace.\n continue;\n }\n\n _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n _buflen += 6;\n }\n\n var n = (_buffer >>> (_buflen - 8) ) & 0xff;\n _buflen -= 8;\n return n;\n };\n\n var decode = function(c) {\n if (0x41 <= c && c <= 0x5a) {\n return c - 0x41;\n } else if (0x61 <= c && c <= 0x7a) {\n return c - 0x61 + 26;\n } else if (0x30 <= c && c <= 0x39) {\n return c - 0x30 + 52;\n } else if (c == 0x2b) {\n return 62;\n } else if (c == 0x2f) {\n return 63;\n } else {\n throw 'c:' + c;\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // gifImage (B/W)\n //---------------------------------------------------------------------\n\n var gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n _data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n //---------------------------------\n // GIF Signature\n\n out.writeString('GIF87a');\n\n //---------------------------------\n // Screen Descriptor\n\n out.writeShort(_width);\n out.writeShort(_height);\n\n out.writeByte(0x80); // 2bit\n out.writeByte(0);\n out.writeByte(0);\n\n //---------------------------------\n // Global Color Map\n\n // black\n out.writeByte(0x00);\n out.writeByte(0x00);\n out.writeByte(0x00);\n\n // white\n out.writeByte(0xff);\n out.writeByte(0xff);\n out.writeByte(0xff);\n\n //---------------------------------\n // Image Descriptor\n\n out.writeString(',');\n out.writeShort(0);\n out.writeShort(0);\n out.writeShort(_width);\n out.writeShort(_height);\n out.writeByte(0);\n\n //---------------------------------\n // Local Color Map\n\n //---------------------------------\n // Raster Data\n\n var lzwMinCodeSize = 2;\n var raster = getLZWRaster(lzwMinCodeSize);\n\n out.writeByte(lzwMinCodeSize);\n\n var offset = 0;\n\n while (raster.length - offset > 255) {\n out.writeByte(255);\n out.writeBytes(raster, offset, 255);\n offset += 255;\n }\n\n out.writeByte(raster.length - offset);\n out.writeBytes(raster, offset, raster.length - offset);\n out.writeByte(0x00);\n\n //---------------------------------\n // GIF Terminator\n out.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n var _out = out;\n var _bitLength = 0;\n var _bitBuffer = 0;\n\n var _this = {};\n\n _this.write = function(data, length) {\n\n if ( (data >>> length) != 0) {\n throw 'length over';\n }\n\n while (_bitLength + length >= 8) {\n _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n length -= (8 - _bitLength);\n data >>>= (8 - _bitLength);\n _bitBuffer = 0;\n _bitLength = 0;\n }\n\n _bitBuffer = (data << _bitLength) | _bitBuffer;\n _bitLength = _bitLength + length;\n };\n\n _this.flush = function() {\n if (_bitLength > 0) {\n _out.writeByte(_bitBuffer);\n }\n };\n\n return _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n var bitLength = lzwMinCodeSize + 1;\n\n // Setup LZWTable\n var table = lzwTable();\n\n for (var i = 0; i < clearCode; i += 1) {\n table.add(String.fromCharCode(i) );\n }\n table.add(String.fromCharCode(clearCode) );\n table.add(String.fromCharCode(endCode) );\n\n var byteOut = byteArrayOutputStream();\n var bitOut = bitOutputStream(byteOut);\n\n // clear code\n bitOut.write(clearCode, bitLength);\n\n var dataIndex = 0;\n\n var s = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n while (dataIndex < _data.length) {\n\n var c = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n if (table.contains(s + c) ) {\n\n s = s + c;\n\n } else {\n\n bitOut.write(table.indexOf(s), bitLength);\n\n if (table.size() < 0xfff) {\n\n if (table.size() == (1 << bitLength) ) {\n bitLength += 1;\n }\n\n table.add(s + c);\n }\n\n s = c;\n }\n }\n\n bitOut.write(table.indexOf(s), bitLength);\n\n // end code\n bitOut.write(endCode, bitLength);\n\n bitOut.flush();\n\n return byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n var _map = {};\n var _size = 0;\n\n var _this = {};\n\n _this.add = function(key) {\n if (_this.contains(key) ) {\n throw 'dup key:' + key;\n }\n _map[key] = _size;\n _size += 1;\n };\n\n _this.size = function() {\n return _size;\n };\n\n _this.indexOf = function(key) {\n return _map[key];\n };\n\n _this.contains = function(key) {\n return typeof _map[key] != 'undefined';\n };\n\n return _this;\n };\n\n return _this;\n };\n\n var createDataURL = function(width, height, getPixel) {\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n for (var x = 0; x < width; x += 1) {\n gif.setPixel(x, y, getPixel(x, y) );\n }\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n base64.writeByte(bytes[i]);\n }\n base64.flush();\n\n return 'data:image/gif;base64,' + base64;\n };\n\n //---------------------------------------------------------------------\n // returns qrcode function.\n\n return qrcode;\n}();\n\n// multibyte support\n!function() {\n\n qrcode.stringToBytesFuncs['UTF-8'] = function(s) {\n // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n function toUTF8Array(str) {\n var utf8 = [];\n for (var i=0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n if (charcode < 0x80) utf8.push(charcode);\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6),\n 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n // surrogate pair\n else {\n i++;\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff)<<10)\n | (str.charCodeAt(i) & 0x3ff));\n utf8.push(0xf0 | (charcode >>18),\n 0x80 | ((charcode>>12) & 0x3f),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n }\n return utf8;\n }\n return toUTF8Array(s);\n };\n\n}();\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n }\n}(function () {\n return qrcode;\n}));\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/*! qrcanvas v3.1.1 | ISC License */\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport qrcode from 'qrcode-generator';\n\nvar COLOR_BLACK = '#000';\nvar COLOR_WHITE = '#fff';\n\nvar helpers = {\n createCanvas: createCanvas,\n isCanvas: isCanvas,\n isDrawable: isDrawable,\n getCanvas: getCanvas,\n updateCanvas: updateCanvas,\n drawCanvas: drawCanvas,\n drawText: drawText\n};\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction isCanvas(el) {\n return el instanceof HTMLCanvasElement;\n}\n\nfunction isDrawable(el) {\n return isCanvas(el) || el instanceof HTMLImageElement;\n}\n/**\n * @desc Create a new canvas.\n * @param {Int} width Width of the canvas.\n * @param {Int} height Height of the canvas.\n * @return {Canvas}\n */\n\n\nfunction getCanvas(width, height) {\n return helpers.createCanvas(width, height == null ? width : height);\n}\n\nfunction updateCanvas(canvas, width, height) {\n if (canvas) {\n canvas.width = width;\n canvas.height = height == null ? width : height;\n return canvas;\n }\n\n return getCanvas(width, height);\n}\n\n/**\n * @desc Draw to the canvas with given image or colors.\n * @param {Canvas} canvas The canvas to initialize.\n * @param {Image | String | Array} data\n * @param {Object} options\n * cellSize: {Int}\n * clear: {Boolean}\n */\nfunction drawCanvas(canvas, data, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n cellSize = _options.cellSize,\n context = _options.context,\n _options$clear = _options.clear,\n clear = _options$clear === void 0 ? true : _options$clear;\n var width = canvas.width,\n height = canvas.height;\n var queue = [data];\n var ctx = context || canvas.getContext('2d');\n if (clear) ctx.clearRect(0, 0, width, height);\n ctx.globalCompositeOperation = 'source-over';\n\n while (queue.length) {\n var item = queue.shift();\n\n if (Array.isArray(item)) {\n queue = item.concat(queue);\n } else if (item) {\n var obj = void 0;\n\n if (helpers.isDrawable(item)) {\n obj = {\n image: item\n };\n } else if (typeof item === 'string') {\n obj = {\n style: item\n };\n } else {\n obj = item;\n }\n\n var x = (obj.col == null ? obj.x : obj.col * cellSize) || 0;\n var y = (obj.row == null ? obj.y : obj.row * cellSize) || 0;\n if (x < 0) x += width;\n if (y < 0) y += width;\n var w = ('cols' in obj ? obj.cols * cellSize : obj.w) || width;\n var h = ('rows' in obj ? obj.rows * cellSize : obj.h) || width;\n\n if (obj.image) {\n ctx.drawImage(obj.image, x, y, w, h);\n } else {\n ctx.fillStyle = obj.style || 'black';\n ctx.fillRect(x, y, w, h);\n }\n }\n }\n\n return canvas;\n}\n\nfunction drawText(text, options) {\n var _ref = options || {},\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 64 : _ref$fontSize,\n _ref$fontStyle = _ref.fontStyle,\n fontStyle = _ref$fontStyle === void 0 ? '' : _ref$fontStyle,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? 'Cursive' : _ref$fontFamily,\n _ref$color = _ref.color,\n color = _ref$color === void 0 ? null : _ref$color,\n _ref$pad = _ref.pad,\n pad = _ref$pad === void 0 ? 8 : _ref$pad,\n _ref$padColor = _ref.padColor,\n padColor = _ref$padColor === void 0 ? COLOR_WHITE : _ref$padColor,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 1 : _ref$mode;\n\n var canvas = getCanvas(1);\n var ctx = canvas.getContext('2d');\n var padColorArr;\n\n if (padColor) {\n ctx.fillStyle = padColor;\n ctx.fillRect(0, 0, 1, 1);\n\n var _ctx$getImageData = ctx.getImageData(0, 0, 1, 1);\n\n padColorArr = _ctx$getImageData.data;\n if (!padColorArr[3]) padColorArr = null;\n }\n\n var height = fontSize + 2 * pad;\n var font = [fontStyle, fontSize + \"px\", fontFamily].filter(Boolean).join(' ');\n\n var resetContext = function resetContext() {\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.font = font;\n };\n\n resetContext();\n var width = Math.ceil(ctx.measureText(text).width) + 2 * pad;\n canvas.width = width;\n canvas.height = height;\n resetContext();\n\n var fillText = function fillText() {\n ctx.fillStyle = color || COLOR_BLACK;\n ctx.fillText(text, width / 2, height / 2);\n };\n\n if (mode === 1) {\n ctx.fillStyle = padColor;\n ctx.fillRect(0, 0, width, height);\n fillText();\n } else {\n fillText();\n\n if (padColorArr) {\n (function () {\n var imageData = ctx.getImageData(0, 0, width, height);\n var data = imageData.data;\n var total = width * height;\n var padded = [];\n var offset = 0;\n\n var _loop = function _loop(loop) {\n var current = [];\n var unique = {};\n padded[offset] = current;\n offset = 1 - offset;\n var last = padded[offset];\n\n if (!last) {\n last = [];\n\n for (var i = 0; i < total; i += 1) {\n last.push(i);\n }\n }\n\n last.forEach(function (i) {\n if (data[4 * i + 3]) {\n [i % width ? i - 1 : -1, (i + 1) % width ? i + 1 : -1, i - width, i + width].forEach(function (j) {\n var k = 4 * j;\n\n if (k >= 0 && k <= data.length && !unique[j]) {\n unique[j] = 1;\n current.push(j);\n }\n });\n }\n });\n current.forEach(function (i) {\n var j = 4 * i;\n\n if (!data[j + 3]) {\n for (var k = 0; k < 4; k += 1) {\n data[j + k] = padColorArr[k];\n }\n }\n });\n };\n\n for (var loop = 0; loop < pad; loop += 1) {\n _loop();\n }\n\n ctx.putImageData(imageData, 0, 0);\n })();\n }\n }\n\n return canvas;\n}\n\nvar effects = {\n \"default\": renderDefault,\n round: renderRound,\n fusion: renderFusion,\n spot: renderSpot\n};\n\nfunction renderDefault(_ref) {\n var foreground = _ref.foreground,\n cellSize = _ref.cellSize,\n isDark = _ref.isDark,\n count = _ref.count;\n var getCanvas = helpers.getCanvas,\n drawCanvas = helpers.drawCanvas;\n var width = cellSize * count;\n var canvasMask = getCanvas(width);\n var context = canvasMask.getContext('2d');\n context.fillStyle = COLOR_BLACK;\n drawCells({\n cellSize: cellSize,\n count: count\n }, function (_ref2) {\n var i = _ref2.i,\n j = _ref2.j,\n x = _ref2.x,\n y = _ref2.y;\n\n if (isDark(i, j)) {\n context.fillRect(x, y, cellSize, cellSize);\n }\n });\n var canvasFg = getCanvas(width);\n drawCanvas(canvasFg, foreground, {\n cellSize: cellSize\n });\n var ctx = canvasFg.getContext('2d');\n ctx.globalCompositeOperation = 'destination-in';\n ctx.drawImage(canvasMask, 0, 0);\n return canvasFg;\n}\n\nfunction renderRound(_ref3, maskOptions) {\n var foreground = _ref3.foreground,\n cellSize = _ref3.cellSize,\n isDark = _ref3.isDark,\n count = _ref3.count;\n var getCanvas = helpers.getCanvas,\n drawCanvas = helpers.drawCanvas;\n var width = cellSize * count;\n var canvasMask = getCanvas(width);\n var _maskOptions$value = maskOptions.value,\n value = _maskOptions$value === void 0 ? 1 : _maskOptions$value;\n var radius = value * cellSize / 2;\n var context = canvasMask.getContext('2d');\n context.fillStyle = COLOR_BLACK;\n drawCells({\n cellSize: cellSize,\n count: count\n }, function (_ref4) {\n var i = _ref4.i,\n j = _ref4.j,\n x = _ref4.x,\n y = _ref4.y;\n\n if (isDark(i, j)) {\n context.beginPath();\n context.moveTo(x + 0.5 * cellSize, y);\n drawCorner(context, x + cellSize, y, x + cellSize, y + 0.5 * cellSize, radius);\n drawCorner(context, x + cellSize, y + cellSize, x + 0.5 * cellSize, y + cellSize, radius);\n drawCorner(context, x, y + cellSize, x, y + 0.5 * cellSize, radius);\n drawCorner(context, x, y, x + 0.5 * cellSize, y, radius); // context.closePath();\n\n context.fill();\n }\n });\n var canvasFg = getCanvas(width);\n drawCanvas(canvasFg, foreground, {\n cellSize: cellSize\n });\n var ctx = canvasFg.getContext('2d');\n ctx.globalCompositeOperation = 'destination-in';\n ctx.drawImage(canvasMask, 0, 0);\n return canvasFg;\n}\n\nfunction renderFusion(_ref5, maskOptions) {\n var foreground = _ref5.foreground,\n cellSize = _ref5.cellSize,\n isDark = _ref5.isDark,\n count = _ref5.count;\n var getCanvas = helpers.getCanvas,\n drawCanvas = helpers.drawCanvas;\n var width = cellSize * count;\n var canvasMask = getCanvas(width);\n var context = canvasMask.getContext('2d');\n context.fillStyle = COLOR_BLACK;\n var _maskOptions$value2 = maskOptions.value,\n value = _maskOptions$value2 === void 0 ? 1 : _maskOptions$value2;\n var radius = value * cellSize / 2;\n drawCells({\n cellSize: cellSize,\n count: count\n }, function (_ref6) {\n var i = _ref6.i,\n j = _ref6.j,\n x = _ref6.x,\n y = _ref6.y;\n var corners = [0, 0, 0, 0]; // NW, NE, SE, SW\n\n if (isDark(i - 1, j)) {\n corners[0] += 1;\n corners[1] += 1;\n }\n\n if (isDark(i + 1, j)) {\n corners[2] += 1;\n corners[3] += 1;\n }\n\n if (isDark(i, j - 1)) {\n corners[0] += 1;\n corners[3] += 1;\n }\n\n if (isDark(i, j + 1)) {\n corners[1] += 1;\n corners[2] += 1;\n }\n\n if (isDark(i, j)) {\n if (isDark(i - 1, j - 1)) corners[0] += 1;\n if (isDark(i - 1, j + 1)) corners[1] += 1;\n if (isDark(i + 1, j + 1)) corners[2] += 1;\n if (isDark(i + 1, j - 1)) corners[3] += 1;\n context.beginPath();\n context.moveTo(x + 0.5 * cellSize, y);\n drawCorner(context, x + cellSize, y, x + cellSize, y + 0.5 * cellSize, corners[1] ? 0 : radius);\n drawCorner(context, x + cellSize, y + cellSize, x + 0.5 * cellSize, y + cellSize, corners[2] ? 0 : radius);\n drawCorner(context, x, y + cellSize, x, y + 0.5 * cellSize, corners[3] ? 0 : radius);\n drawCorner(context, x, y, x + 0.5 * cellSize, y, corners[0] ? 0 : radius); // context.closePath();\n\n context.fill();\n } else {\n if (corners[0] === 2) {\n fillCorner(context, x, y + 0.5 * cellSize, x, y, x + 0.5 * cellSize, y, radius);\n }\n\n if (corners[1] === 2) {\n fillCorner(context, x + 0.5 * cellSize, y, x + cellSize, y, x + cellSize, y + 0.5 * cellSize, radius);\n }\n\n if (corners[2] === 2) {\n fillCorner(context, x + cellSize, y + 0.5 * cellSize, x + cellSize, y + cellSize, x + 0.5 * cellSize, y + cellSize, radius);\n }\n\n if (corners[3] === 2) {\n fillCorner(context, x + 0.5 * cellSize, y + cellSize, x, y + cellSize, x, y + 0.5 * cellSize, radius);\n }\n }\n });\n var canvasFg = getCanvas(width);\n drawCanvas(canvasFg, foreground, {\n cellSize: cellSize\n });\n var ctx = canvasFg.getContext('2d');\n ctx.globalCompositeOperation = 'destination-in';\n ctx.drawImage(canvasMask, 0, 0);\n return canvasFg;\n}\n\nfunction renderSpot(_ref7, maskOptions) {\n var foreground = _ref7.foreground,\n cellSize = _ref7.cellSize,\n isDark = _ref7.isDark,\n count = _ref7.count;\n var getCanvas = helpers.getCanvas,\n drawCanvas = helpers.drawCanvas;\n var width = cellSize * count;\n var canvasMask = getCanvas(width);\n var value = maskOptions.value,\n _maskOptions$foregrou = maskOptions.foregroundLight,\n foregroundLight = _maskOptions$foregrou === void 0 ? COLOR_WHITE : _maskOptions$foregrou;\n var context = canvasMask.getContext('2d');\n var canvasLayer = getCanvas(width);\n var canvasFg = getCanvas(width);\n var ctxLayer = canvasLayer.getContext('2d');\n [{\n dark: true,\n foreground: foreground\n }, {\n dark: false,\n foreground: foregroundLight\n }].forEach(function (item) {\n context.fillStyle = COLOR_BLACK;\n context.clearRect(0, 0, width, width);\n drawCells({\n cellSize: cellSize,\n count: count\n }, function (_ref8) {\n var i = _ref8.i,\n j = _ref8.j,\n x = _ref8.x,\n y = _ref8.y;\n\n if (isDark(i, j) ^ +!item.dark) {\n var fillSize;\n\n if (i <= 7 && j <= 7 || i <= 7 && count - j - 1 <= 7 || count - i - 1 <= 7 && j <= 7 || i + 5 <= count && i + 9 >= count && j + 5 <= count && j + 9 >= count || i === 7 || j === 7) {\n fillSize = 1 - 0.1 * value;\n } else {\n fillSize = 0.25;\n }\n\n var offset = (1 - fillSize) / 2;\n context.fillRect(x + offset * cellSize, y + offset * cellSize, fillSize * cellSize, fillSize * cellSize);\n }\n });\n drawCanvas(canvasLayer, item.foreground, {\n cellSize: cellSize,\n context: ctxLayer\n });\n ctxLayer.globalCompositeOperation = 'destination-in';\n ctxLayer.drawImage(canvasMask, 0, 0);\n drawCanvas(canvasFg, canvasLayer, {\n cellSize: cellSize,\n clear: false\n });\n });\n return canvasFg;\n}\n\nfunction drawCells(_ref9, drawEach) {\n var cellSize = _ref9.cellSize,\n count = _ref9.count;\n\n for (var i = 0; i < count; i += 1) {\n for (var j = 0; j < count; j += 1) {\n var x = j * cellSize;\n var y = i * cellSize;\n drawEach({\n i: i,\n j: j,\n x: x,\n y: y\n });\n }\n }\n}\n\nfunction drawCorner(ctx, cornerX, cornerY, x, y, r) {\n if (r) {\n ctx.arcTo(cornerX, cornerY, x, y, r);\n } else {\n ctx.lineTo(cornerX, cornerY);\n ctx.lineTo(x, y);\n }\n}\n\nfunction fillCorner(context, startX, startY, cornerX, cornerY, destX, destY, radius) {\n context.beginPath();\n context.moveTo(startX, startY);\n drawCorner(context, cornerX, cornerY, destX, destY, radius);\n context.lineTo(cornerX, cornerY);\n context.lineTo(startX, startY); // context.closePath();\n\n context.fill();\n}\n\n// Enable UTF_8 support\nqrcode.stringToBytes = qrcode.stringToBytesFuncs['UTF-8'];\nvar DEFAULTS = {\n background: 'white',\n foreground: 'black',\n typeNumber: 0,\n correctLevel: 'L',\n data: '',\n padding: 0\n};\n\nvar QRCanvasRenderer = /*#__PURE__*/function () {\n function QRCanvasRenderer(options) {\n var _this = this;\n\n this.options = _extends({}, DEFAULTS);\n this.cache = {};\n\n this.isDark = function (i, j) {\n var _this$cache = _this.cache,\n qr = _this$cache.qr,\n count = _this$cache.count;\n if (i < 0 || i >= count || j < 0 || j >= count) return false;\n return qr.isDark(i, j);\n };\n\n this.setOptions(options);\n }\n\n var _proto = QRCanvasRenderer.prototype;\n\n _proto.render = function render(canvas, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _this$options = this.options,\n background = _this$options.background,\n foreground = _this$options.foreground,\n padding = _this$options.padding,\n effect = _this$options.effect,\n logo = _this$options.logo;\n var onRender = effects[effect.type] || effects[\"default\"];\n var count = this.cache.count;\n var drawCanvas = helpers.drawCanvas;\n var _config = config,\n size = _config.size;\n var canvasOut;\n var canvasBg;\n var canvasFg; // Prepare output canvas, resize it if cellSize or size is provided.\n\n {\n var _config2 = config,\n cellSize = _config2.cellSize;\n if (!canvas && !cellSize && !size) cellSize = 6;\n if (cellSize) size = count * cellSize;\n\n if (size) {\n canvasOut = helpers.updateCanvas(canvas, size);\n } else {\n size = canvas.width;\n canvasOut = canvas;\n }\n } // Create foreground and background layers on canvas\n\n {\n var _cellSize = Math.ceil(size / count);\n\n var sketchSize = _cellSize * count;\n canvasBg = helpers.getCanvas(_cellSize * count);\n drawCanvas(canvasBg, background, {\n cellSize: _cellSize\n });\n canvasFg = onRender(_extends({\n foreground: foreground,\n cellSize: _cellSize,\n isDark: this.isDark\n }, this.cache), this.options.effect); // draw logo\n\n if (logo) {\n var logoLayer = _extends({}, logo);\n\n if (!logo.w && !logo.h && !logo.cols && !logo.rows) {\n var _ref = logo.image,\n width = _ref.width,\n height = _ref.height;\n var imageRatio = width / height;\n var posRatio = Math.min((count - 18) / count, 0.38);\n var h = Math.min(height, sketchSize * posRatio, sketchSize * posRatio / imageRatio);\n var w = h * imageRatio;\n var x = (sketchSize - w) / 2;\n var y = (sketchSize - h) / 2;\n logoLayer.w = w;\n logoLayer.h = h;\n logoLayer.x = x;\n logoLayer.y = y;\n }\n\n drawCanvas(canvasFg, logoLayer, {\n clear: false\n });\n }\n } // Combine the layers\n\n var contentSize = size - padding - padding;\n drawCanvas(canvasOut, [{\n image: canvasBg\n }, {\n image: canvasFg,\n x: padding,\n y: padding,\n w: contentSize,\n h: contentSize\n }]);\n return canvasOut;\n };\n\n _proto.setOptions = function setOptions(options) {\n this.options = _extends({}, this.options, {}, options);\n this.normalizeEffect();\n this.normalizeLogo();\n var _this$options2 = this.options,\n typeNumber = _this$options2.typeNumber,\n data = _this$options2.data,\n logo = _this$options2.logo; // L / M / Q / H\n\n var correctLevel = this.options.correctLevel;\n if (logo && ['Q', 'H'].indexOf(correctLevel) < 0) correctLevel = 'H';\n var qr = qrcode(typeNumber, correctLevel);\n qr.addData(data || '');\n qr.make();\n var count = qr.getModuleCount();\n this.cache = {\n qr: qr,\n count: count\n };\n };\n\n _proto.normalizeEffect = function normalizeEffect() {\n var effect = this.options.effect;\n\n if (typeof effect === 'string') {\n effect = {\n type: effect\n };\n }\n\n this.options.effect = effect || {};\n };\n\n _proto.normalizeLogo = function normalizeLogo() {\n var isDrawable = helpers.isDrawable,\n drawText = helpers.drawText;\n var logo = this.options.logo;\n\n if (logo) {\n if (isDrawable(logo)) {\n logo = {\n image: logo\n };\n } else if (!isDrawable(logo.image)) {\n if (typeof logo === 'string') {\n logo = {\n text: logo\n };\n }\n\n if (typeof logo.text === 'string') {\n logo = {\n image: drawText(logo.text, logo.options)\n };\n } else {\n logo = null;\n }\n }\n }\n\n this.options.logo = logo;\n };\n\n return QRCanvasRenderer;\n}();\n\nfunction qrcanvas(options) {\n var canvas = options.canvas,\n size = options.size,\n cellSize = options.cellSize,\n rest = _objectWithoutPropertiesLoose(options, [\"canvas\", \"size\", \"cellSize\"]);\n\n var renderer = new QRCanvasRenderer(rest);\n return renderer.render(canvas, {\n size: size,\n cellSize: cellSize\n });\n}\n\nfunction setCanvasModule(canvasModule) {\n var Canvas = canvasModule.Canvas,\n Image = canvasModule.Image,\n createCanvas = canvasModule.createCanvas;\n\n var isCanvas = function isCanvas(el) {\n return el instanceof Canvas;\n };\n\n var isDrawable = function isDrawable(el) {\n return isCanvas(el) || el instanceof Image;\n };\n\n helpers.createCanvas = createCanvas;\n helpers.isCanvas = isCanvas;\n helpers.isDrawable = isDrawable;\n}\n\nexport { effects, helpers, qrcanvas, setCanvasModule };\n","/*! qrcanvas-vue v2.0.5 | ISC License */\nimport Vue from 'vue';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { qrcanvas } from 'qrcanvas';\n\nvar Component = {\n props: {\n options: Object\n },\n render: function render(h) {\n return h('canvas');\n },\n methods: {\n update: function update(options) {\n // Render only if mounted, skip SSR.\n if (!this.mounted) return;\n this.$emit('beforeUpdate', this.$el);\n qrcanvas(_extends({}, options, {\n canvas: this.$el\n }));\n this.$emit('updated', this.$el);\n }\n },\n watch: {\n options: 'update'\n },\n mounted: function mounted() {\n this.mounted = true;\n this.update(this.options);\n }\n};\n\nvar QRCanvas = Vue.extend(Component);\n\nexport { Component, QRCanvas };\n"],"sourceRoot":""}