From 368ad3cf70414de7769852cf52693c08aaf9e05c Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sun, 13 Feb 2022 11:59:00 -0500 Subject: [PATCH] minimum bar length setting keeps bar base in view --- src/controllers/controller.bar.js | 5 ++ .../minBarLength/horizontal-neg.png | Bin 10442 -> 11436 bytes .../minBarLength/horizontal-pos.png | Bin 10255 -> 11484 bytes .../minBarLength/horizontal-stacked.js | 43 ++++++++++++++++++ .../minBarLength/horizontal-stacked.png | Bin 0 -> 11862 bytes .../minBarLength/vertical-neg.png | Bin 9029 -> 12040 bytes .../minBarLength/vertical-pos.png | Bin 9005 -> 10977 bytes .../minBarLength/vertical-stacked.js | 42 +++++++++++++++++ .../minBarLength/vertical-stacked.png | Bin 0 -> 8673 bytes 9 files changed, 90 insertions(+) create mode 100644 test/fixtures/controller.bar/minBarLength/horizontal-stacked.js create mode 100644 test/fixtures/controller.bar/minBarLength/horizontal-stacked.png create mode 100644 test/fixtures/controller.bar/minBarLength/vertical-stacked.js create mode 100644 test/fixtures/controller.bar/minBarLength/vertical-stacked.png diff --git a/src/controllers/controller.bar.js b/src/controllers/controller.bar.js index 2d7629a308e..e2b45bde3fd 100644 --- a/src/controllers/controller.bar.js +++ b/src/controllers/controller.bar.js @@ -543,6 +543,11 @@ export default class BarController extends DatasetController { if (value === actualBase) { base -= size / 2; } + const startPixel = vScale.getPixelForDecimal(0); + const endPixel = vScale.getPixelForDecimal(1); + const min = Math.min(startPixel, endPixel); + const max = Math.max(startPixel, endPixel); + base = Math.max(Math.min(base, max), min); head = base + size; } diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-neg.png b/test/fixtures/controller.bar/minBarLength/horizontal-neg.png index f012c82b6fb47245553eacbac130dde0164c41df..16c6cabd522e65a235ed6a4a87476caa432d8609 100644 GIT binary patch literal 11436 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 DO0?#d literal 10442 zcmeHNeNa`9ilZX-TN9rr0syST4unPnfWk`@SX#gzP0pwe09Oze8p6n7&B{Ks zO(KZi{`<#NyVJ>jHbp8M+xSw%mV7oD-Kli2P6`vB@4dSmJNDj_8V)CS^`Aix9;Nr@ zh*>Dmj z*;Jw9F`XDB{tT4#Z>HrHguG9ZfH7uLVQOPUoPKP8Ki0C?K+B^$@(UVC5{ofZ*=;*T zAM}*6*rih_nVN-E)E#cJi*e*5&GECps$3Lq1!hp%x``mkdU?3MiYXLJTt^6O{xnJs z5i#6a;Cf7l?ArF(LkYkFN`H%b0^6h>uD2wM_9w}zyTLkI0@%^85lp;86{N;gE}})D zP-PQIVm=mqwH>a<4W^b1bW*b5Gj)TLQ9hv6sUT>qW&13_q8O@VIP$HUZtOe)*W0Vc zoXb-(pgrU)9}bNR2h{3UTwHM{ni+PElG{ZV+h62MG`1ol!}~wXsKyTE>GD;K5!PtxPC{vBzU47lb!L(=9Jm-onz)gl!BXTuE?M#7J5Aq>bQ;gTA?ICG zt;Ae$>tc1v^De9MBCga|usT_7P&TpaId?!A%@*uvQHP7M7oTTpuw2CxXCNMb(wuqGt$+l0h%7tX)_`qz*L#@{2^x$Zw|y z8OWX78_@c9>Bv-o0}$>l2$DsJp;wH1^jBqig1~xIa@Ku#|AR&fouK@pJm^#$J%Ug- z$p96q1ezKmkiJKCIaM$J5Bul{d#C->wb{|?M)dSTICO(Y zJvw~G6VNW8+|H|<*O;bj6h9Gv&e-EAOytdT#1c7M zkz1wO6@L48g}g`3t(v(Ttq#7Y;WlRr-qf{@Mh@x!2v!FK5DPV^AUg0#AffgsXCxY=AD)MiVUg819m0$7YYz0GL)zgpvIftP>oqPPRV)hMs5HWN z1vaSpINNzC7O34H3Vd6#J0kT~Lcs=I4^J>N*`*&B95n%aPe>ZDjI1>#67w|^>9vQf z!^mX7t1ZNDz`T(lsF@U;pWuY=|48_72K~KC5{5T*Ne5Q0qBg09$ajy-Ccqj+E0bpA z{A$ci>as`HX3vkJBlp>cnpEUuPS;{94b~Tkk^#RV5y*_LpRU#HeLsHoNG0UY_Wbgc z+BD?z>xK(WZcI>d(Oeg|OM8r|q9SpXUvzDxMohN>PIOYa>OftIi0;78Z+gA>yyyZf zf9Sk`&{)k_Y6BX&f4E;uptrGl^VQZwYB2L!Xuqr;HmIqrvd~(ik@Em$!T?BqKW(E-%_?2LWHpAbO@rW1S7f%iUIiw-asr-qBdI< z1)oARt;W{Ve~W3bOR6iIXR{4N*U?phd%x`NzX2mfwTZ#;+A|AN5n7ynujK1)lmqN= zVX>m0dY12LCu}L=gQGJW#YYNTUYo`K^Y$<7djj?t<`$Zm7#NkGY{PQ=3PE} zXjstA%xr7pVVmXJk}v;2qx9KNn21?jkzuk@BUMgeEcE;j^9+PDsr+<~|;)O0X#@PGAL4%8d${*tmjBQ!#>41m6h`N+gL4bITiDR@rB@7-+KGuo7G}7lzb!XR zBz4a}g6I(rooI>`eZ7Xyv>g4g+rg(tOc_a1q!?d2Vi2^LkCu{&Yli~QyI?&*>C!ea zlgMjX%3pn8cqhf+vA)K+v0h9*8f-=;ix}V1QsP;xO~>h9d!~bQT)oSV-TQ9lUfw+iXB0u$zKGD) IJ?z4N0gcQ>lK=n! diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-pos.png b/test/fixtures/controller.bar/minBarLength/horizontal-pos.png index 0f89b8676ed783cde282ee71db128883460cae18..8d8b4724e9f469a43dbfb56deea6c4d73c8703f6 100644 GIT binary patch literal 11484 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 literal 10255 zcmeHNeOOc189(NdEfK?e!usvV7wONPFzL=0Jv|7js7_RD7-}hVFA484&62bKml8#H!=^UPxY@6 z``lI>9w}ZFQnGfHKgVs)_FzE#Sv?wBwzZqG``G&*?m#~rR)(7WU5Sz1ru3c-+*QZb zCy%QFgI)>ZhN~?1>a?=a)^k99ZY-$1S`&XMWUuQ?lGQd;Tfd|{l%Wr6K^4d<=2X`E zSt$lloI&UdO3w2{SqvW_eox93rS0roLU=I%AR^JRhV`O_ExeA!ZT$*rfc)xtlw2JE z+(jNyC(;aUUIW&bhWMGl2mp31%sQt zORUVxy$6EGaZG?Rag>dDOs`}dh11be$P^YP;V8i@u#Ac4|JuJzkd;!S!If4J>3k7b z(R?K9Pa@#@(ZRgR-UHe24$iV{66Dy;I0dah4^Bh~3~#=xA~8PIo6lE>HHkHvcyGRx ziR^ydis(^?6;bl{VMOEWV6Z-yTf~_mku2}}nO>D5cd}8qGif{RhA~?uVa05~<>qMA zGP8OO@|n3>{xa>lZt3s3d8gE)$(6Ph@|bhJSh%qA7gWn}UqDKt>dQ{)SBuNJ)f1cI z5-_r|sVCC7sG56pe8P`oUVFEkSAv(8zZW^SGEm*!Y<JRzi*IeAGiYOYiI({AcK&#AbFCvwwCR^4YN z6V0-eKZH#Ux(xs13j^&}+x#vR=vLN52I&7Ld$YJtT_wmg|MrVq+9$g3)^ct?d`sBG zyYX>k{LD4BR96=5r+3*-dwYt+^GtGh1ODsHOUBJ@UO@!hdJ^0zBsP^g@11%;h-1gR z{v|c=8-}w#_ECJx$9TATClj%r5hrs-s`I#eGLAc^CptaR>4{GbdU1yHcZc(*r?nTf zmD=m3iTw7VvtbgGEWH%7Vu~scsjU`5YJKWF!lSnGk}%V?OAx(9nNmRIChCLZ9#XH= z1j{Pr$~Iq1qL36teXt`=AT7|vP=W8s0*xwAots{1Su2k@QI9PZ%W8|qQ-ZBWKi6VZ zx$0)5@udh58LLaAakf2#RPw76>S%FciqH=6KULzTf6eWyB>lxUQX+WZFCnZ0v+2Sx}dms;F9 zo$jk0vh<&>tk+Ali+uRj{GJ2ZlfUo%11z-YXL;EL=~$+9rcP_k`6FIh#VViGVU5fA zKp_!tokLK!T`0l&1lHr#8Tin_z`oY6yMh4wY;M=`K3m2*^_PjK^01q025LpDd5Aad z2RMedI9L=pQ*rQ-(m#%n8w!{&*vli6e)D3wz0|X;>&KRTVE%Wif`kxMD*!3z}8Szop(7uD#*EkW8WTK}iBr>N4zQ{bf-g>PjF} z7{o*1L}#Yg+<(LOiVC~J*@EfFTe5srw^?bDoBnP&peo0rX`%A5cSbt%cfzu2Ta8h3 z#iVaItu<(8ED8Z~XZ%bQA0Vh}WMYYO3~P}cGVJ5ghdtnr z4P7e*$Ly~Y;&2f_Sa;adG5!YE2%s_67j1P+E!g`$sNTP9v*WuO@_le|wD6y+9m|ly zMR0oeJZJv``Qj$Hq9fBiO)GxfgS}C;?>PYQz4l&!r+1akl{v%U84d8K-t~v`N&IYC zm`bf3(DD9}>o?P?ZL$|Na(7kRuwCo#Sq#B*iK(^%LS8nhpqO-psw$Gy>?1mka!O7a zA1`$uIwp&Coce!8eZdaKs6B7+rS51e$&v5|?`H&=-?eAFL$_2{M;b%+cD?ZL36I?u zj=5#>`uuA&l44<@Tv@T*AhzS#(h6S))Edt?dUEjdeMsFdP>cky>4^W9!sU^CnM8su zJ@r&G<;x oWn(s?E(Z1e+LUVSZE9K|X97wpN~ZvX%Q diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-stacked.js b/test/fixtures/controller.bar/minBarLength/horizontal-stacked.js new file mode 100644 index 00000000000..8452ed6c8d6 --- /dev/null +++ b/test/fixtures/controller.bar/minBarLength/horizontal-stacked.js @@ -0,0 +1,43 @@ +module.exports = { + config: { + type: 'bar', + data: { + labels: [0, 1, 2, 3, 4], + datasets: [{ + data: [0, 0.01, 30], + backgroundColor: '#00ff00', + borderColor: '#000', + borderWidth: 4, + minBarLength: 20, + xAxisID: 'x2', + }] + }, + options: { + indexAxis: 'y', + scales: { + x: { + stack: 'demo', + ticks: { + display: false + } + }, + x2: { + type: 'linear', + position: 'bottom', + stack: 'demo', + stackWeight: 1, + ticks: { + display: false + } + }, + y: {display: false}, + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-stacked.png b/test/fixtures/controller.bar/minBarLength/horizontal-stacked.png new file mode 100644 index 0000000000000000000000000000000000000000..87da74832c7b26596872b860561aacd9f50652b1 GIT binary patch literal 11862 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 literal 9029 zcmeHNe^3)=8h&?8G{Oafh_ooM!d0qLDO12-NPK|$0OXvL+qXFZW49l(ncvWs;P z?i9ItCx{|W?F^K&z?B1X5t7tUu``19ph5|fU^zI5kS)2ygoJP(+|2c+|J>co-Q3*F z{9_kH`k`|k5>>Heg6zMG#L0Pqv`hz|hZ=oAOuQgrx>v~L!GfCO>uA?cAR zov`c(d7x_~YwgY`LuC23@a5YXTyX!hfmNTCr_mK6dd=L<#|D0R8E2ASnzeiK#2t0p zaJ_kNNluM0+211T^Bd0Sx40%956>HwsvSA=mRWhBD#q&H)uVoeiO_}#yP4kn49aO$ z?r?W@qccalMMzRg*Tk&x#;pO%K90*W+iMByC+E~HF0-;>{>PGJCpo7E{0QFg3r?-F|hMm$Yg`=!($RzDQB!y&cvUhR3tM z2$(A{nZF9jv)X?qufYw^#;w*iwH;H>apiBOz`3Fva@f&cJyhH%P}mFI=+p=IYPm(% z0wp72wYd~*{vGkobd%Yu_UYdFjS{nCCEOU+xeYmKy_KO_tAMveuWEmOdix*v$Jy?)YY*;clsX+#6%IpSfgf9v%-)`r@jSt6814!9Z~oc}>BMFTw7zsmeILGbYd& z23>pYb-#3@Z{3?SRCL&VPo`?o=k^R zGh@%!LxB0kEngqy*|?4ua;0|;4msVeQywng)R`FV_qR4s`~k;#)<5F*A5(H%+_$#% zHd3R7F6EP>uF-DOL5LoEO;X<_VBD?YW6Y^qh28g=&VPu6yH_s#&bbJQJnc38qy+rj7pBCwN&Ye z;hZ2GC+-d^>fm^1TO^9dcszP*bA9z8=({f4MMIGmO{jGl0j>M`3egw>F9CQxzPF1j z3RZo(TtK`UFM@iDT0&N>Kp<>L|#b3Og*qz!N)NfjibH6!Q_bxQ=GTQ?bl`j?;; z;bndM5q{H4{}{!U!32yws6TZ8+n+n*gO<$07hwZv7>G)FzE(tw#3B%XQmh36WImaVW!GWy%b&9V*^ zS<`sQGcP9o^rxEMAE})Y+GO-1`fl(i^?LP2nQbLc=%%-yL+s#8do#YYw+aeC4TWw)Fz}N|kvz%EG*%5JMO| zPuDje)RJ&SSqajF`)X9~7~~ixQJ+2)kCj_mwjtydRIa@AflO7*)+205$X4Yn3s@HX zGZqXAz(gvhDYDLitB@%3_w>BE-s$T&NI3WS zYm|%lMBIfli6=dsaeNAsCZJ5umdUJ!z-kDrjKi|v-(&$>CbP;ZtDLgpHOqqkDGTUg zkgB^MEtozMTC?bd>di*W+^noH+Av(uX#3s@{dkkJp@~7|@XNAsZzNU-6v-MArkhpo z)fTIvJue(%J}jp~kQXwC;|96;Ss6|kv+@x#6uCQzOYJf~>ld+p(SN|QEA2g04X|YK zUjWv=V;$808xxz!1#xTB@n%i$1$Au?gVL$PsQd@@mq6)sdN2XG`ML^Zwt0pU5Fp)> vlNW(8yUVX2+gY;?`RG5bqU@W#0$ZSB)!CdVMa5S1dkiG(N)k8h%sl&7rKx~! diff --git a/test/fixtures/controller.bar/minBarLength/vertical-pos.png b/test/fixtures/controller.bar/minBarLength/vertical-pos.png index 5561b4f3b3de56ec49cae89a65934241c294d661..9a7b49e9cd92564ec56204a8a5872e3549976280 100644 GIT binary patch literal 10977 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 T%ooi%2>z{i@mQ1N%s=rj@kv${ literal 0 HcmV?d00001