| 12345678910111213141516171819202122232425262728293031323334 |
- //---------------------------------------------------------------------
- // uQRCode二维码生成插件 v4.0.0
- //
- // uQRCode是一款基于Javascript环境开发的二维码生成插件,适用所有Javascript运行环境的前端应用和Node.js。
- //
- // Copyright (c) Sansnn uQRCode All rights reserved.
- //
- // Licensed under the Apache License, Version 2.0.
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // github地址:
- // https://github.com/Sansnn/uQRCode
- //
- // npm地址:
- // https://www.npmjs.com/package/uqrcodejs
- //
- // uni-app插件市场地址:
- // https://ext.dcloud.net.cn/plugin?id=1287
- //
- // 复制使用请保留本段注释,感谢支持开源!
- //
- //---------------------------------------------------------------------
- //---------------------------------------------------------------------
- // 当前文件格式为 es,将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esm,module)
- // 如需在其他环境使用,请获取环境对应的格式文件
- // 格式说明:
- // amd - 异步模块定义,适用于 RequireJS 等模块加载器
- // cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs)
- // es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esm,module)
- // umd - 通用模块定义,生成的包同时支持 amd、cjs 和 iife 三种格式
- //---------------------------------------------------------------------
- function o(o){this.mode=r.MODE_8BIT_BYTE,this.data=o;}function e(o,e){this.typeNumber=o,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=new Array;}o.prototype={getLength:function(o){return this.data.length},write:function(o){for(var e=0;e<this.data.length;e++)o.put(this.data.charCodeAt(e),8);}},e.prototype={addData:function(e){var r=new o(e);this.dataList.push(r),this.dataCache=null;},isDark:function(o,e){if(o<0||this.moduleCount<=o||e<0||this.moduleCount<=e)throw new Error(o+","+e);return this.modules[o][e]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var o=1;for(o=1;o<40;o++){for(var e=p.getRSBlocks(o,this.errorCorrectLevel),r=new C,t=0,i=0;i<e.length;i++)t+=e[i].dataCount;for(i=0;i<this.dataList.length;i++){var n=this.dataList[i];r.put(n.mode,4),r.put(n.getLength(),l.getLengthInBits(n.mode,o)),n.write(r);}if(r.getLengthInBits()<=8*t)break}this.typeNumber=o;}this.makeImpl(!1,this.getBestMaskPattern());},makeImpl:function(o,r){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var t=0;t<this.moduleCount;t++){this.modules[t]=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++)this.modules[t][i]=null;}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(o,r),this.typeNumber>=7&&this.setupTypeNumber(o),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,r);},setupPositionProbePattern:function(o,e){for(var r=-1;r<=7;r++)if(!(o+r<=-1||this.moduleCount<=o+r))for(var t=-1;t<=7;t++)e+t<=-1||this.moduleCount<=e+t||(this.modules[o+r][e+t]=0<=r&&r<=6&&(0==t||6==t)||0<=t&&t<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=t&&t<=4);},getBestMaskPattern:function(){for(var o=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var t=l.getLostPoint(this);(0==r||o>t)&&(o=t,e=r);}return e},createMovieClip:function(o,e,r){var t=o.createEmptyMovieClip(e,r);this.make();for(var i=0;i<this.modules.length;i++)for(var n=1*i,a=0;a<this.modules[i].length;a++){var s=1*a;this.modules[i][a]&&(t.beginFill(0,100),t.moveTo(s,n),t.lineTo(s+1,n),t.lineTo(s+1,n+1),t.lineTo(s,n+1),t.endFill());}return t},setupTimingPattern:function(){for(var o=8;o<this.moduleCount-8;o++)null==this.modules[o][6]&&(this.modules[o][6]=o%2==0);for(var e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0);},setupPositionAdjustPattern:function(){for(var o=l.getPatternPosition(this.typeNumber),e=0;e<o.length;e++)for(var r=0;r<o.length;r++){var t=o[e],i=o[r];if(null==this.modules[t][i])for(var n=-2;n<=2;n++)for(var a=-2;a<=2;a++)this.modules[t+n][i+a]=-2==n||2==n||-2==a||2==a||0==n&&0==a;}},setupTypeNumber:function(o){for(var e=l.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var t=!o&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=t;}for(r=0;r<18;r++){t=!o&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=t;}},setupTypeInfo:function(o,e){for(var r=this.errorCorrectLevel<<3|e,t=l.getBCHTypeInfo(r),i=0;i<15;i++){var n=!o&&1==(t>>i&1);i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n;}for(i=0;i<15;i++){n=!o&&1==(t>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n;}this.modules[this.moduleCount-8][8]=!o;},mapData:function(o,e){for(var r=-1,t=this.moduleCount-1,i=7,n=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[t][a-s]){var u=!1;n<o.length&&(u=1==(o[n]>>>i&1)),l.getMask(e,t,a-s)&&(u=!u),this.modules[t][a-s]=u,-1==--i&&(n++,i=7);}if((t+=r)<0||this.moduleCount<=t){t-=r,r=-r;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(o,r,t){for(var i=p.getRSBlocks(o,r),n=new C,a=0;a<t.length;a++){var s=t[a];n.put(s.mode,4),n.put(s.getLength(),l.getLengthInBits(s.mode,o)),s.write(n);}var u=0;for(a=0;a<i.length;a++)u+=i[a].dataCount;if(n.getLengthInBits()>8*u)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*u+")");for(n.getLengthInBits()+4<=8*u&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*u||(n.put(e.PAD0,8),n.getLengthInBits()>=8*u));)n.put(e.PAD1,8);return e.createBytes(n,i)},e.createBytes=function(o,e){for(var r=0,t=0,i=0,n=new Array(e.length),a=new Array(e.length),s=0;s<e.length;s++){var u=e[s].dataCount,d=e[s].totalCount-u;t=Math.max(t,u),i=Math.max(i,d),n[s]=new Array(u);for(var g=0;g<n[s].length;g++)n[s][g]=255&o.buffer[g+r];r+=u;var h=l.getErrorCorrectPolynomial(d),c=new f(n[s],h.getLength()-1).mod(h);a[s]=new Array(h.getLength()-1);for(g=0;g<a[s].length;g++){var m=g+c.getLength()-a[s].length;a[s][g]=m>=0?c.get(m):0;}}var p=0;for(g=0;g<e.length;g++)p+=e[g].totalCount;var C=new Array(p),b=0;for(g=0;g<t;g++)for(s=0;s<e.length;s++)g<n[s].length&&(C[b++]=n[s][g]);for(g=0;g<i;g++)for(s=0;s<e.length;s++)g<a[s].length&&(C[b++]=a[s][g]);return C};for(var r={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},t={L:1,M:0,Q:3,H:2},i=0,n=1,a=2,s=3,u=4,d=5,g=6,h=7,l={PATTERN_POSITION_TABLE:[[],[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]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(o){for(var e=o<<10;l.getBCHDigit(e)-l.getBCHDigit(l.G15)>=0;)e^=l.G15<<l.getBCHDigit(e)-l.getBCHDigit(l.G15);return (o<<10|e)^l.G15_MASK},getBCHTypeNumber:function(o){for(var e=o<<12;l.getBCHDigit(e)-l.getBCHDigit(l.G18)>=0;)e^=l.G18<<l.getBCHDigit(e)-l.getBCHDigit(l.G18);return o<<12|e},getBCHDigit:function(o){for(var e=0;0!=o;)e++,o>>>=1;return e},getPatternPosition:function(o){return l.PATTERN_POSITION_TABLE[o-1]},getMask:function(o,e,r){switch(o){case i:return (e+r)%2==0;case n:return e%2==0;case a:return r%3==0;case s:return (e+r)%3==0;case u:return (Math.floor(e/2)+Math.floor(r/3))%2==0;case d:return e*r%2+e*r%3==0;case g:return (e*r%2+e*r%3)%2==0;case h:return (e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+o)}},getErrorCorrectPolynomial:function(o){for(var e=new f([1],0),r=0;r<o;r++)e=e.multiply(new f([1,c.gexp(r)],0));return e},getLengthInBits:function(o,e){if(1<=e&&e<10)switch(o){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:case r.MODE_KANJI:return 8;default:throw new Error("mode:"+o)}else if(e<27)switch(o){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw new Error("mode:"+o)}else {if(!(e<41))throw new Error("type:"+e);switch(o){case r.MODE_NUMBER:return 14;case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw new Error("mode:"+o)}}},getLostPoint:function(o){for(var e=o.getModuleCount(),r=0,t=0;t<e;t++)for(var i=0;i<e;i++){for(var n=0,a=o.isDark(t,i),s=-1;s<=1;s++)if(!(t+s<0||e<=t+s))for(var u=-1;u<=1;u++)i+u<0||e<=i+u||0==s&&0==u||a==o.isDark(t+s,i+u)&&n++;n>5&&(r+=3+n-5);}for(t=0;t<e-1;t++)for(i=0;i<e-1;i++){var d=0;o.isDark(t,i)&&d++,o.isDark(t+1,i)&&d++,o.isDark(t,i+1)&&d++,o.isDark(t+1,i+1)&&d++,0!=d&&4!=d||(r+=3);}for(t=0;t<e;t++)for(i=0;i<e-6;i++)o.isDark(t,i)&&!o.isDark(t,i+1)&&o.isDark(t,i+2)&&o.isDark(t,i+3)&&o.isDark(t,i+4)&&!o.isDark(t,i+5)&&o.isDark(t,i+6)&&(r+=40);for(i=0;i<e;i++)for(t=0;t<e-6;t++)o.isDark(t,i)&&!o.isDark(t+1,i)&&o.isDark(t+2,i)&&o.isDark(t+3,i)&&o.isDark(t+4,i)&&!o.isDark(t+5,i)&&o.isDark(t+6,i)&&(r+=40);var g=0;for(i=0;i<e;i++)for(t=0;t<e;t++)o.isDark(t,i)&&g++;return r+=10*(Math.abs(100*g/e/e-50)/5)}},c={glog:function(o){if(o<1)throw new Error("glog("+o+")");return c.LOG_TABLE[o]},gexp:function(o){for(;o<0;)o+=255;for(;o>=256;)o-=255;return c.EXP_TABLE[o]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},m=0;m<8;m++)c.EXP_TABLE[m]=1<<m;for(m=8;m<256;m++)c.EXP_TABLE[m]=c.EXP_TABLE[m-4]^c.EXP_TABLE[m-5]^c.EXP_TABLE[m-6]^c.EXP_TABLE[m-8];for(m=0;m<255;m++)c.LOG_TABLE[c.EXP_TABLE[m]]=m;function f(o,e){if(null==o.length)throw new Error(o.length+"/"+e);for(var r=0;r<o.length&&0==o[r];)r++;this.num=new Array(o.length-r+e);for(var t=0;t<o.length-r;t++)this.num[t]=o[t+r];}function p(o,e){this.totalCount=o,this.dataCount=e;}function C(){this.buffer=new Array,this.length=0;}function b(o){return o.setFillStyle=o.setFillStyle||function(e){o.fillStyle=e;},o.setFontSize=o.setFontSize||function(e){o.font=`${e}px`;},o.setTextAlign=o.setTextAlign||function(e){o.textAlign=e;},o.setTextBaseline=o.setTextBaseline||function(e){o.textBaseline=e;},o.draw=o.draw||function(o,e){e&&e();},o.clearRect=o.clearRect||function(e,r,t,i){o.draw(!1);},o}function y(o,e){var r=this.data="",t=this.size=200;this.useDynamicSize=!1,this.dynamicSize=t;var i=this.typeNumber=-1;this.errorCorrectLevel=y.errorCorrectLevel.H;var n=this.margin=0;this.areaColor="#FFFFFF",this.backgroundColor="rgba(255,255,255,0)",this.backgroundImageSrc=void 0;var a=this.backgroundImageWidth=void 0,s=this.backgroundImageHeight=void 0,u=this.backgroundImageX=void 0,d=this.backgroundImageY=void 0;this.backgroundImageAlpha=1,this.backgroundImageBorderRadius=0;var g=this.backgroundPadding=0;this.foregroundColor="#000000",this.foregroundImageSrc=void 0;var h=this.foregroundImageWidth=void 0,l=this.foregroundImageHeight=void 0,c=this.foregroundImageX=void 0,m=this.foregroundImageY=void 0,f=this.foregroundImagePadding=0;this.foregroundImageBackgroundColor="#FFFFFF";var p=this.foregroundImageBorderRadius=0,C=this.foregroundImageShadowOffsetX=0,k=this.foregroundImageShadowOffsetY=0,v=this.foregroundImageShadowBlur=0;this.foregroundImageShadowColor="#808080";var w=this.foregroundPadding=0,I=this.positionProbeBackgroundColor=void 0,B=this.positionProbeForegroundColor=void 0,S=this.separatorColor=void 0,P=this.positionAdjustBackgroundColor=void 0,T=this.positionAdjustForegroundColor=void 0,L=this.timingBackgroundColor=void 0,D=this.timingForegroundColor=void 0,E=this.typeNumberBackgroundColor=void 0,A=this.typeNumberForegroundColor=void 0,N=this.darkBlockColor=void 0;this.base=void 0,this.modules=[],this.moduleCount=0;var z=this.canvasContext=void 0;this.drawReserve=!1,this.isMaked=!1,Object.defineProperties(this,{data:{get(){if(""===r||void 0===r)throw console.error("[uQRCode]: data must be set!"),new y.Error("data must be set!");return r},set(o){r=String(o);}},size:{get:()=>t,set(o){t=Number(o);}},typeNumber:{get:()=>i,set(o){i=Number(o);}},margin:{get:()=>n,set(o){n=Number(o);}},backgroundImageWidth:{get(){return void 0===a?this.dynamicSize:this.useDynamicSize?this.dynamicSize/this.size*a:a},set(o){a=Number(o);}},backgroundImageHeight:{get(){return void 0===s?this.dynamicSize:this.useDynamicSize?this.dynamicSize/this.size*s:s},set(o){s=Number(o);}},backgroundImageX:{get(){return void 0===u?0:this.useDynamicSize?this.dynamicSize/this.size*u:u},set(o){u=Number(o);}},backgroundImageY:{get(){return void 0===d?0:this.useDynamicSize?this.dynamicSize/this.size*d:d},set(o){d=Number(o);}},backgroundPadding:{get:()=>g,set(o){g=o>1?1:o<0?0:o;}},foregroundImageWidth:{get(){return void 0===h?(this.dynamicSize-2*this.margin)/4:this.useDynamicSize?this.dynamicSize/this.size*h:h},set(o){h=Number(o);}},foregroundImageHeight:{get(){return void 0===l?(this.dynamicSize-2*this.margin)/4:this.useDynamicSize?this.dynamicSize/this.size*l:l},set(o){l=Number(o);}},foregroundImageX:{get(){return void 0===c?this.dynamicSize/2-this.foregroundImageWidth/2:this.useDynamicSize?this.dynamicSize/this.size*c:c},set(o){c=Number(o);}},foregroundImageY:{get(){return void 0===m?this.dynamicSize/2-this.foregroundImageHeight/2:this.useDynamicSize?this.dynamicSize/this.size*m:m},set(o){m=Number(o);}},foregroundImagePadding:{get(){return this.useDynamicSize?this.dynamicSize/this.size*f:f},set(o){f=Number(o);}},foregroundImageBorderRadius:{get(){return this.useDynamicSize?this.dynamicSize/this.size*p:p},set(o){p=Number(o);}},foregroundImageShadowOffsetX:{get(){return this.useDynamicSize?this.dynamicSize/this.size*C:C},set(o){C=Number(o);}},foregroundImageShadowOffsetY:{get(){return this.useDynamicSize?this.dynamicSize/this.size*k:k},set(o){k=Number(o);}},foregroundImageShadowBlur:{get(){return this.useDynamicSize?this.dynamicSize/this.size*v:v},set(o){v=Number(o);}},foregroundPadding:{get:()=>w,set(o){w=o>1?1:o<0?0:o;}},positionProbeBackgroundColor:{get(){return I||this.backgroundColor},set(o){I=o;}},positionProbeForegroundColor:{get(){return B||this.foregroundColor},set(o){B=o;}},separatorColor:{get(){return S||this.backgroundColor},set(o){S=o;}},positionAdjustBackgroundColor:{get(){return P||this.backgroundColor},set(o){P=o;}},positionAdjustForegroundColor:{get(){return T||this.foregroundColor},set(o){T=o;}},timingBackgroundColor:{get(){return L||this.backgroundColor},set(o){L=o;}},timingForegroundColor:{get(){return D||this.foregroundColor},set(o){D=o;}},typeNumberBackgroundColor:{get(){return E||this.backgroundColor},set(o){E=o;}},typeNumberForegroundColor:{get(){return A||this.foregroundColor},set(o){A=o;}},darkBlockColor:{get(){return N||this.foregroundColor},set(o){N=o;}},canvasContext:{get(){if(void 0===z)throw console.error("[uQRCode]: use drawCanvas, you need to set the canvasContext!"),new y.Error("use drawCanvas, you need to set the canvasContext!");return z},set(o){z=b(o);}}}),y.plugins.forEach((o=>o(y,this,!1))),o&&this.setOptions(o),e&&(this.canvasContext=b(e));}f.prototype={get:function(o){return this.num[o]},getLength:function(){return this.num.length},multiply:function(o){for(var e=new Array(this.getLength()+o.getLength()-1),r=0;r<this.getLength();r++)for(var t=0;t<o.getLength();t++)e[r+t]^=c.gexp(c.glog(this.get(r))+c.glog(o.get(t)));return new f(e,0)},mod:function(o){if(this.getLength()-o.getLength()<0)return this;for(var e=c.glog(this.get(0))-c.glog(o.get(0)),r=new Array(this.getLength()),t=0;t<this.getLength();t++)r[t]=this.get(t);for(t=0;t<o.getLength();t++)r[t]^=c.gexp(c.glog(o.get(t))+e);return new f(r,0).mod(o)}},p.RS_BLOCK_TABLE=[[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],[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]],p.getRSBlocks=function(o,e){var r=p.getRsBlockTable(o,e);if(null==r)throw new Error("bad rs block @ typeNumber:"+o+"/errorCorrectLevel:"+e);for(var t=r.length/3,i=new Array,n=0;n<t;n++)for(var a=r[3*n+0],s=r[3*n+1],u=r[3*n+2],d=0;d<a;d++)i.push(new p(s,u));return i},p.getRsBlockTable=function(o,e){switch(e){case t.L:return p.RS_BLOCK_TABLE[4*(o-1)+0];case t.M:return p.RS_BLOCK_TABLE[4*(o-1)+1];case t.Q:return p.RS_BLOCK_TABLE[4*(o-1)+2];case t.H:return p.RS_BLOCK_TABLE[4*(o-1)+3];default:return}},C.prototype={get:function(o){var e=Math.floor(o/8);return 1==(this.buffer[e]>>>7-o%8&1)},put:function(o,e){for(var r=0;r<e;r++)this.putBit(1==(o>>>e-r-1&1));},getLengthInBits:function(){return this.length},putBit:function(o){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),o&&(this.buffer[e]|=128>>>this.length%8),this.length++;}},e.errorCorrectLevel=t,y.errorCorrectLevel=e.errorCorrectLevel,y.Error=function(o){this.errMsg="[uQRCode]: "+o;},y.plugins=[],y.use=function(o){"function"==typeof o&&y.plugins.push(o);},y.prototype.loadImage=function(o){return Promise.resolve(o)},y.prototype.setOptions=function(o){o&&(Object.keys(o).forEach((e=>{this[e]=o[e];})),function(o={},e={},r=!1){let t;t=r?o:{...o};for(let o in e){var i=e[o];null!=i&&(i.constructor==Object?t[o]=this.deepReplace(t[o],i):i.constructor!=String||i?t[o]=i:t[o]=t[o]);}}(this,{data:o.data||o.text,size:o.size,useDynamicSize:o.useDynamicSize,typeNumber:o.typeNumber,errorCorrectLevel:o.errorCorrectLevel,margin:o.margin,areaColor:o.areaColor,backgroundColor:o.backgroundColor||o.background?.color,backgroundImageSrc:o.backgroundImageSrc||o.background?.image?.src,backgroundImageWidth:o.backgroundImageWidth||o.background?.image?.width,backgroundImageHeight:o.backgroundImageHeight||o.background?.image?.height,backgroundImageX:o.backgroundImageX||o.background?.image?.x,backgroundImageY:o.backgroundImageY||o.background?.image?.y,backgroundImageAlpha:o.backgroundImageAlpha||o.background?.image?.alpha,backgroundImageBorderRadius:o.backgroundImageBorderRadius||o.background?.image?.borderRadius,backgroundPadding:o.backgroundPadding,foregroundColor:o.foregroundColor||o.foreground?.color,foregroundImageSrc:o.foregroundImageSrc||o.foreground?.image?.src,foregroundImageWidth:o.foregroundImageWidth||o.foreground?.image?.width,foregroundImageHeight:o.foregroundImageHeight||o.foreground?.image?.height,foregroundImageX:o.foregroundImageX||o.foreground?.image?.x,foregroundImageY:o.foregroundImageY||o.foreground?.image?.y,foregroundImagePadding:o.foregroundImagePadding||o.foreground?.image?.padding,foregroundImageBackgroundColor:o.foregroundImageBackgroundColor||o.foreground?.image?.backgroundColor,foregroundImageBorderRadius:o.foregroundImageBorderRadius||o.foreground?.image?.borderRadius,foregroundImageShadowOffsetX:o.foregroundImageShadowOffsetX||o.foreground?.image?.shadowOffsetX,foregroundImageShadowOffsetY:o.foregroundImageShadowOffsetY||o.foreground?.image?.shadowOffsetY,foregroundImageShadowBlur:o.foregroundImageShadowBlur||o.foreground?.image?.shadowBlur,foregroundImageShadowColor:o.foregroundImageShadowColor||o.foreground?.image?.shadowColor,foregroundPadding:o.foregroundPadding,positionProbeBackgroundColor:o.positionProbeBackgroundColor||o.positionProbe?.backgroundColor||o.positionDetection?.backgroundColor,positionProbeForegroundColor:o.positionProbeForegroundColor||o.positionProbe?.foregroundColor||o.positionDetection?.foregroundColor,separatorColor:o.separatorColor||o.separator?.color,positionAdjustBackgroundColor:o.positionAdjustBackgroundColor||o.positionAdjust?.backgroundColor||o.alignment?.backgroundColor,positionAdjustForegroundColor:o.positionAdjustForegroundColor||o.positionAdjust?.foregroundColor||o.alignment?.foregroundColor,timingBackgroundColor:o.timingBackgroundColor||o.timing?.backgroundColor,timingForegroundColor:o.timingForegroundColor||o.timing?.foregroundColor,typeNumberBackgroundColor:o.typeNumberBackgroundColor||o.typeNumber?.backgroundColor||o.versionInformation?.backgroundColor,typeNumberForegroundColor:o.typeNumberForegroundColor||o.typeNumber?.foregroundColor||o.versionInformation?.foregroundColor,darkBlockColor:o.darkBlockColor||o.darkBlock?.color},!0));},y.prototype.make=function(){let{foregroundColor:o,backgroundColor:r,typeNumber:t,errorCorrectLevel:i,data:n,size:a,margin:s,useDynamicSize:u}=this;if(o===r)throw console.error("[uQRCode]: foregroundColor and backgroundColor cannot be the same!"),new y.Error("foregroundColor and backgroundColor cannot be the same!");var d=new e(t,i);d.addData(function(o){o=o.toString();for(var e,r="",t=0;t<o.length;t++)(e=o.charCodeAt(t))>=1&&e<=127?r+=o.charAt(t):e>2047?(r+=String.fromCharCode(224|e>>12&15),r+=String.fromCharCode(128|e>>6&63),r+=String.fromCharCode(128|e>>0&63)):(r+=String.fromCharCode(192|e>>6&31),r+=String.fromCharCode(128|e>>0&63));return r}(n)),d.make(),this.base=d,this.typeNumber=d.typeNumber,this.modules=d.modules,this.moduleCount=d.moduleCount,this.dynamicSize=u?Math.ceil((a-2*s)/d.moduleCount)*d.moduleCount+2*s:a,function(o){let{dynamicSize:e,margin:r,backgroundColor:t,backgroundPadding:i,foregroundColor:n,foregroundPadding:a,modules:s,moduleCount:u}=o,d=(e-2*r)/u,g=d,h=0;i>0&&(h=g*i/2,g-=2*h);let l=d,c=0;a>0&&(c=l*a/2,l-=2*c);for(var m=0;m<u;m++)for(var f=0;f<u;f++){var p=f*d+r,C=m*d+r;if(s[m][f]){var b=c,y=p+c,k=C+c,v=l,w=l;s[m][f]={type:["foreground"],color:n,isBlack:!0,isDrawn:!1,destX:p,destY:C,destWidth:d,destHeight:d,x:y,y:k,width:v,height:w,paddingTop:b,paddingRight:b,paddingBottom:b,paddingLeft:b};}else b=h,y=p+h,k=C+h,v=g,w=g,s[m][f]={type:["background"],color:t,isBlack:!1,isDrawn:!1,destX:p,destY:C,destWidth:d,destHeight:d,x:y,y:k,width:v,height:w,paddingTop:b,paddingRight:b,paddingBottom:b,paddingLeft:b};}}(this),function(o){let{modules:e,moduleCount:r,positionProbeBackgroundColor:t,positionProbeForegroundColor:i}=o,n=r-7;[[0,0,1],[1,0,1],[2,0,1],[3,0,1],[4,0,1],[5,0,1],[6,0,1],[0,1,1],[1,1,0],[2,1,0],[3,1,0],[4,1,0],[5,1,0],[6,1,1],[0,2,1],[1,2,0],[2,2,1],[3,2,1],[4,2,1],[5,2,0],[6,2,1],[0,3,1],[1,3,0],[2,3,1],[3,3,1],[4,3,1],[5,3,0],[6,3,1],[0,4,1],[1,4,0],[2,4,1],[3,4,1],[4,4,1],[5,4,0],[6,4,1],[0,5,1],[1,5,0],[2,5,0],[3,5,0],[4,5,0],[5,5,0],[6,5,1],[0,6,1],[1,6,1],[2,6,1],[3,6,1],[4,6,1],[5,6,1],[6,6,1]].forEach((o=>{var r=e[o[0]][o[1]],a=e[o[0]+n][o[1]],s=e[o[0]][o[1]+n];s.type.push("positionProbe"),a.type.push("positionProbe"),r.type.push("positionProbe"),r.color=1==o[2]?i:t,a.color=1==o[2]?i:t,s.color=1==o[2]?i:t;}));}(this),function(o){let{modules:e,moduleCount:r,separatorColor:t}=o;[[7,0],[7,1],[7,2],[7,3],[7,4],[7,5],[7,6],[7,7],[0,7],[1,7],[2,7],[3,7],[4,7],[5,7],[6,7]].forEach((o=>{var i=e[o[0]][o[1]],n=e[r-o[0]-1][o[1]],a=e[o[0]][r-o[1]-1];a.type.push("separator"),n.type.push("separator"),i.type.push("separator"),i.color=t,n.color=t,a.color=t;}));}(this),function(o){let{typeNumber:e,modules:r,moduleCount:t,foregroundColor:i,backgroundColor:n,positionAdjustForegroundColor:a,positionAdjustBackgroundColor:s,timingForegroundColor:u,timingBackgroundColor:d}=o;const g=[[],[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]][e-1];if(g){const o=[[-2,-2,1],[-1,-2,1],[0,-2,1],[1,-2,1],[2,-2,1],[-2,-1,1],[-1,-1,0],[0,-1,0],[1,-1,0],[2,-1,1],[-2,0,1],[-1,0,0],[0,0,1],[1,0,0],[2,0,1],[-2,1,1],[-1,1,0],[0,1,0],[1,1,0],[2,1,1],[-2,2,1],[-1,2,1],[0,2,1],[1,2,1],[2,2,1]],e=g.length;for(let h=0;h<e;h++)for(let l=0;l<e;l++){let{x:e,y:c}={x:g[h],y:g[l]};e<9&&c<9||e>t-9-1&&c<9||c>t-9-1&&e<9||o.forEach((o=>{var t=r[e+o[0]][c+o[1]];t.type.push("positionAdjust"),t.type.includes("timing")?1==o[2]?t.color=a==i?u:a:t.color=a==i&&s==n?d:s:t.color=1==o[2]?a:s;}));}}}(this),function(o){let{modules:e,moduleCount:r,timingForegroundColor:t,timingBackgroundColor:i}=o,n=r-16;for(let o=0;o<n;o++){var a=e[6][8+o],s=e[8+o][6];a.type.push("timing"),s.type.push("timing"),a.color=1&o^1?t:i,s.color=1&o^1?t:i;}}(this),function(o){let{modules:e,moduleCount:r,darkBlockColor:t}=o;var i=e[r-7-1][8];i.type.push("darkBlock"),i.color=t;}(this),function(o){let{typeNumber:e,modules:r,moduleCount:t,typeNumberBackgroundColor:i,typeNumberForegroundColor:n}=o;if(e<7)return r;const a=[0,0,0,0,0,0,0,"000111110010010100","001000010110111100","001001101010011001","001010010011010011","001011101111110110","001100011101100010","001101100001000111","001110011000001101","001111100100101000","010000101101111000","010001010001011101","010010101000010111","010011010100110010","010100100110100110","010101011010000011","010110100011001001","010111011111101100","011000111011000100","011001000111100001","011010111110101011","011011000010001110","011100110000011010","011101001100111111","011110110101110101","011111001001010000","100000100111010101","100001011011110000","100010100010111010","100011011110011111","100100101100001011","100101010000101110","100110101001100100","100111010101000001","101000110001101001"];let s=a[e]+a[e],u=[t-11,t-10,t-9];[[5,u[2]],[5,u[1]],[5,u[0]],[4,u[2]],[4,u[1]],[4,u[0]],[3,u[2]],[3,u[1]],[3,u[0]],[2,u[2]],[2,u[1]],[2,u[0]],[1,u[2]],[1,u[1]],[1,u[0]],[0,u[2]],[0,u[1]],[0,u[0]],[u[2],5],[u[1],5],[u[0],5],[u[2],4],[u[1],4],[u[0],4],[u[2],3],[u[1],3],[u[0],3],[u[2],2],[u[1],2],[u[0],2],[u[2],1],[u[1],1],[u[0],1],[u[2],0],[u[1],0],[u[0],0]].forEach(((o,e)=>{var t=r[o[0]][o[1]];t.type.push("typeNumber"),t.color="1"==s[e]?n:i;}));}(this),this.isMaked=!0;},y.prototype.getDrawModules=function(){let o=[],{modules:e,moduleCount:r,dynamicSize:t,areaColor:i,backgroundImageSrc:n,backgroundImageX:a,backgroundImageY:s,backgroundImageWidth:u,backgroundImageHeight:d,backgroundImageAlpha:g,backgroundImageBorderRadius:h,foregroundImageSrc:l,foregroundImageX:c,foregroundImageY:m,foregroundImageWidth:f,foregroundImageHeight:p,foregroundImagePadding:C,foregroundImageBackgroundColor:b,foregroundImageBorderRadius:y,foregroundImageShadowOffsetX:k,foregroundImageShadowOffsetY:v,foregroundImageShadowBlur:w,foregroundImageShadowColor:I}=this;i&&o.push({name:"area",type:"area",color:i,x:0,y:0,width:t,height:t}),n&&o.push({name:"backgroundImage",type:"image",imageSrc:n,mappingName:"backgroundImageSrc",x:a,y:s,width:u,height:d,alpha:g,borderRadius:h});for(var B=0;B<r;B++)for(var S=0;S<r;S++){var P=e[B][S];P.isDrawn||(P.type.includes("foreground")?o.push({name:"foreground",type:"tile",color:P.color,destX:P.destX,destY:P.destY,destWidth:P.destWidth,destHeight:P.destHeight,x:P.x,y:P.y,width:P.width,height:P.height,paddingTop:P.paddingTop,paddingRight:P.paddingRight,paddingBottom:P.paddingBottom,paddingLeft:P.paddingLeft,rowIndex:B,colIndex:S}):o.push({name:"background",type:"tile",color:P.color,destX:P.destX,destY:P.destY,destWidth:P.destWidth,destHeight:P.destHeight,x:P.x,y:P.y,width:P.width,height:P.height,paddingTop:P.paddingTop,paddingRight:P.paddingRight,paddingBottom:P.paddingBottom,paddingLeft:P.paddingLeft,rowIndex:B,colIndex:S}),P.isDrawn=!0);}return l&&o.push({name:"foregroundImage",type:"image",imageSrc:l,mappingName:"foregroundImageSrc",x:c,y:m,width:f,height:p,padding:C,backgroundColor:b,borderRadius:y,shadowOffsetX:k,shadowOffsetY:v,shadowBlur:w,shadowColor:I}),o},y.prototype.isBlack=function(o,e){var r=this.moduleCount;return !(0>o||0>e||o>=r||e>=r)&&this.modules[o][e].isBlack},y.prototype.drawCanvas=function(){let{isMaked:o,canvasContext:e,useDynamicSize:r,dynamicSize:t,foregroundColor:i,foregroundPadding:n,backgroundColor:a,backgroundPadding:s,drawReserve:u,margin:d}=this;if(!o)return console.error("[uQRCode]: please execute the make method first!"),Promise.reject(new y.Error("please execute the make method first!"));let g=this.getDrawModules(),h=async(o,r)=>{try{e.clearRect(0,0,t,t),e.draw(!1);for(var i=0;i<g.length;i++){var n=g[i];switch(e.save(),n.type){case"area":e.setFillStyle(n.color),e.fillRect(n.x,n.y,n.width,n.height);break;case"tile":var a=n.x,s=n.y,d=n.width,h=n.height;e.beginPath(),e.moveTo(a,s),e.arcTo(a+d,s,a+d,s+h,0),e.arcTo(a+d,s+h,a,s+h,0),e.arcTo(a,s+h,a,s,0),e.arcTo(a,s,a+d,s,0),e.closePath(),e.fillStyle=n.color,e.fill(),e.clip();break;case"image":if("backgroundImage"===n.name){a=n.x,s=n.y,d=n.width,h=n.height;d<2*(c=n.borderRadius)&&(c=d/2),h<2*c&&(c=h/2),e.globalAlpha=n.alpha,e.beginPath(),e.moveTo(a+c,s),e.arcTo(a+d,s,a+d,s+h,c),e.arcTo(a+d,s+h,a,s+h,c),e.arcTo(a,s+h,a,s,c),e.arcTo(a,s,a+d,s,c),e.closePath(),e.strokeStyle="rgba(0,0,0,0)",e.stroke(),e.clip();try{var l=await this.loadImage(n.imageSrc);e.drawImage(l,n.x,n.y,n.width,n.height);}catch(o){throw console.error(`[uQRCode]: ${n.mappingName} invalid!`),new y.Error(`${n.mappingName} invalid!`)}}else if("foregroundImage"===n.name){var c;a=n.x,s=n.y,d=n.width,h=n.height;d<2*(c=n.borderRadius)&&(c=d/2),h<2*c&&(c=h/2);var m=n.x-n.padding,f=n.y-n.padding,p=n.width+2*n.padding,C=n.height+2*n.padding,b=p/d*c;p<2*b&&(b=p/2),C<2*b&&(b=C/2),e.save(),e.shadowOffsetX=n.shadowOffsetX,e.shadowOffsetY=n.shadowOffsetY,e.shadowBlur=n.shadowBlur,e.shadowColor=n.shadowColor,e.beginPath(),e.moveTo(m+b,f),e.arcTo(m+p,f,m+p,f+C,b),e.arcTo(m+p,f+C,m,f+C,b),e.arcTo(m,f+C,m,f,b),e.arcTo(m,f,m+p,f,b),e.closePath(),e.setFillStyle(n.backgroundColor),e.fill(),e.restore(),e.beginPath(),e.moveTo(m+b,f),e.arcTo(m+p,f,m+p,f+C,b),e.arcTo(m+p,f+C,m,f+C,b),e.arcTo(m,f+C,m,f,b),e.arcTo(m,f,m+p,f,b),e.closePath(),e.setFillStyle(n.padding>0?n.backgroundColor:"rgba(0,0,0,0)"),e.fill(),e.beginPath(),e.moveTo(a+c,s),e.arcTo(a+d,s,a+d,s+h,c),e.arcTo(a+d,s+h,a,s+h,c),e.arcTo(a,s+h,a,s,c),e.arcTo(a,s,a+d,s,c),e.closePath(),e.strokeStyle="rgba(0,0,0,0)",e.stroke(),e.clip();try{l=await this.loadImage(n.imageSrc);e.drawImage(l,n.x,n.y,n.width,n.height);}catch(o){throw console.error(`[uQRCode]: ${n.mappingName} invalid!`),new y.Error(`${n.mappingName} invalid!`)}}}u&&e.draw(!0),e.restore();}e.draw(!0),setTimeout(o,150);}catch(o){if(!(o instanceof y.Error))throw o;r(o);}};return new Promise(((o,e)=>{h(o,e);}))},y.prototype.draw=function(){return this.drawCanvas()},y.prototype.register=function(o){o&&o(y,this,!0);};export{y as default};
|