From a16e9f98f36b8bca26a46d25379059f535430b75 Mon Sep 17 00:00:00 2001 From: kurkle Date: Fri, 19 Nov 2021 22:58:39 +0200 Subject: [PATCH 1/3] Add borderJoinStyle option for arc elements --- src/elements/element.arc.js | 12 ++++---- .../borderJoinStyle/bevel-default.js | 25 +++++++++++++++++ .../borderJoinStyle/bevel-default.png | Bin 0 -> 15539 bytes .../borderJoinStyle/miter.js | 26 ++++++++++++++++++ .../borderJoinStyle/miter.png | Bin 0 -> 16164 bytes .../borderJoinStyle/round.js | 26 ++++++++++++++++++ .../borderJoinStyle/round.png | Bin 0 -> 15581 bytes 7 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.js create mode 100644 test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.png create mode 100644 test/fixtures/controller.doughnut/borderJoinStyle/miter.js create mode 100644 test/fixtures/controller.doughnut/borderJoinStyle/miter.png create mode 100644 test/fixtures/controller.doughnut/borderJoinStyle/round.js create mode 100644 test/fixtures/controller.doughnut/borderJoinStyle/round.png diff --git a/src/elements/element.arc.js b/src/elements/element.arc.js index 66b51677115..1e03f9e1a7b 100644 --- a/src/elements/element.arc.js +++ b/src/elements/element.arc.js @@ -221,18 +221,19 @@ function drawFullCircleBorders(ctx, element, inner) { function drawBorder(ctx, element, offset, spacing, endAngle) { const {options} = element; + const {borderWidth, borderJoinStyle} = options; const inner = options.borderAlign === 'inner'; - if (!options.borderWidth) { + if (!borderWidth) { return; } if (inner) { - ctx.lineWidth = options.borderWidth * 2; - ctx.lineJoin = 'round'; + ctx.lineWidth = borderWidth * 2; + ctx.lineJoin = borderJoinStyle || 'round'; } else { - ctx.lineWidth = options.borderWidth; - ctx.lineJoin = 'bevel'; + ctx.lineWidth = borderWidth; + ctx.lineJoin = borderJoinStyle || 'bevel'; } if (element.fullCircles) { @@ -359,6 +360,7 @@ ArcElement.id = 'arc'; ArcElement.defaults = { borderAlign: 'center', borderColor: '#fff', + borderJoinStyle: undefined, borderRadius: 0, borderWidth: 2, offset: 0, diff --git a/test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.js b/test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.js new file mode 100644 index 00000000000..9bb4415ad1b --- /dev/null +++ b/test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.js @@ -0,0 +1,25 @@ +module.exports = { + config: { + type: 'doughnut', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + data: [0, 2, 4, null, 6, 8], + backgroundColor: 'transparent', + borderColor: '#000', + borderWidth: 10, + spacing: 50, + }, + ] + }, + options: { + } + }, + options: { + canvas: { + height: 256, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.png b/test/fixtures/controller.doughnut/borderJoinStyle/bevel-default.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb2a2de3e9881022f74660a6f7f13318b266a42 GIT binary patch literal 15539 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 HT-g5y-3UbU literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.doughnut/borderJoinStyle/miter.js b/test/fixtures/controller.doughnut/borderJoinStyle/miter.js new file mode 100644 index 00000000000..f50e923c085 --- /dev/null +++ b/test/fixtures/controller.doughnut/borderJoinStyle/miter.js @@ -0,0 +1,26 @@ +module.exports = { + config: { + type: 'doughnut', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + data: [0, 2, 4, null, 6, 8], + backgroundColor: 'transparent', + borderColor: '#000', + borderJoinStyle: 'miter', + borderWidth: 10, + spacing: 50, + }, + ] + }, + options: { + } + }, + options: { + canvas: { + height: 256, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.doughnut/borderJoinStyle/miter.png b/test/fixtures/controller.doughnut/borderJoinStyle/miter.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec65b1f03143ef6c89ec1f45d0de3ebe865663d GIT binary patch literal 16164 zcmY+rcRbbM`#*jb4jJcUZ;^0pg%FOML)q)tDAP|V@`ZbIh2m}HC1cTtT zz^{&{y>8S`0cN^aL6yCHiy)8?=sHHrBGhp;n=UmHo6-^0?3@IL#M{_wnOY*TS~S>> zL}bSUZVU9&H^q3BU#JB&C*qM@vXE1G$06@V zq#T4_xLVB54|~daLD%`iIqSV+ZE_y7cfcs{fEqlWAJ2gf1(}UGO(%?m(MABzOsMtD%d0~r%e4Z>$W+f@BaeZ>&0gE8eBxW?| zd>I#kTiB1$FIiwABG{jH4iQefXU=jn3@+jf1F3-`83DnpnF+q2SInR%e96WTU5F;H zb2!T#*zFiVj&Z44v5AY2QKNxPb(YBqzdw-W`VqUn}|<;sm^h_NPty%S6L+3w9w1cyyd>b)95jP&z+H&(C`Lq1s>OYA8I}PTeidtNdu8#8s_!v0z>(%=&E6x#b zp6Ei1>3oos?YDR8c}%2rT2V$v60M)XhuTqko>6( zDeUcq)1n|gqBUMVjxXyIgm&4rta<-Cm>1f_FfQI-sn1@(szG8^=d^Sx>DnPM75@n ztxE#n72k!N=}5^Bk=6p>6f!09bWJ)dwG|e+5Q~qbSx>~b_R;0=_7CkQ&N8e$iwqQg zciCE@A1lrNmRTUj2-aIZ9K*{^pciqbbN-mHTrzys`64-pwCYjo*ftxg!wE2^z!T%M%?Ben#QjF?KdrxIMd$(VI@9}qU=B$GzTmR2FY&9aI z4>TcFG#3BXM;o71_`(XK0WT>jfAhzb4!r6dG!t>G`oyzlK;jdP;>7kerXakEo6F)u zWD(8Q%VNqc@>h~JK~iba{Y4!oxXM7Y-Lug*#0?g&3xvTx{aa8qGBLGl<=mVaKmVP26;5`L**PL=K>i@DG*$J$z6fFr7J&RP?6L2y@r5vWt<2iyi-=EE zAd8cMT^x)x&Nm?X*X$%bo1A>KF`I|MWM{NjR7&9GC(SB;dc3rOKRTo6t_K>?DXnxp za<3n~_K&x@b|q0<0P_#bAtHANaDIcZd+I9AP_oEk$0V(g8@TFvXUCb{FUp`^_-&SQ zOwQ0FZ||+wO|-gns%9lW)nHo(CMhD-%GI7{l1Q3h6)lDbHC%-2RQDMCu6FoUU2b)7 zQYc$RetJf7)$pNv`nNxLZ%Ay0qtLb8mD%B{XJ_B@ScKlm#f;l$SfTk4r7M76JO|WC zn#%}HXSGnxZR^@r@I;|BB~MQKECbo*`>d2_c|t?XKdE}O%L*-gMBTgju|Ur^wr?Iz z;c~hQQAr~Cf(MkA>pS2E0zjZWcbXkHT(?~8YQN(#^N^&q*q~|VVfn#5{z5YBON2(s z&(wy?@pnvGFln(kE}sZb9aWFT>Q7X+);BI zYL`m8Gh%T~M|O*Epwe1p8JBl|ftTG@h|)^>RCeKM@aaq6lDxllzPH{mF7-NvoZ9jx zATw!zz`gyp`+4pgv(Z51nM>k^i%wyLsQL>o^)yBdbx$}3>4QgKPPpNlX~QN3_T16F z;_MYSlVbdN$)4KW%XgoU5P+j_L4uOUFFtY89b|%fvTWlqfe}FS3|POqEtf zGTRrC_=_4CFsT-z{&lJJCV3PalkIlO#k=Cf-%)@Z>{K~wr=GuBIYV$$%uEyBU|%m3 zMn~Q0@0%?|D*8*H# zLh^>1Kcc}v@9%w#QNC!CnAioC`R#g%c=Ra^G4lcHp5S^lsz5+ThU;5b-2lEs~0FSY9SQw^2%s?Y2-hOOtE>4?h3>LzF4l-{FE zGXJ*!r|jpY-?ICorOSd|H^2&Vv6xGBE*w%?KKzUi%xTa#h?HSqa#gg3scCE==iep!4>A~-KWGv@S&lVg!i)^*j$2Wa8hR9r%X6R<;`G!bB4x?NBlW+4e(6ES7ihxsh6tYqLpWNKW70f|h5|WDvu$Inyi}#8agvipS zB2v5kfIdzZ#lEy?=ffZ_DkofJ_|QwZ$zkaVYpAI+ezfRaBY4=+!XJ8?TJrCkqtvF5 z4$&D1Y_^umN>ALN!rfol-!@9H8%snZd1j_g@()x|$xm4&;3gmN+PcH-3}fnYDrp*( z?_~&;o+Wdzldlq!Z$5$gZCU+*;}Hf3^9VhCQwLG}>UUN62|vS)lKbIbhGPc7X&jf| z@TF9jz0;Dq?^|iMw78i)NN*Z=xkIK)ep!EnCI?QrSI0%j1ER^~hyPgS1HAwHWy}{( zv53BCt|beuYrEYjHVaW<*jf4hr+LCyJ37XOD4ld|V)Fzlo_=84==_*jOp7Lk{6oq8 z`ln^E(=~S5nWxD7{*k@4PI!4do*$$sRB(=H)|j``!#-c-d*(>4{zm6Pyi>nStzMw_ z>r1+(Fc#4nIwc0iHmpuh3_7G1$NV)mdrzeLoS)C?zy?og`T9RnEvMpp)~AnO*Q)6N zR_p{dA4$aDO;gwDk~7aDu&$0V0-7?^1m@{1x|>FS-ur4i=!0RLzBGa(qHiqz5wCi&iGo* zJr*Bqz>wPHe_K-)y3^xzF|}!p5XI3l5o+urwK6%<11=cCeNB#@PbxboIlKo1LkbDH z#GF20^r5H}e7Dh=7imEs(BWX6ND`u^Fjz3lOT^e^?23~#Yf20rdU2Am;^b@UYZKSb zTyu+NM?}Q8h_jO}!ml8Y=e@`zrS9D5$OVyq>B;t(oie+*3WJ`FWFw*Mj8X~5gG$oLkAjr7Nx0NwsyA_J3lU}Yr}zJ?o$s_KVYPxe zK`BGbxZu}?Dq%Iyk zL>B@xuZg1(CI*&I9p0aw*MOUVhOI^QYRmTT)K7{P5n?kiBn#0zweeK24IOLHy4>D&H5LerUjHR2_cyLQ%z=s$pwDSR$0PZ9n4r@W*m7ZIlT z)Go)!+=0SC+;I75>s?IX{J&qZE@xCrpB1sjqfD1xW@WaW|MLT*v>0}El+8O~){Q$cO4H6$Q`5*ARDE1duwI@Jx*!63Ejd*+GscEB zE0UMd%E>l!%8A@*8IAcPG$9P{*((9hGl`4|aW(RwEuk@#B@x<Aol_+a{rzO_7kykTtoAnWqn@2Zhg_OqJNNecm3G3yW`4954nS2&xH4{ZXH z!U$9(*;>mYg*-+U;gji*G27W{8q9u?9GD>D8!q=cMjiHL9NwI&o<2i zo4@_iDTBAcO=#LlQucz+O4qc992VWx;rj5BA;FxA@xAcg`3Be_EwEPkykqZ#3|R zOmZHFLO~})WjAL+bSdGk48d46*s9ca&Uc+3zrLcE18XTM>$Rd--DP@QcsFCsFUT7a z1WS`CIs45!EoP)7E#7=sCCK#XLlS#9`{;Ee(gAnqD?uTsRM{6~Z211?`|k^pdz_F7 zt;Ng16^v+~nSb(uk0i3omV9h>oAs=kZ#!S&7p)qd)%RI^+P6x$7*%j*Y0r^4$w+$+ zUhMB=wDdb4A3`UWSRAWrEqmHE+&y?Qw^EuD?P6Vu8D(hlH^tw;gtH^GzN(G`yXkt= z%>;q-fmaayb|%Q**<-_nG6x?=?RUX*u(?=AnF;xjbF;fq9-RDcJNrv>Aa_myx`puUZjiKlLA21UG1>xfz9+5M&2GCW^k1uqaFX!r$5S0SR1*!)9XSLQ_{2G9_) z4K?JApt&9QlRl2E9Z<{YbqjnYU`(K>+WhU+M}ww5XYQQrk6>>x&)zB zd`Dx|O+T97UnTl|r{6C-+7J8_jg9AA9f>}ts%1jXfo%D^Ca3<)nDo(d;!0RYErrG+ z&HM20Axpw*!5ILQfESEaLU#28{S5oq@+U7~IKe5vOJA>;OYFiYCU5~W%EVZ0tSuYz zmidHJXy@aFJczjQ)J`>um;c=s$8;qx|w%oHqrV8ikz zHO-C@IoN(k`tDrPFHiG#mtCX?q<>*a3?MtHG^$2(}H1YvJs z)keJ;f6S}xL5a&xWEP((R%DgoHH)0>vI}hz(bClCM)y47I47iMWtyvV%fqxg?8V~w z-``TcR^{bS7j$_s8`-ciHA^-%M(?OAUNje|TRX|mBQGo1cyr1hz=S2L*s6$2chnHP+gk${Bt3U-pou25Ah#e0r z@utnu>8Q2$`D6?1!KjVoFlwxHUg7J&yqQN{rGfBZP~R7sZFRpnF6mxAR6f>{g}pMQ5X`BB1p_XS%;?sLa_(CUl0 zb}d4tc5G~>1+D5?tNa>_>r9Oe!@XFQ``uumbe02ASh*G4cB_E;=WDW!PqyR9fq$jQ zjFDO-O_)u(E?O1YL@K~FEzscTu)WI&x(PBTa*tuy=eubK`DMgydWp$+r zr0xk@Y$&7r`7~%^v&5|ehk-7yiSVfLcST`4Gm$mcy#t+H9r4}}IyJgQEy<1**IXV6 zUu|@%{@rR8c;BS;a_t4#)AxhNn_oM6JosoOcr+eEwSpMuic8)(Rf=~Qf5x_d_a1xQ zmPL$+IW7ZPaemhS@T)>e2XL~)yTgxa?-@0p+JQQUr}hQY^**Dv2L{z4@qK$&4LNk~ z%Er#=E@q0xc}R(W)O>lnbSObK?Gkv>ObIZ_H^j*sn{1IVb zsR!?N-F4cXuljw{;R(g{)*>C)m8r|LOk1%$T0;#IKO~N;p;m-7vw1n1G-%sIv?w3~ z>fF1J!mx$vL#tZ#f~EPjBV&E6-`374GC7aU(v_t8f?MzH zWPbT#xknE>t1L+|MrnrYvPiLKEjJaD`I3;U5;T8PQ+4dNF?wqG=2_E&$Tl7I`_tRY zy)zP#$5lH6q~I5yP<@)Vb*k@|jfSxT?8mRnDjvFpcsx-nUse2>mLSbD zh2r-7*&e#cUXv+OI$>2rGU(+Rao`54C#!DsR(!tv#jMGNhE2`+L9E`TFS9?nK5akB z{R^h#)kg^1utKqg)7UMv( zb#*d&S9i+t0_Brym9fOgV$z`z_~w^}L#zH=z1F21MU+2>07LBKX@x7033f@EwXhe3 zQ&MR&Jzh$g2Vtap9|mxRwrModI?hQ_TiKL z8lV>)my~&m!#y0VgDPGxKPfJreW}NDDnCIAYZdmZ4_v9h_ZBDi++n}@t26rfBvYuN z$*9Lg41jYna;o3_7N*h5T-Xt(pzLq>R6e|@^qu14YTeW}RD*w5k!9m%A$)~_@7X|H z4g0&P`E#70xmit1P~#gWqIBRp&F(w7C zMixJdM{T&r+T?AL4ELuf%~o;QUiXV{O22vj6}*J*?J3c6DC?mXrWftjyBAS|$MOUv z)OOiMK@^;lPTWv%{>!NS`6I{i#~#W^DgQa5!#iPekSHQ828^rZi?P>qsKvIm2hkAA zKnchOHb@FxS9K37c-~raSM#jJwg5Rrgs^BSVeR#V*qVFY)sp|8AgmlwTUH1^6)(&8 zU-+BpPCWDCW9e;5V~Z!rga(Y_GSMP%i1^V{Ek&@V2d^FlK@iB*nyrTxO_YMF`vc;v zQ^w}r`)BlXGgs|62+bhWHZMEPy`^!knD<3&?Vn;;C&8gnR1E_a5h;;FEub{71ILI? zONCM4xJHP@ENc~nbVSHMnqWqG)Z7O} zbWqA^C;$X`#7pSnZ29$45W@2HvI3v}TKnG2?irbaHA7`s&8K&Xg5Y5Wgt>F7Ao&hy zSx3%$K=4$~{ZHMC(Q_YsDwJ+h)84)9ruWBBNYA0u%c1t2a|H>(rxW9G`?A8xeZ>)o z#Xi+fB2RyVPJ|0$lWufM?P$N{w*0CO8a`XiMTi1op2YIWAD+c=MPWGm;JYs9^|yQt zN%ue2Sue?f<>?3$MfCxV1cl4OdWS!@Ef+VAoEK-zJuD2RBG&4v&H>x!fn5HufGYO4 z^mDu^#Qk;rIDs|tdE(7sAp=WE7=h14(lt_irfrMysT$M?PA=xX~Oql;)o^?PS3E;C1(ZQSy*ivns23d^#5BHQ%!EPCV^%s2dnIEAeo!oN;G`y6d> z**nre_hZl%OKvb^wrbD6zt;+C%(BE>!0}}Ip6q(;>%^@FS1RaPzRfkrgJnGxXs{>6 z4kjeHGfyC~DDEYVy*7f1oog687Axy7R%wAQ=ufjZHC8*Ur%k6^A=`r0%eq0-xVN4o zvjqfWJUMfWkKEDrC&)&@^?$K>K^GpAa!4OO*r@Ye7A{tM@Y3jQpdx3A9b_g++}3S^ z+LP@ZEOZ;09{Vy}y3CFMn|$3Uu$XN9rnCAe^+5U2MinmL-=BSW`SU>ySyuN06>=rG z^&BpbF((Pi<)6mDGs%qBN|3LXsDkal$Ar{r&ZMJMOVu^qv#v$wu>Po>xP(OHc4)_# zOR8^T@13a8Ehx}N=aVj#53&JL8zQre4sYV`!wSvA9Jg-bLtqR4`YhH9wk*DoEXoH# zgl2FqbDeDV;p|G=l_cgZTaV24^`16a zPjSwYs=K+U#&$fynn#^mF9)&t!h-23Oa=aY)i~$%KVUl8R=I*8>?d@EE7NE3tq21i zC*+m3lJ1Ra z(^gMfXn@0`1~l8%96N#;&Cq*eOGfy4@pc>aU)QbKm_%%@XMPevxDHNU>B>?0oVWvZ z<;|JX=qmx5Js?!3qDPeO)HIT+Oz*r?xIxo>{)wFnb+>0 zV*sEaU3=;NmHF+v8>#H(qE+-Kt5(~;`*f*qPLZ)sxUE~FtzVfVW_ht-7Z;}>Abd*; zcf7Z`D2!0o(7bYu{|d}(U_#(A?WxbB%$Uv`er-m>IbQ+v#xAee=ujK- z$or+~wse0s?m{d+XOo3yVf!9g21r5{d0zOYkNqW?uKyjr%D&wB6U}~tsg;~Qi>0xx z0pi{h`o~gYf73<;VMt>!tiG5oz6(iW;0iv!j{jduYNIXwaxcw`HoTSUjK&Pl*y7g4 z6hXAMZ&Db`+G&mrExwj~Xn#djL%1hej16ZN=K2YBczlmaHn;@ygY*ET0k+J}NBBVf zRQTh=D)9V0yF`))e2Q_;2PDki|I8;&_)$A6^if)`J6C2j?j^NrqYoQ$FIx&t;ry)# z21NS*&DJB6xNfb^rU`Bv>Td0kCX36ceO96Av#!!;d0Cu)BzdX4lqE{Tg<1xM z{nz`8TkJUCcs4uLMu8T3Z~|1MeA*0oh&CAtgx%x9Swn;w+F@aZ!sw17PAPSxqL z(7GJ@VPq*rBJi*Nz)q7wf1hy~&-Pa1iDfcLhc*=t$P26R2QB`ZDa>6`P}(sPb`NpZENPT^P^T>kV$`J`^heCzCLoN;hr) zLIl|RGkTk$VcNyTmHR^w=#1c=HLzq8OKv1-@f$i3iq9|;B4vXSsZWM1v*R5I+K_<$ znSeQ8P2hcBVgZB5SK2l!wS&i0`sZaxywoRMfret8$?AA38sHFdf^CJbXppu}vmm?a zYU=&%*uevi?sTY#ZlT@@-Pn8JWHsgl0)EJ0lG433`{PWF-VTJh(u{|)>3$r*zv>Zk zOCBP5&JR|tO;|7f`Ot`wZMxkrta|-aRoz-@fc32#L{`GDQmI4?@T)CY;D=9qa6Uw} zv1%XH5N8diRe4M*0uzwd^aS@ii_Z{0771Ap6}s7N6Gk+s#q#AeM+u zE&6=kzGPSMr@*5sPyAU|esVMrGaLTdK+G&8plehY*bx2(-E5X`KkxzJ4)PT?WQV;$ zlTiCo)!x)2U$Rg0V^8F9^k6ORgYVk1G3eB*At-WM_o_U5VnWVietcd=5$A6ox-2fP zl0cc`zcBq*s6M;>Ne+=}HgL-II13M%4W|$9J_LNY8N68om1`Dl|M39FIQLPAapIiB zXd?!BFTrsQm$y}XF0Z9*W#i8$5#rxZ+XUW<_53^=^MhWCVbZl<`M<2ba0Et^QUw-_ zKrgQs4czau15Mn?5T6B`Yz3sn{yDA#s;4PYw-jC=HCr17LCBEaK_sy*jT+n1Ncs86(}u`oQteMW{oVj5}m=l?S#G%NjH~ zf1F$(jhcLkZwwXsGJ(#6_4?<5Y>b!l>%Le4iNzxfz83n z1H*{UZT17#bBwm6E&^RYDUma3;79(VG3s`n_@Wv13QZ?1K(Zk|s{|&p!7#QV|KD>$ zQlI&xE}xlg?ce@nc28k_;jQu1jaY;^sNUV5JKpTWh} z-!|#02ef$zZAg<90v}X`{!BX#eyyf6{lEB4`>iE6C@+jWCdK6~NGWAycW|ZXXQL1XcM>4W1`R6kh1ZT7(o zXoU~2z5A$1Qwmp^ItUioS>=^_z_$2Z^*=mAQ|dyC@53c;o55AgiA4YWS%j>O2E2LYmfIK>KiA7wTE;3XOR?jQG#pl%egAN zC(O1u%=uEkOuvH|iUrEdvU9`%G?NZx++bj>4wZ8?AbVq(HMX!n&5_%LR2&;08(GPU zUd$z3sANH)zo7sL4In_OdT#y2QVcl{y)1G!p?P(=QGFH>W#yfpiDi0S>BscKJ*tSB)0zsvy&nt+zdVN(x7syaVf7ZFpK+n@VmtkXyV^7Aw^J7Pf#lE$7g{pP*wk^QoxV9ewWr-P4iJ!vl z?!YFfl(oZ5qt~4*5Ecdl%ZC`;rzx6B@)D?&gS=}!`hVp~YSHFDUCsw}1h{}@^!_oqu+}6B5|{{oD@ly|Vq_H! zCazQA`?ULjExS6sn56@KBQ^Z?Nw4^d44$Do6Uc9Ad7} z?74o5oN9@JC3$?Wo>MN7DLWWEPiLExm7Xl3`*fxgj)rl6liJss9u4D?F-UT zU_!cehRiWJG1p3$Jt7V-3DMnK=Ae>}UDEU1wJVv5^&IC4%BI_mz!OIF7CqqAgI64a zWAbqQIK)wg+kS#6*xQ?WGj&!8HS?9mBcQnq@1g7}q1X z7bKja|Eon(F}W|Bkj6)LW!U?t3wgmDzbs^CVuI)DnQ4pHvW%dWQ+~Zpv=#{;i@;2T zz)c?@EA=x~ny=y-cl2uGyOQxw@KcOwInAR}m(kkH34c z?V8$uTg7Lw3gyzWy`w1Qs{yVS_;}Ug{t2VsD0wc>cKsKza--gf<;wZu_Gd2{xK^Pp zB{wvE9GM}r;h}#RLUwVMOZWQUMoklqhoeI!$U}J4o8x^7H7_@b@=iIo9?iorbN5No z;DYIj3lk;FU8g)LMpgr+*IgWVW820Qm|&l`idT|*JPnE#zenA;R>0N9JNE7oQ^G5X zp57d;s^qT1h@ZQ%G6cxH0HGva6;9z1(rcAWiY(BP7Gqd55B@N{%=Naor|K;9b=w>1 zAuaNqJG`4uMs5=%h zIRjEx)}y!ZaK`-1a@-qaPf1P+#I6is?BCVXhq>0V52Sir7Z3Pds%ZG*yVE?e-R^zF zn-@7z*+#JjT}5Ez=W_G^n%|Ub8%@^cPA@Hf8tj_K&~{a)dEUa|UHv&cjnb&kDHDF} zX!+Y6k~;W!O?%=BlZkxksHze%*>#ia3=m-J@B3kdzQT;K=NkSKInSey^0Z=ABJ4uA zV1dGKh?nPgm67VKO)m$hqjK~9_B#ySL1$Y(?5G2t(3iGp{iGPjl#6WOUYADSv2}>o z-wBRelZ%+Sl;+Rj?epf#XAjF###&0z<2kbL@+GurNgCC}H*&t)JXvDJ+en9qJ&zEr z))iAfEi=zpSw&2Nn?{b0+U|7DY#r)a3>kZnE|2eQDdtY&IftE5_8tkw&x%=n%f2h!90&fKI^-FuHa`K>EwKx2+ZT>| z8gKpeu#!+^w*2xi3tXU?j?$ZEU9Ehl9t^4+e)qamL85bgQ+jvOHAI!^sfd_caomxL zLv}f)boh;LeKr+{E`wX{$% z)MrVmXyQ7*Es?G}|I=yg7nehD#Z{du_Zy&!_Db`}$*WFlE(?HgnfuWGjV_N-R6{id04$9dfe$%Ds6%Z4D?u%2F-& z>@n9Pko?1!2710wIs0$Re}t}Bd|<;$S6vYH97v(qbzZFKm1;eBrb?g9bm>`A(CG0q z3$a;ak++RWFTzqhm8-Us;|IlXnn0awOJy%h$~8U50&t`14fe{YjFr~8-|x<>hiPgZ zsj4IiZx7t*_#wK>hJN_Og7ChyX6MJ<%_Cc&-a;ohHQGO(?fug#qf0DS?hOA z0aeHLUJfnb_K{T0qM>T94{3g7kkr%h!%?T^`miqxzNnK zME1Xj_87Hsmcp@Q*&f$H{RIglyslgKu?QaJ3(T9B0n@tkn}xW;uEHt4#+@^~4{ACq z-tbo??R7ZGja)fVvP1`+`I$N}Fpg*NaY!BbQmP{aFlO*_7M7PF6~fiheqPm`zEDr- zDDzSV@j_(uO?NcpJRlLDbg zn)#K4P~G9JEs+KFG@>*%l3x6iw(M~}__%%E2|fiuTsLP<{s<;*G7^!Lv%nS|@|N44 zkO2HhmzzzXP@<+|YMv4w$WpaL2vXs}~i~4uxNf@Xc<)L4xGsZY4`)NG-LVKcl3q z0I5ax``8bhrnI+?f|`c~zA`<=koieB6_^mRAKzb`w4R3l&=J}YwP+4dz68-Bo58P$ zi8Sc{s4~=(;yt;6c>23=utR0z9QlI^Q@JPXB^7j#i1zV?Z6His+jwbT9tmNO=`1SD z5Rf3plW&MI+C6=(&1#8@0H2D)$T4m%MGKw}5)`bt{r7W@ZJkG_bVigR4%EaY zd26}~xfca%WAS1G%^8q&0LXzchO|&J_*y(QphNc5{&V?^3a}y7$79fLK0=R~VgsD< z5GorlZd()rW2@O!BEM7AiKHQ#3nd`M833ooN}E+W&7uh4r&@xA|bm zTmm7&)99n@=}S_h%`Vk%1#TwGIl*M0SuFPIpbu^YZ(vJ{Ea1CJ;{5Mr#6A&7TE{Pz zQxeev!237W-_;?zw8$rp97KjIY0VfboJY@RVg_a+GM%NK~N<8f%L()W*Rq?oyExNjZDBjr~@jMVJ7x|OQR6+X4L<^ z!S$2*N+kfcg(Q&-2UAWfJd)l-YwUuJipPKUB%-URa76GXcp(z4)T@)iNH3|}!A_4S-2e4e??Gi6aECR8Z+!ZCfafOTr#xS zz+x12u}7oV$~8p4>4t`uUB{6aEm}VcKE-wUjaFDL(2qHZ;@R78$V2|yEcfVeCgM*D zBUADY%DS&GH&ACrzD$H#Pq zvxw65^Z>42Q4xjn8N<(cKm=Zh8>}=0?BXyC1`SJQ4llIFUNoxoIsrX{`!r+D-n+ z{`XnlkbbVY#Lo1&w9$xbXH<^9_gtrW73iO@NA(>^K%8!mM)mO|1R^*5P1av0LJ(ml z_*SPyQ)^_{qG$cg!t{wtcwo1z+e)W7xMx!i(g^r*7q7<7ATsP z*M-i|Q~IvYkKnD@{+^j?`xIB^RTWLEIq-{XZ33Q1g>~|+FYwyPL4-F=RmSc2k?XIw zHfyK8u=aDxwl^TwUN|11zE2j!e%8glOj=iu%8+aRD^G>f49Z;X^f6@fMeN9DrEH<_ zdjrXQ5C=|!>st;1yw1&AgYDAQIxMVgm3qxvN$qsi>Yp2^-B0EAyIR+C)nLD1-3ujV z#7HAplHiS}FZI@z9#-Wa_Y5T$KRbMuZ^ndo_q**Be2?#c_~KRAj*;vO4FgS1lboit z>g`Pj^46AbL}L3O*SD_#bC0vlaSKpSNYpSPQT58|Ub|xdp1=q^k(Rni8x*gt5M&0b zBtw$9i#U?Q)=1W&Q&zuSY7ocq{`i~K4NdDFJ`?^+7k6g+nbY3D*Uq4!Q(XqZZSa5{ zo)hY}BcItR2QjCfM{Je@0bC3OH?T3xM=llo;&&qeY|Nzwak{FCv&rDy`${ zp{3=ND<|iyKHf~G76GuU{u*jTuGM`(CL(J40t%^XDny_A0 zz6jiH^&3w`3XL=!Lai?9RS2z%k@HDv1Y_u_dx2Gm3+y)a0DGYc%84w3$2Lbko?~QW zXB%CFsjb=DAXH~h(ebX7(90pdu!V=f!h03e!54bHUct4l_LQ)awqy`D$bLB6nsj$T+eg|T%NakfQTNSL19re1fY z1Ke{9^zN}7q)dniz?D6+mtm!mArIq(cR0zZ7_ak>+T_pj83x|DQlUZ})FqXzsbnPL zjo_c9s~4Z;ZtE$9(M(3tWK~lhMk)CHga5hl{0ZqiHAj7Q-F^d%IA>`CgQ~~m$KVa! zq=4a+V`Em4*Ilt&B44f^Yq&X2UTFceRR$ywQu1RYmomghRM|sL zJ%#oda@lvl*Ys>zXv&F05TflTF-lnxz+=&{6HYU+p?e`1TqAJp9dsRQgsHsh9Q}U) Dbu6RG literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.doughnut/borderJoinStyle/round.js b/test/fixtures/controller.doughnut/borderJoinStyle/round.js new file mode 100644 index 00000000000..43aa7ca6c51 --- /dev/null +++ b/test/fixtures/controller.doughnut/borderJoinStyle/round.js @@ -0,0 +1,26 @@ +module.exports = { + config: { + type: 'doughnut', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + data: [0, 2, 4, null, 6, 8], + backgroundColor: 'transparent', + borderColor: '#000', + borderJoinStyle: 'round', + borderWidth: 10, + spacing: 50, + }, + ] + }, + options: { + } + }, + options: { + canvas: { + height: 256, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.doughnut/borderJoinStyle/round.png b/test/fixtures/controller.doughnut/borderJoinStyle/round.png new file mode 100644 index 0000000000000000000000000000000000000000..dab62871e83c92991a55d2595d5221258a7dbaa7 GIT binary patch literal 15581 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 Date: Fri, 19 Nov 2021 23:29:21 +0200 Subject: [PATCH 2/3] docs + types --- docs/charts/doughnut.md | 6 +++++- docs/charts/polar.md | 6 +++++- docs/configuration/elements.md | 3 ++- types/index.esm.d.ts | 11 +++++++++-- types/tests/elements/scriptable_element_options.ts | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/docs/charts/doughnut.md b/docs/charts/doughnut.md index 5964864272c..d6a91912ffe 100644 --- a/docs/charts/doughnut.md +++ b/docs/charts/doughnut.md @@ -103,8 +103,9 @@ The doughnut/pie chart allows a number of properties to be specified for each da | Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default | ---- | ---- | :----: | :----: | ---- | [`backgroundColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'` -| [`borderAlign`](#border-alignment) | `string` | Yes | Yes | `'center'` +| [`borderAlign`](#border-alignment) | `'center'`\|`'inner'` | Yes | Yes | `'center'` | [`borderColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'#fff'` +| [`borderJoinStyle`](#styling) | `'round'`\|`'bevel'`\|`'miter'` | Yes | Yes | `undefined` | [`borderRadius`](#border-radius) | `number`\|`object` | Yes | Yes | `0` | [`borderWidth`](#styling) | `number` | Yes | Yes | `2` | [`circumference`](#general) | `number` | - | - | `undefined` @@ -112,6 +113,7 @@ The doughnut/pie chart allows a number of properties to be specified for each da | [`data`](#data-structure) | `number[]` | - | - | **required** | [`hoverBackgroundColor`](#interations) | [`Color`](../general/colors.md) | Yes | Yes | `undefined` | [`hoverBorderColor`](#interactions) | [`Color`](../general/colors.md) | Yes | Yes | `undefined` +| [`hoverBorderJoinStyle`](#interactions) | `'round'`\|`'bevel'`\|`'miter'` | Yes | Yes | `undefined` | [`hoverBorderWidth`](#interactions) | `number` | Yes | Yes | `undefined` | [`hoverOffset`](#interactions) | `number` | Yes | Yes | `0` | [`offset`](#styling) | `number` | Yes | Yes | `0` @@ -137,6 +139,7 @@ The style of each arc can be controlled with the following properties: | ---- | ---- | `backgroundColor` | arc background color. | `borderColor` | arc border color. +| `borderJoinStyle` | arc border join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). | `borderWidth` | arc border width (in pixels). | `offset` | arc offset (in pixels). | `spacing` | Fixed arc offset (in pixels). Similar to `offset` but applies to all arcs. @@ -165,6 +168,7 @@ The interaction with each arc can be controlled with the following properties: | ---- | ----------- | `hoverBackgroundColor` | arc background color when hovered. | `hoverBorderColor` | arc border color when hovered. +| `hoverBorderJoinStyle` | arc border join style when hovered. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). | `hoverBorderWidth` | arc border width when hovered (in pixels). | `hoverOffset` | arc offset when hovered (in pixels). diff --git a/docs/charts/polar.md b/docs/charts/polar.md index 550674272d2..9ec9bb27ea2 100644 --- a/docs/charts/polar.md +++ b/docs/charts/polar.md @@ -56,13 +56,15 @@ The following options can be included in a polar area chart dataset to configure | Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default | ---- | ---- | :----: | :----: | ---- | [`backgroundColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'rgba(0, 0, 0, 0.1)'` -| [`borderAlign`](#border-alignment) | `string` | Yes | Yes | `'center'` +| [`borderAlign`](#border-alignment) | `'center'`\|`'inner'` | Yes | Yes | `'center'` | [`borderColor`](#styling) | [`Color`](../general/colors.md) | Yes | Yes | `'#fff'` +| [`borderJoinStyle`](#styling) | `'round'`\|`'bevel'`\|`'miter'` | Yes | Yes | `undefined` | [`borderWidth`](#styling) | `number` | Yes | Yes | `2` | [`clip`](#general) | `number`\|`object` | - | - | `undefined` | [`data`](#data-structure) | `number[]` | - | - | **required** | [`hoverBackgroundColor`](#interations) | [`Color`](../general/colors.md) | Yes | Yes | `undefined` | [`hoverBorderColor`](#interactions) | [`Color`](../general/colors.md) | Yes | Yes | `undefined` +| [`hoverBorderJoinStyle`](#interactions) | `'round'`\|`'bevel'`\|`'miter'` | Yes | Yes | `undefined` | [`hoverBorderWidth`](#interactions) | `number` | Yes | Yes | `undefined` All these values, if `undefined`, fallback to the scopes described in [option resolution](../general/options) @@ -81,6 +83,7 @@ The style of each arc can be controlled with the following properties: | ---- | ---- | `backgroundColor` | arc background color. | `borderColor` | arc border color. +| `borderJoinStyle` | arc border join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). | `borderWidth` | arc border width (in pixels). All these values, if `undefined`, fallback to the associated [`elements.arc.*`](../configuration/elements.md#arc-configuration) options. @@ -102,6 +105,7 @@ The interaction with each arc can be controlled with the following properties: | ---- | ----------- | `hoverBackgroundColor` | arc background color when hovered. | `hoverBorderColor` | arc border color when hovered. +| `hoverBorderJoinStyle` | arc border join style when hovered. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). | `hoverBorderWidth` | arc border width when hovered (in pixels). All these values, if `undefined`, fallback to the associated [`elements.arc.*`](../configuration/elements.md#arc-configuration) options. diff --git a/docs/configuration/elements.md b/docs/configuration/elements.md index aff43601185..4c52b57967f 100644 --- a/docs/configuration/elements.md +++ b/docs/configuration/elements.md @@ -97,6 +97,7 @@ Namespace: `options.elements.arc`, global arc options: `Chart.defaults.elements. | ---- | ---- | ------- | ----------- | `angle` - for polar only | `number` | `circumference / (arc count)` | Arc angle to cover. | `backgroundColor` | [`Color`](/general/colors.md) | `Chart.defaults.backgroundColor` | Arc fill color. -| `borderAlign` | `string` | `'center'` | Arc stroke alignment. +| `borderAlign` | `'center'`\|`'inner'` | `'center'` | Arc stroke alignment. | `borderColor` | [`Color`](/general/colors.md) | `'#fff'` | Arc stroke color. +| `borderJoinStyle` | `string` | `'bevel'`\|`'round'` | Line join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). The default is `'round'` when `borderAlign` is `'inner'` | `borderWidth`| `number` | `2` | Arc stroke width. diff --git a/types/index.esm.d.ts b/types/index.esm.d.ts index d8759fa6b92..c2570abaf7d 100644 --- a/types/index.esm.d.ts +++ b/types/index.esm.d.ts @@ -1678,15 +1678,22 @@ export interface ArcOptions extends CommonElementOptions { * Arc stroke alignment. */ borderAlign: 'center' | 'inner'; + /** - * Arc offset (in pixels). + * Line join style. See MDN. Default is 'round' when `borderAlign` is 'inner', else 'bevel'. */ - offset: number; + borderJoinStyle: CanvasLineJoin; + /** * Sets the border radius for arcs * @default 0 */ borderRadius: number | ArcBorderRadius; + + /** + * Arc offset (in pixels). + */ + offset: number; } export interface ArcHoverOptions extends CommonHoverOptions { diff --git a/types/tests/elements/scriptable_element_options.ts b/types/tests/elements/scriptable_element_options.ts index 0776ec0a080..c81892d7910 100644 --- a/types/tests/elements/scriptable_element_options.ts +++ b/types/tests/elements/scriptable_element_options.ts @@ -43,6 +43,7 @@ const chart3 = new Chart('id', { elements: { arc: { borderWidth: (ctx) => 3, + borderJoinStyle: (ctx) => 'miter' } } } From 683253bf4281f37e2cf50dd06e6a6b6d555dbfdf Mon Sep 17 00:00:00 2001 From: kurkle Date: Sat, 20 Nov 2021 10:47:33 +0200 Subject: [PATCH 3/3] Consistently enumerate the possible choices --- docs/charts/line.md | 4 ++-- docs/charts/radar.md | 4 ++-- docs/configuration/elements.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/charts/line.md b/docs/charts/line.md index bfd9927d175..819799fe9b5 100644 --- a/docs/charts/line.md +++ b/docs/charts/line.md @@ -49,7 +49,7 @@ The line chart allows a number of properties to be specified for each dataset. T | [`borderColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `'rgba(0, 0, 0, 0.1)'` | [`borderDash`](#line-styling) | `number[]` | Yes | - | `[]` | [`borderDashOffset`](#line-styling) | `number` | Yes | - | `0.0` -| [`borderJoinStyle`](#line-styling) | `string` | Yes | - | `'miter'` +| [`borderJoinStyle`](#line-styling) | `'round'`\|`'bevel'`\|`'miter'` | Yes | - | `'miter'` | [`borderWidth`](#line-styling) | `number` | Yes | - | `3` | [`clip`](#general) | `number`\|`object` | - | - | `undefined` | [`cubicInterpolationMode`](#cubicinterpolationmode) | `string` | Yes | - | `'default'` @@ -60,7 +60,7 @@ The line chart allows a number of properties to be specified for each dataset. T | [`hoverBorderColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `undefined` | [`hoverBorderDash`](#line-styling) | `number[]` | Yes | - | `undefined` | [`hoverBorderDashOffset`](#line-styling) | `number` | Yes | - | `undefined` -| [`hoverBorderJoinStyle`](#line-styling) | `string` | Yes | - | `undefined` +| [`hoverBorderJoinStyle`](#line-styling) | `'round'`\|`'bevel'`\|`'miter'` | Yes | - | `undefined` | [`hoverBorderWidth`](#line-styling) | `number` | Yes | - | `undefined` | [`indexAxis`](#general) | `string` | - | - | `'x'` | [`label`](#general) | `string` | - | - | `''` diff --git a/docs/charts/radar.md b/docs/charts/radar.md index 47e2a888795..5508b2abf6b 100644 --- a/docs/charts/radar.md +++ b/docs/charts/radar.md @@ -79,14 +79,14 @@ The radar chart allows a number of properties to be specified for each dataset. | [`borderColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `'rgba(0, 0, 0, 0.1)'` | [`borderDash`](#line-styling) | `number[]` | Yes | - | `[]` | [`borderDashOffset`](#line-styling) | `number` | Yes | - | `0.0` -| [`borderJoinStyle`](#line-styling) | `string` | Yes | - | `'miter'` +| [`borderJoinStyle`](#line-styling) | `'round'`\|`'bevel'`\|`'miter'` | Yes | - | `'miter'` | [`borderWidth`](#line-styling) | `number` | Yes | - | `3` | [`hoverBackgroundColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `undefined` | [`hoverBorderCapStyle`](#line-styling) | `string` | Yes | - | `undefined` | [`hoverBorderColor`](#line-styling) | [`Color`](../general/colors.md) | Yes | - | `undefined` | [`hoverBorderDash`](#line-styling) | `number[]` | Yes | - | `undefined` | [`hoverBorderDashOffset`](#line-styling) | `number` | Yes | - | `undefined` -| [`hoverBorderJoinStyle`](#line-styling) | `string` | Yes | - | `undefined` +| [`hoverBorderJoinStyle`](#line-styling) | `'round'`\|`'bevel'`\|`'miter'` | Yes | - | `undefined` | [`hoverBorderWidth`](#line-styling) | `number` | Yes | - | `undefined` | [`clip`](#general) | `number`\|`object` | - | - | `undefined` | [`data`](#data-structure) | `number[]` | - | - | **required** diff --git a/docs/configuration/elements.md b/docs/configuration/elements.md index 4c52b57967f..ec5fe9659d0 100644 --- a/docs/configuration/elements.md +++ b/docs/configuration/elements.md @@ -65,7 +65,7 @@ Namespace: `options.elements.line`, global line options: `Chart.defaults.element | `borderCapStyle` | `string` | `'butt'` | Line cap style. See [MDN](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap). | `borderDash` | `number[]` | `[]` | Line dash. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash). | `borderDashOffset` | `number` | `0.0` | Line dash offset. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset). -| `borderJoinStyle` | `string` | `'miter'` | Line join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). +| `borderJoinStyle` | `'round'`\|`'bevel'`\|`'miter'` | `'miter'` | Line join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). | `capBezierPoints` | `boolean` | `true` | `true` to keep Bézier control inside the chart, `false` for no restriction. | `cubicInterpolationMode` | `string` | `'default'` | Interpolation mode to apply. [See more...](/charts/line.md#cubicinterpolationmode) | `fill` | `boolean`\|`string` | `false` | How to fill the area under the line. See [area charts](/charts/area.md#filling-modes). @@ -99,5 +99,5 @@ Namespace: `options.elements.arc`, global arc options: `Chart.defaults.elements. | `backgroundColor` | [`Color`](/general/colors.md) | `Chart.defaults.backgroundColor` | Arc fill color. | `borderAlign` | `'center'`\|`'inner'` | `'center'` | Arc stroke alignment. | `borderColor` | [`Color`](/general/colors.md) | `'#fff'` | Arc stroke color. -| `borderJoinStyle` | `string` | `'bevel'`\|`'round'` | Line join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). The default is `'round'` when `borderAlign` is `'inner'` +| `borderJoinStyle` | `'round'`\|`'bevel'`\|`'miter'` | `'bevel'`\|`'round'` | Line join style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). The default is `'round'` when `borderAlign` is `'inner'` | `borderWidth`| `number` | `2` | Arc stroke width.