UNPKG

ll-package

Version:

2 lines (1 loc) 1.11 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../../../utils/parsingParamLib.js"),C=({canvas:e,logo:o})=>{if(!o)return new Promise(g=>{g(e.toDataURL())});const t=e.width,{logoSize:i=.15,bgColor:c="#ffffff",borderSize:r=.05,crossOrigin:l,borderRadius:L=8,logoRadius:u=0}=o,P=v.isString(o)?o:o.src,a=t*i,s=t*(1-i)/2,m=t*(i+r),S=t*(1-i-r)/2,n=e.getContext("2d");if(!n)return;w(n)(S,S,m,m,L),n.fillStyle=c,n.fill();const d=new Image;(l||u)&&d.setAttribute("crossOrigin",l||"anonymous"),d.src=P;const R=g=>{n.drawImage(g,s,s,a,a)},T=g=>{const f=document.createElement("canvas");f.width=s+a,f.height=s+a;const b=f.getContext("2d");if(!b||!n||(b.drawImage(g,s,s,a,a),w(n)(s,s,a,a,u),!n))return;const h=n.createPattern(f,"no-repeat");h&&(n.fillStyle=h,n.fill())};return new Promise(g=>{d.onload=()=>{u?T(d):R(d),g(e.toDataURL())}})};function w(e){return(o,t,i,c,r)=>{const l=Math.min(i,c);return r>l/2&&(r=l/2),e.beginPath(),e.moveTo(o+r,t),e.arcTo(o+i,t,o+i,t+c,r),e.arcTo(o+i,t+c,o,t+c,r),e.arcTo(o,t+c,o,t,r),e.arcTo(o,t,o+i,t,r),e.closePath(),e}}exports.drawLogo=C;