ngx-kjua
Version:
Angular QR-Code generator component.
1 lines • 63.8 kB
Source Map (JSON)
{"version":3,"file":"ngx-kjua.mjs","sources":["../../../projects/ngx-kjua/src/lib/kjua/lib/dom.ts","../../../projects/ngx-kjua/src/lib/kjua/lib/draw_mode.ts","../../../projects/ngx-kjua/src/lib/kjua/lib/draw_rounded.ts","../../../projects/ngx-kjua/src/lib/kjua/lib/create_canvas_qrcode.ts","../../../projects/ngx-kjua/src/lib/kjua/lib/create_svg_qrcode.ts","../../../projects/ngx-kjua/src/lib/kjua/lib/defaults.ts","../../../projects/ngx-kjua/src/lib/kjua/lib/qrcode.ts","../../../projects/ngx-kjua/src/lib/kjua/index.ts","../../../projects/ngx-kjua/src/lib/ngx-kjua.component.ts","../../../projects/ngx-kjua/src/lib/qr-code.helper.ts","../../../projects/ngx-kjua/src/public-api.ts","../../../projects/ngx-kjua/src/ngx-kjua.ts"],"sourcesContent":["const win = window; // eslint-disable-line no-undef\nconst doc = win.document;\nexport const dpr = win.devicePixelRatio || 1;\n\nexport const SVG_NS = \"http://www.w3.org/2000/svg\";\n\nexport const get_attr = (el: any, key: any) => el.getAttribute(key);\nexport const set_attrs = (el: any, obj: any) => {\n Object.keys(obj || {}).forEach((key) => {\n el.setAttribute(key, obj[key]);\n });\n return el;\n};\n\nexport const create_el = (name: any, obj: any) =>\n set_attrs(doc.createElement(name), obj);\nexport const create_svg_el = (name: any, obj: any) =>\n set_attrs(doc.createElementNS(SVG_NS, name), obj);\n\nexport const create_canvas = (size: any, ratio: any) => {\n const canvas = create_el(\"canvas\", {\n width: size * ratio,\n height: size * ratio,\n });\n canvas.style.width = `${size}px`;\n canvas.style.height = `${size}px`;\n return canvas;\n};\n\nexport const canvas_to_img = (canvas: any, elementId: any) => {\n const img = create_el(\"img\", {\n crossOrigin: \"anonymous\",\n src: canvas.toDataURL(\"image/png\"),\n width: get_attr(canvas, \"width\"),\n height: get_attr(canvas, \"height\"),\n id: elementId,\n });\n img.style.width = canvas.style.width;\n img.style.height = canvas.style.height;\n return img;\n};\n\nexport const calc_image_pos = (settings: any) => {\n let mSize = settings.mSize;\n let mPosX = settings.mPosX;\n let mPosY = settings.mPosY;\n let arrayPos = 0;\n if (settings.mode === \"labelimage\") {\n arrayPos = 1;\n }\n if (Array.isArray(settings.mSize)) {\n mSize = settings.mSize[arrayPos];\n }\n if (Array.isArray(settings.mPosX)) {\n mPosX = settings.mPosX[arrayPos];\n }\n if (Array.isArray(settings.mPosY)) {\n mPosY = settings.mPosY[arrayPos];\n }\n const size = settings.size;\n const w = settings.image.naturalWidth || 1;\n const h = settings.image.naturalHeight || 1;\n const sh = mSize * 0.01;\n const sw = (sh * w) / h;\n const sl = (1 - sw) * mPosX * 0.01;\n const st = (1 - sh) * mPosY * 0.01;\n const x = sl * size;\n const y = st * size;\n const iw = sw * size;\n const ih = sh * size;\n return { x, y, iw, ih };\n};\n","import { calc_image_pos } from \"./dom\";\n\nconst draw_label = (ctx: any, settings: any) => {\n let mSize = settings.mSize;\n let mPosX = settings.mPosX;\n let mPosY = settings.mPosY;\n let arrayPos = 0;\n if (settings.mode === \"imagelabel\") {\n arrayPos = 1;\n }\n if (Array.isArray(settings.mSize)) {\n mSize = settings.mSize[arrayPos];\n }\n if (Array.isArray(settings.mPosX)) {\n mPosX = settings.mPosX[arrayPos];\n }\n if (Array.isArray(settings.mPosY)) {\n mPosY = settings.mPosY[arrayPos];\n }\n\n const size = settings.size;\n const font = \"bold \" + mSize * 0.01 * size + \"px \" + settings.fontname;\n\n ctx.strokeStyle = settings.back;\n ctx.lineWidth = mSize * 0.01 * size * 0.1;\n ctx.fillStyle = settings.fontcolor;\n ctx.font = font;\n\n const w = ctx.measureText(settings.label).width;\n const sh = mSize * 0.01;\n const sw = w / size;\n const sl = (1 - sw) * mPosX * 0.01;\n const st = (1 - sh) * mPosY * 0.01;\n const x = sl * size;\n const y = st * size + 0.75 * mSize * 0.01 * size;\n\n ctx.strokeText(settings.label, x, y);\n ctx.fillText(settings.label, x, y);\n};\n\nconst draw_image = (ctx: any, settings: any) => {\n const imagePos = calc_image_pos(settings);\n if (settings.imageAsCode) {\n ctx.drawImage(settings.image, 0, 0, settings.size, settings.size);\n } else {\n ctx.drawImage(\n settings.image,\n imagePos.x,\n imagePos.y,\n imagePos.iw,\n imagePos.ih\n );\n }\n};\n\nexport const draw_mode = (ctx: any, settings: any) => {\n const mode = settings.mode;\n if (mode === \"label\") {\n draw_label(ctx, settings);\n } else if (mode === \"image\") {\n draw_image(ctx, settings);\n } else if (mode === \"labelimage\") {\n draw_label(ctx, settings);\n draw_image(ctx, settings);\n } else if (mode === \"imagelabel\") {\n draw_image(ctx, settings);\n draw_label(ctx, settings);\n } else if (mode === \"clearimage\") {\n // We set the mode to \"labelimage\" here. this will change to behavior of calc_image_pos() to use\n // the arrayposition 1 (that means, the second position in the pos-array is used for drawing the image.\n // the first position in the pos-array is used for clearing the background via \"destination-out\").\n // We can't just change the calc_image_pos() to use arrayposition 1 in the case of clearimage as we\n // call this function as well to calculate the area to be cleared\n draw_image(ctx, {...settings, mode: \"labelimage\"});\n }\n};\n","const create_draw_ctx = (ctx: any) => {\n return {\n m(x: any, y: any) {\n ctx.moveTo(x, y);\n return this;\n },\n l(x: any, y: any) {\n ctx.lineTo(x, y);\n return this;\n },\n a(...args: any) {\n ctx.arcTo(...args);\n return this;\n },\n };\n};\n\nconst draw_dark = (\n ctx: any,\n l: any,\n t: any,\n r: any,\n b: any,\n rad: any,\n nw: any,\n ne: any,\n se: any,\n sw: any\n) => {\n if (nw) {\n ctx.m(l + rad, t);\n } else {\n ctx.m(l, t);\n }\n\n if (ne) {\n ctx.l(r - rad, t).a(r, t, r, b, rad);\n } else {\n ctx.l(r, t);\n }\n\n if (se) {\n ctx.l(r, b - rad).a(r, b, l, b, rad);\n } else {\n ctx.l(r, b);\n }\n\n if (sw) {\n ctx.l(l + rad, b).a(l, b, l, t, rad);\n } else {\n ctx.l(l, b);\n }\n\n if (nw) {\n ctx.l(l, t + rad).a(l, t, r, t, rad);\n } else {\n ctx.l(l, t);\n }\n};\n\nexport const draw_light = (\n ctx: any,\n l: any,\n t: any,\n r: any,\n b: any,\n rad: any,\n nw: any,\n ne: any,\n se: any,\n sw: any\n) => {\n if (nw) {\n ctx\n .m(l + rad, t)\n .l(l, t)\n .l(l, t + rad)\n .a(l, t, l + rad, t, rad);\n }\n\n if (ne) {\n ctx\n .m(r - rad, t)\n .l(r, t)\n .l(r, t + rad)\n .a(r, t, r - rad, t, rad);\n }\n\n if (se) {\n ctx\n .m(r - rad, b)\n .l(r, b)\n .l(r, b - rad)\n .a(r, b, r - rad, b, rad);\n }\n\n if (sw) {\n ctx\n .m(l + rad, b)\n .l(l, b)\n .l(l, b - rad)\n .a(l, b, l + rad, b, rad);\n }\n};\n\nexport const draw_module_rounded = (\n qr: any,\n ctx: any,\n settings: any,\n width: any,\n row: any,\n col: any\n) => {\n const left = col * width;\n const top = row * width;\n const right = left + width;\n const bottom = top + width;\n const radius = settings.rounded * 0.005 * width;\n\n const is_dark = qr.is_dark;\n const row_n = row - 1;\n const row_s = row + 1;\n const col_w = col - 1;\n const col_e = col + 1;\n const dark_center = is_dark(row, col);\n const dark_nw = is_dark(row_n, col_w);\n const dark_n = is_dark(row_n, col);\n const dark_ne = is_dark(row_n, col_e);\n const dark_e = is_dark(row, col_e);\n const dark_se = is_dark(row_s, col_e);\n const dark_s = is_dark(row_s, col);\n const dark_sw = is_dark(row_s, col_w);\n const dark_w = is_dark(row, col_w);\n\n const draw_ctx = create_draw_ctx(ctx);\n if (dark_center) {\n draw_dark(\n draw_ctx,\n left,\n top,\n right,\n bottom,\n radius,\n !dark_n && !dark_w,\n !dark_n && !dark_e,\n !dark_s && !dark_e,\n !dark_s && !dark_w\n );\n } else {\n draw_light(\n draw_ctx,\n left,\n top,\n right,\n bottom,\n radius,\n dark_n && dark_w && dark_nw,\n dark_n && dark_e && dark_ne,\n dark_s && dark_e && dark_se,\n dark_s && dark_w && dark_sw\n );\n }\n};\n","import * as dom from \"./dom\";\nimport { draw_mode } from \"./draw_mode\";\nimport { draw_module_rounded } from \"./draw_rounded\";\n\nconst draw_background = (ctx: any, settings: any) => {\n if (settings.back) {\n ctx.fillStyle = settings.back;\n ctx.fillRect(0, 0, settings.size, settings.size);\n }\n};\n\nconst draw_module_default = (\n qr: any,\n ctx: any,\n settings: any,\n width: any,\n row: any,\n col: any\n) => {\n if (qr.is_dark(row, col)) {\n ctx.rect(col * width, row * width, width, width);\n }\n};\n\nexport const draw_modules = (qr: any, ctx: any, settings: any) => {\n if (!qr) {\n return;\n }\n\n const draw_module =\n settings.rounded > 0 && settings.rounded <= 100\n ? draw_module_rounded\n : draw_module_default;\n const mod_count = qr.module_count;\n\n let mod_size = settings.size / mod_count;\n let offset = 0;\n if (settings.crisp) {\n mod_size = Math.floor(mod_size);\n offset = Math.floor((settings.size - mod_size * mod_count) / 2);\n }\n\n ctx.translate(offset, offset);\n ctx.beginPath();\n for (let row = 0; row < mod_count; row += 1) {\n for (let col = 0; col < mod_count; col += 1) {\n draw_module(qr, ctx, settings, mod_size, row, col);\n }\n }\n ctx.fillStyle = settings.fill;\n ctx.fill();\n ctx.translate(-offset, -offset);\n};\n\nconst draw = (qr: any, ctx: any, settings: any) => {\n draw_background(ctx, settings);\n draw_modules(qr, ctx, settings);\n if (settings.mode !== \"clearimage\") {\n // we do this later manually\n draw_mode(ctx, settings);\n }\n};\n\nexport const create_canvas_qrcode = (qr: any, settings: any, as_image: any) => {\n const ratio = settings.ratio || dom.dpr;\n const canvas = dom.create_canvas(settings.size, ratio);\n const context = canvas.getContext(\"2d\");\n\n if (settings.imageAsCode) {\n const canvas = dom.create_canvas(settings.size, ratio);\n const ctx2 = canvas.getContext(\"2d\");\n draw_modules(qr, ctx2, settings);\n const imagePos = dom.calc_image_pos(settings);\n ctx2.globalCompositeOperation = \"source-in\";\n ctx2.drawImage(\n settings.image,\n imagePos.x,\n imagePos.y,\n imagePos.iw,\n imagePos.ih\n );\n settings = Object.assign({}, settings, { image: ctx2.canvas });\n }\n\n context.scale(ratio, ratio);\n draw(qr, context, settings);\n if (settings.mode === \"clearimage\") {\n // draw_modules(qr, ctx2, settings);\n const imagePos = dom.calc_image_pos(settings);\n context.globalCompositeOperation = \"destination-out\";\n context.fillStyle = \"deeppink\"; // any color works\n context.fillRect(imagePos.x,\n imagePos.y,\n imagePos.iw,\n imagePos.ih);\n context.globalCompositeOperation = \"source-over\";\n draw_mode(context, settings);\n }\n return as_image ? dom.canvas_to_img(canvas, settings.elementId) : canvas;\n};\n","import { draw_modules } from \"./create_canvas_qrcode\";\nimport {\n SVG_NS,\n calc_image_pos,\n create_canvas,\n create_svg_el,\n dpr,\n get_attr,\n} from \"./dom\";\n\nconst create_draw_ctx = (ctx: any) => {\n const rnd = (x: any) => Math.round(x * 10) / 10;\n const rndo = (x: any) => Math.round(x * 10) / 10 + ctx.o;\n return {\n m(x: any, y: any) {\n ctx.p += `M ${rndo(x)} ${rndo(y)} `;\n return this;\n },\n l(x: any, y: any) {\n ctx.p += `L ${rndo(x)} ${rndo(y)} `;\n return this;\n },\n a(x: any, y: any, rad: any) {\n ctx.p += `A ${rnd(rad)} ${rnd(rad)} 0 0 1 ${rndo(x)} ${rndo(y)} `;\n return this;\n },\n };\n};\n\nconst draw_dark = (\n ctx: any,\n l: any,\n t: any,\n r: any,\n b: any,\n rad: any,\n nw: any,\n ne: any,\n se: any,\n sw: any\n) => {\n if (nw) {\n ctx.m(l + rad, t);\n } else {\n ctx.m(l, t);\n }\n\n if (ne) {\n ctx.l(r - rad, t).a(r, t + rad, rad);\n } else {\n ctx.l(r, t);\n }\n\n if (se) {\n ctx.l(r, b - rad).a(r - rad, b, rad);\n } else {\n ctx.l(r, b);\n }\n\n if (sw) {\n ctx.l(l + rad, b).a(l, b - rad, rad);\n } else {\n ctx.l(l, b);\n }\n\n if (nw) {\n ctx.l(l, t + rad).a(l + rad, t, rad);\n } else {\n ctx.l(l, t);\n }\n};\n\nconst draw_light = (\n ctx: any,\n l: any,\n t: any,\n r: any,\n b: any,\n rad: any,\n nw: any,\n ne: any,\n se: any,\n sw: any\n) => {\n if (nw) {\n ctx\n .m(l + rad, t)\n .l(l, t)\n .l(l, t + rad)\n .a(l + rad, t, rad);\n }\n\n if (ne) {\n ctx\n .m(r, t + rad)\n .l(r, t)\n .l(r - rad, t)\n .a(r, t + rad, rad);\n }\n\n if (se) {\n ctx\n .m(r - rad, b)\n .l(r, b)\n .l(r, b - rad)\n .a(r - rad, b, rad);\n }\n\n if (sw) {\n ctx\n .m(l, b - rad)\n .l(l, b)\n .l(l + rad, b)\n .a(l, b - rad, rad);\n }\n};\n\nconst draw_mod = (\n qr: any,\n ctx: any,\n settings: any,\n width: any,\n row: any,\n col: any\n) => {\n const left = col * width;\n const top = row * width;\n const right = left + width;\n const bottom = top + width;\n const radius = settings.rounded * 0.005 * width;\n\n const is_dark = qr.is_dark;\n const row_n = row - 1;\n const row_s = row + 1;\n const col_w = col - 1;\n const col_e = col + 1;\n const dark_center = is_dark(row, col);\n const dark_nw = is_dark(row_n, col_w);\n const dark_n = is_dark(row_n, col);\n const dark_ne = is_dark(row_n, col_e);\n const dark_e = is_dark(row, col_e);\n const dark_se = is_dark(row_s, col_e);\n const dark_s = is_dark(row_s, col);\n const dark_sw = is_dark(row_s, col_w);\n const dark_w = is_dark(row, col_w);\n\n if (dark_center) {\n draw_dark(\n ctx,\n left,\n top,\n right,\n bottom,\n radius,\n !dark_n && !dark_w,\n !dark_n && !dark_e,\n !dark_s && !dark_e,\n !dark_s && !dark_w\n );\n } else {\n draw_light(\n ctx,\n left,\n top,\n right,\n bottom,\n radius,\n dark_n && dark_w && dark_nw,\n dark_n && dark_e && dark_ne,\n dark_s && dark_e && dark_se,\n dark_s && dark_w && dark_sw\n );\n }\n};\n\nconst create_path = (qr: any, settings: any) => {\n if (!qr) {\n return \"\";\n }\n\n const ctx = { p: \"\", o: 0 };\n const mod_count = qr.module_count;\n let mod_size = settings.size / mod_count;\n if (settings.crisp) {\n mod_size = Math.floor(mod_size);\n ctx.o = Math.floor((settings.size - mod_size * mod_count) / 2);\n }\n\n const draw_ctx = create_draw_ctx(ctx);\n for (let row = 0; row < mod_count; row += 1) {\n for (let col = 0; col < mod_count; col += 1) {\n draw_mod(qr, draw_ctx, settings, mod_size, row, col);\n }\n }\n\n return ctx.p;\n};\n\nconst add_label = (el: any, settings: any) => {\n let mSize = settings.mSize;\n let mPosX = settings.mPosX;\n let mPosY = settings.mPosY;\n let arrayPos = 0;\n if (settings.mode === \"imagelabel\") {\n arrayPos = 1;\n }\n if (Array.isArray(settings.mSize)) {\n mSize = settings.mSize[arrayPos];\n }\n if (Array.isArray(settings.mPosX)) {\n mPosX = settings.mPosX[arrayPos];\n }\n if (Array.isArray(settings.mPosY)) {\n mPosY = settings.mPosY[arrayPos];\n }\n\n const size = settings.size;\n const font = \"bold \" + mSize * 0.01 * size + \"px \" + settings.fontname;\n\n const ratio = settings.ratio || dpr;\n const ctx = create_canvas(size, ratio).getContext(\"2d\");\n ctx.strokeStyle = settings.back;\n ctx.lineWidth = mSize * 0.01 * size * 0.1;\n ctx.fillStyle = settings.fontcolor;\n ctx.font = font;\n const w = ctx.measureText(settings.label).width;\n\n const sh = mSize * 0.01;\n const sw = w / size;\n const sl = (1 - sw) * mPosX * 0.01;\n const st = (1 - sh) * mPosY * 0.01;\n const x = sl * size;\n const y = st * size + 0.75 * mSize * 0.01 * size;\n\n const text_el = create_svg_el(\"text\", {\n x,\n y,\n });\n Object.assign(text_el.style, {\n font,\n fill: settings.fontcolor,\n \"paint-order\": \"stroke\",\n stroke: settings.back,\n \"stroke-width\": ctx.lineWidth,\n });\n\n text_el.textContent = settings.label;\n el.appendChild(text_el);\n};\n\nconst add_image = (el: any, settings: any) => {\n let img_el;\n if (settings.imageAsCode) {\n img_el = create_svg_el(\"image\", {\n href: settings.image,\n x: 0,\n y: 0,\n width: settings.size,\n height: settings.size,\n });\n } else {\n const imagePos = calc_image_pos(settings);\n img_el = create_svg_el(\"image\", {\n href: settings.image,\n x: imagePos.x,\n y: imagePos.y,\n width: imagePos.iw,\n height: imagePos.ih,\n });\n }\n el.appendChild(img_el);\n};\n\nexport const create_svg_qrcode = (qr: any, settings: any) => {\n const size = settings.size;\n const mode = settings.mode;\n\n const svg_el = create_svg_el(\"svg\", {\n xmlns: SVG_NS,\n width: size,\n height: size,\n viewBox: `0 0 ${size} ${size}`,\n });\n svg_el.style.width = `${size}px`;\n svg_el.style.height = `${size}px`;\n svg_el.setAttribute(\"title\", settings.text);\n if (!!settings.elementId) {\n svg_el.setAttribute(\"id\", settings.elementId);\n }\n\n if (settings.back) {\n svg_el.appendChild(\n create_svg_el(\"rect\", {\n x: 0,\n y: 0,\n width: size,\n height: size,\n fill: settings.back,\n })\n );\n }\n\n svg_el.appendChild(\n create_svg_el(\"path\", {\n d: create_path(qr, settings),\n fill: settings.fill,\n })\n );\n\n if (settings.image) {\n if (settings.imageAsCode) {\n const ratio = settings.ratio || dpr;\n const canvas = create_canvas(settings.size, ratio);\n const ctx2 = canvas.getContext(\"2d\");\n draw_modules(qr, ctx2, settings);\n const imagePos = calc_image_pos(settings);\n ctx2.globalCompositeOperation = \"source-in\";\n ctx2.drawImage(\n settings.image,\n imagePos.x,\n imagePos.y,\n imagePos.iw,\n imagePos.ih\n );\n settings = Object.assign({}, settings, {\n image: ctx2.canvas.toDataURL(),\n });\n } else {\n settings = Object.assign({}, settings, {\n image: get_attr(settings.image, \"src\"),\n });\n }\n\n if (settings.mode === \"clearimage\") {\n const ratio = settings.ratio || dpr;\n const canvas = create_canvas(settings.size, ratio);\n const ctx2 = canvas.getContext(\"2d\");\n const imagePos = calc_image_pos(settings);\n ctx2.globalCompositeOperation = \"destination-in\";\n ctx2.fillStyle = \"deeppink\";\n ctx2.fillRect(imagePos.x,\n imagePos.y,\n imagePos.iw,\n imagePos.ih)\n }\n }\n if (mode === \"label\") {\n add_label(svg_el, settings);\n } else if (mode === \"image\") {\n add_image(svg_el, settings);\n } else if (mode === \"labelimage\") {\n add_label(svg_el, settings);\n add_image(svg_el, settings);\n } else if (mode === \"imagelabel\") {\n add_image(svg_el, settings);\n add_label(svg_el, settings);\n } else if (mode === \"clearimage\") {\n // We set the mode to \"labelimage\" here. this will change to behavior of calc_image_pos() to use\n // the arrayposition 1 (that means, the second position in the pos-array is used for drawing the image.\n // the first position in the pos-array is used for clearing the background via \"destination-out\").\n // We can't just change the calc_image_pos() to use arrayposition 1 in the case of clearimage as we\n // call this function as well to calculate the area to be cleared\n add_image(svg_el, {...settings, mode: \"labelimage\"});\n }\n\n return svg_el;\n};\n","export const defaults = {\n // render method: 'canvas' or 'image' or 'svg'\n render: \"svg\",\n\n // render pixel-perfect lines\n crisp: true,\n\n // minimum version: 1..40\n minVersion: 1,\n\n // error correction level: 'L', 'M', 'Q' or 'H'\n ecLevel: \"L\",\n\n // size in pixel\n size: 200,\n\n // pixel-ratio, null for devicePixelRatio\n ratio: null,\n\n // code color\n fill: \"#333\",\n\n // background color\n back: \"#fff\",\n\n // content\n text: \"\",\n\n // rounded corners in pc: 0..100\n rounded: 0,\n\n // quiet zone in modules\n quiet: 0,\n\n // modes: 'plain', 'label', 'image', 'imagelabel' or 'labelimage'\n mode: \"plain\",\n\n // label/image size and pos in pc: 0..100\n mSize: 30,\n mPosX: 50,\n mPosY: 50,\n\n // label\n label: \"\",\n fontname: \"sans\",\n fontcolor: \"#333\",\n fontoutline: true,\n\n // image element\n image: null,\n\n // draw the image as part of the code\n imageAsCode: false,\n\n elementId: null,\n};\n","const RE_CODE_LENGTH_OVERFLOW = /code length overflow/i;\n\nimport qrcode from \"qrcode-generator\";\nqrcode.stringToBytes = qrcode.stringToBytesFuncs[\"UTF-8\"];\n\nconst min_qrcode = (\n text: string,\n level: ErrorCorrectionLevel,\n min_ver: TypeNumber = 1\n) => {\n min_ver = Math.max(1, min_ver) as TypeNumber;\n\n for (let version = min_ver; version <= 40; version += 1) {\n try {\n const qr = qrcode(version, level);\n qr.addData(text);\n qr.make();\n const module_count = qr.getModuleCount();\n const is_dark = (row: any, col: any) => {\n return (\n row >= 0 &&\n row < module_count &&\n col >= 0 &&\n col < module_count &&\n qr.isDark(row, col)\n );\n };\n return { text, level, version, module_count, is_dark };\n } catch (err) {\n if (!(version < 40 && RE_CODE_LENGTH_OVERFLOW.test(err as string))) {\n throw new Error(err as string);\n }\n }\n }\n return null;\n};\n\nexport const quiet_qrcode = (\n text = \"\",\n level: ErrorCorrectionLevel = \"L\",\n min_ver: TypeNumber = 1,\n quiet = 0\n) => {\n const qr = min_qrcode(text, level, min_ver);\n if (qr) {\n const prev_is_dark = qr.is_dark;\n qr.module_count += 2 * quiet;\n qr.is_dark = (row, col) => prev_is_dark(row - quiet, col - quiet);\n }\n return qr;\n};\n","import { create_canvas_qrcode } from \"./lib/create_canvas_qrcode\";\nimport { create_svg_qrcode } from \"./lib/create_svg_qrcode\";\nimport { defaults } from \"./lib/defaults\";\nimport { quiet_qrcode } from \"./lib/qrcode\";\n\nexport const kjua = (options: any): any => {\n const settings = Object.assign({}, defaults, options);\n const qr = quiet_qrcode(\n settings.text,\n settings.ecLevel,\n settings.minVersion,\n settings.quiet\n );\n\n if (typeof settings.image === \"string\") {\n const image = new Image();\n image.src = \"data:image/png;base64,\" + settings.image;\n image.crossOrigin = \"anonymous\";\n settings.image = image;\n }\n if (settings.render === \"svg\") {\n return create_svg_qrcode(qr, settings);\n }\n return create_canvas_qrcode(qr, settings, settings.render === \"image\");\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n booleanAttribute,\n} from \"@angular/core\";\nimport {kjua} from \"./kjua/index\";\nimport {KjuaEcLevel, KjuaMode, KjuaRender} from \"./ngx-kjua.interface\";\nimport {KjuaOptions} from \"./kjua/lib/kjua-options\";\n\n@Component({\n standalone: true,\n selector: \"ngx-kjua\",\n template: `<div [class]=\"cssClass\" #elem></div>`,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxKjuaComponent implements AfterViewInit, OnChanges {\n /**\n * render method\n */\n @Input()\n render: KjuaRender = \"svg\";\n\n /**\n * render pixel-perfect lines\n */\n @Input()\n crisp = true;\n\n /**\n * minimum version= 1..40\n */\n @Input()\n minVersion = 1;\n\n /**\n * error correction level\n */\n @Input()\n ecLevel: KjuaEcLevel = \"L\";\n\n /**\n * size in pixel\n */\n\n @Input() size: string | number = 200;\n\n /**\n * pixel-ratio; undefined for devicePixelRatio\n */\n @Input()\n ratio: number | null | undefined = undefined;\n\n /**\n * code color\n */\n @Input()\n fill = \"#333\";\n\n /**\n * background color\n */\n @Input()\n back = \"#fff\";\n\n /**\n * content\n */\n private _text = \"\";\n @Input() set text(value: any) {\n if (String(value)) this._text = value;\n else if (Number(value)) this._text = value.toString();\n else this._text = \"\";\n }\n\n /**\n * rounded corners in pc= 0..100\n */\n @Input()\n rounded = 0;\n\n /**\n * quiet zone in modules\n */\n @Input()\n quiet = 0;\n\n /**\n * modes\n */\n @Input()\n mode: KjuaMode = \"plain\";\n\n /**\n * label/image size and pos in pc= 0..100\n */\n @Input()\n mSize: number | number[] = 30;\n @Input()\n mPosX: number | number[] = 50;\n @Input()\n mPosY: number | number[] = 50;\n @Input()\n image: null | undefined | HTMLImageElement | string = undefined;\n @Input({ transform: booleanAttribute })\n imageAsCode = false;\n\n /**\n * label\n */\n @Input()\n label = \"\";\n @Input()\n fontname = \"sans-serif\";\n @Input()\n fontcolor = \"#333\";\n @Input()\n fontoutline = true;\n\n /**\n * If true, rendering is done inside \"requestAnimationFrame\"-call.\n * Use this if you want to generate more than one code (e.g. batch)\n */\n @Input({ transform: booleanAttribute })\n renderAsync = false;\n\n /**\n * If set, this css-class will be appended to the div-container that contains\n * the qr-code (which is either an img or a canvas)\n */\n @Input()\n cssClass: string | undefined;\n\n /**\n * an optional HTML-ID-attribute for the element (works only with render-mode SVG and image)\n */\n @Input()\n elementId: string | undefined;\n\n @Output()\n codeFinished = new EventEmitter<any>();\n\n @ViewChild(\"elem\", { static: true }) div!: ElementRef<HTMLElement>;\n\n private viewInitialized = false;\n\n constructor() {}\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n this.updateView();\n }\n\n ngOnChanges(_changes: SimpleChanges): void {\n if (this.viewInitialized) {\n this.updateView();\n }\n }\n\n get template(): Node {\n const settings: KjuaOptions = {\n render: this.render,\n crisp: this.crisp,\n minVersion: this.minVersion,\n ecLevel: this.ecLevel,\n size: +this.size,\n ratio: this.ratio,\n fill: this.fill,\n back: this.back,\n text: this._text,\n rounded: this.rounded,\n quiet: this.quiet,\n mode: this.mode,\n mSize: this.mSize,\n mPosX: this.mPosX,\n mPosY: this.mPosY,\n label: this.label,\n fontname: this.fontname,\n fontcolor: this.fontcolor,\n image: this.image,\n fontoutline: this.fontoutline,\n imageAsCode: this.imageAsCode,\n elementId: this.elementId,\n };\n return kjua(settings);\n }\n\n renderCode() {\n this.div.nativeElement.innerHTML = \"\";\n const node = this.template;\n this.div.nativeElement.appendChild(node);\n this.codeFinished.next(node);\n }\n\n updateView() {\n this.div.nativeElement.style.width = this.size.toString() + \"px\";\n this.div.nativeElement.style.height = this.size.toString() + \"px\";\n\n if (typeof this.image === \"string\") {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onload = () => {\n if (this.renderAsync) {\n requestAnimationFrame(() => this.renderCode());\n } else {\n this.renderCode();\n }\n };\n img.src = \"data:image/png;base64,\" + this.image;\n } else {\n if (this.renderAsync) {\n requestAnimationFrame(() => this.renderCode());\n } else {\n this.renderCode();\n }\n }\n }\n}\n","export class QrCodeHelper {\n\n /**\n * Make the code for creating an SMS.\n * Number can be provided as number or string (useful for international format e.g. +1 for USA)\n *\n * @paramnumber\n * @param text\n */\n static makeSMS(number: number | string, text?: string): string {\n if (text) {\n if (text.length > 160) {\n return `SMSTO:${number}:${text.substr(0, 160)}`;\n } else {\n return `SMSTO:${number}:${text}`;\n }\n } else {\n return `SMSTO:${number}`;\n }\n }\n\n /**\n * Make the code for making a phone call\n * Number can be provided as number or string (useful for international format e.g. +1 for USA)\n *\n * @param number\n */\n static makeCall(number: number | string): string {\n return `tel:${number}`;\n }\n\n /**\n * Make the code for encoding a location\n *\n * @param lat\n * @param lon\n * @param meters\n */\n static makeGeo(lat: string, lon: string, meters = 400): string {\n return `geo:${lat},${lon},${meters}`;\n }\n\n /**\n * Make the code for encoding an event in iCal format\n * You have to do the encoding for the begin and end by yourself (use moment.js!)\n *\n * @param description\n * @param begin\n * @param end\n */\n static makeEvent(description: string, begin: string, end: string): string {\n return `BEGIN:VEVENT\nSUMMARY:${description}\nDTSTART:${begin}\nDTEND:${end}\nEND:VEVENT`;\n }\n\n /**\n * Make the code for an Email\n *\n * @param recipient\n * @param subject\n * @param text\n */\n static makeEmail(recipient: string, subject?: string, text?: string): string {\n let retVal = `MATMSG:TO:${recipient};`;\n if (subject) {\n retVal += `SUB:${subject}`;\n }\n retVal += `;`;\n if (text) {\n retVal += `BODY:${text}`;\n }\n retVal += `;;`;\n return retVal;\n }\n\n /**\n * Make the code that lets user login to a WiFi\n * If no pass is provided, the WiFi is considered as not encrypted (no WPA)\n *\n * @param ssid\n * @param pass\n * @param hidden\n */\n static makeWifi(ssid: string, pass?: string, hidden = false): string {\n let retVal = `WIFI:${!!pass ? \"T:WPA\" : \"T:nopass\"};S:${ssid};`;\n if (pass) {\n retVal += `P:${pass}`;\n }\n retVal += `;`;\n if (hidden) {\n retVal += `H:true`;\n }\n retVal += `;`;\n return retVal;\n }\n\n /**\n * Make the code that encodes contact information.\n * Numbers can be provided as number or string (useful for international format e.g. +1 for USA)\n * Encoding is done with MECARD-format and NOT VCard! VCard gives a longer string and therefore a\n * bigger code which has a negative impact on readability for scanners. You can, of course, create\n * a VCard string as well but the format is more complex.\n *\n * @param name\n * @param telNumbers\n * @param address, values separated with comma\n * @param email\n * @param url\n */\n static makeContactMeCard(name: string, telNumbers?: string[] | number[], address?: string, email?: string, url?: string): string {\n let retVal = `MECARD:N:${name};`;\n if (address) {\n retVal += `ADR:${address};`;\n }\n if (telNumbers && telNumbers.length > 0) {\n for (let i = 0; i < telNumbers.length; i++) {\n retVal += `TEL:${telNumbers[i]};`;\n }\n }\n if (email) {\n retVal += `EMAIL:${email};`;\n }\n if (url) {\n retVal += `URL:${url};`;\n }\n retVal += `;`;\n return retVal;\n }\n\n\n}\n","/*\n * Public API Surface of ngx-kjua\n */\n\nexport * from \"./lib/ngx-kjua.component\";\nexport * from \"./lib/ngx-kjua.interface\";\nexport * from \"./lib/qr-code.helper\";\nexport * from \"./lib/kjua/\";\nexport * from \"./lib/kjua/lib/kjua-options\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["create_draw_ctx","draw_dark","draw_light","dom.dpr","dom.create_canvas","dom.calc_image_pos","dom.canvas_to_img"],"mappings":"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"}