UNPKG

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

48 lines (47 loc) 2.08 kB
var g = Object.defineProperty; var f = (t, e, a) => e in t ? g(t, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[e] = a; var c = (t, e, a) => f(t, typeof e != "symbol" ? e + "" : e, a); import { BarChartRenderer as l } from "../renderers/BarChartRenderer.mjs"; import { LineChartRenderer as C } from "../renderers/LineChartRenderer.mjs"; import { PieChartRenderer as u } from "../renderers/PieChartRenderer.mjs"; import { DoughnutChartRenderer as p } from "../renderers/DoughnutChartRenderer.mjs"; import { AreaChartRenderer as R } from "../renderers/AreaChartRenderer.mjs"; import { RadarChartRenderer as x } from "../renderers/RadarChartRenderer.mjs"; import { ScatterChartRenderer as b } from "../renderers/ScatterChartRenderer.mjs"; import { BubbleChartRenderer as D } from "../renderers/BubbleChartRenderer.mjs"; import { normalizeChartData as v } from "../utils/validation.mjs"; import { createCanvas as z } from "../../../utils/helpers.mjs"; class N { constructor(e) { c(this, "renderers"); this.renderers = /* @__PURE__ */ new Map([ ["bar", new l(e)], ["line", new C(e)], ["pie", new u(e)], ["doughnut", new p(e)], ["area", new R(e)], ["radar", new x(e)], ["scatter", new b(e)], ["bubble", new D(e)] ]); } createChart(e, a, r) { var d; const n = z(), o = window.devicePixelRatio || 1; n.width = r.width * o, n.height = r.height * o, n.style.width = `${r.width}px`, n.style.height = `${r.height}px`; const h = n.getContext("2d"); if (!h) throw new Error("Failed to get 2D context"); h.scale(o, o), h.font = "14px Inter, system-ui, sans-serif", h.lineJoin = "round", h.lineCap = "round"; const m = this.renderers.get(e); if (m) { const s = v(a), w = e === "pie" || e === "doughnut" ? ((d = s[0]) == null ? void 0 : d.data) || [] : s; m.render(h, w, r); } const i = new Image(); return i.className = "svg-chart", i.src = n.toDataURL("image/png"), i.width = r.width, i.height = r.height, i; } } export { N as ChartRenderer };