mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-06 23:07:56 +08:00
4 lines
11 KiB
JavaScript
4 lines
11 KiB
JavaScript
/*! qr-js v1.1.4 | (c) 2015 Alasdair Mercer | GPL v3 License
|
|
jsqrencode | (c) 2010 tz@execpc.com | GPL v3 License
|
|
*/
|
|
(r=>{"use strict";var o,f,e,t,n,a,i,c,l,s=[0,11,15,19,23,27,31,16,18,20,22,24,26,28,20,22,24,24,26,28,28,22,24,24,26,26,28,28,24,24,26,26,26,28,28,24,26,26,26,28,28],u="image/png",h="image/octet-stream",v=[1,0,19,7,1,0,16,10,1,0,13,13,1,0,9,17,1,0,34,10,1,0,28,16,1,0,22,22,1,0,16,28,1,0,55,15,1,0,44,26,2,0,17,18,2,0,13,22,1,0,80,20,2,0,32,18,2,0,24,26,4,0,9,16,1,0,108,26,2,0,43,24,2,2,15,18,2,2,11,22,2,0,68,18,4,0,27,16,4,0,19,24,4,0,15,28,2,0,78,20,4,0,31,18,2,4,14,18,4,1,13,26,2,0,97,24,2,2,38,22,4,2,18,22,4,2,14,26,2,0,116,30,3,2,36,22,4,4,16,20,4,4,12,24,2,2,68,18,4,1,43,26,6,2,19,24,6,2,15,28,4,0,81,20,1,4,50,30,4,4,22,28,3,8,12,24,2,2,92,24,6,2,36,22,4,6,20,26,7,4,14,28,4,0,107,26,8,1,37,22,8,4,20,24,12,4,11,22,3,1,115,30,4,5,40,24,11,5,16,20,11,5,12,24,5,1,87,22,5,5,41,24,5,7,24,30,11,7,12,24,5,1,98,24,7,3,45,28,15,2,19,24,3,13,15,30,1,5,107,28,10,1,46,28,1,15,22,28,2,17,14,28,5,1,120,30,9,4,43,26,17,1,22,28,2,19,14,28,3,4,113,28,3,11,44,26,17,4,21,26,9,16,13,26,3,5,107,28,3,13,41,26,15,5,24,30,15,10,15,28,4,4,116,28,17,0,42,26,17,6,22,28,19,6,16,30,2,7,111,28,17,0,46,28,7,16,24,30,34,0,13,24,4,5,121,30,4,14,47,28,11,14,24,30,16,14,15,30,6,4,117,30,6,14,45,28,11,16,24,30,30,2,16,30,8,4,106,26,8,13,47,28,7,22,24,30,22,13,15,30,10,2,114,28,19,4,46,28,28,6,22,28,33,4,16,30,8,4,122,30,22,3,45,28,8,26,23,30,12,28,15,30,3,10,117,30,3,23,45,28,4,31,24,30,11,31,15,30,7,7,116,30,21,7,45,28,1,37,23,30,19,26,15,30,5,10,115,30,19,10,47,28,15,25,24,30,23,25,15,30,13,3,115,30,2,29,46,28,42,1,24,30,23,28,15,30,17,0,115,30,10,23,46,28,10,35,24,30,19,35,15,30,17,1,115,30,14,21,46,28,29,19,24,30,11,46,15,30,13,6,115,30,14,23,46,28,44,7,24,30,59,1,16,30,12,7,121,30,12,26,47,28,39,14,24,30,22,41,15,30,6,14,121,30,6,34,47,28,46,10,24,30,2,64,15,30,17,4,122,30,29,14,46,28,49,10,24,30,24,46,15,30,4,18,122,30,13,32,46,28,48,14,24,30,42,32,15,30,20,4,117,30,40,7,47,28,43,22,24,30,10,67,15,30,19,6,118,30,18,31,47,28,34,34,24,30,20,61,15,30],p={L:1,M:2,Q:3,H:4},y=[30660,29427,32170,30877,26159,25368,27713,26998,21522,20773,24188,23371,17913,16590,20375,19104,13663,12392,16177,14854,9396,8579,11994,11245,5769,5054,7399,6608,1890,597,3340,2107],g=[1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,0],w=[255,0,1,25,2,50,26,198,3,223,51,238,27,104,199,75,4,100,224,14,52,141,239,129,28,193,105,248,200,8,76,113,5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154,9,120,77,228,114,166,6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87,7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175],d=3,m=3,b=40,k=10,R=[3220,1468,2713,1235,3062,1890,2119,1549,2344,2936,1117,2583,1330,2470,1667,2249,2028,3780,481,4011,142,3098,831,3445,592,2517,1776,2234,1951,2827,1070,2660,1345,3177],S=parseInt("0666",8),E=[],L=[],I=1,U=[],C=[],D=!1,q=[],z=r.qr,M=[];function T(o,f,e){var t=f.mime||u;r.location.href=o.toDataURL(t).replace(t,h),"function"==typeof e&&e()}function B(r){return"string"==typeof r&&(r={value:r}),r||{}}function x(r,o){var f;r>o&&(f=r,r=o,o=f),f=o,f*=o,f+=o,f>>=1,C[f+=r]=1}function A(r,o){var f;for(U[r+l*o]=1,f=-2;f<2;f++)U[r+f+l*(o-2)]=1,U[r-2+l*(o+f+1)]=1,U[r+2+l*(o+f)]=1,U[r+f+1+l*(o+2)]=1;for(f=0;f<2;f++)x(r-1,o+f),x(r+1,o-f),x(r-f,o-1),x(r+f,o+1)}function H(r){for(;r>=255;)r=((r-=255)>>8)+(255&r);return r}function N(r,o,f,e){var t,n,a;for(n=0;n<e;n++)M[f+n]=0;for(n=0;n<o;n++){if(255!==(t=w[M[r+n]^M[f]]))for(a=1;a<e;a++)M[f+a-1]=M[f+a]^g[H(t+q[e-a])];else for(a=f;a<f+e;a++)M[a]=M[a+1];M[f+e-1]=255===t?0:g[H(t+q[0])]}}function O(r,o){var f;return r>o&&(f=r,r=o,o=f),f=o,f+=o*o,f>>=1,1===C[f+=r]}function Q(r){var o,f,e,t;switch(r){case 0:for(f=0;f<l;f++)for(o=0;o<l;o++)o+f&1||O(o,f)||(U[o+f*l]^=1);break;case 1:for(f=0;f<l;f++)for(o=0;o<l;o++)1&f||O(o,f)||(U[o+f*l]^=1);break;case 2:for(f=0;f<l;f++)for(e=0,o=0;o<l;o++,e++)3===e&&(e=0),e||O(o,f)||(U[o+f*l]^=1);break;case 3:for(t=0,f=0;f<l;f++,t++)for(3===t&&(t=0),e=t,o=0;o<l;o++,e++)3===e&&(e=0),e||O(o,f)||(U[o+f*l]^=1);break;case 4:for(f=0;f<l;f++)for(e=0,t=f>>1&1,o=0;o<l;o++,e++)3===e&&(e=0,t=!t),t||O(o,f)||(U[o+f*l]^=1);break;case 5:for(t=0,f=0;f<l;f++,t++)for(3===t&&(t=0),e=0,o=0;o<l;o++,e++)3===e&&(e=0),(o&f&1)+!(!e|!t)||O(o,f)||(U[o+f*l]^=1);break;case 6:for(t=0,f=0;f<l;f++,t++)for(3===t&&(t=0),e=0,o=0;o<l;o++,e++)3===e&&(e=0),(o&f&1)+(e&&e===t)&1||O(o,f)||(U[o+f*l]^=1);break;case 7:for(t=0,f=0;f<l;f++,t++)for(3===t&&(t=0),e=0,o=0;o<l;o++,e++)3===e&&(e=0),(e&&e===t)+(o+f&1)&1||O(o,f)||(U[o+f*l]^=1)}}function V(r){var o,f=0;for(o=0;o<=r;o++)E[o]>=5&&(f+=d+E[o]-5);for(o=3;o<r-1;o+=2)E[o-2]===E[o+2]&&E[o+2]===E[o-1]&&E[o-1]===E[o+1]&&3*E[o-1]===E[o]&&(0===E[o-3]||o+3>r||3*E[o-3]>=4*E[o]||3*E[o+3]>=4*E[o])&&(f+=b);return f}function W(){var r,o,f,e,t,n,a,i,c;for(f=t=n=0,c=0;c<l-1;c++)for(i=0;i<l-1;i++)(U[i+l*c]&&U[i+1+l*c]&&U[i+l*(c+1)]&&U[i+1+l*(c+1)]||!(U[i+l*c]||U[i+1+l*c]||U[i+l*(c+1)]||U[i+1+l*(c+1)]))&&(f+=m);for(c=0;c<l;c++){for(E[0]=0,a=r=i=0;i<l;i++)(o=U[i+l*c])===r?E[a]++:E[++a]=1,t+=(r=o)?1:-1;f+=V(a)}for(t<0&&(t=-t),e=t,e+=e<<2,e<<=1;e>l*l;)e-=l*l,n++;for(f+=n*k,i=0;i<l;i++){for(E[0]=0,a=r=c=0;c<l;c++)(o=U[i+l*c])===r?E[a]++:E[++a]=1,r=o;f+=V(a)}return f}var j={VERSION:"1.1.4",canvas:function(a){var i=(a=B(a)).size>=1&&a.size<=10?a.size:4;i*=25;var u=a.canvas||(D?new o:r.document.createElement("canvas")),h=u.getContext("2d");h.canvas.width=i,h.canvas.height=i,h.fillStyle=a.background||"#fff",h.fillRect(0,0,i,i),I=p[a.level&&a.level.toUpperCase()||"L"];var d=function(r){var o,a,i,u,h,p,d,m;h=r.length,c=0;do{if(i=4*(I-1)+16*(++c-1),t=v[i++],n=v[i++],f=v[i++],e=v[i],h<=(i=f*(t+n)+n-3+(c<=9)))break}while(c<40);for(l=17+4*c,p=f+(f+e)*(t+n)+n,h=0;h<p;h++)L[h]=0;for(M=r.slice(0),h=0;h<l*l;h++)U[h]=0;for(h=0;h<(l*(l+1)+1)/2;h++)C[h]=0;for(h=0;h<3;h++){for(i=m=0,1===h&&(i=l-7),2===h&&(m=l-7),U[m+3+l*(i+3)]=1,d=0;d<6;d++)U[m+d+l*i]=1,U[m+l*(i+d+1)]=1,U[m+6+l*(i+d)]=1,U[m+d+1+l*(i+6)]=1;for(d=1;d<5;d++)x(m+d,i+1),x(m+1,i+d+1),x(m+5,i+d),x(m+d+1,i+5);for(d=2;d<4;d++)U[m+d+l*(i+2)]=1,U[m+2+l*(i+d+1)]=1,U[m+4+l*(i+d)]=1,U[m+d+1+l*(i+4)]=1}if(c>1)for(h=s[c],m=l-7;;){for(d=l-7;d>h-3&&(A(d,m),!(d<h));)d-=h;if(m<=h+9)break;A(6,m-=h),A(m,6)}for(U[8+l*(l-8)]=1,m=0;m<7;m++)x(7,m),x(l-8,m),x(7,m+l-7);for(d=0;d<8;d++)x(d,7),x(d+l-8,7),x(d,l-8);for(d=0;d<9;d++)x(d,8);for(d=0;d<8;d++)x(d+l-8,8),x(8,d);for(m=0;m<7;m++)x(8,m+l-7);for(d=0;d<l-14;d++)1&d?(x(8+d,6),x(6,8+d)):(U[8+d+6*l]=1,U[6+l*(8+d)]=1);if(c>6)for(h=R[c-7],i=17,d=0;d<6;d++)for(m=0;m<3;m++,i--)1&(i>11?c>>i-12:h>>i)?(U[5-d+l*(2-m+l-11)]=1,U[2-m+l-11+l*(5-d)]=1):(x(5-d,2-m+l-11),x(2-m+l-11,5-d));for(m=0;m<l;m++)for(d=0;d<=m;d++)U[d+l*m]&&x(d,m);for(p=M.length,o=0;o<p;o++)L[o]=M.charCodeAt(o);if(M=L.slice(0),p>=(d=f*(t+n)+n)-2&&(p=d-2,c>9&&p--),o=p,c>9){for(M[o+2]=0,M[o+3]=0;o--;)h=M[o],M[o+3]|=255&h<<4,M[o+2]=h>>4;M[2]|=255&p<<4,M[1]=p>>4,M[0]=64|p>>12}else{for(M[o+1]=0,M[o+2]=0;o--;)h=M[o],M[o+2]|=255&h<<4,M[o+1]=h>>4;M[1]|=255&p<<4,M[0]=64|p>>4}for(o=p+3-(c<10);o<d;)M[o++]=236,M[o++]=17;for(q[0]=1,o=0;o<e;o++){for(q[o+1]=1,a=o;a>0;a--)q[a]=q[a]?q[a-1]^g[H(w[q[a]]+o)]:q[a-1];q[0]=g[H(w[q[0]]+o)]}for(o=0;o<=e;o++)q[o]=w[q[o]];for(i=d,m=0,o=0;o<t;o++)N(m,f,i,e),m+=f,i+=e;for(o=0;o<n;o++)N(m,f+1,i,e),m+=f+1,i+=e;for(m=0,o=0;o<f;o++){for(a=0;a<t;a++)L[m++]=M[o+a*f];for(a=0;a<n;a++)L[m++]=M[t*f+o+a*(f+1)]}for(a=0;a<n;a++)L[m++]=M[t*f+o+a*(f+1)];for(o=0;o<e;o++)for(a=0;a<t+n;a++)L[m++]=M[d+o+a*e];for(M=L,d=m=l-1,i=p=1,u=(f+e)*(t+n)+n,o=0;o<u;o++)for(h=M[o],a=0;a<8;a++,h<<=1){128&h&&(U[d+l*m]=1);do{p?d--:(d++,i?0!==m?m--:(i=!i,6==(d-=2)&&(d--,m=9)):m!==l-1?m++:(i=!i,6==(d-=2)&&(d--,m-=8))),p=!p}while(O(d,m))}for(M=U.slice(0),h=0,m=3e4,i=0;i<8&&(Q(i),(d=W())<m&&(m=d,h=i),7!==h);i++)U=M.slice(0);for(h!==i&&Q(h),m=y[h+(I-1<<3)],i=0;i<8;i++,m>>=1)1&m&&(U[l-1-i+8*l]=1,i<6?U[8+l*i]=1:U[8+l*(i+1)]=1);for(i=0;i<7;i++,m>>=1)1&m&&(U[8+l*(l-7+i)]=1,i?U[6-i+8*l]=1:U[7+8*l]=1);return U}(a.value||"");h.lineWidth=1;var m=i;m/=l,m=Math.floor(m);var b,k,S=Math.floor((i-m*l)/2);for(h.clearRect(0,0,i,i),h.fillStyle=a.background||"#fff",h.fillRect(0,0,i,i),h.fillStyle=a.foreground||"#000",b=0;b<l;b++)for(k=0;k<l;k++)d[k*l+b]&&h.fillRect(m*b+S,m*k+S,m,m);return u},image:function(o){o=B(o);var f=this.canvas(o),e=o.image||(D?new i:r.document.createElement("img"));return e.src=f.toDataURL(o.mime||u),e.height=f.height,e.width=f.width,e},save:function(r,o,f){switch(r=B(r),typeof o){case"function":f=o,o=null;break;case"string":r.path=o}if("function"!=typeof f)throw new TypeError("Invalid callback type: "+typeof f);var e=!1,t=this.canvas(r);function n(r){e||(e=!0,f(r))}D?function(r,o,f){if("string"!=typeof o.path)return f(new TypeError("Invalid path type: "+typeof o.path));var e,t;function n(){a.write(e,t,0,t.length,0,function(r){a.close(e),f(r)})}r.toBuffer(function(r,o){if(r)return f(r);t=o,e&&n()}),a.open(o.path,"w",S,function(r,o){if(r)return f(r);e=o,t&&n()})}(t,r,n):T(t,r,n)},saveSync:function(r,o){r=B(r),"string"==typeof o&&(r.path=o);var f=this.canvas(r);D?function(r,o){if("string"!=typeof o.path)throw new TypeError("Invalid path type: "+typeof o.path);var f=r.toBuffer(),e=a.openSync(o.path,"w",S);try{a.writeSync(e,f,0,f.length,0)}finally{a.closeSync(e)}}(f,r):T(f,r)},toDataURL:function(r){return r=B(r),this.canvas(r).toDataURL(r.mime||u)},noConflict:function(){return r.qr=z,this}};r.qr=j})(this);
|