From c3e709e90e1a78c639a8d403e8c703077ccf5cb4 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Tue, 13 Jul 2021 15:02:14 +0300 Subject: [PATCH] Fix bar direction when minBarLength is applied (#9400) --- src/controllers/controller.bar.js | 31 +++++++++--------- .../minBarLength/horizontal-neg.js | 3 +- .../minBarLength/horizontal-neg.png | Bin 10242 -> 10442 bytes .../minBarLength/horizontal-pos.js | 3 +- .../minBarLength/horizontal-pos.png | Bin 9935 -> 10255 bytes .../controller.bar/minBarLength/horizontal.js | 4 ++- .../minBarLength/horizontal.png | Bin 10976 -> 11336 bytes .../minBarLength/vertical-neg.js | 3 +- .../minBarLength/vertical-neg.png | Bin 9031 -> 9029 bytes .../minBarLength/vertical-pos.js | 3 +- .../minBarLength/vertical-pos.png | Bin 8979 -> 9005 bytes .../controller.bar/minBarLength/vertical.js | 4 ++- .../controller.bar/minBarLength/vertical.png | Bin 9015 -> 9228 bytes 13 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/controllers/controller.bar.js b/src/controllers/controller.bar.js index 9a568cdeb..1ab4f2217 100644 --- a/src/controllers/controller.bar.js +++ b/src/controllers/controller.bar.js @@ -170,6 +170,13 @@ function isFloatBar(custom) { return custom && custom.barStart !== undefined && custom.barEnd !== undefined; } +function barSign(size, vScale, actualBase) { + if (size !== 0) { + return sign(size); + } + return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1); +} + export default class BarController extends DatasetController { /** @@ -426,8 +433,8 @@ export default class BarController extends DatasetController { */ _calculateBarValuePixels(index) { const me = this; - const {vScale, _stacked} = me._cachedMeta; - const {base: baseValue, minBarLength} = me.options; + const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = me; + const actualBase = baseValue || 0; const parsed = me.getParsed(index); const custom = parsed._custom; const floating = isFloatBar(custom); @@ -454,7 +461,7 @@ export default class BarController extends DatasetController { const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start; let base = vScale.getPixelForValue(startValue); - if (this.chart.getDataVisibility(index)) { + if (me.chart.getDataVisibility(index)) { head = vScale.getPixelForValue(start + length); } else { // When not visible, no height @@ -463,24 +470,18 @@ export default class BarController extends DatasetController { size = head - base; - if (minBarLength !== undefined && Math.abs(size) < minBarLength) { - size = size < 0 ? -minBarLength : minBarLength; - if (value === 0) { + if (Math.abs(size) < minBarLength) { + size = barSign(size, vScale, actualBase) * minBarLength; + if (value === actualBase) { base -= size / 2; } head = base + size; } - const actualBase = baseValue || 0; if (base === vScale.getPixelForValue(actualBase)) { - const halfGrid = vScale.getLineWidthForValue(actualBase) / 2; - if (size > 0) { - base += halfGrid; - size -= halfGrid; - } else if (size < 0) { - base -= halfGrid; - size += halfGrid; - } + const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2; + base += halfGrid; + size -= halfGrid; } return { diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-neg.js b/test/fixtures/controller.bar/minBarLength/horizontal-neg.js index 85e6dba68..c625aa64e 100644 --- a/test/fixtures/controller.bar/minBarLength/horizontal-neg.js +++ b/test/fixtures/controller.bar/minBarLength/horizontal-neg.js @@ -7,7 +7,8 @@ module.exports = { { data: [0, -0.01, -30], backgroundColor: '#00ff00', - borderWidth: 0, + borderColor: '#000', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-neg.png b/test/fixtures/controller.bar/minBarLength/horizontal-neg.png index 4b8335a436d370750d94727724b65d41332995fc..f012c82b6fb47245553eacbac130dde0164c41df 100644 GIT binary patch literal 10442 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 TnF1>tAg|4@y&flx<(2;j?8)12 literal 9935 zc-rlne@s(X6vyv-v;}IwDliupXfudYG?5w62-MbzLrtrouOI}W%YrZ*fe0c4MjyD$ z={9Rz$UuIyj)?UYDhn7HPFtNzH%N-6EhrPpG|DJaz*@T2wr{u3#4K^yKiiyJUX!Nx zt9ENduhn`n8R=}F__>Qk_ylUyj4a2d3r`njI0=!nJqpyGlM#if zkwEjgu7=o~*S92SSu8*Z;-oTx2v(EE?K-$r1(&jgQUa`1g@WO?r2?~N&FBI~SOg9v z$kxyEO8I00f*#|y6!fYDKYP~Klw3`cO6hpnKbh%vu=I@Wku7?*|wrAFWkbDDTh1df|E zwzNi@I0DyUNWt@>(G!$tl+!h0=EJX_LpcqxAcP3eU08H$=LNOMiC#@+@`Mtw7)yzN zM*`6FOMNMMee2<9H&eOkAn09(J~>xjKbga8PyvRDEv&PumUXa&e+R_7_o@?f4FfKp z^`YM7u`1>QeTz!K{3TskvGwcz9=Jn?Q&wCVHKBLSneONZv&IF3!Fz@#n#UfUZMd>! z$|V?Ze4x%JV~qJ{TFFw8;$o$HXC+7yJK6;WnU?Dg6L+6G+}K2NhSz^_*_|tO$KGrr zfe{+M+*wdD`isRAJm4-i`AFH3$+5>XN3)$85tWT72(RrF1uyWKR$nBpGYKT|^pW}3 zjtmWvhDbxCA<__Oh&06i1jJUotNcpymv*oDw%qPA3+^rSL`yTB{w|M5f78#w>$Nns z9+72*U~(D3#v*ZGwvY@+A`_C}!;O=e`S~P}SUtreD}p{y^sS^JzCeg_yQ4aRJ9y+a z{N0w+nC&x_h*1rc=S!c+x$4Q2Z_WR#93-)z$1?p>6q&#o57(g_E!04A? zA>mLcwW`)VC(5j4G*CQc!Etmd>H9!Kq#@D}X^1pL8X^txuR+{s7`9JVCvjm{Her8% z=zQW2$SqkSj4qe7`&VhnDx>{`I=~#QW)Y!6+&UwxgJe4X?4K1Gv7KVm$)*n&eM@PG zFAm~$y{mF#i+o~p+!OC{&y=S;$KZ4>;CNQ&FIBdd_S*I~LNYO7+=-uD2XYMDAImle zb9h1=)UISE0gY!>O*n!wf;a`x%E~oTbGmvo3S`v0A~**8b3M@NJUaZKZfCNL_0?4hUevKc-&f)^VzzSpf*=HuHPV-!ATBp*1!nI9~`dg zgju$Uy$W@MU#8DDBlaf3_-%iXL^AZLbYJ8@N1ab1qnbzqW ctx.raw === 0 ? false : 'start', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/horizontal.png b/test/fixtures/controller.bar/minBarLength/horizontal.png index 39b1d3f12523224887251a8c77749777fc977fcd..11aefdb1d8d32b405dac41e42da214c86568947d 100644 GIT binary patch literal 11336 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 ZTJYsP0*7gVWhw+ep+OOWHU5GFKLfyAlVkt@ diff --git a/test/fixtures/controller.bar/minBarLength/vertical-pos.js b/test/fixtures/controller.bar/minBarLength/vertical-pos.js index cf0afa2b1..96e2756c3 100644 --- a/test/fixtures/controller.bar/minBarLength/vertical-pos.js +++ b/test/fixtures/controller.bar/minBarLength/vertical-pos.js @@ -7,7 +7,8 @@ module.exports = { { data: [0, 0.01, 30], backgroundColor: '#00ff00', - borderWidth: 0, + borderColor: '#000', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/vertical-pos.png b/test/fixtures/controller.bar/minBarLength/vertical-pos.png index b5d4f8a2e12ee711beb6589babc643a9d0cb6a1e..5561b4f3b3de56ec49cae89a65934241c294d661 100644 GIT binary patch literal 9005 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 C^>fq! diff --git a/test/fixtures/controller.bar/minBarLength/vertical.js b/test/fixtures/controller.bar/minBarLength/vertical.js index 4a45513c5..d7313be9b 100644 --- a/test/fixtures/controller.bar/minBarLength/vertical.js +++ b/test/fixtures/controller.bar/minBarLength/vertical.js @@ -7,7 +7,9 @@ module.exports = { { data: [0, -0.01, 0.01, 30, -30], backgroundColor: '#00ff00', - borderWidth: 0, + borderColor: '#000', + borderSkipped: ctx => ctx.raw === 0 ? false : 'start', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/vertical.png b/test/fixtures/controller.bar/minBarLength/vertical.png index a78cb133d00a3d09701b6bdf6aba54d808c5b718..c79c4f3f3c90fa3675a166bcae2708f5d4618a9f 100644 GIT binary patch literal 9228 zc-rk+YgAKL7C!fK(FAG@U=0<8tDwQEAfiPCLR1t`AYiHT5Q(Bi8%t0ugjaH7)uJMx z_y9o=aePz-1bNg4#44f{0hRY#P@qU4h(sWP%sm-rI%|H+nm@B^PXQl1^^D69aehsw@6y-D=(FKOJ7;I zojfr|>*0d+8PsKKIjh_+Mgerus&`h8>8x86kE$0Q-cIuu9eF=}e+=#9QqK(0H{LOG zv~HUeJU4!j%iSwa3kt7sil{- z?l$-ZyeRZ7vng<#NzsD#bIz|G|0`BV8s%E1}qX! z1%HhsNIhmA2BPm!lm&Jh6xSGN6Ez(&V-}tV$0T=$^fq8(PdCz!`(_rP5FN(N!YHJQ z_hvncRnTbwZCA`!rWf%+i$zZIqq}0K~V0q`Pmi<6v4PBQfUqr7_2sHk6 z3`SX~N502t$dR-p>LNV{fOxZ?N{y|6gxtt0K|Rw_Okc|;E_Z@YA}Rh z1X#}diP!7|Hg{e1I|)ReA_xvvJbE3=#>Afw^i0Pn6cSOD#k|0%IiP~?SctPYanNp2Me6oT~na`zo8U2w-= zJb_WR>yn7@m$rw})_?==d{TjE8w@|qpkc66i`ZjRV!~>-g*+-!dJV|8&V+wUpUXPG z8X}6buc>$TgM}xmX06NO z{X!H!S=WJ4ra`UG*FTOk+5}>oM&}}EH&iyb)w8YWI4COr>W(Rb&Vq>c#Xk8wokCc) zJ|{CX$r!p$b^apf2r!j8#W@k;B@pE4DNX&yFmXRU#~wkGA)?1i<1+$vK*rta4A%K1 z7`}9EsGO(i+!LX+1QED8Qv+!~vuZ#s#e;#51AmE|(3W zuQ8U$ajyf4orWNDcGrjUOh9M}F;1mDHi4OSDf|<=qk!@ze>sAd!tkbF=605S20B9p z&V)D|@<_F+u?jK)W<%9x>j>755YeoFy^k1Zdu-S~Z4~Q*^SC(hgx2*rK+E=ou`ZsY zn*JRR3L=e>9Jyv6n_$g@h?YDH=<&u_rrD)bnkm$pb@TWv`z)YeI0UmFD%*bdYVjUp zBslqUs0WIzfQWkZ6D^rKAn+eEM8MVC7f{< zAy!gH^nefzPA)N0*Oj`i)ODp^!qlbq2QM`yxnK;Y%gOx5;&l0U@@1_<2KSnZU$*Y@ zx9dF=f3Ms?QYP`1E41w+^YUfS1I`RaGZ7)0FyNXR14Pm21SU=geJRDIHrhmKdjYw} z&xeSvPTtq`3KP4ya>+fuAEef6*&HoEs$Ac!Mlmzh=|S_6qH}?IkFRc!>ISK9kpG@i zyE0#Tu(nZHZ9A6xm2v}D;`lU_>q@#g*jW&^0LiIq>#v(m10UM_L9^A7@s4A%Oxbn2 z@?Pb{a0FNKpx*UH@hTR$?p`oilx~iLe)b_y#G58R2x5j?if)7Y7~b2b+7v<#Z(IyY z1+&4nXsawU@MTBS*gJT+Vk3!^w8&DCRkj1*vM|0elCHE$32S0E`4_)8?^lwOl3mK%W`kl(zxG#cnZ@rFiS|6BTZQH`cPJZ} zyGxWWN*MMEZta7TP`k10G+}^HEF9}O{mG7<=w*2d`h*0yDCQEOmU$E8G)t<_mmwQ`6I;iHJIi`7z%bT*&=c;}c3n?e2}sAat|{jz<*K&Uy3}vqT+)--im@!ek2jEal_R8^ zzVuZLT*`-G4DFW*22a4oG;tbt_kg30grxMAlcO%qaQbm})qL1SyRVG&omLI%|NBAa zlUYAy{>eI486w`5_RC6&Exgqfw|$yzO126OEkeGw7|-#6!)q+VngwY4MB=~jFwh<) z5B5&5uvz;p_F>TSS_JE;H#yG;-W;32H4?wCzXFBU_34o9aCt*KAWdD^91}R7%o0Is zqiRATy80Xm(xk%1?X>t%91B|4G~s5%E<|Qbnxc;_Vzna!ipPwB4dbn<=9sFO8MT%x4EA7yDA&I8|nT<$`8KWHvK{VjZVj@BI&J8 zn{=8AX9Ia|!li7`Z+99LFilTU{vQHkFL=mortOo`kqO@^<*C+2z%!*HIQY}4Y_s>!LzsmcASyhEElBH&64jOh{o$E~dK@}@%oXq3VK0;uyxO-@bjKSYi^T~(WXUpF4a zl`JqW6Ot{7?Zf@+pJOPrBy!iu^z#JeY0KZL0%^gp8$P+PTD1}MK@i$Bpqz3H!vxkZ R{J4PpIInSY$XdnO|7Urs1SJ3f literal 9015 zc-rlneQ?v}9mjuCY-+~~ahzrzG++}a5SlhA*LHyxV)JSeN=R9|Kv`_I<(A%UcTS=x>^h3evMxPrVx?gR$66E`+Kke~0-6ewCKmCl{H8trXScEa zvwxs>lkOzlSNiFr=jEQ?^Lnd%jr- zn)d0Za8ZXyq+2c{6tl00$@4u+_rneihBXWc7y%<-1dM>W3mCo<`e(KMu|=WQ(P?oe zm73xLp})oWqnAwa8=!fdfi*Nn9p{tf4_YqM3 zJSJcSjDQg^0_I*|{9>|NV~U`OMB??4E|-6q)@J82#>WzQ4y!$x`j(5_oLH8u5~akX zI|su>nT@0oZp8+S!ptgQ1dM>W>zGffo}sTYsv0Wf?;moEZb|oME`UM&)l6}}RjE_&BPNr)#W%<1_Ud(vxP zjA85yUk*;^$^EQeLR6nk9nsc-wch4mk20TunsWTt+^S znu(%y)QamPd?b2&DO(k*?!kBaj8XQM45@|}psz8@@&2JI2T2i}1o0hXMz)u{qh z%tczp`3ev5DCeR=sWTMkOws-{<=Q|w;#2dQ=K<7ytOq%E#VSRf6GXi51$?|JFaj zb=seR_iXq#_O;;Mw&~7R7&~bH2rRn;vh-fCjDPSSeOQ%l#aP9#GBFQhFZ}d>sd&GP zFd0(2OfH728DOimQGO{O;lim=rSHZ>^6!qe%y`J@^3^2Uc_-sv%F~>(#orfQ%_ljE z^0#FIU-q6kNGdDXB-2P$b@{EQ_e$UMq)R+$ z8QDkqY+a1;^JD$j)7oXOF2{5cpG*%+tq<)mxg61@l#k!!Of(Eeo8x5rzwi0T-ctJ#-JKa8FokVlJJx8RI+UO>*p12_) zoG<0Oxi7^cU3!LuP$WnX#5bKQ0M*1?L+C@9gh=Gcp)9<^jIpOWG>Ej!`^_(va)>;j zhPs}J<)+kG4^eDlMXJMkTL1W_sY=giVuB3TE>p}$H0-bx)JaQ_DXXXEPu?f6!G)N3Prx)Q1 zP+i_az6E8EH?m`Nb-7B@TB3&6H{aX9cK|t~8K_0)tQVA^1a;5Uq#iA3BEyp+iCnFt zdnKt1_j%|IrrI^`QTB(gG8?E3T`qp_aeHDef9YR7av*@V9?kC;g8H<$+aC8%;q=7Ze0?_T*C-Km%omiP1SP1uqN2xe`fwufGM>$9>}HXjPu=4F8ahl( zkIIaR$r|+-xl5H@WsJv;W$*@V%7iT4d!1APx@zFyY0d2Lb M>sOszvGuio03sH%0ssI2 -- 2.47.2