UNPKG

mz-canvas

Version:

The TypeScript-based library for manipulating <canvas> element and 2D graphics in the browser.

10 lines (9 loc) 4.25 kB
/* mzCanvas v1.0.15 TypeScript-based library for manipulating canvas element and 2D graphics in the browser. https://github.com/mzusin/mz-canvas Licensed GPLv3 for open source use, or Commercial License for commercial use - https://github.com/mzusin/index/blob/main/LICENSE.md Copyright (c) 2023-present, Miriam Zusin */ (()=>{var g=Object.defineProperty;var C=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var m=(n,e,t)=>e in n?g(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,d=(n,e)=>{for(var t in e||(e={}))u.call(e,t)&&m(n,t,e[t]);if(C)for(var t of C(e))k.call(e,t)&&m(n,t,e[t]);return n};var v=(n,e)=>{for(var t in e)g(n,t,{get:e[t],enumerable:!0})};var y={};v(y,{canvas:()=>c,fill:()=>f,setContextProps:()=>h,stroke:()=>r});var R=(n,e)=>{for(let t of e){let i=t[1];if(i===void 0)continue;let l=t[0];n.setAttribute(l,i.toString())}},h=(n,e)=>{for(let t of n){let i=t[1];if(i===void 0)continue;let l=t[0];e[l]=i}},c=n=>{let e=document.createElement("canvas");R(e,[["id",n.id],["class",n.classes],["style",n.style],["title",n.title],["tabindex",n.tabindex],["role",n.role],["aria-label",n.ariaLabel]]),n.fallback&&(e.textContent=n.fallback);let t=typeof e.getContext=="function"?e.getContext("2d",n.contextAttributes):null;return e.width=n.width,e.height=n.height,{ctx:t,$canvas:e}},r=(n,e)=>{h([["lineWidth",n.lineWidth],["strokeStyle",n.strokeStyle],["lineCap",n.lineCap],["lineJoin",n.lineJoin],["miterLimit",n.miterLimit],["lineDashOffset",n.lineDashOffset]],e),n.lineDashSegments&&e.setLineDash(n.lineDashSegments)},f=(n,e)=>{n.fillStyle!==void 0&&(e.fillStyle=n.fillStyle),h([["shadowOffsetX",n.shadowOffsetX],["shadowOffsetY",n.shadowOffsetY],["shadowBlur",n.shadowBlur],["shadowColor",n.shadowColor]],e)};var P={};v(P,{circle:()=>L,circlePath:()=>M,line:()=>S,linePath:()=>D,polynomial:()=>b,polynomialFromCenter:()=>T,polynomialPath:()=>A,rect:()=>w,rectPath:()=>I});var S=(n,e)=>{let{x1:t,y1:i,x2:l,y2:a}=n;e.save(),e.beginPath(),e.moveTo(t,i),e.lineTo(l,a),n.strokeStyle&&(r(n,e),e.stroke()),e.restore()},D=(n,e)=>{let{x1:t,y1:i,x2:l,y2:a}=n,o=new Path2D;return o.moveTo(t,i),o.lineTo(l,a),e&&(e.save(),n.strokeStyle&&(r(n,e),e.stroke(o)),e.restore()),o},w=(n,e)=>{let{x:t,y:i,w:l,h:a}=n;if(n.clear){e.clearRect(t,i,l,a);return}if(n.radii){e.save(),f(n,e),r(n,e),e.beginPath(),e.roundRect(t,i,l,a,n.radii),n.fillStyle&&e.fill(),n.strokeStyle&&e.stroke(),e.restore();return}e.save(),n.fillStyle&&(f(n,e),e.fillRect(t,i,l,a)),n.strokeStyle&&(r(n,e),e.strokeRect(t,i,l,a)),e.restore()},I=(n,e)=>{let{x:t,y:i,w:l,h:a}=n,o=new Path2D;return n.radii?o.roundRect(t,i,l,a,n.radii):o.rect(t,i,l,a),e&&(e.save(),n.fillStyle&&(f(n,e),e.fill(o)),n.strokeStyle&&(r(n,e),e.stroke(o)),e.restore()),o},b=(n,e)=>{let{points:t}=n;e.save(),f(n,e),r(n,e),e.beginPath();for(let i=0;i<t.length;i++){let l=t[i];i===0?e.moveTo(l[0],l[1]):e.lineTo(l[0],l[1])}n.closed&&e.closePath(),n.fillStyle&&e.fill(),n.strokeStyle&&e.stroke(),e.restore()},A=(n,e)=>{let{points:t}=n,i=new Path2D;for(let l=0;l<t.length;l++){let a=t[l];l===0?i.moveTo(a[0],a[1]):i.lineTo(a[0],a[1])}return n.closed&&i.closePath(),e&&(e.save(),n.fillStyle&&(f(n,e),e.fill(i)),n.strokeStyle&&(r(n,e),e.stroke(i)),e.restore()),i},T=(n,e)=>{let{cx:t,cy:i,r:l,sides:a}=n;e.save(),f(n,e),r(n,e),e.translate(t,i);for(let o=0;o<a;o++){let s=Math.PI*2/a*o;n.rotation!==void 0&&(s+=n.rotation),o===0?e.moveTo(l*Math.cos(s),l*Math.sin(s)):e.lineTo(l*Math.cos(s),l*Math.sin(s))}e.closePath(),n.fillStyle&&e.fill(),n.strokeStyle&&e.stroke(),e.restore()},L=(n,e)=>{let{cx:t,cy:i,r:l}=n,a=n.startAngleRad===void 0?0:n.startAngleRad,o=n.endAngleRad===void 0?2*Math.PI:n.endAngleRad;e.save(),e.beginPath(),f(n,e),r(n,e),e.arc(t,i,l,a,o,n.counterclockwise),n.fillStyle&&e.fill(),n.strokeStyle&&(r(n,e),e.stroke()),e.restore()},M=(n,e)=>{let{cx:t,cy:i,r:l}=n,a=n.startAngleRad===void 0?0:n.startAngleRad,o=n.endAngleRad===void 0?2*Math.PI:n.endAngleRad,s=new Path2D;return s.arc(t,i,l,a,o,n.counterclockwise),e&&(e.save(),n.fillStyle&&(f(n,e),e.fill(s)),n.strokeStyle&&(r(n,e),e.stroke(s)),e.restore()),s};var O=d(d({},y),P);window.mzCanvas=window.mzCanvas||O;})(); //# sourceMappingURL=mz-canvas.min.js.map