From 761ecaa0c94bb45309ea1288b98736c712779a56 Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Fri, 27 May 2016 00:25:19 +0200 Subject: [PATCH] Maintenance. --- dist/jquery-qrcode.js | 95 ++++++++++++++++++++------------------ dist/jquery-qrcode.min.js | 4 +- package.json | 2 +- src/.eslintrc | 1 - src/demo/dummy.png | Bin 13052 -> 2957 bytes src/demo/scripts.js | 69 +++++++++++++-------------- src/jquery-qrcode.js | 93 +++++++++++++++++++------------------ 7 files changed, 135 insertions(+), 129 deletions(-) diff --git a/dist/jquery-qrcode.js b/dist/jquery-qrcode.js index a191c01..b87e884 100644 --- a/dist/jquery-qrcode.js +++ b/dist/jquery-qrcode.js @@ -1,19 +1,27 @@ -/*! jquery-qrcode v0.13.4 - https://larsjung.de/jquery-qrcode/ */ +/*! jquery-qrcode v0.14.0 - https://larsjung.de/jquery-qrcode/ */ (function (vendor_qrcode) { 'use strict'; - var $ = jQuery; // eslint-disable-line no-undef + var jq = window.jQuery; + + // Check if canvas is available in the browser (as Modernizr does) + var hasCanvas = (function () { + var elem = document.createElement('canvas'); + return !!(elem.getContext && elem.getContext('2d')); + }()); // Wrapper for the original QR code generator. - function QRCode(text, level, version, quiet) { - var qr = vendor_qrcode(version, level); - qr.addData(text); - qr.make(); + function createQRCode(text, level, version, quiet) { + var qr = {}; + + var vqr = vendor_qrcode(version, level); + vqr.addData(text); + vqr.make(); quiet = quiet || 0; - var qrModuleCount = qr.getModuleCount(); - var quietModuleCount = qr.getModuleCount() + 2 * quiet; + var qrModuleCount = vqr.getModuleCount(); + var quietModuleCount = vqr.getModuleCount() + 2 * quiet; function isDark(row, col) { row -= quiet; @@ -22,15 +30,14 @@ if (row < 0 || row >= qrModuleCount || col < 0 || col >= qrModuleCount) { return false; } - - return qr.isDark(row, col); + return vqr.isDark(row, col); } - var addBlank = function (l, t, r, b) { - var prevIsDark = this.isDark; // eslint-disable-line no-invalid-this + function addBlank(l, t, r, b) { + var prevIsDark = qr.isDark; var moduleSize = 1 / quietModuleCount; - this.isDark = function (row, col) { // eslint-disable-line no-invalid-this + qr.isDark = function (row, col) { var ml = col * moduleSize; var mt = row * moduleSize; var mr = ml + moduleSize; @@ -38,39 +45,35 @@ return prevIsDark(row, col) && (l > mr || ml > r || t > mb || mt > b); }; - }; + } - this.text = text; - this.level = level; - this.version = version; - this.moduleCount = quietModuleCount; - this.isDark = isDark; - this.addBlank = addBlank; - } + qr.text = text; + qr.level = level; + qr.version = version; + qr.moduleCount = quietModuleCount; + qr.isDark = isDark; + qr.addBlank = addBlank; - // Check if canvas is available in the browser (as Modernizr does) - var hasCanvas = (function () { - var elem = document.createElement('canvas'); - return Boolean(elem.getContext && elem.getContext('2d')); - }()); + return qr; + } // Returns a minimal QR code for the given text starting with version `minVersion`. // Returns `undefined` if `text` is too long to be encoded in `maxVersion`. - function createQRCode(text, level, minVersion, maxVersion, quiet) { + function createMinQRCode(text, level, minVersion, maxVersion, quiet) { minVersion = Math.max(1, minVersion || 1); maxVersion = Math.min(40, maxVersion || 40); for (var version = minVersion; version <= maxVersion; version += 1) { try { - return new QRCode(text, level, version, quiet); + return createQRCode(text, level, version, quiet); } catch (err) {/* empty */} } - return null; + return undefined; } function drawBackgroundLabel(qr, context, settings) { var size = settings.size; - var font = 'bold ' + (settings.mSize * size) + 'px ' + settings.fontname; - var ctx = $('')[0].getContext('2d'); + var font = 'bold ' + settings.mSize * size + 'px ' + settings.fontname; + var ctx = jq('')[0].getContext('2d'); ctx.font = font; @@ -120,7 +123,7 @@ } function drawBackground(qr, context, settings) { - if ($(settings.background).is('img')) { + if (jq(settings.background).is('img')) { context.drawImage(settings.background, 0, 0, settings.size, settings.size); } else if (settings.background) { context.fillStyle = settings.background; @@ -254,7 +257,7 @@ fn(qr, context, settings, l, t, w, row, col); } } - if ($(settings.fill).is('img')) { + if (jq(settings.fill).is('img')) { context.strokeStyle = 'rgba(0,0,0,0.5)'; context.lineWidth = 2; context.stroke(); @@ -274,12 +277,12 @@ // Draws QR code to the given `canvas` and returns it. function drawOnCanvas(canvas, settings) { - var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); + var qr = createMinQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); if (!qr) { return null; } - var $canvas = $(canvas).data('qrcode', qr); + var $canvas = jq(canvas).data('qrcode', qr); var context = $canvas[0].getContext('2d'); drawBackground(qr, context, settings); @@ -290,18 +293,18 @@ // Returns a `canvas` element representing the QR code for the given settings. function createCanvas(settings) { - var $canvas = $('').attr('width', settings.size).attr('height', settings.size); + var $canvas = jq('').attr('width', settings.size).attr('height', settings.size); return drawOnCanvas($canvas, settings); } // Returns an `image` element representing the QR code for the given settings. function createImage(settings) { - return $('').attr('src', createCanvas(settings)[0].toDataURL('image/png')); + return jq('').attr('src', createCanvas(settings)[0].toDataURL('image/png')); } // Returns a `div` element representing the QR code for the given settings. function createDiv(settings) { - var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); + var qr = createMinQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); if (!qr) { return null; } @@ -336,7 +339,7 @@ 'background-color': settings.fill }; - var $div = $('
').data('qrcode', qr).css(containerCSS); + var $div = jq('
').data('qrcode', qr).css(containerCSS); if (settings_bgColor) { $div.css('background-color', settings_bgColor); @@ -345,7 +348,7 @@ for (row = 0; row < moduleCount; row += 1) { for (col = 0; col < moduleCount; col += 1) { if (qr.isDark(row, col)) { - $('
') + jq('
') .css(darkCSS) .css({ left: offset + col * moduleSize, @@ -428,14 +431,14 @@ // Register the plugin // ------------------- - $.fn.qrcode = function (options) { - var settings = $.extend({}, defaults, options); + jq.fn.qrcode = function (options) { + var settings = jq.extend({}, defaults, options); - return this.each(function () { - if (this.nodeName.toLowerCase() === 'canvas') { // eslint-disable-line no-invalid-this - drawOnCanvas(this, settings); // eslint-disable-line no-invalid-this + return this.each(function (idx, el) { + if (el.nodeName.toLowerCase() === 'canvas') { + drawOnCanvas(el, settings); } else { - $(this).append(createHTML(settings)); // eslint-disable-line no-invalid-this + jq(el).append(createHTML(settings)); } }); }; diff --git a/dist/jquery-qrcode.min.js b/dist/jquery-qrcode.min.js index b89cce6..f718c22 100644 --- a/dist/jquery-qrcode.min.js +++ b/dist/jquery-qrcode.min.js @@ -1,2 +1,2 @@ -/*! jquery-qrcode v0.13.4 - https://larsjung.de/jquery-qrcode/ */ -!function(r){"use strict";function t(t,e,n,o){function i(r,t){return r-=o,t-=o,0>r||r>=u||0>t||t>=u?!1:a.isDark(r,t)}var a=r(n,e);a.addData(t),a.make(),o=o||0;var u=a.getModuleCount(),f=a.getModuleCount()+2*o,c=function(r,t,e,n){var o=this.isDark,i=1/f;this.isDark=function(a,u){var f=u*i,c=a*i,l=f+i,g=c+i;return o(a,u)&&(r>l||f>e||t>g||c>n)}};this.text=t,this.level=e,this.version=n,this.moduleCount=f,this.isDark=i,this.addBlank=c}function e(r,e,n,o,i){n=Math.max(1,n||1),o=Math.min(40,o||40);for(var a=n;o>=a;a+=1)try{return new t(r,e,a,i)}catch(u){}return null}function n(r,t,e){var n=e.size,o="bold "+e.mSize*n+"px "+e.fontname,i=w("")[0].getContext("2d");i.font=o;var a=i.measureText(e.label).width,u=e.mSize,f=a/n,c=(1-f)*e.mPosX,l=(1-u)*e.mPosY,g=c+f,s=l+u,h=.01;1===e.mode?r.addBlank(0,l-h,n,s+h):r.addBlank(c-h,l-h,g+h,s+h),t.fillStyle=e.fontcolor,t.font=o,t.fillText(e.label,c*n,l*n+.75*e.mSize*n)}function o(r,t,e){var n=e.size,o=e.image.naturalWidth||1,i=e.image.naturalHeight||1,a=e.mSize,u=a*o/i,f=(1-u)*e.mPosX,c=(1-a)*e.mPosY,l=f+u,g=c+a,s=.01;3===e.mode?r.addBlank(0,c-s,n,g+s):r.addBlank(f-s,c-s,l+s,g+s),t.drawImage(e.image,f*n,c*n,u*n,a*n)}function i(r,t,e){w(e.background).is("img")?t.drawImage(e.background,0,0,e.size,e.size):e.background&&(t.fillStyle=e.background,t.fillRect(e.left,e.top,e.size,e.size));var i=e.mode;1===i||2===i?n(r,t,e):(3===i||4===i)&&o(r,t,e)}function a(r,t,e,n,o,i,a,u){r.isDark(a,u)&&t.rect(n,o,i,i)}function u(r,t,e,n,o,i,a,u,f,c){a?r.moveTo(t+i,e):r.moveTo(t,e),u?(r.lineTo(n-i,e),r.arcTo(n,e,n,o,i)):r.lineTo(n,e),f?(r.lineTo(n,o-i),r.arcTo(n,o,t,o,i)):r.lineTo(n,o),c?(r.lineTo(t+i,o),r.arcTo(t,o,t,e,i)):r.lineTo(t,o),a?(r.lineTo(t,e+i),r.arcTo(t,e,n,e,i)):r.lineTo(t,e)}function f(r,t,e,n,o,i,a,u,f,c){a&&(r.moveTo(t+i,e),r.lineTo(t,e),r.lineTo(t,e+i),r.arcTo(t,e,t+i,e,i)),u&&(r.moveTo(n-i,e),r.lineTo(n,e),r.lineTo(n,e+i),r.arcTo(n,e,n-i,e,i)),f&&(r.moveTo(n-i,o),r.lineTo(n,o),r.lineTo(n,o-i),r.arcTo(n,o,n-i,o,i)),c&&(r.moveTo(t+i,o),r.lineTo(t,o),r.lineTo(t,o-i),r.arcTo(t,o,t+i,o,i))}function c(r,t,e,n,o,i,a,c){var l=r.isDark,g=n+i,s=o+i,h=e.radius*i,v=a-1,d=a+1,w=c-1,m=c+1,y=l(a,c),T=l(v,w),p=l(v,c),B=l(v,m),A=l(a,m),E=l(d,m),k=l(d,c),M=l(d,w),C=l(a,w);y?u(t,n,o,g,s,h,!p&&!C,!p&&!A,!k&&!A,!k&&!C):f(t,n,o,g,s,h,p&&C&&T,p&&A&&B,k&&A&&E,k&&C&&M)}function l(r,t,e){var n,o,i=r.moduleCount,u=e.size/i,f=a;for(e.radius>0&&e.radius<=.5&&(f=c),t.beginPath(),n=0;i>n;n+=1)for(o=0;i>o;o+=1){var l=e.left+o*u,g=e.top+n*u,s=u;f(r,t,e,l,g,s,n,o)}if(w(e.fill).is("img")){t.strokeStyle="rgba(0,0,0,0.5)",t.lineWidth=2,t.stroke();var h=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",t.fill(),t.globalCompositeOperation=h,t.clip(),t.drawImage(e.fill,0,0,e.size,e.size),t.restore()}else t.fillStyle=e.fill,t.fill()}function g(r,t){var n=e(t.text,t.ecLevel,t.minVersion,t.maxVersion,t.quiet);if(!n)return null;var o=w(r).data("qrcode",n),a=o[0].getContext("2d");return i(n,a,t),l(n,a,t),o}function s(r){var t=w("").attr("width",r.size).attr("height",r.size);return g(t,r)}function h(r){return w("").attr("src",s(r)[0].toDataURL("image/png"))}function v(r){var t=e(r.text,r.ecLevel,r.minVersion,r.maxVersion,r.quiet);if(!t)return null;var n,o,i=r.size,a=r.background,u=Math.floor,f=t.moduleCount,c=u(i/f),l=u(.5*(i-c*f)),g={position:"relative",left:0,top:0,padding:0,margin:0,width:i,height:i},s={position:"absolute",padding:0,margin:0,width:c,height:c,"background-color":r.fill},h=w("
").data("qrcode",t).css(g);for(a&&h.css("background-color",a),n=0;f>n;n+=1)for(o=0;f>o;o+=1)t.isDark(n,o)&&w("
").css(s).css({left:l+o*c,top:l+n*c}).appendTo(h);return h}function d(r){return m&&"canvas"===r.render?s(r):m&&"image"===r.render?h(r):v(r)}var w=jQuery,m=function(){var r=document.createElement("canvas");return Boolean(r.getContext&&r.getContext("2d"))}(),y={render:"canvas",minVersion:1,maxVersion:40,ecLevel:"L",left:0,top:0,size:200,fill:"#000",background:null,text:"no text",radius:0,quiet:0,mode:0,mSize:.1,mPosX:.5,mPosY:.5,label:"no label",fontname:"sans",fontcolor:"#000",image:null};w.fn.qrcode=function(r){var t=w.extend({},y,r);return this.each(function(){"canvas"===this.nodeName.toLowerCase()?g(this,t):w(this).append(d(t))})}}(function(){var r=function(){function r(t,e){if("undefined"==typeof t.length)throw new Error(t.length+"/"+e);var n=function(){for(var r=0;re;e+=1){t[e]=new Array(r);for(var n=0;r>n;n+=1)t[e][n]=null}return t}(h),T(0,0),T(h-7,0),T(0,h-7),A(),B(),k(r,t),l>=7&&E(r),null==d&&(d=D(l,g,w)),M(d,t)},T=function(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||r+e>=h))for(var n=-1;7>=n;n+=1)-1>=t+n||t+n>=h||(e>=0&&6>=e&&(0==n||6==n)||n>=0&&6>=n&&(0==e||6==e)||e>=2&&4>=e&&n>=2&&4>=n?s[r+e][t+n]=!0:s[r+e][t+n]=!1)},p=function(){for(var r=0,t=0,e=0;8>e;e+=1){y(!0,e);var n=i.getLostPoint(m);(0==e||r>n)&&(r=n,t=e)}return t},B=function(){for(var r=8;h-8>r;r+=1)null==s[r][6]&&(s[r][6]=r%2==0);for(var t=8;h-8>t;t+=1)null==s[6][t]&&(s[6][t]=t%2==0)},A=function(){for(var r=i.getPatternPosition(l),t=0;t=a;a+=1)for(var u=-2;2>=u;u+=1)-2==a||2==a||-2==u||2==u||0==a&&0==u?s[n+a][o+u]=!0:s[n+a][o+u]=!1}},E=function(r){for(var t=i.getBCHTypeNumber(l),e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);s[Math.floor(e/3)][e%3+h-8-3]=n}for(var e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);s[e%3+h-8-3][Math.floor(e/3)]=n}},k=function(r,t){for(var e=g<<3|t,n=i.getBCHTypeInfo(e),o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);6>o?s[o][8]=a:8>o?s[o+1][8]=a:s[h-15+o][8]=a}for(var o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);8>o?s[8][h-o-1]=a:9>o?s[8][15-o-1+1]=a:s[8][15-o-1]=a}s[h-8][8]=!r},M=function(r,t){for(var e=-1,n=h-1,o=7,a=0,u=i.getMaskFunction(t),f=h-1;f>0;f-=2)for(6==f&&(f-=1);;){for(var c=0;2>c;c+=1)if(null==s[n][f-c]){var l=!1;a>>o&1));var g=u(n,f-c);g&&(l=!l),s[n][f-c]=l,o-=1,-1==o&&(a+=1,o=7)}if(n+=e,0>n||n>=h){n-=e,e=-e;break}}},C=function(t,e){for(var n=0,o=0,a=0,u=new Array(e.length),f=new Array(e.length),c=0;c=0?d.getAt(w):0}}for(var m=0,s=0;ss;s+=1)for(var c=0;cs;s+=1)for(var c=0;c8*s)throw new Error("code length overflow. ("+c.getLengthInBits()+">"+8*s+")");for(c.getLengthInBits()+4<=8*s&&c.put(0,4);c.getLengthInBits()%8!=0;)c.putBit(!1);for(;;){if(c.getLengthInBits()>=8*s)break;if(c.put(o,8),c.getLengthInBits()>=8*s)break;c.put(a,8)}return C(c,n)};return m.addData=function(r){var t=c(r);w.push(t),d=null},m.isDark=function(r,t){if(0>r||r>=h||0>t||t>=h)throw new Error(r+","+t);return s[r][t]},m.getModuleCount=function(){return h},m.make=function(){y(!1,p())},m.createTableTag=function(r,t){r=r||2,t="undefined"==typeof t?4*r:t;var e="";e+='";for(var o=0;o';e+=""}return e+="",e+="
"},m.createImgTag=function(r,t){r=r||2,t="undefined"==typeof t?4*r:t;var e=m.getModuleCount()*r+2*t,n=t,o=e-t;return v(e,e,function(t,e){if(t>=n&&o>t&&e>=n&&o>e){var i=Math.floor((t-n)/r),a=Math.floor((e-n)/r);return m.isDark(a,i)?0:1}return 1})},m};t.stringToBytes=function(r){for(var t=new Array,e=0;ei)t.push(i);else{var a=e[r.charAt(o)];"number"==typeof a?(255&a)==a?t.push(a):(t.push(a>>>8),t.push(255&a)):t.push(n)}}return t}};var e={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},o={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var t=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,u=21522,f={},c=function(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t};return f.getBCHTypeInfo=function(r){for(var t=r<<10;c(t)-c(n)>=0;)t^=n<=0;)t^=i<n;n+=1)e=e.multiply(r([1,a.gexp(n)],0));return e},f.getLengthInBits=function(r,t){if(t>=1&&10>t)switch(r){case e.MODE_NUMBER:return 10;case e.MODE_ALPHA_NUM:return 9;case e.MODE_8BIT_BYTE:return 8;case e.MODE_KANJI:return 8;default:throw new Error("mode:"+r)}else if(27>t)switch(r){case e.MODE_NUMBER:return 12;case e.MODE_ALPHA_NUM:return 11;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 10;default:throw new Error("mode:"+r)}else{if(!(41>t))throw new Error("type:"+t);switch(r){case e.MODE_NUMBER:return 14;case e.MODE_ALPHA_NUM:return 13;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 12;default:throw new Error("mode:"+r)}}},f.getLostPoint=function(r){for(var t=r.getModuleCount(),e=0,n=0;t>n;n+=1)for(var o=0;t>o;o+=1){for(var i=0,a=r.isDark(n,o),u=-1;1>=u;u+=1)if(!(0>n+u||n+u>=t))for(var f=-1;1>=f;f+=1)0>o+f||o+f>=t||(0!=u||0!=f)&&a==r.isDark(n+u,o+f)&&(i+=1);i>5&&(e+=3+i-5)}for(var n=0;t-1>n;n+=1)for(var o=0;t-1>o;o+=1){var c=0;r.isDark(n,o)&&(c+=1),r.isDark(n+1,o)&&(c+=1),r.isDark(n,o+1)&&(c+=1),r.isDark(n+1,o+1)&&(c+=1),(0==c||4==c)&&(e+=3)}for(var n=0;t>n;n+=1)for(var o=0;t-6>o;o+=1)r.isDark(n,o)&&!r.isDark(n,o+1)&&r.isDark(n,o+2)&&r.isDark(n,o+3)&&r.isDark(n,o+4)&&!r.isDark(n,o+5)&&r.isDark(n,o+6)&&(e+=40);for(var o=0;t>o;o+=1)for(var n=0;t-6>n;n+=1)r.isDark(n,o)&&!r.isDark(n+1,o)&&r.isDark(n+2,o)&&r.isDark(n+3,o)&&r.isDark(n+4,o)&&!r.isDark(n+5,o)&&r.isDark(n+6,o)&&(e+=40);for(var l=0,o=0;t>o;o+=1)for(var n=0;t>n;n+=1)r.isDark(n,o)&&(l+=1);var g=Math.abs(100*l/t/t-50)/5;return e+=10*g},f}(),a=function(){for(var r=new Array(256),t=new Array(256),e=0;8>e;e+=1)r[e]=1<e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(var e=0;255>e;e+=1)t[r[e]]=e;var n={};return n.glog=function(r){if(1>r)throw new Error("glog("+r+")");return t[r]},n.gexp=function(t){for(;0>t;)t+=255;for(;t>=256;)t-=255;return r[t]},n}(),u=function(){var r=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(r,t){var e={};return e.totalCount=r,e.dataCount=t,e},e={},o=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}};return e.getRSBlocks=function(r,e){var n=o(r,e);if("undefined"==typeof n)throw new Error("bad rs block @ typeNumber:"+r+"/errorCorrectLevel:"+e);for(var i=n.length/3,a=new Array,u=0;i>u;u+=1)for(var f=n[3*u+0],c=n[3*u+1],l=n[3*u+2],g=0;f>g;g+=1)a.push(t(c,l));return a},e}(),f=function(){var r=new Array,t=0,e={};return e.getBuffer=function(){return r},e.getAt=function(t){var e=Math.floor(t/8);return 1==(r[e]>>>7-t%8&1)},e.put=function(r,t){for(var n=0;t>n;n+=1)e.putBit(1==(r>>>t-n-1&1))},e.getLengthInBits=function(){return t},e.putBit=function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1},e},c=function(r){var n=e.MODE_8BIT_BYTE,o=t.stringToBytes(r),i={};return i.getMode=function(){return n},i.getLength=function(r){return o.length},i.write=function(r){for(var t=0;t>>8)},t.writeBytes=function(r,e,n){e=e||0,n=n||r.length;for(var o=0;n>o;o+=1)t.writeByte(r[o+e])},t.writeString=function(r){for(var e=0;e0&&(t+=","),t+=r[e];return t+="]"},t},g=function(){var r=0,t=0,e=0,n="",o={},i=function(r){n+=String.fromCharCode(a(63&r))},a=function(r){if(0>r);else{if(26>r)return 65+r;if(52>r)return 97+(r-26);if(62>r)return 48+(r-52);if(62==r)return 43;if(63==r)return 47}throw new Error("n:"+r)};return o.writeByte=function(n){for(r=r<<8|255&n,t+=8,e+=1;t>=6;)i(r>>>t-6),t-=6},o.flush=function(){if(t>0&&(i(r<<6-t),r=0,t=0),e%3!=0)for(var o=3-e%3,a=0;o>a;a+=1)n+="="},o.toString=function(){return n},o},s=function(r){var t=r,e=0,n=0,o=0,i={};i.read=function(){for(;8>o;){if(e>=t.length){if(0==o)return-1;throw new Error("unexpected end of file./"+o)}var r=t.charAt(e);if(e+=1,"="==r)return o=0,-1;r.match(/^\s$/)||(n=n<<6|a(r.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i};var a=function(r){if(r>=65&&90>=r)return r-65;if(r>=97&&122>=r)return r-97+26;if(r>=48&&57>=r)return r-48+52;if(43==r)return 62;if(47==r)return 63;throw new Error("c:"+r)};return i},h=function(r,t){var e=r,n=t,o=new Array(r*t),i={};i.setPixel=function(r,t,n){o[t*e+r]=n},i.write=function(r){r.writeString("GIF87a"),r.writeShort(e),r.writeShort(n),r.writeByte(128),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(255),r.writeByte(255),r.writeByte(255),r.writeString(","),r.writeShort(0),r.writeShort(0),r.writeShort(e),r.writeShort(n),r.writeByte(0);var t=2,o=u(t);r.writeByte(t);for(var i=0;o.length-i>255;)r.writeByte(255),r.writeBytes(o,i,255),i+=255;r.writeByte(o.length-i),r.writeBytes(o,i,o.length-i),r.writeByte(0),r.writeString(";")};var a=function(r){var t=r,e=0,n=0,o={};return o.write=function(r,o){if(r>>>o!=0)throw new Error("length over");for(;e+o>=8;)t.writeByte(255&(r<>>=8-e,n=0,e=0;n=r<0&&t.writeByte(n)},o},u=function(r){for(var t=1<u;u+=1)i.add(String.fromCharCode(u));i.add(String.fromCharCode(t)),i.add(String.fromCharCode(e));var c=l(),g=a(c);g.write(t,n);var s=0,h=String.fromCharCode(o[s]);for(s+=1;si;i+=1)for(var a=0;r>a;a+=1)o.setPixel(a,i,e(a,i));var u=l();o.write(u);for(var f=g(),c=u.toByteArray(),s=0;sn?t.push(n):2048>n?t.push(192|n>>6,128|63&n):55296>n||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t}return t(r)}}(r),r}()); \ No newline at end of file +/*! jquery-qrcode v0.14.0 - https://larsjung.de/jquery-qrcode/ */ +!function(r){"use strict";function t(t,e,n,o){function a(r,t){return r-=o,t-=o,0>r||r>=c||0>t||t>=c?!1:f.isDark(r,t)}function i(r,t,e,n){var o=u.isDark,a=1/l;u.isDark=function(i,u){var f=u*a,c=i*a,l=f+a,g=c+a;return o(i,u)&&(r>l||f>e||t>g||c>n)}}var u={},f=r(n,e);f.addData(t),f.make(),o=o||0;var c=f.getModuleCount(),l=f.getModuleCount()+2*o;return u.text=t,u.level=e,u.version=n,u.moduleCount=l,u.isDark=a,u.addBlank=i,u}function e(r,e,n,o,a){n=Math.max(1,n||1),o=Math.min(40,o||40);for(var i=n;o>=i;i+=1)try{return t(r,e,i,a)}catch(u){}}function n(r,t,e){var n=e.size,o="bold "+e.mSize*n+"px "+e.fontname,a=w("")[0].getContext("2d");a.font=o;var i=a.measureText(e.label).width,u=e.mSize,f=i/n,c=(1-f)*e.mPosX,l=(1-u)*e.mPosY,g=c+f,s=l+u,v=.01;1===e.mode?r.addBlank(0,l-v,n,s+v):r.addBlank(c-v,l-v,g+v,s+v),t.fillStyle=e.fontcolor,t.font=o,t.fillText(e.label,c*n,l*n+.75*e.mSize*n)}function o(r,t,e){var n=e.size,o=e.image.naturalWidth||1,a=e.image.naturalHeight||1,i=e.mSize,u=i*o/a,f=(1-u)*e.mPosX,c=(1-i)*e.mPosY,l=f+u,g=c+i,s=.01;3===e.mode?r.addBlank(0,c-s,n,g+s):r.addBlank(f-s,c-s,l+s,g+s),t.drawImage(e.image,f*n,c*n,u*n,i*n)}function a(r,t,e){w(e.background).is("img")?t.drawImage(e.background,0,0,e.size,e.size):e.background&&(t.fillStyle=e.background,t.fillRect(e.left,e.top,e.size,e.size));var a=e.mode;1===a||2===a?n(r,t,e):(3===a||4===a)&&o(r,t,e)}function i(r,t,e,n,o,a,i,u){r.isDark(i,u)&&t.rect(n,o,a,a)}function u(r,t,e,n,o,a,i,u,f,c){i?r.moveTo(t+a,e):r.moveTo(t,e),u?(r.lineTo(n-a,e),r.arcTo(n,e,n,o,a)):r.lineTo(n,e),f?(r.lineTo(n,o-a),r.arcTo(n,o,t,o,a)):r.lineTo(n,o),c?(r.lineTo(t+a,o),r.arcTo(t,o,t,e,a)):r.lineTo(t,o),i?(r.lineTo(t,e+a),r.arcTo(t,e,n,e,a)):r.lineTo(t,e)}function f(r,t,e,n,o,a,i,u,f,c){i&&(r.moveTo(t+a,e),r.lineTo(t,e),r.lineTo(t,e+a),r.arcTo(t,e,t+a,e,a)),u&&(r.moveTo(n-a,e),r.lineTo(n,e),r.lineTo(n,e+a),r.arcTo(n,e,n-a,e,a)),f&&(r.moveTo(n-a,o),r.lineTo(n,o),r.lineTo(n,o-a),r.arcTo(n,o,n-a,o,a)),c&&(r.moveTo(t+a,o),r.lineTo(t,o),r.lineTo(t,o-a),r.arcTo(t,o,t+a,o,a))}function c(r,t,e,n,o,a,i,c){var l=r.isDark,g=n+a,s=o+a,v=e.radius*a,h=i-1,d=i+1,w=c-1,m=c+1,y=l(i,c),T=l(h,w),p=l(h,c),B=l(h,m),A=l(i,m),E=l(d,m),k=l(d,c),M=l(d,w),C=l(i,w);y?u(t,n,o,g,s,v,!p&&!C,!p&&!A,!k&&!A,!k&&!C):f(t,n,o,g,s,v,p&&C&&T,p&&A&&B,k&&A&&E,k&&C&&M)}function l(r,t,e){var n,o,a=r.moduleCount,u=e.size/a,f=i;for(e.radius>0&&e.radius<=.5&&(f=c),t.beginPath(),n=0;a>n;n+=1)for(o=0;a>o;o+=1){var l=e.left+o*u,g=e.top+n*u,s=u;f(r,t,e,l,g,s,n,o)}if(w(e.fill).is("img")){t.strokeStyle="rgba(0,0,0,0.5)",t.lineWidth=2,t.stroke();var v=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",t.fill(),t.globalCompositeOperation=v,t.clip(),t.drawImage(e.fill,0,0,e.size,e.size),t.restore()}else t.fillStyle=e.fill,t.fill()}function g(r,t){var n=e(t.text,t.ecLevel,t.minVersion,t.maxVersion,t.quiet);if(!n)return null;var o=w(r).data("qrcode",n),i=o[0].getContext("2d");return a(n,i,t),l(n,i,t),o}function s(r){var t=w("").attr("width",r.size).attr("height",r.size);return g(t,r)}function v(r){return w("").attr("src",s(r)[0].toDataURL("image/png"))}function h(r){var t=e(r.text,r.ecLevel,r.minVersion,r.maxVersion,r.quiet);if(!t)return null;var n,o,a=r.size,i=r.background,u=Math.floor,f=t.moduleCount,c=u(a/f),l=u(.5*(a-c*f)),g={position:"relative",left:0,top:0,padding:0,margin:0,width:a,height:a},s={position:"absolute",padding:0,margin:0,width:c,height:c,"background-color":r.fill},v=w("
").data("qrcode",t).css(g);for(i&&v.css("background-color",i),n=0;f>n;n+=1)for(o=0;f>o;o+=1)t.isDark(n,o)&&w("
").css(s).css({left:l+o*c,top:l+n*c}).appendTo(v);return v}function d(r){return m&&"canvas"===r.render?s(r):m&&"image"===r.render?v(r):h(r)}var w=window.jQuery,m=function(){var r=document.createElement("canvas");return!(!r.getContext||!r.getContext("2d"))}(),y={render:"canvas",minVersion:1,maxVersion:40,ecLevel:"L",left:0,top:0,size:200,fill:"#000",background:null,text:"no text",radius:0,quiet:0,mode:0,mSize:.1,mPosX:.5,mPosY:.5,label:"no label",fontname:"sans",fontcolor:"#000",image:null};w.fn.qrcode=function(r){var t=w.extend({},y,r);return this.each(function(r,e){"canvas"===e.nodeName.toLowerCase()?g(e,t):w(e).append(d(t))})}}(function(){var r=function(){function r(t,e){if("undefined"==typeof t.length)throw new Error(t.length+"/"+e);var n=function(){for(var r=0;re;e+=1){t[e]=new Array(r);for(var n=0;r>n;n+=1)t[e][n]=null}return t}(v),T(0,0),T(v-7,0),T(0,v-7),A(),B(),k(r,t),l>=7&&E(r),null==d&&(d=D(l,g,w)),M(d,t)},T=function(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||r+e>=v))for(var n=-1;7>=n;n+=1)-1>=t+n||t+n>=v||(e>=0&&6>=e&&(0==n||6==n)||n>=0&&6>=n&&(0==e||6==e)||e>=2&&4>=e&&n>=2&&4>=n?s[r+e][t+n]=!0:s[r+e][t+n]=!1)},p=function(){for(var r=0,t=0,e=0;8>e;e+=1){y(!0,e);var n=a.getLostPoint(m);(0==e||r>n)&&(r=n,t=e)}return t},B=function(){for(var r=8;v-8>r;r+=1)null==s[r][6]&&(s[r][6]=r%2==0);for(var t=8;v-8>t;t+=1)null==s[6][t]&&(s[6][t]=t%2==0)},A=function(){for(var r=a.getPatternPosition(l),t=0;t=i;i+=1)for(var u=-2;2>=u;u+=1)-2==i||2==i||-2==u||2==u||0==i&&0==u?s[n+i][o+u]=!0:s[n+i][o+u]=!1}},E=function(r){for(var t=a.getBCHTypeNumber(l),e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);s[Math.floor(e/3)][e%3+v-8-3]=n}for(var e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);s[e%3+v-8-3][Math.floor(e/3)]=n}},k=function(r,t){for(var e=g<<3|t,n=a.getBCHTypeInfo(e),o=0;15>o;o+=1){var i=!r&&1==(n>>o&1);6>o?s[o][8]=i:8>o?s[o+1][8]=i:s[v-15+o][8]=i}for(var o=0;15>o;o+=1){var i=!r&&1==(n>>o&1);8>o?s[8][v-o-1]=i:9>o?s[8][15-o-1+1]=i:s[8][15-o-1]=i}s[v-8][8]=!r},M=function(r,t){for(var e=-1,n=v-1,o=7,i=0,u=a.getMaskFunction(t),f=v-1;f>0;f-=2)for(6==f&&(f-=1);;){for(var c=0;2>c;c+=1)if(null==s[n][f-c]){var l=!1;i>>o&1));var g=u(n,f-c);g&&(l=!l),s[n][f-c]=l,o-=1,-1==o&&(i+=1,o=7)}if(n+=e,0>n||n>=v){n-=e,e=-e;break}}},C=function(t,e){for(var n=0,o=0,i=0,u=new Array(e.length),f=new Array(e.length),c=0;c=0?d.getAt(w):0}}for(var m=0,s=0;ss;s+=1)for(var c=0;cs;s+=1)for(var c=0;c8*s)throw new Error("code length overflow. ("+c.getLengthInBits()+">"+8*s+")");for(c.getLengthInBits()+4<=8*s&&c.put(0,4);c.getLengthInBits()%8!=0;)c.putBit(!1);for(;;){if(c.getLengthInBits()>=8*s)break;if(c.put(o,8),c.getLengthInBits()>=8*s)break;c.put(i,8)}return C(c,n)};return m.addData=function(r){var t=c(r);w.push(t),d=null},m.isDark=function(r,t){if(0>r||r>=v||0>t||t>=v)throw new Error(r+","+t);return s[r][t]},m.getModuleCount=function(){return v},m.make=function(){y(!1,p())},m.createTableTag=function(r,t){r=r||2,t="undefined"==typeof t?4*r:t;var e="";e+='";for(var o=0;o';e+=""}return e+="",e+="
"},m.createImgTag=function(r,t){r=r||2,t="undefined"==typeof t?4*r:t;var e=m.getModuleCount()*r+2*t,n=t,o=e-t;return h(e,e,function(t,e){if(t>=n&&o>t&&e>=n&&o>e){var a=Math.floor((t-n)/r),i=Math.floor((e-n)/r);return m.isDark(i,a)?0:1}return 1})},m};t.stringToBytes=function(r){for(var t=new Array,e=0;ea)t.push(a);else{var i=e[r.charAt(o)];"number"==typeof i?(255&i)==i?t.push(i):(t.push(i>>>8),t.push(255&i)):t.push(n)}}return t}};var e={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},o={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},a=function(){var t=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,a=7973,u=21522,f={},c=function(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t};return f.getBCHTypeInfo=function(r){for(var t=r<<10;c(t)-c(n)>=0;)t^=n<=0;)t^=a<n;n+=1)e=e.multiply(r([1,i.gexp(n)],0));return e},f.getLengthInBits=function(r,t){if(t>=1&&10>t)switch(r){case e.MODE_NUMBER:return 10;case e.MODE_ALPHA_NUM:return 9;case e.MODE_8BIT_BYTE:return 8;case e.MODE_KANJI:return 8;default:throw new Error("mode:"+r)}else if(27>t)switch(r){case e.MODE_NUMBER:return 12;case e.MODE_ALPHA_NUM:return 11;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 10;default:throw new Error("mode:"+r)}else{if(!(41>t))throw new Error("type:"+t);switch(r){case e.MODE_NUMBER:return 14;case e.MODE_ALPHA_NUM:return 13;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 12;default:throw new Error("mode:"+r)}}},f.getLostPoint=function(r){for(var t=r.getModuleCount(),e=0,n=0;t>n;n+=1)for(var o=0;t>o;o+=1){for(var a=0,i=r.isDark(n,o),u=-1;1>=u;u+=1)if(!(0>n+u||n+u>=t))for(var f=-1;1>=f;f+=1)0>o+f||o+f>=t||(0!=u||0!=f)&&i==r.isDark(n+u,o+f)&&(a+=1);a>5&&(e+=3+a-5)}for(var n=0;t-1>n;n+=1)for(var o=0;t-1>o;o+=1){var c=0;r.isDark(n,o)&&(c+=1),r.isDark(n+1,o)&&(c+=1),r.isDark(n,o+1)&&(c+=1),r.isDark(n+1,o+1)&&(c+=1),(0==c||4==c)&&(e+=3)}for(var n=0;t>n;n+=1)for(var o=0;t-6>o;o+=1)r.isDark(n,o)&&!r.isDark(n,o+1)&&r.isDark(n,o+2)&&r.isDark(n,o+3)&&r.isDark(n,o+4)&&!r.isDark(n,o+5)&&r.isDark(n,o+6)&&(e+=40);for(var o=0;t>o;o+=1)for(var n=0;t-6>n;n+=1)r.isDark(n,o)&&!r.isDark(n+1,o)&&r.isDark(n+2,o)&&r.isDark(n+3,o)&&r.isDark(n+4,o)&&!r.isDark(n+5,o)&&r.isDark(n+6,o)&&(e+=40);for(var l=0,o=0;t>o;o+=1)for(var n=0;t>n;n+=1)r.isDark(n,o)&&(l+=1);var g=Math.abs(100*l/t/t-50)/5;return e+=10*g},f}(),i=function(){for(var r=new Array(256),t=new Array(256),e=0;8>e;e+=1)r[e]=1<e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(var e=0;255>e;e+=1)t[r[e]]=e;var n={};return n.glog=function(r){if(1>r)throw new Error("glog("+r+")");return t[r]},n.gexp=function(t){for(;0>t;)t+=255;for(;t>=256;)t-=255;return r[t]},n}(),u=function(){var r=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(r,t){var e={};return e.totalCount=r,e.dataCount=t,e},e={},o=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}};return e.getRSBlocks=function(r,e){var n=o(r,e);if("undefined"==typeof n)throw new Error("bad rs block @ typeNumber:"+r+"/errorCorrectLevel:"+e);for(var a=n.length/3,i=new Array,u=0;a>u;u+=1)for(var f=n[3*u+0],c=n[3*u+1],l=n[3*u+2],g=0;f>g;g+=1)i.push(t(c,l));return i},e}(),f=function(){var r=new Array,t=0,e={};return e.getBuffer=function(){return r},e.getAt=function(t){var e=Math.floor(t/8);return 1==(r[e]>>>7-t%8&1)},e.put=function(r,t){for(var n=0;t>n;n+=1)e.putBit(1==(r>>>t-n-1&1))},e.getLengthInBits=function(){return t},e.putBit=function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1},e},c=function(r){var n=e.MODE_8BIT_BYTE,o=t.stringToBytes(r),a={};return a.getMode=function(){return n},a.getLength=function(r){return o.length},a.write=function(r){for(var t=0;t>>8)},t.writeBytes=function(r,e,n){e=e||0,n=n||r.length;for(var o=0;n>o;o+=1)t.writeByte(r[o+e])},t.writeString=function(r){for(var e=0;e0&&(t+=","),t+=r[e];return t+="]"},t},g=function(){var r=0,t=0,e=0,n="",o={},a=function(r){n+=String.fromCharCode(i(63&r))},i=function(r){if(0>r);else{if(26>r)return 65+r;if(52>r)return 97+(r-26);if(62>r)return 48+(r-52);if(62==r)return 43;if(63==r)return 47}throw new Error("n:"+r)};return o.writeByte=function(n){for(r=r<<8|255&n,t+=8,e+=1;t>=6;)a(r>>>t-6),t-=6},o.flush=function(){if(t>0&&(a(r<<6-t),r=0,t=0),e%3!=0)for(var o=3-e%3,i=0;o>i;i+=1)n+="="},o.toString=function(){return n},o},s=function(r){var t=r,e=0,n=0,o=0,a={};a.read=function(){for(;8>o;){if(e>=t.length){if(0==o)return-1;throw new Error("unexpected end of file./"+o)}var r=t.charAt(e);if(e+=1,"="==r)return o=0,-1;r.match(/^\s$/)||(n=n<<6|i(r.charCodeAt(0)),o+=6)}var a=n>>>o-8&255;return o-=8,a};var i=function(r){if(r>=65&&90>=r)return r-65;if(r>=97&&122>=r)return r-97+26;if(r>=48&&57>=r)return r-48+52;if(43==r)return 62;if(47==r)return 63;throw new Error("c:"+r)};return a},v=function(r,t){var e=r,n=t,o=new Array(r*t),a={};a.setPixel=function(r,t,n){o[t*e+r]=n},a.write=function(r){r.writeString("GIF87a"),r.writeShort(e),r.writeShort(n),r.writeByte(128),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(255),r.writeByte(255),r.writeByte(255),r.writeString(","),r.writeShort(0),r.writeShort(0),r.writeShort(e),r.writeShort(n),r.writeByte(0);var t=2,o=u(t);r.writeByte(t);for(var a=0;o.length-a>255;)r.writeByte(255),r.writeBytes(o,a,255),a+=255;r.writeByte(o.length-a),r.writeBytes(o,a,o.length-a),r.writeByte(0),r.writeString(";")};var i=function(r){var t=r,e=0,n=0,o={};return o.write=function(r,o){if(r>>>o!=0)throw new Error("length over");for(;e+o>=8;)t.writeByte(255&(r<>>=8-e,n=0,e=0;n=r<0&&t.writeByte(n)},o},u=function(r){for(var t=1<u;u+=1)a.add(String.fromCharCode(u));a.add(String.fromCharCode(t)),a.add(String.fromCharCode(e));var c=l(),g=i(c);g.write(t,n);var s=0,v=String.fromCharCode(o[s]);for(s+=1;sa;a+=1)for(var i=0;r>i;i+=1)o.setPixel(i,a,e(i,a));var u=l();o.write(u);for(var f=g(),c=u.toByteArray(),s=0;sn?t.push(n):2048>n?t.push(192|n>>6,128|63&n):55296>n||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t}return t(r)}}(r),r}()); \ No newline at end of file diff --git a/package.json b/package.json index bfcd371..b1f5771 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "jquery-qrcode", "displayName": "jQuery.qrcode", - "version": "0.13.4", + "version": "0.14.0", "description": "Generate QR codes dynamically.", "homepage": "https://larsjung.de/jquery-qrcode/", "bugs": "https://github.com/lrsjng/jquery-qrcode/issues", diff --git a/src/.eslintrc b/src/.eslintrc index e910b46..68f09f0 100644 --- a/src/.eslintrc +++ b/src/.eslintrc @@ -4,7 +4,6 @@ rules: func-names: 0 - func-style: 0 no-var: 0 prefer-arrow-callback: 0 strict: 0 diff --git a/src/demo/dummy.png b/src/demo/dummy.png index db66ab1c136686a63acfab658a5155e41fd98bc8..192dfd266b8469251b0a16d18388831c04dccff4 100644 GIT binary patch literal 2957 zcmZuzcRbVqA3j2ob;gkrXOAP9k>qUI>-gn_+*uisl_b$|oN-6ah>VKL8J)e3>`i7u z5tjA<0Ur}WF=>FMdr>akq*R@leA{o~W9_Ps#Lo=xcv zb@QZf{J^+q8{f09Rj@6Yxz)aKbbNAJJ#*+?w|gybdu-`=;OBALz`@4;No?mnW$vh- zk>Lsm#Prip2W}m5XL(eGm6nDX^l>RHBWvXJNi3*VS(HOz8$n$85&XB(|DxG-vZ_9O zYBW7ML^T-Q-H?=|pW%7@JcX6{dp{+-UC$isiA>YObEjHmznAua>1?D{WTFiHmL?7tO?lwZyYDjt)*y zz~zw^XpCR7Rq`_-+YTbq9m6_CaZE^bjRAsHVauD0{9G_4 ze10ZkkLXa?i$e2G`6g2%FabHR#0ljkP947t63BJ09%Wc2_a_;XbX4P5JJ{OXfFy>c z!B`>F4&))$Asd0N(v;L=L2_JDfcEzWzKbN;h`1#bO9;s~Sy%6K^hydwJjX(|;~Iah z={TK2tO+FO{0AB7%Kntq)Gy7ubxNoCH)3t*V%7b4<*6F+nWBC)0C!$B-z_mEGu88_O;<)GTXnP1nbw+gw z-{V4F%i>t)dT@*(`=>i6>Ow+Il+kl3MJIpr7FI6ijuPkXnJFejHib9kz6D&D&!P$E z#ziK2gv=^1S7ielQ(AC+lgaIVuetA&wM6RCbNbMDBupBppsw#?aW!;9UH+ES3Mc-; zm?Uz*Iy?Q>26&v93w{NUrWC3=$l&P81aFNn5~2e1wLC&q zf(5}%NQfC6e#IzrXZneLXhoOh8qK*bD%pTz<+*OMXAUfx*Sk^=*crN2l7boXD}-^_ z9-;_s^fyL@jG$HpcBQGhbW@VJkSSU)`H)sobvAcCY%NC8>)Da>3%|Ina*@NjCZQ#@weOXb z<9i=!L7kU1#4 z7zRl_;W7o7*4C}^B9vYo&5&#Mp^KXyP9~<|)i5>+IF>Dkj_`G#N@mzjx{&iKT2xfL z35hr-ogW>>&R{^jzL3`IFJw1-ZUdeLwt9qM-6YtUYeRdRjrUAD3Ao2KLs~qG!lH zK=ptBAO8fjsy9^UlRr6O0mEMG@GHE<*X9G5>cA(KZ{Bt;W3k^7-nYkdlag7z z^AN5P!6;U8RX21Ij97C4)^})ca97J#B!^e)3V)U?Lg$KJ|HR!qh>rEe`YuiwbQ0Y(8(49(d^d+fO)6YDm2@f&!yh@^9rPM7Tz?+`rcL!<1owb#nA+JlC z-O|vqDx>%8V{yYB<-UuZ@&eQ-EqNb1764;R(DevTj9Z|B741vFH}-5{FdO)%`AzXkGQfHHpoPS9b$p z>J6XnsjF-MMo*3_c$tyz@y!34k05o+Q}PZZ%z31B=o3s39ulCJFO^4INbsbt_s#{C zB6@?*>5`C8v=D&KAclTt{!K1!Ep zWgZ*ji3i=Cc{w0v6oHv-c#oX{1D4%A(Is?F*vq@*)Y>KP>A#wJC#NwqE-pkvRv z#96A-&Zy3O+IHI2Ru zN#%CbLF0|DRj@EOGYtmWy%3#orwm?j0qMnTwD0XRhtz@2G%+csg6l%K7Upv6UvV|i zGVRg0M}O+^FJ&c^_1L+9;HxSUtBA-5Sf1x(U!>T3q|aBx#Z zr8b9NnW&G-y80-df$eheO@JHTan&5AQLy0StWzC`-*?vWc%XjW*yRA<;XbH0=5;I)6ej)}t~G#B0lJZC z+rYG^{+eZ<0T~Wv$UanIn3f+I74&IUEB?{>fHTHxb|??^X+l5H%&|OzE!=gyels!f zPvt^uE-5Etae&B>XqGgENB)`NY}%9uPVdDedVoNhyb&wZjwaj7*0ADd1+g%IjDi{w j|IyXMVYdI>svyuT=-s--Wwl$t(m&Tw*HouO%PI0d0#~Sv literal 13052 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 qrModuleCount || col < 0 || col >= qrModuleCount) { return false; } - - return qr.isDark(row, col); + return vqr.isDark(row, col); } - var addBlank = function (l, t, r, b) { - var prevIsDark = this.isDark; // eslint-disable-line no-invalid-this + function addBlank(l, t, r, b) { + var prevIsDark = qr.isDark; var moduleSize = 1 / quietModuleCount; - this.isDark = function (row, col) { // eslint-disable-line no-invalid-this + qr.isDark = function (row, col) { var ml = col * moduleSize; var mt = row * moduleSize; var mr = ml + moduleSize; @@ -37,39 +44,35 @@ return prevIsDark(row, col) && (l > mr || ml > r || t > mb || mt > b); }; - }; + } - this.text = text; - this.level = level; - this.version = version; - this.moduleCount = quietModuleCount; - this.isDark = isDark; - this.addBlank = addBlank; - } + qr.text = text; + qr.level = level; + qr.version = version; + qr.moduleCount = quietModuleCount; + qr.isDark = isDark; + qr.addBlank = addBlank; - // Check if canvas is available in the browser (as Modernizr does) - var hasCanvas = (function () { - var elem = document.createElement('canvas'); - return Boolean(elem.getContext && elem.getContext('2d')); - }()); + return qr; + } // Returns a minimal QR code for the given text starting with version `minVersion`. // Returns `undefined` if `text` is too long to be encoded in `maxVersion`. - function createQRCode(text, level, minVersion, maxVersion, quiet) { + function createMinQRCode(text, level, minVersion, maxVersion, quiet) { minVersion = Math.max(1, minVersion || 1); maxVersion = Math.min(40, maxVersion || 40); for (var version = minVersion; version <= maxVersion; version += 1) { try { - return new QRCode(text, level, version, quiet); + return createQRCode(text, level, version, quiet); } catch (err) {/* empty */} } - return null; + return undefined; } function drawBackgroundLabel(qr, context, settings) { var size = settings.size; - var font = 'bold ' + (settings.mSize * size) + 'px ' + settings.fontname; - var ctx = $('')[0].getContext('2d'); + var font = 'bold ' + settings.mSize * size + 'px ' + settings.fontname; + var ctx = jq('')[0].getContext('2d'); ctx.font = font; @@ -119,7 +122,7 @@ } function drawBackground(qr, context, settings) { - if ($(settings.background).is('img')) { + if (jq(settings.background).is('img')) { context.drawImage(settings.background, 0, 0, settings.size, settings.size); } else if (settings.background) { context.fillStyle = settings.background; @@ -253,7 +256,7 @@ fn(qr, context, settings, l, t, w, row, col); } } - if ($(settings.fill).is('img')) { + if (jq(settings.fill).is('img')) { context.strokeStyle = 'rgba(0,0,0,0.5)'; context.lineWidth = 2; context.stroke(); @@ -273,12 +276,12 @@ // Draws QR code to the given `canvas` and returns it. function drawOnCanvas(canvas, settings) { - var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); + var qr = createMinQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); if (!qr) { return null; } - var $canvas = $(canvas).data('qrcode', qr); + var $canvas = jq(canvas).data('qrcode', qr); var context = $canvas[0].getContext('2d'); drawBackground(qr, context, settings); @@ -289,18 +292,18 @@ // Returns a `canvas` element representing the QR code for the given settings. function createCanvas(settings) { - var $canvas = $('').attr('width', settings.size).attr('height', settings.size); + var $canvas = jq('').attr('width', settings.size).attr('height', settings.size); return drawOnCanvas($canvas, settings); } // Returns an `image` element representing the QR code for the given settings. function createImage(settings) { - return $('').attr('src', createCanvas(settings)[0].toDataURL('image/png')); + return jq('').attr('src', createCanvas(settings)[0].toDataURL('image/png')); } // Returns a `div` element representing the QR code for the given settings. function createDiv(settings) { - var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); + var qr = createMinQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet); if (!qr) { return null; } @@ -335,7 +338,7 @@ 'background-color': settings.fill }; - var $div = $('
').data('qrcode', qr).css(containerCSS); + var $div = jq('
').data('qrcode', qr).css(containerCSS); if (settings_bgColor) { $div.css('background-color', settings_bgColor); @@ -344,7 +347,7 @@ for (row = 0; row < moduleCount; row += 1) { for (col = 0; col < moduleCount; col += 1) { if (qr.isDark(row, col)) { - $('
') + jq('
') .css(darkCSS) .css({ left: offset + col * moduleSize, @@ -427,14 +430,14 @@ // Register the plugin // ------------------- - $.fn.qrcode = function (options) { - var settings = $.extend({}, defaults, options); + jq.fn.qrcode = function (options) { + var settings = jq.extend({}, defaults, options); - return this.each(function () { - if (this.nodeName.toLowerCase() === 'canvas') { // eslint-disable-line no-invalid-this - drawOnCanvas(this, settings); // eslint-disable-line no-invalid-this + return this.each(function (idx, el) { + if (el.nodeName.toLowerCase() === 'canvas') { + drawOnCanvas(el, settings); } else { - $(this).append(createHTML(settings)); // eslint-disable-line no-invalid-this + jq(el).append(createHTML(settings)); } }); };