UNPKG

qr-creator-ssr

Version:

Lightweight QR code generator for stylish QR codes

31 lines (30 loc) 13.3 kB
(function(){/* jquery-qrcode v0.14.0 - https://larsjung.de/jquery-qrcode/ */ var I=null,J=class{};J.render=async function(D,E){await I(D,E)};globalThis.QrCreator=J; (function(D){function E(k,b,a,f){var c={},d=D(a,b);d.I(k);d.U();f=f||0;var m=d.m(),t=d.m()+2*f;c.text=k;c.level=b;c.version=a;c.V=t;c.g=function(h,q){h-=f;q-=f;return 0>h||h>=m||0>q||q>=m?!1:d.g(h,q)};return c}function F(k,b,a){if(a.icon&&a.icon.src){k=.3*a.size;var f=Math.min(a.icon.width||.2*a.size,k),c=Math.min(a.icon.height||.2*a.size,k),d=a.left+(a.size-f)/2,m=a.top+(a.size-c)/2;b.clearRect(d,m,f,c);const t=new Image;a.icon.crossOrigin&&(t.crossOrigin=a.icon.crossOrigin);return new Promise((h, q)=>{t.onload=()=>{try{b.drawImage(t,d,m,f,c),h()}catch(e){q(e)}};t.onerror=()=>q(Error("Failed to load icon image"));t.src=a.icon.src})}return Promise.resolve()}function A(k,b,a,f,c,d,m,t,h,q){function e(g,l,u,w,r,p,z){g?(k.lineTo(l+p,u+z),k.arcTo(l,u,w,r,d)):k.lineTo(l,u)}m?k.moveTo(b+d,a):k.moveTo(b,a);e(t,f,a,f,c,-d,0);e(h,f,c,b,c,0,-d);e(q,b,c,b,a,d,0);e(m,b,a,f,a,0,d)}function B(k,b,a,f,c,d,m,t,h,q){function e(g,l,u,w){k.moveTo(g+u,l);k.lineTo(g,l);k.lineTo(g,l+w);k.arcTo(g,l,g+u,l,d)}m&&e(b, a,d,d);t&&e(f,a,-d,d);h&&e(f,c,-d,-d);q&&e(b,c,d,-d)}function x(k,b,a,f,c,d,m,t){var h=k.g;k=f+d;var q=c+d,e=m-1,g=m+1,l=t-1,u=t+1;a=Math.floor(Math.min(.5,Math.max(0,a.F))*d);d=h(m,t);var w=h(e,l),r=h(e,t);e=h(e,u);var p=h(m,u);u=h(g,u);t=h(g,t);g=h(g,l);m=h(m,l);f=Math.round(f);c=Math.round(c);k=Math.round(k);q=Math.round(q);d?A(b,f,c,k,q,a,!r&&!m,!r&&!p,!t&&!p,!t&&!m):B(b,f,c,k,q,a,r&&m&&w,r&&p&&e,t&&p&&u,t&&m&&g)}function y(k,b){var a=b.fill;if("string"===typeof a)k.fillStyle=a;else{var f=a.type, c=a.colorStops;a=a.position.map(m=>Math.round(m*b.size));if("linear-gradient"===f)var d=k.createLinearGradient.apply(k,a);else if("radial-gradient"===f)d=k.createRadialGradient.apply(k,a);else throw Error("Unsupported fill");c.forEach(([m,t])=>{d.addColorStop(m,t)});k.fillStyle=d}}async function H(k,b){a:{var a=b.text,f=b.u,c=b.A,d=b.v,m=b.D;c=Math.max(1,c||1);for(d=Math.min(40,d||40);c<=d;c+=1)try{var t=E(a,f,c,m);break a}catch(u){}t=void 0}if(!t)return null;a=k.getContext("2d");b.background&&(a.fillStyle= b.background,a.fillRect(b.left,b.top,b.size,b.size));y(a,b);f=t;d=f.V;m=b.size/d;var h;y(a,b);if(b.cornerColor){a.beginPath();for(c=0;c<d;c+=1)for(h=0;h<d;h+=1)7>c&&7>h||7>c&&h>=d-7||c>=d-7&&7>h||(e=b.left+h*m,g=b.top+c*m,l=m,x(f,a,b,e,g,l,c,h));a.fill();var q=a.fillStyle;a.fillStyle=b.cornerColor;a.beginPath();for(c=0;c<d;c+=1)for(h=0;h<d;h+=1)if(7>c&&7>h||7>c&&h>=d-7||c>=d-7&&7>h)e=b.left+h*m,g=b.top+c*m,l=m,x(f,a,b,e,g,l,c,h);a.fill();a.fillStyle=q}else{a.beginPath();for(c=0;c<d;c+=1)for(h=0;h< d;h+=1){var e=b.left+h*m,g=b.top+c*m,l=m;x(f,a,b,e,g,l,c,h)}a.fill()}await F(t,a,b);return k}async function n(k){var b=document.createElement("canvas");b.width=k.size;b.height=k.size;return H(b,k)}var v={A:1,v:40,u:"L",left:0,top:0,size:200,fill:"#000",background:null,text:"no text",F:.5,D:0,cornerColor:null,icon:{src:null,width:null,height:null,crossOrigin:null}};I=async function(k,b){var a={};Object.assign(a,v,k);a.A=a.minVersion;a.v=a.maxVersion;a.u=a.ecLevel;a.left=a.left;a.top=a.top;a.size=a.size; a.fill=a.fill;a.background=a.background;a.text=a.text;a.F=a.radius;a.D=a.quiet;a.icon=a.icon;if(b instanceof HTMLCanvasElement){if(b.width!==a.size||b.height!==a.size)b.width=a.size,b.height=a.size;b.getContext("2d").clearRect(0,0,b.width,b.height);return H(b,a)}(k=await n(a))&&b.appendChild(k);return k}})(function(){function D(n){var v=F.W(n);return{$:function(){return 4},h:function(){return v.length},write:function(k){for(var b=0;b<v.length;b+=1)k.put(v[b],8)}}}function E(){var n=[],v=0,k={N:function(){return n}, i:function(b){return 1==(n[Math.floor(b/8)]>>>7-b%8&1)},put:function(b,a){if(32<a)throw Error("Length too large for bit operations");for(var f=0;f<a;f+=1)k.C(1==(b>>>a-f-1&1))},j:function(){return v},C:function(b){var a=Math.floor(v/8);n.length<=a&&n.push(0);b&&(n[a]|=128>>>v%8);v+=1}};return k}function F(n,v){function k(h,q){for(var e=-1;7>=e;e+=1)if(!(-1>=h+e||c<=h+e))for(var g=-1;7>=g;g+=1)-1>=q+g||c<=q+g||(f[h+e][q+g]=0<=e&&6>=e&&(0==g||6==g)||0<=g&&6>=g&&(0==e||6==e)||2<=e&&4>=e&&2<=g&&4>=g? !0:!1)}function b(h,q){for(var e=c=4*n+17,g=Array(e),l=0;l<e;l+=1){g[l]=Array(e);for(var u=0;u<e;u+=1)g[l][u]=null}f=g;k(0,0);k(c-7,0);k(0,c-7);e=x.S(n);for(g=0;g<e.length;g+=1)for(l=0;l<e.length;l+=1){u=e[g];var w=e[l];if(null==f[u][w])for(var r=-2;2>=r;r+=1)for(var p=-2;2>=p;p+=1)f[u+r][w+p]=-2==r||2==r||-2==p||2==p||0==r&&0==p}for(e=8;e<c-8;e+=1)null==f[e][6]&&(f[e][6]=0==e%2);for(e=8;e<c-8;e+=1)null==f[6][e]&&(f[6][e]=0==e%2);e=x.J(a<<3|q);for(g=0;15>g;g+=1)l=!h&&1==(e>>g&1),f[6>g?g:8>g?g+1:c- 15+g][8]=l,f[8][8>g?c-g-1:9>g?15-g:14-g]=l;f[c-8][8]=!h;if(7<=n){e=x.K(n);for(g=0;18>g;g+=1)l=!h&&1==(e>>g&1),f[Math.floor(g/3)][g%3+c-8-3]=l;for(g=0;18>g;g+=1)l=!h&&1==(e>>g&1),f[g%3+c-8-3][Math.floor(g/3)]=l}if(null==d){h=H.T(n,a);e=E();for(g=0;g<m.length;g+=1)l=m[g],e.put(4,4),e.put(l.h(),x.j(4,n)),l.write(e);for(g=l=0;g<h.length;g+=1)l+=h[g].s;if(e.j()>8*l)throw Error("code length overflow. ("+e.j()+">"+8*l+")");for(e.j()+4<=8*l&&e.put(0,4);0!=e.j()%8;)e.C(!1);for(;!(e.j()>=8*l);){e.put(236,8); if(e.j()>=8*l)break;e.put(17,8)}var z=0;l=g=0;u=Array(h.length);w=Array(h.length);for(r=0;r<h.length;r+=1){var C=h[r].s,G=h[r].G-C;g=Math.max(g,C);l=Math.max(l,G);u[r]=Array(C);for(p=0;p<u[r].length;p+=1)u[r][p]=255&e.N()[p+z];z+=C;p=x.O(G);C=A(u[r],p.h()-1).B(p);w[r]=Array(p.h()-1);for(p=0;p<w[r].length;p+=1)G=p+C.h()-w[r].length,w[r][p]=0<=G?C.i(G):0}for(p=e=0;p<h.length;p+=1)e+=h[p].G;e=Array(e);for(p=z=0;p<g;p+=1)for(r=0;r<h.length;r+=1)p<u[r].length&&(e[z]=u[r][p],z+=1);for(p=0;p<l;p+=1)for(r= 0;r<h.length;r+=1)p<w[r].length&&(e[z]=w[r][p],z+=1);d=e}h=d;e=-1;g=c-1;l=7;u=0;q=x.R(q);for(w=c-1;0<w;w-=2)for(6==w&&--w;;){for(r=0;2>r;r+=1)null==f[g][w-r]&&(p=!1,u<h.length&&(p=1==(h[u]>>>l&1)),q(g,w-r)&&(p=!p),f[g][w-r]=p,--l,-1==l&&(u+=1,l=7));g+=e;if(0>g||c<=g){g-=e;e=-e;break}}}var a=B[v],f=null,c=0,d=null,m=[],t={I:function(h){h=D(h);m.push(h);d=null},g:function(h,q){if(0>h||c<=h||0>q||c<=q)throw Error(h+","+q);return f[h][q]},m:function(){return c},U:function(){for(var h=0,q=0,e=0;8>e;e+= 1){b(!0,e);var g=x.P(t);if(0==e||h>g)h=g,q=e}b(!1,q)}};return t}function A(n,v){if("undefined"==typeof n.length)throw Error(n.length+"/"+v);var k=function(){for(var a=0;a<n.length&&0==n[a];)a+=1;for(var f=Array(n.length-a+v),c=0;c<n.length-a;c+=1)f[c]=n[c+a];return f}(),b={i:function(a){return k[a]},h:function(){return k.length},multiply:function(a){for(var f=Array(b.h()+a.h()-1),c=0;c<b.h();c+=1)for(var d=0;d<a.h();d+=1)f[c+d]^=y.o(y.l(b.i(c))+y.l(a.i(d)));return A(f,0)},B:function(a){if(0>b.h()- a.h())return b;for(var f=y.l(b.i(0))-y.l(a.i(0)),c=Array(b.h()),d=0;d<b.h();d+=1)c[d]=b.i(d);for(d=0;d<a.h();d+=1)c[d]^=y.o(y.l(a.i(d))+f);return A(c,0).B(a)}};return b}F.W=function(n){if("undefined"!==typeof TextEncoder)n=(new TextEncoder).encode(n);else{const v=[];for(let k=0;k<n.length;k++){let b=n.charCodeAt(k);128>b?v.push(b):2048>b?v.push(192|b>>6,128|b&63):55296>b||57344<=b?v.push(224|b>>12,128|b>>6&63,128|b&63):(k++,b=(b&1023)<<10|n.charCodeAt(k)&1023,b+=65536,v.push(240|b>>18,128|b>>12&63, 128|b>>6&63,128|b&63))}n=v}return n};var B={Y:1,Z:0,Q:3,X:2},x=function(){function n(b){for(var a=0;0!=b;)a+=1,b>>>=1;return a}var v=[[],[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]],k={J:function(b){for(var a=b<<10;0<=n(a)-n(1335);)a^=1335<<n(a)-n(1335);return(b<<10|a)^21522},K:function(b){for(var a=b<<12;0<=n(a)-n(7973);)a^=7973<<n(a)-n(7973);return b<<12|a},S:function(b){return v[b-1]},R:function(b){switch(b){case 0:return function(a, f){return 0==(a+f)%2};case 1:return function(a){return 0==a%2};case 2:return function(a,f){return 0==f%3};case 3:return function(a,f){return 0==(a+f)%3};case 4:return function(a,f){return 0==(Math.floor(a/2)+Math.floor(f/3))%2};case 5:return function(a,f){return 0==a*f%2+a*f%3};case 6:return function(a,f){return 0==(a*f%2+a*f%3)%2};case 7:return function(a,f){return 0==(a*f%3+(a+f)%2)%2};default:throw Error("bad maskPattern:"+b);}},O:function(b){for(var a=A([1],0),f=0;f<b;f+=1)a=a.multiply(A([1,y.o(f)], 0));return a},j:function(b,a){if(4!=b||1>a||40<a)throw Error("mode: "+b+"; type: "+a);return 10>a?8:16},P:function(b){for(var a=b.m(),f=0,c=0;c<a;c+=1)for(var d=0;d<a;d+=1){for(var m=0,t=b.g(c,d),h=-1;1>=h;h+=1)if(!(0>c+h||a<=c+h))for(var q=-1;1>=q;q+=1)0>d+q||a<=d+q||(0!=h||0!=q)&&t==b.g(c+h,d+q)&&(m+=1);5<m&&(f+=3+m-5)}for(c=0;c<a-1;c+=1)for(d=0;d<a-1;d+=1)if(m=0,b.g(c,d)&&(m+=1),b.g(c+1,d)&&(m+=1),b.g(c,d+1)&&(m+=1),b.g(c+1,d+1)&&(m+=1),0==m||4==m)f+=3;for(c=0;c<a;c+=1)for(d=0;d<a-6;d+=1)b.g(c, d)&&!b.g(c,d+1)&&b.g(c,d+2)&&b.g(c,d+3)&&b.g(c,d+4)&&!b.g(c,d+5)&&b.g(c,d+6)&&(f+=40);for(d=0;d<a;d+=1)for(c=0;c<a-6;c+=1)b.g(c,d)&&!b.g(c+1,d)&&b.g(c+2,d)&&b.g(c+3,d)&&b.g(c+4,d)&&!b.g(c+5,d)&&b.g(c+6,d)&&(f+=40);for(d=m=0;d<a;d+=1)for(c=0;c<a;c+=1)b.g(c,d)&&(m+=1);return f+=Math.abs(100*m/a/a-50)/5*10}};return k}(),y=function(){for(var n=Array(256),v=Array(256),k=0;8>k;k+=1)n[k]=1<<k;for(k=8;256>k;k+=1)n[k]=n[k-4]^n[k-5]^n[k-6]^n[k-8];for(k=0;255>k;k+=1)v[n[k]]=k;return{l:function(b){if(1>b)throw Error("glog("+ b+")");return v[b]},o:function(b){for(;0>b;)b+=255;for(;256<=b;)b-=255;return n[b]}}}(),H=function(){function n(b,a){switch(a){case B.L:return v[4*(b-1)];case B.M:return v[4*(b-1)+1];case B.Q:return v[4*(b-1)+2];case B.H:return v[4*(b-1)+3]}}var v=[[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,15]],k={T:function(b,a){var f=n(b,a);if("undefined"==typeof f)throw Error("bad rs block @ typeNumber:"+b+"/errorCorrectLevel:"+a);b=f.length/3;a=[];for(var c=0;c<b;c+=1)for(var d=f[3*c],m=f[3*c+1],t=f[3*c+2],h=0;h<d;h+=1){var q=a,e=q.push,g=t,l={};l.G=m;l.s=g;e.call(q,l)}return a}};return k}();return F}());})(); //# sourceMappingURL=qr-creator.min.js.map