From e5ff5f2430998cfa5a354cd8ffa02df55be3ee96 Mon Sep 17 00:00:00 2001 From: Ev Haus Date: Mon, 7 Aug 2023 23:56:46 -0700 Subject: [PATCH] feat: add initial basic support for Victory Fixes #41 --- bun.lockb | Bin 250470 -> 266592 bytes examples/basic.pdf | Bin 3086 -> 0 bytes examples/composed.pdf | Bin 3647 -> 0 bytes examples/index.ts | 5 +- examples/recharts-basic.pdf | Bin 0 -> 3064 bytes examples/{basic.png => recharts-basic.png} | Bin examples/{basic.tsx => recharts-basic.tsx} | 2 +- examples/recharts-composed.pdf | Bin 0 -> 3632 bytes .../{composed.tsx => recharts-composed.tsx} | 2 +- examples/victory-basic.pdf | Bin 0 -> 1813 bytes examples/victory-basic.tsx | 35 +++++++++ package.json | 3 +- src/ReactPDFChart.tsx | 68 ++++++++++++++++-- 13 files changed, 106 insertions(+), 9 deletions(-) delete mode 100644 examples/basic.pdf delete mode 100644 examples/composed.pdf create mode 100644 examples/recharts-basic.pdf rename examples/{basic.png => recharts-basic.png} (100%) rename examples/{basic.tsx => recharts-basic.tsx} (94%) create mode 100644 examples/recharts-composed.pdf rename examples/{composed.tsx => recharts-composed.tsx} (95%) create mode 100644 examples/victory-basic.pdf create mode 100644 examples/victory-basic.tsx diff --git a/bun.lockb b/bun.lockb index c5b266f2451adb134e2792186d421307b1c2be36..993fd13971a8fd85ccea1e018058b5809f3df314 100755 GIT binary patch delta 74685 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 JARC#O{~yWGASwU= diff --git a/examples/basic.pdf b/examples/basic.pdf deleted file mode 100644 index 6d33715570c0f27e00b1322c76e90d9e9460a96d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3086 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 diff --git a/examples/index.ts b/examples/index.ts index c2a719b..3b8c0ef 100644 --- a/examples/index.ts +++ b/examples/index.ts @@ -13,8 +13,9 @@ console.error = function (message) { }; const main = async () => { - await import('./basic'); - await import('./composed'); + await import('./recharts-basic'); + await import('./recharts-composed'); + await import('./victory-basic'); // rome-ignore lint/nursery/noConsoleLog: return console.log('✅ /examples updated!'); diff --git a/examples/recharts-basic.pdf b/examples/recharts-basic.pdf new file mode 100644 index 0000000000000000000000000000000000000000..21d1c34ea88e371b6a7712d91ea8ba5288d0344e GIT binary patch literal 3064 zcmai03piAH8{cIqN7~#em$U6sQ*!2RTvCmDh)86JW1L|$W|%os6y5Ob+GORLB;CfP z-11@8eWOi9h>9{c8|gw9=_bB>XC}5jp6C0{JkOl-|NY({ z0Y)>}1DJz&kQWpNSXlwkw&(~1gzTbF2Tv465ddPsARd5hHevtP)&Rl{mRiyloN$Lj zFk^R^k8n|tfNgsKkSh|*hUvU0kb%bliaEuUNWheFnS)2;Ym##@v3Dfpl*!XLml2>4~5q1HyQL&^9Cr1tF(!EF=2t z+h+FdgvI-Z8z|-LARvHJ{vJ}_kUf@*47MkL1ZmPT_zQ0WaW?E~J_0k*brHcV++0lv zr2nx;p4+pvAmWK6JPrF%DO7^F@0at^s(nQ%Sja^9pe!O*OB*a8%EQ*uD06Ezk86uH z2_#6}%Tk@~k1Y2&U!Pklr3OHBSb)e#LXHS$H-fU6FaUW9gHT!9rIrM&LR=;h%$sy{gwkmPAZK>40Axs~(!>9&eCE0(&BqoIU^9k&fgtob zJ_C^1eo0>%cP@@CTM)s4qiuQ2ZETc-fGA&xeC1g>t8=C<2sZ=`1qo(&A~r#64vMu6 zvgcrpu|=>#%8m(8tbgG^)X6)(H5iN8aIe!;bu?oeXmQbc~N1ySFSH{cYp8dc3Oqs}ra4E63w`FBGiKj-KLt`tHX+qGlqa-ru;;dv5E{ z+C?3fM{fKvy0yXZDR^E)8ezFj#d_zvzVjE8FlYi$iNpT=#PhTII7T3;!sG1S>SS9XEDwQt^pZ+J0bn z@yA&DodcFr(H^AJy0?O8hhT3|ON$0W)rA4KoO|*M~w%QRt{RQ3YDa$b(^r;WNRPdn2 zuQ}5F-q6E_76re=q3ZRq9~%!cBS$I=emk8Nq1T_uF0B@;B+V52^;a1x|D{{TS$sv~ z*qGXYcDVeq5sl#wi*@937d=_oI1;3w_syzKZ=K7XXN;Tm4;y|jPvc+HR;>zU7;3&p zkD_XZNU_HR9=x^8#ruUgX8GWeq!dP~M{!1f%SHv>slZJ38zFx&D%o>xNruS}>v^M+ zXN5YCql;*hZyfC>D>YgE%$VFC%GL%E!>!uYRnU{r$CJ$s*(sXhrBRkv?Tsn&O z5;*!=40GuGQNHft$e`otyq3WyPkptEuRrW6iVsdy99Ow}h@Q~r_baX??u5J+ zv*7Tb-35QM+)Os^(yedZ8TeRf;>dDMd9XFo@O3@8OXKF4>gEFyvYPe^JD@o!yIj-j z@!AXL?~J5=e4DR2Fm+$od)s#IOD1#>P+H@wx9{u_wa^;($~W5KYGEi`lSk>bKTj5^ z;qaQN9hsxCHN(#B2~*GWRr{yzuke1ktJyMB(d7oBM_ZNUt{k}~douH`c3^Vy{SwQ6 z-@amTVg;+)x{R^f^F>b2rFG{LM!R!I?!M`--_z=nQ(h?Fy3?NRE2`Ob@!4JaA6_ar z;lZWl!nlre?fH~{m2U7DVY8KTJA!;BRlL00O@B+h7Yi_LZv(vwo+e*n)4x{ft zJnDvOqT|8Z_LLx}l1GgNwRWq2H`Sr8?6%WFUBpRjTkT)Yz~Wn}rwe|MP6`xXnTpx} zdwS`sUD3~L++L_|XXJ&}idydc+N&mKI(`f7iR_nXTKws5V!XetPCsipGmTzxocB}f zI{!Z0L(cfEu~!F}KlTNx+-5>(`jY2|pRT+w9P3{`byQRx8QBvk=`*Jn;)EB<0~-tB zM|HngC`ztAb&b0ye3?`~c!Vw9V@q?{Z5J1tM~>;xJzAUp=_)TL(fDGby<;G-R&B}N zV|nN}rBjqt&R~r-_cs<2b4+T=y8;)b_3n0x!)+4BU)W5~@Y`*0+ETr!=<&GZYzhf> zO2Da;r%IEv)K|-QYvd>qW^&J{596~El9eZxntW^2XB^s8NU&%X4VDO#?vau0cbtA5 zDNlWuwDT^-pWI*nTBqhLE3Bp?H&QDJ@7>LWh?;s%2Xl93KB{Lq9ca@Lvu~6DwHlMa zmJrA^_Uc*ONJeX+t7q6#LBPpuYh!B ( const __dirname = fileURLToPath(new URL('.', import.meta.url)); -ReactPDF.render(, `${__dirname}/basic.pdf`); +ReactPDF.render(, `${__dirname}/recharts-basic.pdf`); diff --git a/examples/recharts-composed.pdf b/examples/recharts-composed.pdf new file mode 100644 index 0000000000000000000000000000000000000000..afd42d1f65844d860941a98926a7b527cc2ea55d GIT binary patch literal 3632 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 literal 0 HcmV?d00001 diff --git a/examples/composed.tsx b/examples/recharts-composed.tsx similarity index 95% rename from examples/composed.tsx rename to examples/recharts-composed.tsx index 71500f6..a90cab0 100644 --- a/examples/composed.tsx +++ b/examples/recharts-composed.tsx @@ -87,4 +87,4 @@ const MyDocument = () => ( const __dirname = fileURLToPath(new URL('.', import.meta.url)); -ReactPDF.render(, `${__dirname}/composed.pdf`); +ReactPDF.render(, `${__dirname}/recharts-composed.pdf`); diff --git a/examples/victory-basic.pdf b/examples/victory-basic.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b996c0b047cc33e0a61c35034d1188c1b9966812 GIT binary patch literal 1813 zcmah~e@q)y92X@1aRh&4un5fY2xB5b@2>5&*FhR61y2_;THm%VS>3`#gFaZjP^#_UET!O4>Yl46*Y(>SDh(nMdogAPDvLGLS zo6Q6iT#6+dal+2Iv9X<#pnw34w<`#8H+1owMQjBQ3ImLZ(P&wU(wYFPr!}mJqG+ZL zyA}n656Qr=cB%r(qE~W485q}qy)u;c3Osfjl7X@p%-Jr9&Ps@YgT%Z5Sp{1WAZ?8} zBTL|25O~{gymf9s;ae=zK;d7Z_$G^RE-G9^16oO1g*SN9+CbP0335)9-Q;R`CRh_% z_aA%u;GT7dmeT4d7Jm$kfi~4{oL8zALdoTILJ6o5aV-mQKqTU|5+%6iMZtKxH4?2Sf9}0i zGDgKuEH1~lMZIv^o`E=l|Qf8YLoArc(`WRR8oIY=KjPCxcUH_`@ec{+^Nj;ed_m3F-N0Z;~?@MQdxI5LW z27lagPOLe8?1%YIae`i0s5pOndGo4#d7r=km+zMzjAt$0PVdV;u@m*UKWelWYFwRP z7y9y3-Z?eoyf*c6$=&gJ&CPEHU-{9`Byacjvza?;$j)vs_Ey!l>;7CRDKDk@xA+5Z zBzfk$mh6+|zH9sQr{{dp#VxkZ+=Q(q)bQbnXKi~*htK5CZAzV*yP30jpicT=;dpf7 zQk5e&YIX9llGUwUv-jhkNP93;mo#8O_iBZg7H7__Y&vQ?JvCV5p6z*D_@d*@wqEZ{ z$EB*qmXWAOO`lZH-?c<*KKyL<*CW@5=7%rr>9{vi64O5IzYsHg_EvA*p_$5UkEE52 zzy9PAds$(|=Lr+f?;5B_w&X7RQ^%?9E2iGc`|qC2n*VYo<-ILYmYC70Emxy`-4C&+ zF4g2EMm1?$K0Qklw6jE(^fAcz@QJh7Aq2JX22HV7-Pf}D$LGk!gnbQV|9`KXcO-0 zFgrYXA~8A=)3cE=^i-ssP8mvJF?9OKvpPcv4N3NcMG{e>#Tr|r$S&pk`wJv?V-e`mv;%I{z{J)8MW4NR^G&F)Wdu JURYj4`~xwhKHLBR literal 0 HcmV?d00001 diff --git a/examples/victory-basic.tsx b/examples/victory-basic.tsx new file mode 100644 index 0000000..24bbdcd --- /dev/null +++ b/examples/victory-basic.tsx @@ -0,0 +1,35 @@ +import ReactPDFChart from '../src'; +import { Document, Page } from '@react-pdf/renderer'; +import ReactPDF from '@react-pdf/renderer'; +import { fileURLToPath } from 'node:url'; +import React from 'react'; +import { VictoryBar, VictoryChart } from 'victory'; + +const data = [ + { x: 1, y: 2, y0: 1 }, + { x: 2, y: 3, y0: 2 }, + { x: 3, y: 5, y0: 2 }, + { x: 4, y: 4, y0: 3 }, + { x: 5, y: 6, y0: 3 }, +]; + +const MyDocument = () => ( + + + + + + + + + +); + +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +ReactPDF.render(, `${__dirname}/victory-basic.pdf`); diff --git a/package.json b/package.json index 09eb156..ce59c53 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,8 @@ "recharts": "2.7.2", "rome": "12.1.3", "semantic-release": "21.0.7", - "typescript": "5.1.6" + "typescript": "5.1.6", + "victory": "36.6.11" }, "engines": { "node": ">=16" diff --git a/src/ReactPDFChart.tsx b/src/ReactPDFChart.tsx index 8ee7614..5cb8268 100644 --- a/src/ReactPDFChart.tsx +++ b/src/ReactPDFChart.tsx @@ -110,12 +110,56 @@ const getElementStyle = ( // Apply inline styles that react-pdf supports if (attribs.style) { attribs.style.split(';').forEach((styleString) => { - const [key, value] = styleString.split(':'); + const [rawKey, value] = styleString.split(':'); + const key = rawKey.toLowerCase(); + if (['backgroundColor', 'color'].includes(key)) { style.push({ [key]: value }); + } else { + // This warning is super noisy, but can be helpful when debugging + // console.warn( + // ` detected that your chart has a node with an unsupported inline style. "${attribs.style}" mentions "${key}" which isn't supported in react-pdf yet.`, + // ); + } + }); + } + return style; +}; + +// For SVG elements this will process inline styles into something react-pdf +// can understand +const getSvgElementStyle = (attribs: TagElementType['attribs']) => { + const style: SVGPresentationAttributes = {}; + + // Apply inline styles that react-pdf supports + if (attribs.style) { + attribs.style.split(';').forEach((styleString) => { + const [rawKey, value] = styleString.split(':'); + const key = rawKey.toLowerCase(); + + switch (key) { + case 'color': + case 'fill': + case 'opacity': + case 'stroke': + style[key] = value; + break; + case 'stroke-width': + style.strokeWidth = value; + break; + case 'stroke-linecap': + style.strokeLineCap = + value as SVGPresentationAttributes['strokeLineCap']; + break; + default: + // This warning is super noisy, but can be helpful when debugging + // console.warn( + // ` detected that your chart has a node with an unsupported inline style. "${attribs.style}" mentions "${key}" which isn't supported in react-pdf yet.`, + // ); } }); } + return style; }; @@ -231,6 +275,7 @@ const webSvgToPdfSvg = (children: React.ReactElement, chartStyle?: Style) => { cx={attribs.cx} cy={attribs.cy} r={attribs.r} + style={getSvgElementStyle(attribs)} > {children} @@ -252,6 +297,7 @@ const webSvgToPdfSvg = (children: React.ReactElement, chartStyle?: Style) => { cy={attribs.cy} rx={attribs.rx} ry={attribs.ry} + style={getSvgElementStyle(attribs)} > {children} @@ -266,6 +312,7 @@ const webSvgToPdfSvg = (children: React.ReactElement, chartStyle?: Style) => { x2={attribs.x2} y1={attribs.y1} y2={attribs.y2} + style={getSvgElementStyle(attribs)} > {children} @@ -291,19 +338,31 @@ const webSvgToPdfSvg = (children: React.ReactElement, chartStyle?: Style) => { ); case 'path': return ( - + {children} ); case 'polygon': return ( - + {children} ); case 'polyline': return ( - + {children} ); @@ -328,6 +387,7 @@ const webSvgToPdfSvg = (children: React.ReactElement, chartStyle?: Style) => { height={attribs.height} rx={attribs.rx} ry={attribs.ry} + style={getSvgElementStyle(attribs)} width={attribs.width} x={attribs.x} y={attribs.y}