tav-ui
Version:
1 lines • 2.4 kB
Source Map (JSON)
{"version":3,"file":"drawCanvas2.mjs","sources":["../../../../../../../packages/components/qr-code/src/drawCanvas.ts"],"sourcesContent":["import { cloneDeep } from 'lodash-es'\nimport { toCanvas } from 'qrcode'\nimport type { ContentType, QRCodeRenderersOptions, RenderQrCodeParams } from './typing'\n\nexport const renderQrCode = ({\n canvas,\n content,\n width = 0,\n options: params = {},\n}: RenderQrCodeParams) => {\n const options = cloneDeep(params)\n // 容错率,默认对内容少的二维码采用高容错率,内容多的二维码采用低容错率\n options.errorCorrectionLevel = options.errorCorrectionLevel || getErrorCorrectionLevel(content)\n\n return getOriginWidth(content, options).then((_width: number) => {\n options.scale = width === 0 ? undefined : (width / _width) * 4\n return toCanvas(canvas, content, options)\n })\n}\n\n// 得到原QrCode的大小,以便缩放得到正确的QrCode大小\nfunction getOriginWidth(content: ContentType, options: QRCodeRenderersOptions) {\n const _canvas = document.createElement('canvas')\n return toCanvas(_canvas, content, options).then(() => _canvas.width)\n}\n\n// 对于内容少的QrCode,增大容错率\nfunction getErrorCorrectionLevel(content: ContentType) {\n if (content.length > 36) {\n return 'M'\n } else if (content.length > 16) {\n return 'Q'\n } else {\n return 'H'\n }\n}\n"],"names":[],"mappings":";;;AAEY,MAAC,YAAY,GAAG,CAAC;AAC7B,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAE,KAAK,GAAG,CAAC;AACX,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE;AACtB,CAAC,KAAK;AACN,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAClG,EAAE,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3D,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;AAC9D,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC;AACL,EAAE;AACF,SAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1C,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnD,EAAE,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AACD,SAAS,uBAAuB,CAAC,OAAO,EAAE;AAC1C,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE;AAC3B,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE;AAClC,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,MAAM;AACT,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;;;;"}