From 6f0e7959dff7f2b50809fcbecf6dd5d670b7982b Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Sun, 21 Feb 2021 22:43:31 +0200 Subject: [PATCH] Only consider visible vertical boxes in layout (#8483) --- src/core/core.layouts.js | 5 +- .../core.layouts/hidden-vertical-boxes.js | 62 ++++++++++++++++++ .../core.layouts/hidden-vertical-boxes.png | Bin 0 -> 18553 bytes .../title/left-center-center.png | Bin 3451 -> 3467 bytes .../plugin.legend/title/left-end-end.png | Bin 2991 -> 3005 bytes .../title/right-center-center.png | Bin 3337 -> 3369 bytes .../plugin.legend/title/right-end-end.png | Bin 2804 -> 2856 bytes .../plugin.legend/title/right-start-start.png | Bin 3274 -> 3339 bytes 8 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/core.layouts/hidden-vertical-boxes.js create mode 100644 test/fixtures/core.layouts/hidden-vertical-boxes.png diff --git a/src/core/core.layouts.js b/src/core/core.layouts.js index 30661a17f0d..acb1b4ce2ec 100644 --- a/src/core/core.layouts.js +++ b/src/core/core.layouts.js @@ -343,13 +343,16 @@ export default { // |----------------------------------------------------| // + const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) => + wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0); + const params = Object.freeze({ outerWidth: width, outerHeight: height, padding, availableWidth, availableHeight, - vBoxMaxWidth: availableWidth / 2 / verticalBoxes.length, + vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount, hBoxMaxHeight: availableHeight / 2 }); const chartArea = Object.assign({ diff --git a/test/fixtures/core.layouts/hidden-vertical-boxes.js b/test/fixtures/core.layouts/hidden-vertical-boxes.js new file mode 100644 index 00000000000..5b55600bbeb --- /dev/null +++ b/test/fixtures/core.layouts/hidden-vertical-boxes.js @@ -0,0 +1,62 @@ +module.exports = { + config: { + type: 'line', + data: { + datasets: [ + {data: [10, 5, 0, 25, 78, -10]} + ], + labels: ['tick1', 'tick2', 'tick3', 'tick4', 'tick5', ''] + }, + options: { + plugins: { + legend: false + }, + scales: { + x: { + display: false + }, + y: { + type: 'linear', + position: 'left', + ticks: { + callback: function(value) { + return value + ' very long unit!'; + }, + } + }, + y1: { + type: 'linear', + position: 'left', + display: false + }, + y2: { + type: 'linear', + position: 'left', + display: false + }, + y3: { + type: 'linear', + position: 'left', + display: false + }, + y4: { + type: 'linear', + position: 'left', + display: false + }, + y5: { + type: 'linear', + position: 'left', + display: false + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 256, + width: 256 + } + } +}; diff --git a/test/fixtures/core.layouts/hidden-vertical-boxes.png b/test/fixtures/core.layouts/hidden-vertical-boxes.png new file mode 100644 index 0000000000000000000000000000000000000000..5746067d33c48166161e6866e592b5dcc568808d GIT binary patch literal 18553 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/plugin.legend/title/left-center-center.png b/test/fixtures/plugin.legend/title/left-center-center.png index cbcdb6593d35b1f36d6e00aa42bb2a960072a24a..7ffd400944999943943f914c134114498ae3109e 100644 GIT binary patch literal 3467 zcmeHKYdBSD8-CZa(sFE>D1(!FUeS>8$r(<4@U7s8r?Oc0b2_-nL=N^8PC@Ld3jU*s=Vg#@TNIgbSeIpv$C{AfpR0xWT4ov-`j9?;VQnVVudgw8Ze1NhSex2@rESd2E zn1!XKWrjgtUS3{6e*;%`uLD~TmvDP&R7&!h`b5zbX6Oby3vFB~{cr7l;#s9NJab|A zffY5H(CVsql@gP zUQgD|+Qv$aiaiQ4Ont956uD#;6&E|*-q&gP?4r9u88=tImCaj;OY9)Rin|IH6A|Ow z`T6Ets~blqhZw5S(b1L>-8L1mvz6gpcT^C`bz>VxUAY_;QL37$q_>XW=$gz?FxObO zuj5?~I=d&4I@v7RCeF>VECO%NLXx^lZ& zVCA>LH8H0;I=<6TS5Jp)e{|XJCQml~-NTU`NqR70_kWyt*D83_Sso#*sQAnm%cu{} z92)96H8iw;!@Ruyj}P_^8i%Hnnuy!tQzJWjCp=Z;g2fTI$Uc0W zz7=ayA?p}xb3Yx}Ed6;@pE@m?3L%V~fE7c+FK$<%t*mAoP6K+*2}|5mjC?^bLvpRb zQ0mRNn2MvxE7dzv1OV-E9-S&bt!$;=V-I?*77TS)oA&M=<@ndeR)=@r%^kz6{7vQk zb>V1OYhhNB!cyjx^d2pt`p9I{nN|K7i!^)pk*2>h1%3oamx5#)@Y9dUxCk~KITQ06 zi@ue|;SfmZ_3dqI97IVV=q~S6zMhtcT2LuF{#IF;0g~it*snq51`3}j;&%v9hJmYO zw6FeC|KnwQ!o%Hczf(j)OWjYeae_a0bao2M%YAKQrf9?6)tR5i-sywL-cvlo;a(mU2(kOw0KrW^!V)hw^O5iH)1|>{i=T|yBt`x1lfklK_IaT&B_AO3%$A@@ibkkT!JQrh6Z0i}Z zp6{LLxtFk#7F^qO-hnTXejdBA_qhqiYJ9;F z+$T5&)a0=Ek)$zGSW^>pJ3?%>)GUAmNq#$JOA;wlS>6*QR?jxC>iTOtyQK|p0x$=#UGUKc$IOjfO0byq1TlC%kk zfmFe~)n_l)wmWBn?!iPQqV2l{FQi<%>>G*6qC|D3!Ak7vpiRRHENnkYbWV&n+3>A4%2$qYfQ%o!VX6-@ofs z>Gux2S@Xcaz&-uG3GTZ114r891s2l=RHJwN!i5Vn1xP^ELHCPpxfwC**uK8m(9Lk- z+sy+D(Y@Hy0B~W!xe1Ym>NKRT_xe$6dS)h*ue2HDuMRoZ_WU^vP4F?6i>KpXc8wZ! zm58K-#Yuyr<0<;k6G@xY)DgF?H=_*)2xonYzEP-vlVkxvSx!tlyd5@ZgP~iB3Dyb< zw4L%I(1Wlov-W#pjJ3hWEV@WFk%G;b$ipW}9*IVAQrmceE*rLBrI~64_FrMX=H~xX bHzS+T9sA9$+&k(IFIm84iwEPXJ^Se2Vf;of literal 3451 zcmeHK`#V(q7XR+urfm!}Lf&%Q2&F=C9=D94kV{5LDKbS#r3Td*jo1^RW zMRj@;%4MQ53NfYhxaU#{xoa5a?4I+>d;WxTp7t+$J$tXU_FC(+*5|wSMRzwxInrtp z06@-Z`!){%AVP!yDoxyc!wL=)&+VMH*?O_}kKXoANaCo}e_;0<{=zHVl=O#tTKbBc zdauec=XL99eUoIRP1f?#a|OIutLQKtL#0o43hOG2&5pJ-UeH#tI~vz_+R~^h-(oSl z`TecX%+DV=)+RMG#c%EvhOg#~meP7=B1fz_;xkFC7=U!HCHJL)(rX^+5D#GHa;!HKz$`V|-K_w6u#C!b1(3P?omMRzv_ro>_dixlx*w<` zu87Iv!or>3E#5>G%5gJg3jAGBY^eOJ92~80YzVU_2b?Ag5?5}VcU%fM7d>#BEzKuw zrKivh;UBZ3H_38xPM)5g!eEgPN7VLgPmiRHjna)G4Qw$LsI&UqzOk;S`udD)aYv7M zu;!~{bo3*P3KC_w6IwZjcz1Vq--|>Q{jRy$Sv|&rBkcu6Vm-egS%W`&W*f0Mf7&CT z$Fm>)_U-i>y>}c9&39W!$S0kgs7)EpyuN(K9lf+`&b)z7ni1UPTH@h_z9>zbsC3VK zw}y=My90%JPQtFPjUA6e(t_XqabfSUb-jwLx-ByjB~tA3!&{^81}#cVf|>TxWnrl&cz`J;l7Dbchy5BB#AG_f}@LRo#voi)T>tW_) z3mTHEL}yn?L{py!be{`4{EhVgE70Idr2Wb1BHt&coT?*5+NGtX!k!+ZxA~0gK7Spa zAY;|)xjJ=7m;#;Mv?LaVM=Z>in3|bM#yKG1oTT}-m9VW%w?0`tEz2ax+0ik6q_e^^ zSgS{QN^4l-z0YFXmlhWebv-#P zY-z#4rw%R4&8~#eKtoI!G?nKPa*~+)vgcVUunxfr?;(N}3S{}4TpZ$Y3xWfD15L@0 zHH^|zbTcq!GJuU$R>=|A1Gpu?Nf*u3!9kh09r@*h- zHqdjHl68zHNfc=6XdWmIcqMB4vgLmsMYNy%* zImNcXSM`hIA6}#Y54bc#=t`=>2A!j%so}ZP*Q~f3;DkkgB+lP+NORd>_2w<~D+ES#_F47n4V|?v z>EkntFKeV9QB|$ol(?pFW8L{#{9k;-1_9x72RTU5aqi>(y%j!gmw81d8U$=0j@;UQwnBw83BbaD0!5Qns9; zA;uG?fI<7}F^}J1A1UUfSMOxSoj#D-YKFLH`W;Rs5nbgbb&nZR?y?gtUqO$KuJNso z^l|20eN zmte+*i;DVrg@rPZQpnvbeMN3DEbxlFB^hThqzom}y+WSL;Na`)n@B!j0igEglrgQpD+$q@2l;ULN_=#Xw=n$E(E)~(186g%Dj!!AXydiF zNteNKBcra}3<9XeY?9c-70sEK$~_br)Ng5*2Pm?LPAQ^%vtng z4Qm5+b@kw(`{^6!VhDFaUoa#^HC$qme-Ole)sq`T9cs){OkVC{5tOXI^N1` zYHE6Tpe}BF-rv&7>TTnF>6>=cge3Y6S>}KXNXv&QWbzuDW#wl^Z@6Y{))gJ+H#fWe zoMn^f<5{f~9?NTx&SGeX=1!6s!_l^;3c`RsECMBzQkh%97_F} zwUm3gCs(A!RCC#`qUeYv0TRc+7|twz(SM~MBLEFO<*Y)*aZ3ovNlrgceL(C|?G2aQ zv~t`4RG`DdkP%{GJM%Et6D=TCw&CsTP{@ja`F8OaC3u(+EImked}29c>aVxF@XO7w f+Wdd^O)o<;_k>}n)D8pUrwTaPyKTE?$2|XU>!?hl diff --git a/test/fixtures/plugin.legend/title/left-end-end.png b/test/fixtures/plugin.legend/title/left-end-end.png index 85c33c674ac20545afad44d57fca101e94432fec..a60610ab5009b914322f7745dbb64813861715e3 100644 GIT binary patch literal 3005 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 T69(qw7YER-94#v>ykh?bPmSyO diff --git a/test/fixtures/plugin.legend/title/right-end-end.png b/test/fixtures/plugin.legend/title/right-end-end.png index 97a0c8489c8d70d744b5fe6c0956dfc7e40e3c86..ec2acbf131253de7d8b46207d4d24f7d509239b4 100644 GIT binary patch literal 2856 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 Q_>%*yaMosYQ~aYp0Y95KoB#j- literal 3274 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 L)xP*YoHPFb3A3+e