on-codemerge
Version:
A WYSIWYG editor for on-codemerge is a user-friendly interface that allows users to edit and view their code in real time, exactly as it will appear in the final product
2 lines (1 loc) • 1.73 kB
JavaScript
;var R=Object.defineProperty;var g=(t,e,n)=>e in t?R(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var o=(t,e,n)=>g(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../renderers/BarChartRenderer.cjs"),w=require("../renderers/LineChartRenderer.cjs"),b=require("../renderers/PieChartRenderer.cjs"),q=require("../renderers/DoughnutChartRenderer.cjs"),m=require("../renderers/AreaChartRenderer.cjs"),x=require("../renderers/RadarChartRenderer.cjs"),D=require("../renderers/ScatterChartRenderer.cjs"),v=require("../renderers/BubbleChartRenderer.cjs"),f=require("../utils/validation.cjs"),B=require("../../../utils/helpers.cjs");class P{constructor(e){o(this,"renderers");this.renderers=new Map([["bar",new l.BarChartRenderer(e)],["line",new w.LineChartRenderer(e)],["pie",new b.PieChartRenderer(e)],["doughnut",new q.DoughnutChartRenderer(e)],["area",new m.AreaChartRenderer(e)],["radar",new x.RadarChartRenderer(e)],["scatter",new D.ScatterChartRenderer(e)],["bubble",new v.BubbleChartRenderer(e)]])}createChart(e,n,r){var c;const a=B.createCanvas(),i=window.devicePixelRatio||1;a.width=r.width*i,a.height=r.height*i,a.style.width=`${r.width}px`,a.style.height=`${r.height}px`;const h=a.getContext("2d");if(!h)throw new Error("Failed to get 2D context");h.scale(i,i),h.font="14px Inter, system-ui, sans-serif",h.lineJoin="round",h.lineCap="round";const s=this.renderers.get(e);if(s){const u=f.normalizeChartData(n),C=e==="pie"||e==="doughnut"?((c=u[0])==null?void 0:c.data)||[]:u;s.render(h,C,r)}const d=new Image;return d.className="svg-chart",d.src=a.toDataURL("image/png"),d.width=r.width,d.height=r.height,d}}exports.ChartRenderer=P;