{"version":3,"sources":["webpack:///./src/views/else/code.vue?ee73","webpack:///./src/views/else/code.vue?9a04","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/qrcanvas/lib/qrcanvas.esm.js","webpack:///./src/views/else/code.vue?fd7e","webpack:///./src/views/else/code.vue","webpack:///./node_modules/qrcode-generator/qrcode.js","webpack:///./src/assets/img/code-hint.png"],"names":["_withId","_hoisted_1","class","_hoisted_2","id","_hoisted_3","_hoisted_4","_hoisted_5","style","href","target","rel","_hoisted_6","src","alt","_ctx","_cache","$props","$setup","$data","$options","_component_el_button","type","onClick","codeEvent","default","_","_objectWithoutPropertiesLoose","source","excluded","key","i","sourceKeys","Object","keys","length","indexOf","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","this","COLOR_BLACK","COLOR_WHITE","helpers","createCanvas","isCanvas","isDrawable","getCanvas","updateCanvas","drawCanvas","drawText","width","height","canvas","document","createElement","el","HTMLCanvasElement","HTMLImageElement","data","options","_options","cellSize","context","_options$clear","clear","queue","ctx","getContext","clearRect","globalCompositeOperation","item","shift","Array","isArray","concat","obj","image","x","col","y","row","w","cols","h","rows","drawImage","fillStyle","fillRect","text","padColorArr","_ref","_ref$fontSize","fontSize","_ref$fontStyle","fontStyle","_ref$fontFamily","fontFamily","_ref$color","color","_ref$pad","pad","_ref$padColor","padColor","_ref$mode","mode","_ctx$getImageData","getImageData","font","filter","Boolean","join","resetContext","textAlign","textBaseline","Math","ceil","measureText","fillText","imageData","total","padded","offset","_loop","loop","current","unique","last","push","forEach","j","k","putImageData","effects","renderDefault","round","renderRound","fusion","renderFusion","spot","renderSpot","foreground","isDark","count","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","dark","_ref8","fillSize","_ref9","drawEach","cornerX","cornerY","r","arcTo","lineTo","startX","startY","destX","destY","stringToBytes","stringToBytesFuncs","DEFAULTS","background","typeNumber","correctLevel","padding","resize","QRCanvasRenderer","_this","cache","_this$cache","qr","setOptions","_proto","render","config","canvasOut","canvasBg","_this$options","effect","logo","onRender","_config","size","_config2","contentSize","_cellSize","sketchSize","logoLayer","imageRatio","posRatio","min","normalizeEffect","normalizeLogo","_this$options2","addData","make","getModuleCount","qrcanvas","rest","renderer","setup","img","Image","onload","getElementById","appendChild","__exports__","qrcode","errorCorrectionLevel","PAD0","PAD1","_typeNumber","_errorCorrectionLevel","QRErrorCorrectionLevel","_modules","_moduleCount","_dataCache","_dataList","makeImpl","test","maskPattern","moduleCount","modules","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","c","getBestMaskPattern","minLostPoint","pattern","lostPoint","QRUtil","getLostPoint","pos","getPatternPosition","bits","getBCHTypeNumber","mod","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","maskFunc","getMaskFunction","mask","createBytes","buffer","rsBlocks","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","newData","qrNumber","qrAlphaNum","qr8BitByte","qrKanji","createTableTag","margin","qrHtml","createSvgTag","title","opts","mc","mr","rect","qrSvg","scalable","escapeXml","trim","createDataURL","createImgTag","s","escaped","charAt","_createHalfASCII","r1","r2","p","blocks","blocksLastLineNoMargin","ascii","substring","createASCII","white","black","line","renderTo2dContext","bytes","charCodeAt","createStringToBytes","unicodeData","numChars","unicodeMap","bin","base64DecodeInputStream","read","b","b0","b1","b2","b3","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","sameCount","darkCount","ratio","abs","EXP_TABLE","LOG_TABLE","n","num","_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","pixel","out","writeString","writeShort","lzwMinCodeSize","raster","getLZWRaster","writeBytes","bitOutputStream","_out","_bitLength","_bitBuffer","clearCode","endCode","bitLength","table","lzwTable","add","byteOut","bitOut","dataIndex","contains","toByteArray","_map","_size","getPixel","gif","setPixel","base64","toUTF8Array","utf8","charcode","factory","module","exports"],"mappings":"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","file":"js/chunk-1ef6ac9e.019ad4be.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./code.vue?vue&type=style&index=0&id=711aa548&scoped=true&lang=css\"","import { createVNode as _createVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../assets/img/code-hint.png'\n\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-711aa548\")\n\n_pushScopeId(\"data-v-711aa548\")\nconst _hoisted_1 = { class: \"code-box\" }\nconst _hoisted_2 = /*#__PURE__*/_createVNode(\"div\", { id: \"code\" }, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"点击生成二维码\")\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"div\", { class: \"code-hint\" }, \"属性说明(摘自:web技术栈)\", -1)\nconst _hoisted_5 = /*#__PURE__*/_createVNode(\"div\", { style: {\"text-align\":\"center\"} }, [\n /*#__PURE__*/_createVNode(\"a\", {\n href: \"https://www.npmjs.com/package/qrcode\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \"qrcanvas插件官网地址\")\n], -1)\nconst _hoisted_6 = /*#__PURE__*/_createVNode(\"img\", {\n class: \"code-hint-img\",\n src: _imports_0,\n alt: \"\"\n}, null, -1)\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")\n\n return (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_el_button, {\n class: \"theme-bg code-btn\",\n type: \"primary\",\n onClick: _ctx.codeEvent\n }, {\n default: _withId(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _hoisted_4,\n _hoisted_5,\n _hoisted_6\n ]))\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}","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}","/*! qrcanvas v3.1.2 | 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 resize: true\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 resize = _this$options.resize;\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 + padding + padding;\n\n if (size) {\n canvasOut = resize || !canvas ? helpers.updateCanvas(canvas, size) : canvas;\n } else {\n size = canvas.width;\n canvasOut = canvas;\n }\n }\n var contentSize = size - padding - padding; // Create foreground and background layers on canvas\n\n {\n var _cellSize = Math.ceil(contentSize / 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 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","\nimport { defineComponent } from \"vue\";\n// @ts-ignore;\nimport { qrcanvas } from \"qrcanvas\";\nexport default defineComponent({\n setup() {\n const codeEvent = () => {\n let img = new Image();\n img.src =\n \"https://360-1300783623.cos.ap-guangzhou.myqcloud.com/logo/logo.png\";\n img.onload = function() {\n const canvas = qrcanvas({\n data: \"https://gitee.com/MMinter/vue3.0-ts-admin\",\n size: 300,\n logo: {\n image: img,\n },\n });\n // @ts-ignore;\n document.getElementById(\"code\").appendChild(canvas);\n };\n };\n return {\n codeEvent,\n };\n },\n});\n","import { render } from \"./code.vue?vue&type=template&id=711aa548&scoped=true&ts=true\"\nimport script from \"./code.vue?vue&type=script&lang=ts\"\nexport * from \"./code.vue?vue&type=script&lang=ts\"\n\nimport \"./code.vue?vue&type=style&index=0&id=711aa548&scoped=true&lang=css\"\n\nimport exportComponent from \"E:\\\\vue\\\\流锋管理\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-711aa548\"]])\n\nexport default __exports__","//---------------------------------------------------------------------\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","module.exports = __webpack_public_path__ + \"img/code-hint.5cb5b3af.png\";"],"sourceRoot":""}