From edd764fcb5d2c60dc3396a520cb748aa82fe8c35 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sun, 13 Feb 2022 15:27:46 -0500 Subject: [PATCH] minimum bar length setting keeps bar base in view (#10157) --- 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 2d7629a30..e2b45bde3 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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

CVJL?6R?2 zYE{@A9o@BPnauAwdH#&$F4x3`+&U6w%O}c`KE^hn@yn7PA8uygMug|6Mq3Nqz8cw4 zh0kzsM~_V`E=jB!^LS16{Co%E^5Hg4$1hp6iHCHW0rqi+8$rhSI2t)x@vTpSknV3$ zOotkhUKMLBis# z^vaQ-{e?Zj=9DoV5@R`^;OmV~P9#CTRii~`<~67>vmdMmdF?Oa+1hS@S@#F~fV8M+ zW|OrQq3adoSx||Wcv6_>mcf7QRD=_CJ1ZJ-2UP44c5foHmlBF zX7PYrRIlntF)sf7zCA6wN+YV%u$2Sdb+`KmceDLiOREwQ@o%RI2dX*F4`W66afOu; z;t?awtDK#uFXil6(D1M@)m%8!ee*c95iUOq3-#fzg<=WxULm0bKD20#qQ9ur3YQXW zT?gc@j(?vA=Q`ja-3Un7Fm7rOZ(DcC?UxG_lvU5q8(_Dm{Og@izvqq9Veqs=a}t_K z6pnby^Cu;Xg&$V?x2*5>56)P0i1Fo+*fZGg6jO#Pu`(|3K!*yR-EjZ{57Y6Qff>C* zBq>YOXS%jq%d_S8tNZFL<6YyIay3jW9~QTt3;wx9*tvZg>YQhBuB`?jEQsL+4~n4-f}BzV{Dl zHA8<}=~s%_BS6kJTeYrRcLia=RWI=T>>!*2LM1X-M*q`n6U_+_NAO#*^XmPf5|Oow zT1qdg7}LKf_kS8%v|N#4_mS>CAZ#QG<5|aJ@QVB*VraiKq}(SV{f<`AcY<>23rH%y z^bdHaJdAmCqjuPZ#YoVZr?7_kU3Tn3b?7#oExrCUAJx*oD*InYcfPo>rWvw~dNtQ( zfaBa43Ag+o*(L$z*k`-jYRXx;=GIfv-Z5v|CG~{SS$ujx%4jC&fTI{v z2;}L!pjnadD?M#M3j?m+*3y$MWhNN@UwQQ3g6!v=oOg2G$$2N|ot$@a-pT(@PC_xH zcp~ZJcCi{~#^Y{0!aO#}jA*S;3{~w2DAV3WP9|Xk%0H8j0FMQ-?2st@;C`JOQ~zt{ zRb@j(TYHNh;`ALk$3G}8k*@hes7*1l;%3$=3JMV1p5;lUnp;roi=JCOeyALfRMxTTXQWn- zgH>y6+m6Lwyr#XW&U{RZAuHs|QCl42u-3A0FK&zqHiMq)UU$EMwg~!SoEgdwSgC%y z_*w%>6i%FOH86%gfV2<_zBBJV8_l7oO*=ub(s+xf`g7KuaK~i$&zhWo7TRemZMUmG zM_?c%O3b>G8r#9pLhRK0{R9JbP!zaE4*IOp+HQvyHnKAFtu+S^>TL#%m%TK$V?Tjw z?Gw9`Cfb7=QDU)kj@I@@XyKY-RothVgNva{;u2$xZR`oOaGK-g`^|h%^FhrAH6PS} zeo(VhKsh#L`@W*+0f(=AA`z%QQqf{mg7E9lpJ<;-iZf>gY?HW6n*xw#XxQKYr_0Z- zj+!$m)=N5p%~xBsqsQuf;l0^eMehEDraY=T5t(`-_vwXfiuOBSlp-0o5s^tBh$KZ! z2{~aUS2^Jz@)^t2-jsv`m;e}QIJn!Oy=&Lj*3;-M-)s6mb|Cn$X9e~>q?iT=ek z(U8Cvq#r&>&{rUYrianlOw0;LP__}Mz{xbYPV;2yQN`?6FZo>#(1X0;-zH%Ab!}Mi e^`GjjNQFNbX-*`?-9rHU+3{b#UKLwIKm8j@wC0uo literal 10442 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 literal 10255 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 TnF1>tAg|4@y&flx<(2;j?8)12 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 000000000..8452ed6c8 --- /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 zc-rlndsGu=8pgjF225aq7-Ces5CsIe6ci~60zp9#BSg7~s1QXDLa3m4A&M|yIS5q5 zE(k&zvaW`U3b7hxEfT;Yu1K&2ywE~eS;7)@MXm-3vlF!SwDs)i**|)YXD8?6%paNg z&GS8(?|t5xZ!*|^-uk-6x&Q$E^*)}P0f2$#OVYtNBMEI2_y&sK?7aq5$maJ0zyRw# zJpvQLUUa(OuZVn__KIt2;6dYB7tImRstdKfti7z7vnLLg)$hwc=drH)Ps>x<&PRyZ zU31n>26S%K`}ZNKbfjgMYhy=?Y=4-d=hzXMYHC%VU88$!9;%irhp>q*6G6P&u^&j! z|Cv)P^xK2LEj zA7U=MVs8!>Tn;EhIMEdeTVaZ~GPK#W;d*T@SRu^bLq)IF)gK}==ah0C4QZ{q0r0~* z=R98^Qe@_vgZ&pO+CK!o6+HYAfyaCK!)^tt35@gn3fAM4hZ&(!f~An9{f?}WJE7Zb ze#i&Ac{L){#+`*0Y@ZR#pb8wa`93^2;zZg26}4x>IWsb&(#mF|29L@DVf&vvhjY9$ zqf(YadzlNG%s|8muYsfkVX{hTU9#4o6w8ugI<*)=QJYTeDUg=v2CDsmc4@?!q!7)X zRMgTB`#QRNa&fCXK>Io()SS_f8zbJk1Ew^r2gWPO%q%Nt@0rfOn**0^y+u@Xb--gQ zkv^Qpg4w7ueLc9Vll90PY~qLEJKqM^OQ|UR=~vrf@wK3urO-WxQ5cOn!CdrbKoe$r zX*@fRdqyjnjq3Q>0o!s!=ylj4A3TrAi}eLVtlNOo!C>Dro0f=h-s$Mq7N)f7{Z@z_ zDEO2_TTW&|$`CV+#i9AYbN^9jZ}$lN@VqYw-F@T$xmFge5+RJ1Ha$SdCS((`3E3Z& z>`r&VX<1|6c)o))K4~Pp__*4o_kDcyFZ#Kfrw!EbENFkyE-^ZZQ+_j*0~_&Mc%#*;CoMXla)WMRVM&u|K-*!UvOj0 z_oljcRbOP?LwDp_@LwlILrpsiBXJn(F%Ek~ZyHk%@`ty6I@DaE+SrScIKTYS9BdU- zMkNIlD9ALb+8fnKoch}MUAW?gvsu>oP!EdzE>h95zdhSSX3ocR?cDLYv3$V$?WUcNX z$I0}Otd+_Bvr3Obmdpis-)8)-RwT_;IOUaOMhWoi7;csLxL=kue0iMA{8AykhEJcs zWz7!eKwHGcrz$tg{0$W~+Xz1tsw!DH?8!v&&(rj6Et#^w%fkmMk0g_*+=OgGHX)mk z{XaER#l><#IA6Y9Hrc7_Pd+|2`ZD+C)Mo;GY|$+ zlle87L*s!dR_|;6bi6Hub1d+Jj8}Z!_A6{yEZK6)7V2em%iys-zO?2u|(D z-o#v3flxvigR<89^{n=6M3^}~_79|c%xLLJW;%fW6}Q9J9BknBexsS`86*~k0gN1i zHc(NkuA+2oF!5kgoLddA>B>=TrQGeMOn%c>UTrHnm*VDXlIVI8>=u7gLP2{+Yof;e zWlbsxrqf-tYlMd^AyrS!!?+j)&1f$-Co^ZgY`#OTZJx2&FoglZl+RUPSi*x}ET}xL z2gjW%@?RwOL4i$0@Cz0wPl#RU2llz;93>%S3d(p8={XaPe4g-P8wKV5n5diL1tXmO zlITd7-EeF;4vrg6XC7Aek?IrI(V&F8*^g_qp{l#hC6o{|CZKP* zba)8}s&+E808S=8u1G3EVp0?i=Sj5=hpWeINwtpq+|p_nL$J6iRN?@YKD*6Z300|> z%0(3X@KpQanO;C}wMP=`0V?(nFGc9MCk^f8UlEoPmJ*i!KUn(e&hU4tI@Rlr^y5m5 z`npjy#yc{V?Uw^Ya|??!wx8m){PTt$OLOX)}e%$-u`JdZ{%J z9IUFiKt=N|j(9RyDBkE8+?|QmeV3X?W>Q3!$XOBvy(n?sL1v~8_$p7gtSYX|UC^(( z9WM*_zE#oo?R7D2x>3?BMx+fSCCF4ZeAS~K{4O{dwr_TDeZR`^HrL!Q%RUrrSW`Li z6odd1U;<2le-}6{Uy%!d0it;qfUt!C6JP>NfC(@GCcp%k025#WOn`qkSV~3L-C!Y< zD)*F^g7~S!SfTM^lv!Bo;%^;wA)Xfo6ic$`V=$#bj3d285wQU(We_3YIHMzo1W-C*W5Y56%Q*$ z-pQqXE>5b-+R6X`)m=Nc9{_*=@E2JTUM3^o&%p~4cED*HC~DFb0zd=1wr_QhWQ=xO zU(J#GyQ${dH0gDp6RLzRfVG`19OAEp$#y$DVgln9M`T$*k63m_e$*c z9lxyba@p(}nYqkQY331P93R`TVc5w=y|6TxS5Yi)^`7q)i{$TQ`Ee)YVO^(wUtp7D ze)GlC@jSWLq&T~$N0EEnnK6bf5pR$&(w;@b8yKeZDcFNnwrtHsh2Q+v`2w zoO{rwyv?qhJzZN9DAv!Ys$Q5Hjn|il&eit&Z9J4IU#PB1ud8HnAJyM`-X*yAG&JXQ zuUJ=&9o4jnZO2#{fAXp){W>HGL;6_S|3{V>IUz*OPT9TRw8{kK{d7Qp+rRd%?SHGlIZ-HwIT~ z1GU1qo92UpdP~s7@~%nnBjt*!F!wT{!{_?GZi8RXpX9f%onm_z5U|5@10mnsuRWlg zF(c@6h$)v0{1FphR-f9>2q=j_p&?EFS8VOyLtRmqfQjGMF-^>2=JjA^&;p`UU7OBv_t~yDqQ{eV z3j~VD=}1uVZHHy13b>WN@sYUlLW^ZVzx|*6>W3YR1hKL=8mRv#XO15UwVH2P_rN(~ z|KI*>ZEBX9ewI0B&%hfZdgp#1*k;z2o4JCc;&0awUAyOnDM%m7ZBRGMJR+T6lSAcj zyyo-oYxSDPae2fSgcCXmSm=$E^On#?48b6zH+1G~rdCbmJ$?VkG^AWXG zSMR;8D;WfQGF?Kwtj!Ky~BM6~5`fuOTM z_ZcsgYs)GKU;`tqgOy~_M9i=KRO6oxa=G62SF^3aYc5h^Z{Fj)wLWNJb{57rwaYVq zNnuxQw{SynK-Klb(!sozP5-K!C}knMH|e(-lCku1E8jytvf%;yn@3IRb_KA8c~e)< zq!PMn@`lScn+K<*oqTwxrZ12&^d^1q`f&A=%IbunX=itp{sB?DIf2noy*y1m^HRs+ zbAzaPRN4vrlC44qYh`m` zVM7C5?GJjx)|$`vPYVKVuW&MJv}JQOe%-s+H#he1!e+uT@ssQQjQF0m;3MfXyDAOc z1*wR$$|)@mQNz{~Gv!YAo93;ydOn)8Pf2_7{PI}}^L**NVP)j|p{pPEPPR5@-W}V%B^YSYvj?q0h_{WmT76Gr3n zzKR3l_~O7-a|owZW@Gef9qK=(TGcDj-)9_`)ms$GX-9(jffwJ9LgO)`vBy0=P3TiX zgI{{(j9`=lSfcNz_|D5ZrDH~fNkoTp>*WkXpb%btZcdbT^{wAbG+Pb_ei z$IQkDH>n#tj}69h+8Whg-R^r=(NFNpC+@2?~zKjM))`r9QhO!n6aXW@h&I+6bc_&a(Oi0kc1`$0MH(24u5_e5*K?1?~3xDR;*Gi*x`0Jlr5=;sV6ya7_=W?bh z)>-&wJnKVu7;v#AgStb_<`fz|rxqL1Muooya8D}i^_g-A%+Ai{%~}G%F@_Sjv>{*! zMt5a3vpqGByo`&bwpI7)Z{yOzMcx~jV~C@tBFv>bc#O&?;U@u)}n!` zk9L0)b`t14XVNU;UC)SvSAek~S$+JcI-6&TZ6PVxM_=HA5LXRf2MB>g^ikNCb1{F7 zt^$Oq^`8J+xNYPUOhuhwRkwTkouM#zS%Pqz3mcf-G9$zF4ycepUgONOPg>&yrgDyV zNMRyeCV3eJP>;=;MSEuwM4NNU_iH|;;lVGf;HY4ZXmIh)y1*SR^SX9+b(~t&j^hvP{bO|z$ ze|Hs>0?o&Nik8#gcVwJEc2d{#x4Imr1lSIMK>xm?Nr^&Bal_7{p>3lt4rXT!Mn(qc zyKqBcjQc`1orf{1uc%N&9Rd?wlYmV}#QfNGn5K8E2_RDK1+dz}Pc-RxqrzCCJDeW@ zKiAao$|P9WZ6A~hS8uMphC_XdwKPQlzTI^1IF8x@{&&EKp{Qwjx3-^{+X=FZlL>Zf z076sq;X)2~ZYW``dMlVd6*;br7PMB!X_gp*gByOSNoeJGeASt1OF~NdeQu#1%g08!qZ5eRnqNbBC>xn^l(&b6v zQ@R7uVe@(&}@PH%P2f?NMU7zTVx@WVfcrswi( z_3W}-kVq};y6B|=Qv|;@_v33j_7`V zv@-vT8C?q*EP8ARDu<6vz<6IiD-Z;3iNDmoGqos|T9V57KdUm79pd$?%XGA~~RW_4nh zFX$B7N8W8T1#AJ>tHhVAfysL?0-p9hjTxZ~m2s&tdj4BFLJRr9ITKR)kYKKbL{s){ zoKdVXE=EM(^Hnj`tuT%ZLKvv{d=Ln}v^C+XE_n#uR_CmfT11VC|J1g%Pz1M!)8Y2J zNS+8kREHm{aIo2NG@94qhzbNCaw)$k;>-)E8NNAbED1cBNgS~KB)O)f+bdv3>6Kgo ze|m6F;p=8Xe>{0i&#rl5M#>gzpu@lQu|chp-%SLEjsK3&Th=Cv8<~8|>ywvdciQtJ zTo9YIsCt>Km32~nqIc7dg*}0zsrOgyz13e@ypFao=WQ78io%nnE64Wo`Wl4~A0~!N z78WK)j8JD4QO8p_1xB;1Vtu;*S;ZpqOHIk3SZVgFjEqYxNK9C@IY1ZbsHG&YoCsCs zF9kkC3E3kKCova;{V1Hp^m;c8Z(w6zw$j&z+u7-YVNVHLwXj~4ymn{5vRj7$x z0lm8&U!R2$1bg!59RmH5w4~1E2rIyqTZBYDele8R@#Qqe4rUT_R9p<<(j$9dBDD_L z^0(59HL6rarmJxP5=Kd$#OznDz1@FjL+@n-j9ClzAPJ+Q;G!VPAHzjyCs zW4$jpz9FtUMyv~5lEba+KEkf?$#T;WxcGA=n7~XOf8EKWwj4$O9|IILpbphD%*M5YPp;B8i#0Nm}~R1OVJ>!T)}cR9@hrpQNP z2I1mky|-fFX>9b!A?gbapy>WA1uy@@(3TzMH|rVMQH^Eqv(y+%7TN-*b;Q;%rzFhi zdyn0~r9H>-28Fx=#$qBG?2fmyDNW`!1cD4ghfgnxmj%NTJCevPCcwTxO`m=6;-xJ4 z3wsi(p08q=Nhq=WDn}O_vAGQhO}gS>otmUV7oo*@Y{J!+taU>H8~EW-kD?^ z6}gf0(FP*s7I_v&EEQW1Y+RjyjMt+VA13){tx4vL{9)!8fvHNboxAx14A4x|YY8w` z;HB98c3 zH;K70(03a9p*ejrI+~JV2-5v^&cXl9BaKl>BU|ZF!?S0ODL&}_-|J-7P@)&W;S*S4;exEri1VW~k;hIvkG9v1#nmv^Cul)_0mic3tD z*rtWBzL;UEua6|&2#`!LW7V+P#&xJyNDaR7Jv?7B2|Ew|-FVm4m0&{xY?uVipK$wG zFNzCHG!`3Q;r1x5e4y7gD>T5uSxfmgHw?kkv8uJuPj@7=I-)JJM1wP-YrHxVt~E& zsI6A>&h(sE8G)SG5k!Lr`30KL=AXvzRjPp2^ z1^Wtbw>iM~6nMkA)BbD%MvryCAxlO<3fnX8$K_xy;|c6;uqF}=K?la-xqleiF8v}3 zD9@})+z@|S?Jc|=aiW92-STU1DuXx|Z>R)+0X#*iDvTxn{uGoCZ95&159@X00TW8^ zTRbxiY2Z_yNAF$|YPYr!Qdts)AUQlm7>mdIXuO>*1gs+Dus6&nx|(+D-!}f~nTG z0p-7j2nx8Y8Ope@D51rSUZi7@jzv2D*XTG!2a>_R2JFh))D(7oXjSdq3BB8qRLorigSY{v1w!DYS3(hc$h{xR0BvBK-dz zYKZ9Qn~1v6!O&PdZNNJo*U$wKDv-0E^Tty5}Mt|37pn z5HR!BZ@$87O_7w9PLD@r$^-1nG+@0f#Q!%0xo=oSC1Uq={-MF-4tK?_4^WQuZZq7E~X2D2N&Xx7fP3w@*SKS z+~|_hJDK0%&)iEgQA5yqF!;x2crD(v7eqS$-HZPYAqGMGW5gXAB-G0ff1H~GY1nr+ zMZ9@YUyJF!NXH@_i*)?obPNN^=5sDfRQ8(6ECbYFXIuw8m-o(P837N%g$_EJqTlZ% zVBbge<3HI@h3o`ZSg5C^0TFFyH~uB_H5h1KnsM=(EnvYs`skAU6ZeQO0sPzL=(4?N IoBx^r09Dv}J^%m! literal 9029 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 literal 9005 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 VSt>6YbrJkp