From bc8385e6bb97ced869249994e917530473990af0 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Fri, 5 Mar 2021 02:48:26 +0200 Subject: [PATCH] Fix layout refit logic (#8567) * Fix layout refit logic * CC * Update fixture --- src/core/core.layouts.js | 48 ++++++++++------ src/core/core.scale.js | 4 +- test/fixtures/core.layouts/long-labels.png | Bin 13119 -> 12389 bytes .../core.layouts/refit-vertical-boxes.js | 52 ++++++++++++++++++ .../core.layouts/refit-vertical-boxes.png | Bin 0 -> 13086 bytes test/fixtures/scale.time/invalid-data.png | Bin 18667 -> 17086 bytes test/specs/core.controller.tests.js | 6 +- 7 files changed, 89 insertions(+), 21 deletions(-) create mode 100644 test/fixtures/core.layouts/refit-vertical-boxes.js create mode 100644 test/fixtures/core.layouts/refit-vertical-boxes.png diff --git a/src/core/core.layouts.js b/src/core/core.layouts.js index 7868eb676..eba4250d7 100644 --- a/src/core/core.layouts.js +++ b/src/core/core.layouts.js @@ -60,6 +60,7 @@ function setLayoutDims(layouts, params) { function buildLayoutBoxes(boxes) { const layoutBoxes = wrapBoxes(boxes); + const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true); const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true); const right = sortByWeight(filterByPosition(layoutBoxes, 'right')); const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true); @@ -68,6 +69,7 @@ function buildLayoutBoxes(boxes) { const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y'); return { + fullSize, leftAndTop: left.concat(top), rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal), chartArea: filterByPosition(layoutBoxes, 'chartArea'), @@ -80,13 +82,20 @@ function getCombinedMax(maxPadding, chartArea, a, b) { return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]); } +function updateMaxPadding(maxPadding, boxPadding) { + maxPadding.top = Math.max(maxPadding.top, boxPadding.top); + maxPadding.left = Math.max(maxPadding.left, boxPadding.left); + maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom); + maxPadding.right = Math.max(maxPadding.right, boxPadding.right); +} + function updateDims(chartArea, params, layout) { const box = layout.box; const maxPadding = chartArea.maxPadding; if (isObject(layout.pos)) { // dynamically placed boxes are not considered - return; + return {same: false, other: false}; } if (layout.size) { // this layout was already counted for, lets first reduce old size @@ -96,23 +105,23 @@ function updateDims(chartArea, params, layout) { chartArea[layout.pos] += layout.size; if (box.getPadding) { - const boxPadding = box.getPadding(); - maxPadding.top = Math.max(maxPadding.top, boxPadding.top); - maxPadding.left = Math.max(maxPadding.left, boxPadding.left); - maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom); - maxPadding.right = Math.max(maxPadding.right, boxPadding.right); + updateMaxPadding(maxPadding, box.getPadding()); } const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right')); const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom')); - if (newWidth !== chartArea.w || newHeight !== chartArea.h) { + const widthChanged = newWidth !== chartArea.w; + const heightChanged = newHeight !== chartArea.h; + if (widthChanged || heightChanged) { chartArea.w = newWidth; chartArea.h = newHeight; - - // return true if chart area changed in layout's direction - return layout.horizontal ? newWidth !== chartArea.w : newHeight !== chartArea.h; } + + // return booleans on the changes per direction + return layout.horizontal + ? {same: widthChanged, other: heightChanged} + : {same: heightChanged, other: widthChanged}; } function handleMaxPadding(chartArea) { @@ -158,13 +167,15 @@ function fitBoxes(boxes, chartArea, params) { layout.height || chartArea.h, getMargins(layout.horizontal, chartArea) ); - if (updateDims(chartArea, params, layout)) { + const {same, other} = updateDims(chartArea, params, layout); + if (same && refitBoxes.length) { + // Dimensions changed and there were non full width boxes before this + // -> we have to refit those + refit = true; + } + if (other) { + // Chart area changed in the opposite direction changed = true; - if (refitBoxes.length) { - // Dimensions changed and there were non full width boxes before this - // -> we have to refit those - refit = true; - } } if (!box.fullSize) { // fullSize boxes don't need to be re-fitted in any case refitBoxes.push(layout); @@ -365,7 +376,10 @@ export default { setLayoutDims(verticalBoxes.concat(horizontalBoxes), params); - // First fit vertical boxes + // First fit the fullSize boxes, to reduce probability of re-fitting. + fitBoxes(boxes.fullSize, chartArea, params); + + // Then fit vertical boxes fitBoxes(verticalBoxes, chartArea, params); // Then fit horizontal boxes diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 7a2674d09..4b3dd0979 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -2,7 +2,7 @@ import defaults from './core.defaults'; import Element from './core.element'; import {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../helpers/helpers.canvas'; import {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject, valueOrDefault} from '../helpers/helpers.core'; -import {_factorize, toDegrees, toRadians, _int16Range, HALF_PI} from '../helpers/helpers.math'; +import {_factorize, toDegrees, toRadians, _int16Range, HALF_PI, _limitValue} from '../helpers/helpers.math'; import {toFont, toPadding} from '../helpers/helpers.options'; import Ticks from './core.ticks'; @@ -734,7 +734,7 @@ export default class Scale extends Element { // Estimate the width of each grid based on the canvas width, the maximum // label width and the number of tick intervals - const maxWidth = Math.min(me.maxWidth, me.chart.width - maxLabelWidth); + const maxWidth = _limitValue(me.chart.width - maxLabelWidth, 0, me.maxWidth); tickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1); // Allow 3 pixels x2 padding either side for label readability diff --git a/test/fixtures/core.layouts/long-labels.png b/test/fixtures/core.layouts/long-labels.png index ed33676753e1278d20fa5c518fd0b40f71245e3b..c12a70a8711a21b79869ca2dcabe5911326340f7 100644 GIT binary patch literal 12389 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 literal 13119 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 KN|#9)zxsbRvUX?y diff --git a/test/fixtures/core.layouts/refit-vertical-boxes.js b/test/fixtures/core.layouts/refit-vertical-boxes.js new file mode 100644 index 000000000..b49d7885b --- /dev/null +++ b/test/fixtures/core.layouts/refit-vertical-boxes.js @@ -0,0 +1,52 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: [ + 'Aaron', + 'Adam', + 'Albert', + 'Alex', + 'Allan', + 'Aman', + 'Anthony', + 'Autoenrolment', + 'Avril', + 'Bernard' + ], + datasets: [{ + backgroundColor: 'rgba(252,233,79,0.5)', + borderColor: 'rgba(252,233,79,1)', + borderWidth: 1, + data: [101, + 185, + 24, + 311, + 17, + 21, + 462, + 340, + 140, + 24 + ] + }] + }, + options: { + maintainAspectRatio: false, + plugins: { + legend: true, + title: { + display: true, + text: 'test' + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 185, + width: 185 + } + } +}; diff --git a/test/fixtures/core.layouts/refit-vertical-boxes.png b/test/fixtures/core.layouts/refit-vertical-boxes.png new file mode 100644 index 0000000000000000000000000000000000000000..f45a406342acb7ede46fff37c0e551ecedbeb3b4 GIT binary patch literal 13086 zc-q~1Wm8;F^d=HKSa5gO!QI{6U4v`T;5NYE?iM7tySoJsE@2=@aCg}G)qksYzreoP zshYW`=HAdC-%s4@9)Kw`tWd;tbOQ4M0M=wNy*`QD&UtdQkX^|bgEKnuF&f0{l?H_F~vY; zRzznx+6thm96LE9J^2Y%M6d-dh1lSiWc`1lrt^7yoJux+w4CNGIR)ZK|Jj`F=ZxLPsskCTZfmPZ%56zlKly_pe&JO<_4U&bY760oR! zUIckah>a~Fo7Y7}vs|TgcPMJ{a z4e)%tG{3?Sdc7RtG9Ub8(BV$QpQqA!+Bh{l9-jz*)edn2zx44a#0{s%XxC3ShbW0v z4egBZ!DF)_un1pQYK@yM$IzhfAy%9pj>bBUA`4`PII*B&3m@V}@h$OQ^C5WXWt|#> zd59eqOaq^2-ma(ED4$L@J2>Nrc;g{!P$nQC;PN<7GU)QE@u7E(10*9%FpSEP8c8~@ zH_H$2D;!DS8GB;Z=r=`*JpO@Q@A78jwp)-IK74z5z(b;Y&reH}4tl%G08YHzpDFTg z`%vLvVFP$)r=Q|x@81I-Zra5y2nYKNc!zL93} zGEW78AhMEhzZ_i@X=oIv3=pf`0l<%=CZ5Pn@%xoR(tQ7r-t%s!^*`x(-aX#L4uT6$ z{K&>{ZB7uWBd|HQM3<19S1d4ILifXo2qM*zu^b+y{WnNK$=vUtjsI)7>q_x=h4$xE zO#gActECGP*nLt*>)F|Qz$nd|P4yZRzb&hWMOmp$X@1uN1Y5d#InRyC;VM7*(r@RQ zb^Bw>02?IFey=PsYu=QDtqgwJoJy}Zz%P$BW-{pEtVu78=QJN8T6l!)&&^?#|Z zQ>`bCO2qSHAPhkhlGP)n+ajEUX@$=-M@s*V{4|-y^fXr_If9}EfgZNb*o1`g4VS(= zNI*-w^ghvYyKLu9PEL+Hw=MpVPZ=hP>h9l6darqEB_j$U~W? z2#QPQ3i4)TtIH0nNvW{q=;uMn-7`*z&Ubn9St=-6NY}RczLB$8oKZ3fq{?VfVG9cj z6_#W1#T!$sT}s{BJ~s!yz;xW)+Mq|DwAQxS&xt3uF>d;5ENV34WZy5v-`8vl=JzL3 z?Dj_Ev@|p%RE6(SfjtD4smaM2(AP}0?Zw~^5fM(Gr^3#<=e(=IW+r3S&bW3@EsKRO zHu~@WcmAk#q?MnHRaDSsr>06EX}*9i`YP78p%B!-WxxTRC_gjF4 zkqxU|Xl^Efao9b2$9AXqc87=UznwnOfal}#@Et`(MW(?t=dDhpWjIi5+pOp4KK!@? zl)0DTvy@CVFWviF5|#BYLLQI;IQLCXDj;*;Pd(l=NgK8e8q*eiUonIAF9bbG)JtTL zR9;O#p7E6P1k%oX9!&fWvTVOjB-7mf%`jbvClMUxuIqhfL?z@JKe2@$?-``spIKJ$ zUWMPDn7CudWU(D4JskGtD7FD*DuS0%Xl&m7w!^+(fk(ctHCm@;X39a{Brji-f7tXu z{|}>i99P9Yo@RrjRznMHer3*B=kVM;XF*?ILh~OA+w-G<75F*=8QAvzs?RU9 zfv%XMn@psvsEQdHN1nw|p@jF*z0-CT)YUO}TAhe?5n_chjNGH40NI3<

pnaiu0b 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 JOXMw|{67KtIwAl7 literal 18667 zc-rl}byU>b`Ueci0aO|#1(Z}_sG)HPDUn728B&lC1f*eTM{)=er5mI}x+~2+D{O)hP|GsOzuBD4XW`B1)&nKS!3?Uk7iX@llFX7lL2t_}YSeXW5^ETX?v=)IIGs3(+-n z8PPraOu28c8uD58Z!49)iyef_=O?o3U~_I^MA!H&nbe6!pXBimo#>eoV<|e(=V>Q< z)y;21s5rYwM5eCG1`MX#_V%g)Z(JW zQ)_F=)5C`CzG$}@56%OD;7c(;XK-Rj~h>B!4Tx!s7^rA&s6$*ra9MJDc(TA;_SMy<&|X-OdUF_d!_ zHnbc#w;Oueb@v}f?8W+ZDos6ET$`tMo{~<&wUC%WSjBb5V=0T^l!2uzB$)eZl#864 z@7S0Ei@?)xO?!$cZI+DLR^DXur9b`|U=^K@1_G(g4XLCfi!VNCzJ*(1bwAXx_+na{Gf{tT4!tFT_vZJuw^AqH$Q%dc zX)1Ya$rutoQo0FkqU7XaYi*b2Xy%-f2LE^kieIi;eE&yU8+#w`+N*O*JL zy#Dkwqoy{B%>iD-5kB;8V}RFNeLs)Wqb;^e(N`po%s){hLxmb2ZA$${Ea)Pb^W6{u zJqqbay{N@Il|*T6@RtXkI^e%`vLr+!p-7+YUJ+d;_pkn=-b(|*Q%?Ob$K$o?vF*6Z zHMu9D-^@mb)7r!9&x#jeO6QaM0?g~aWc8sRVC15zL_}%wFaI@fGgkVaAvk84>H|03 z^wAlFo9d<-;R%iBXUDoT?sMV7=B+(zPD_0xWwon4N5YfOhK{_PAf2&s`C)wmISvNb)aXF*=iOU{r zJ~)HI`;R5jXqgYUu)|G+49OG8JtqIj8eUCsUp*BUDCRgecuZckZm8MS#CU5h%wmDP6~FQ3ZAY7d48j2yJG4F= z{-iHStnB%>yUPQaifD6iu<88?LdwG9Pol549uqKN=6ayB$aMjH2mkiy5&76Y&JfwS z!s15rZJuL==|h$eCW$5PS8FS+N;?L6jc3tjXQn#C)R}D=3c|jpcTr5AxI_2_t@l<& z3b?vsd1KWj59N;b*0?eiBV+i@KI6BmB?v05H|`sGtW}OZDQVoh)TAc*4PVdqbhliM z(sDTVWxz9hCZW~M)aXw)6P`+X^?6#&?@E+7QoJ89t?fWh7J}R;3~_3TAWBo*`S$N2 zt<;mMSx&=a@Q6;#F{|NZt6S#t9v`xv$!oKXrkkszfu&#SyrJQAZ_=^ts%{68O!DUO zMzgOT2|`gtVqznO&BuBM!Ne|vz3fY<>+0k zQK*ba2E&!XFKy7CAPb{e^{r5j0u*nuu30}nlmgqKlU=(P1{A(8)Z=* zp*p3Lq13S85-5^MlF-nyV~(KF_xx-NlNtGo6O?0l-j?@E>esn#F#XWn7|wejLROPC zfS=f2_|8FcNPIXg2)c0uJ946g<%&h}B$BCmi89zv@O0I(el4J$-i=G}X7{7^4p$MI z3}EV}b7S@lr}hrJFE;s-dMM;L43V#7+7Z?_7A2D^VxK}xCm^Q~Mth^3$+M7{S<--- z*NEG`>5xNtDjXxubwy}(z_MZWSgC?iU56&w9~@RWpU*qf^+1dE1gMJ&4kUv-6$D3W zhUR)zTAO40Y|aceccMNy(+SnHBAJS$Eqlo%4@?dZ`+a#DJ@-GSF$~z=OOM#A=N!$%tQ^>vwN&&?OT?+P0owwfaDhXGL-A zKn@3XbS2!e`VUBq#F^wS69hp{0!a4b%ZrX(w{q@9GQqHXMpk#n;k#Vz{*32BvfE4) z^V!cJ$6-yyKa{@j$WyzKJ&aPN%IIAAemotWuzyhKxwHQav9P2^`|LDKnNB}|x|`O; z_c)B{G+cEY9!T9y?cjTi0udGNgtVJfB(8&$-i^^kG8qdq^CYWhj9Zn}S#vbKB4S(!CGXroCJh@tyTHqjViA5+Uf`drBxyufs zHu|;lrYP91@iKD(pA+|ZaTn{KJx<;bgBlIVvja1%uqbRkJ1PU=dav4UItyg#4;gj- znujCzudC?ju4y_b?blQc%lX;`w^7uP*ZZ@+##rP`^*PGJK>K%v zybhkzi96?V>y^ok!fhbqh}EKZx+O+i(;GfC$aVjl_eWn^Wgk{Vk7y@)+v6J%Oe$zB zC5-?Eb^b<$yMuWk*fmXE@o4?vc-Rx{iC_}l&Um?{E|d4pfJwI32S41w;o)Ix^sdL! zP>y=+n6a;+QlpU<^b@AhAC6z$U5h@OqTm#2Wc1N@fVP}cY zZhKI``-&F2q$Sm$T)1Wl`*xTuJLfnViV8UJFt{V%X4P7!LT(^?OP^FEq<;c;y^7@1girS`YnA-Yv(o|Yz&x+ z55#Gz3z6_+>UK`sXpG;)8X<0V%==)uXd%{^C)UuF4vN{8i#FRzUQ};|V&x5S@ zh?+$JB78a3Ql|pej9&vy{V!r;f*je@N-A+LmdEf#mcu69o?5bae8nxY@13#?uvgbr z`L1i&m(?9iqZQZ-pqSh8m(=_mO26Xv>FuM<`tWqVE@rgh5sFwE%A%O?dp;3!T3aY8 zPq|Inis&_YdAw>n&5V?!>|IfNT_YDKMuf-Fx$-QAt5!uvvEup%LMg1$L+sq5U$DCj z=XN{sUV(u9{+h+pQ+C_KDIB8=#kDuTRZl6_TRd z$1Iod`#QR`@15EBaU~C^GUucT!8TsVeHb4MGW=yY@)}5d(zFSkWndNJ1>}qC*Tu1! zwUC`?cWGiDY$HMWl57y^+g_1bgT6c4Js*-*QS9qgH?r>FTT=#;RXr}NbB{UX^Ed3h zRB#3TY-_WdnEt>f;>TXZkBxNRcK^>;=!=)x+29hNkoOG7o0i{5H9zjdI zC_C<=4%uW27-Vo@!Y{;^3Kam&UN#2cLdFs`|8YEbJYB}P!QBB1j7jhs!bSj0#(At$ znGrG~AC+$qeId8nF=0rxC5s*#F`Jp3+$e@_HJq@ctsqCrfiXfaa1hV%UHU?R^OmGC zG1$2--baj3R#rCO`!OzH`iZD^yH7&sP~T*5clRrjj9^v>c?@jv&B!}j!3OT%0vzYU zMP9S@UC>0o{7CWB<9$&~E|1_(CA@Tk#t9!cp`9OY>URaF&AdiU>tOGy?vP7IdIW2U zO$1YSQ!L%tp#(e14vZEEq_+%qH8M?SyCvOeGRUmFyu6XLpwkqnWd!jxQ9k!(<7OYM z12;j#$p28idCmV0Y1J?8b)UYRIzKYt>`v^!V1bUO6y8`;MUoWhfQ&kh|w(^=w+KKj1yf7|Nr z0MQlO_u9yrnX<#IMVRC&(`lm>!s>}{Xm*=I+5FTl@Qu6BtUzaAx|~I|luv=OJ0)H% zZi$yME_7*P1;3&YYpn&?w8`7u6Jus8)H5ZkpbeWAs+*rW`G(fp`niMY5X=->@o6I;PS&HSoK~e>I z>H^dX%v3b}0_tUTD;e@Amouo7dp>wrzGz+{DV|j+sr$8r+qe~Rqp()vx8A_z3+A}WABo`zwu!jJyDSn8G!0<7?V6IV4qOd z$x&$PS!9H8Xi~M;u=p_^zt`Ml>AyoDIaCI0~<7vvY&N4JqPlld_!JcCx|-QCW>{4(~oJ$@_u+H zIE5!uqPM*P6M1Kk3JHHo>yP7?Ep9rp_Sm0xGat^?EL+Y_G({K5w&RlXaeOeb3G2!? z5ghXJ8inO~*xNVPOL7zw@m4%~d6PPa3{xsv+T*DXv^wjfq&I z1IK$InrU51mx z7}(aTmY3m|Eeq>R_ZZXL`^hCvwb7)wXeo_aEWEj#f`f4GkAud69kochxsZYbckZuQ zqi6CvaXngB32$-Qs|5F_|%{zZT8IIXkfLHNtN>D)woUo2$C*TkF)i!G*F72Dax zJOOQbEjJWAak1i8$`bv26$qYC?%fGWX;jsxn;W5EI`X3#M#Oc0aCc`AO;OUeC4-sv zp%I!6V84bt{`5(^ac&iufG1X;=H{Zp998q4J@TZ2M{hW|zfMW3@A20xSdFSk4 zP9`=MqR(O09`W{ZYhb6uMgwb33L+n?{bdG4V`@CpE+uFP;sI%j%JuNY3TNm~rO&=X zOPlSVmK_h#J!95%@Iv|EW=jC@7D|auE^+`;$^L>=yx!b#F5Tinm1J@46!-5Ju?T41 z4XJ+f%S5kajubbaA!>h=bw63`i63nC^{w3<)n5o^jraiE%sX=YLa;~hZ?{#yq2FU` zD=G8kH-G{Vzrbvfpon@GrOP7@Bn(BimLMf0hNY(#!v@k?MTzHQSOU!F|o`i+?E>}(yR4|q6!`HFq>X;mS-@_x2TJj-;QOSG!+I6l%&4x4){Af5wIABBLA zI-DYk9*^qcAKT# zG+;PQ7m$fE7PyQGASaA?Vc}LEXh3?$-b0gCVEhSy%moPhkQxHN(i0&fB2vwd(YLMC zexKys&gk}rf>ogdpqH}P5hnA(HK1=F%20(W__b77QS6pWVZq&e8!)^zL1X5ObHyy< z_IeKK*6{7mpYO;Qe6f{BwME#cAc6p$$6$@Kh3bAXfJE`tLaLrZtf&+~>{xkV(u3v~ z6YXPUNyX$y5Wju%Uu3n4Q%Z^KW# z-?Hz9Mlz0@tY#oDe*RPbgs0ewQ>W#_U#a31SJ+3xRFPQ<#%AbFEkE}KPEiOO@d)w| zHX12~-gPU2(@#|DZ-C%p<6GLKbB(EC_y!{D8HlV2bVi{vUKPAB=CP5g*I@jX(Z(L(AMIQq@gCr!2kviLq6fpZtEH)Pg z&2rnAaU9jNM7hv0+QD`sXp+kFQ%8pwtJupZyu;cg$qv*{e5U^IC1nyTR1Qi ze0s@{5AHyC4SKvD86Vuq@uEiTV;a{axo21rSnd&vx|3Jwr9l?J6@G#B-RNn{A!$RWydR^!`TS51| z=R#_8-H7Wbj4sK12*g1akwCiY*fiuIfqDy>%8RY1 z>q?SlBMpk>-HMi9m2_f@#ZkHK&KEWHe^-XZ)PZ3urA{XX*z~<6SFb>~q&QdX{6~3z z7LZw6-%-2-kq?K)80;Hv5Hh)&yytBMyWQdmG*fgKz0jrq#2nI#Z-)*xMlyky4U=u^%g1LcN$w#M^u$EmZ|dMkjogIhibYCssKug#ESg+Vq560* zYLP0BRXTW&{-@AMBajKtqP@N_2zdh4{8rbY2a?_DssI~d zJ46eM8!HmP;QsUnr~9+UYEq{=Cb#ZDF$(Ut@NpUNrbsH&<@I9m(HY8hYh#T4e9Xxq z>Vqson328u)xpC%Yi^2>N*Vq9JYZy+hk4M8KxV##ceT4eM!N)hS5Lb}1BXe2OmXzf zBgJF+Xo4d4y5UFd9r8(Pf4t&mk|&%l1c1{N&@Kc(^N zm9e=~9}zG-yY73~Z9M-5#VmyYBpdz-$pGvx^EPPA0Q~t%@eIqtQ$ELQEv#dtupJHJI>L;! zivg@3O!RABEmp}|@mHtY4E?mqKE!Mt3ceoEhHe(;rYq_`$s3Eofmg6Ac<6$y;VPrv z6&JxAaqpb&O{xRk!bvA&{SaNze7a`81#DJVE1A@_JArHMQfH-J=f|^TXP=pzQ5elD zcotyty`q|3FaW|S4w?NLkXEm_8lFy}ARg3MYsI5N z_r+Qfa3Yw;=;=Rj{p-z?dtJda7;kFh~2?Y&x?Fp)Ba6KTKOC!ska&G8!D&R^bDuc+=kn8J;h*fnM1PEC8n=XF}7DRyy2{; zz#V^Z&~&o{or!&nb8tVqi6`5y=d6`{ zust*5;|6q5KI`OG_^4@BE|`3?)#k|job*|0tyikJCca!mf22h%RCx(rWBjI6 zB)lh(*s?PL2i}w5{&rhT1QX4nO6ff{Q4Mg-B=F8r{+sn5eZ|J#T*_tI zjmmE46Em!Qx2;sX|M7{-fcbX11Lu%e-8qH)kZGNBE(9C|zw*Rd5?806?eLH1A@%>C%Z(RKf8i+sgm+$H1);$Su7fEwxrcx#=~=KkNJ0os{<&t zhmW3|}^{*vo=I#=>nuRtcw&mCW4dj?2!3*gbj4GNql1cu}_QCc_O;DYDk zK2duNTqOPD3=IW*w3#h>lX!a|{$N7Uw^DBBa2-e@^O=nZ>ge2%Kkqx>qsvoRvXVPH zS(560d68=VWV@d%K?GY25wS}OyC$Y3JYmJUJYJsjqh>CmW%ki`J35(A*)(CW+KI56 zQ6%80B$j=q3OKL?hkTve357h87qH|gIOJtD(@J-ck?2+tXMnmE&jWsvr(dp842pq3 zAaAj~E4iAPSpfISOj_^;3fGS4g`dS?jWxE!7EFJDt&7Ri7_zCVs?zSrJ)XZ#3(gPAnRBF`pl zN;q8W*;4%P)M#}U&D{@p2%!+UHom&Tv(#CbpZT_78}r=#2Z$#S;!iKQH> zv&P}!5n!bwl_DEw3pA%{!o%8cfecTYPxqozPk&h2f)MUn=#K5~=56MdIvR+~(k(F> zEHRcMu5%$0!@(1}$oFMbPR<`I^unZ_=vnbF14Iuj0`kq{$e8J3=MmbmZMvRK^*pKj z5IshCkBUW7E&~?X+c$Vm1~Wz1>+Q9SeFyv&QxcwO_zt)a<*Rlj5-93MQuSr} zAf|0*$HoZlA)__14W$x?xyX>qmfv>kf0bs=;oSGh(5B*1Nt)_HN`xf|ONHj>O1xyT zu~Q6Zs+WNBlnv!O9DGWuuXa|Z&e!4uK+p(iL3x5|mmS(Lh;!vK;NSmi43Pk%R^(kMFrML~c`nG_tCMwI@% zj8f6DOcc{6@$@{N=HGB3D4Y+1@*u9`{M+RQ5UX?YPu&1oVz1xTabOeBxnSpuFFRMx z^yDm1_ppUdp}IfsJS4GgFccU0zz&bFou4T5lE&6B01IsTcS8-Rfk-fipT& z#Fjde#GIZC=W03vvqi|k_+NM(M9nYFKR9e!Dd+O7$Mf}GflNu&tYPn+?o1(cQ!PxFZ*woX5i<^~n_KM#18`gGYh((17h(0>gI#qMhgs5aEo6wjAT z+t(URD`6#YVydA4{DccERSI|@7e4x8NDYz5s4+a4pP!p=SY0<8@gU1g5LC4Q{` z#V$|gbxk)1|vw#p!ZC^H+l@Z^V01?#<>_Y76NUh8^x zt_*jW%|w$I`KVA-#xW&_Sz8CooC60q|Kc*wD^-!{hs6zB_s1<$z2WsJnf{wwN!cpk zxVx{|HXnylpGK&U!-JT9HGJrEKmvhMS@Tc_#s^zDI94kYmza)KLb*N>;GQN&`fN1r zciH=FGt{mY*JoMwr-Y`_MQvB*7QWy9}3(^pK4N=yFwW{hYR@my7 zVRTC)$Tu0h8YHRsO;H`@B4M}nDdF9hzLp{N|7VU%qjsahe{n#A8c;*1V2rLaM^n@2 zk+&dx=eneloXzkLbQ;6|R-^k5xHOjryn?)D5f>@NQJkW(o&GeE-tDxOsB;CNB7}Y{ zOh!b(+>qQ~pLGsL5gat@`-e8FI1o5^83aa30#> z==Df?8(Wn6AuTbYOPY1$#(#%hA`$SCp;*Z#oU;H$f0)5pAd6Dcj{fe@M{)$R3rjIu zfLaJW`!h?dea%8VLkHg7COSdlAR+hv>UTkwQji?T`IQdjSUFF{V6{K77p3unewjGX zG}O^VoqyhWq}z9}q>Zcp_wEvxR`Mc_Y7BP(Kt(sxM z-Xx7%XRnMW(e0F)wd<(e*_0DI_==QI^_=ErrW)ztT{gUZzUY~ni3Jig;umnPpCg=FuK*nk={qROlT2Q~tnD>$c zlBud-VpiN`Wwn>y0O{M*BCoRS40hkMHUQN2ImieOXGLER6~v$`nZsrgsxs`xe_|+-<2{ zuXn{FVJv>{c@^xaT!fMLzO3~hw;ZJSG29eN+)Sh@i8#zBPpRHDWr3+`IbK_OfrD_C zc`F_bl2s|!L4^`;Q?WImd_CQx+ORi$u`$76Y~Oh=Sr-qFb_X9#O!oM_5WYPB5(rkO zPe~tu?G(h9FI6E*YggfOqPzgC6Aq<(5|u_dwm-zOx6l*o(mO|f-6Aa-hQmr+iA>Pb zO30Q`Mt$ol;Oy7jH76K>BE}Y*sH7wJdPF}0(}M}*s+^$8&2IY@#0~2K>RXrgtAffm z2HtJI6WQqdbua#8AVaU}o)C0eYJA@jli{%7M?5T$e^=3jSK z`VfWakv8DJg*G@z6T%`}L?~C+q{BiviSegn^L~9bcbfnsQ zt*3b40B{9K9qwLNh2+abCb%X7rV^)7#o84K+`-`c{FwFJoLkS`in103z+RdMJ4zk} zQ*Tq`lvPl|V%P`I_NgF8%$a2sd|Z&vv0aK_3Y$5bD%)U1waPlN_eUnes*$L)+fH&A=0!-qG#W@`=a?@YVy^HiOmp4S4=bxoZE8B zdrb(jBP6h3Lj&hF?(tqLC4-0cRkX+Ua(){HE+jc%f3QIUiosq6R8&-Syt(z@*KNRO z2K$aUelxt>2RUkQ>o=P8*PG9MmM1C;3|z;}v7$jKmdB6}qx7VmpBxkCM}~y(zwo1! zMqxg10yxgGdQ%UvDxKQg&)b)@;s1}Gyx2YwZapA-&K6>gbrd3*AnH=56+3H_x(Nvh zaFV07>RF!s8PAeCdtb~19)HBIUCA$)Pw`xjY9*B*My?Mv-?Y7T2{)B+GJ`Lh*#ZO| z9p`;>Ssa)}Ykc`Ihaa^KG(%1pe=EQ3&(1v0hX$SlXeVFqUgp?B4}}Jod4K~BbDy=< zBoCj6VV!7%#JZIkT3upIkWR|S%jC^Q(9Up?*+1+VGtRk-9`PI5oK<~f1077VhIcN{Bmn?p!Orh7LaKo4?YMDh~ zR)=4S-rP9?+Yl|_IDc>4u6_+GkHTfJoxQ6Y*62)MOR_&DtTY9oe&X4KQDzXJsgKZ< zRR(FezC?V&M^vb?>a1t*Fu-wx9t@D&oEalI>Zf&;LfHn*_G~Ova-Xbg8=y!gjt~^X z^R=fW$eCV01zn`T75{&HgysvSMk~|#Ap4J%)Hx=&Wp_1s)H|D=138LA6**@e@BCnl zquX3;B*C;^Vpv|*gZIze(gxENApcRmr~lu&J1RT#b;J9sR-3lhJOxWM zr(#UwSaDG# z{FczXen_y-*w}rF_^QQv?IIF>47U4eXL(4m7+8+4@fd6yIx#JuGyoi4;yUevo5Z-R zK=UZX{ZDO31qVi-nUQ7&_J`jjUj)QwxMrok#(v&v0sB*J09x2jfqd1pkyx+Eyt6;$ zBqOoZpUR8wPJ6dR@l)7s`$j0h)=2)Bt@+hF z@$bEEe=C%MNj=WcAOPzpcqJA9zHRlg)Aj~&okSDS)c*?*mPYOMXi4EAQ^W^HFHzL| zqfgtqiqns2E#BeJx|ww)Cm1jOozF`sG6kW$t$PEn-?%4q!nESiaK~bau@%2BKbIqF zz$_{=v7`x5ZCgP{kvxh?js|H*{_d`jH@hFxfd5~0 zU_jaQAJP~;k@_=8XWZietK*0h3jrr#g%iROPaz!{pS~z31Ok}tPagO&=`SN<68M4S zx+WVH0CTFIq)&c;zWn5(dH{X(XgIMDi_>>p#Qofsgr9#O%8wx^O@vyinSTnV*eWnS zy&uD4c)NPa5tZb!5jwQ z8f^nJgo;Ub?esEF4Gx61%ljCI*3 zvI!f~wcsE9_GYVi=2MK~*6jJ|tjwnMM)}pEp8EyU`(R-;l)Ud!2aam<6|1fkH@QDalFgxymC2b-*MWN)H}9xV~fP zIxdfGNvSZ!Qs;7ZA|(|v?oH)AE40)RhV@tT0=CMaYwWEJy!Hp25Fci2+Yz?97myS4 zAeqVa%i|0MLsi5hg>Gz9b4K=4Yy;Q+K&B$$ZUfjVY=8BiCsc0PUyS9+vghAE3TNv} zeRVN7srEe?lB3ncZ=n}u2pQRC&(HQRv=+}TVLy#v(l8`oJ=iJ$ZwCx~%lBlC*&GD;<)-s_ zPN|FZ&p+T2;xC|0*WBOKegZZauKD0>tDCnQ=#vXh#Uib~M?;W(n8AA61ifxbR&VoD`B>AjpFtcIPo}YAAcs z`C2+DS={9k!LPz@PdxO(9AkpL(3hj~P%jYtvDmV87#(!t&BfkEAK&A(YGl10;zoMA z37X`E<`zr3%vj4d2)VZ)=(?6Y+AN z9{zTGkyz)d2fSB?3(e5VJc7t|^(4{K4CvSCdN(p+m$72Q$!k}C&0u?Fq+rB~P<%*Y z2g^DIGP93^7++{BVf)g!^{coaUETWGN=8USLhFn)(U7wb)ZJN(=u2B&%JVtPZ!xk= zc7gZ0S-sarSy$|`XuG)e!}cp;mPd>9pFhsuSY0}N|G0G?MDSZO$pai@L|+)u%haK0 z4%OF_cJ&ZGK7>;l_A^S05`tge-e<4r^f~wz)SVv0bh{1?6~rKl^0JNWpRb4(h|Ca@ zUZb6Q^f8SgAY&(>4oJy?#P0~h9F8M~*#iYW&CD})!P)c{9Y|lYgl^RrQ&h>D0f(L3 z%!t?6E3Lg5PkWDrx4JJF)Q=dE>k1aM&KHUY%-ewK)OjBCz|wQa6e^BnqIWJ5u$yR| zEonYGlJ2RSQsZUYSzjg*nIboMWBU6j^4qW5VR+9GMC)4eCy% z>3Z^VXS(fb$0DFg?Q({6Tf-03Ln5kwZ?~n>ZEQy!UM8b&K=~YqgXZ?x%f4fJHwRwu*Xx-NE3qBVF~mPclhgzf7^>FtxM43vkPFPW?D~6{S9jHLytr8YYI6FF= z9Bgg@Zk2eXmo@3nhp}@Glo9z#Pwzafo&^oBo4-e*>g8K&l$3wqqF3sJDd5-AR8(zP zpGBk4AdPRtg)j?QKm1w0E^A3JeVvw_SHO0nB9t^ud?=TBs&2L+K}L5vk3tKwqGihX z&}DfMZc{X3jrKi1o+WhK-z9CFxjFbw`N-4iXdG$eSUQ3^3%$y9+d9i-Jln_6v6HN$xY>{mB-4)B41dda~Y7-N*GB1=B2jof-Mkr-P)5-qiXOI-Jo!4r32j*<+C&B9# z_3E_c+bq4QS7QbsP3guVM>K}~K_Ei{T!6U5EyGamN9@H0DSfZFKYg72os@9ld5q!4 z`l?BxCuH~ggMEL@M%_bvAo{{y)6fY&dn6x?zzDD>L#+GLz?-hbCa|7rITe>Y52;^g z9K8IfF*-lnVE=Sw<8dv^bjY8&?XO+U!`r#Yjd(BuG{cgKCOAj*-IE z-ORIMu`oW&!f4#njYt3pp+-Y_uEWo4d64&3f(8|z9)*$aUG@{+W+tj z*-8Ba>=;p~6-#`mT{@bMd3r7zIxntY>?Y`veY0t{fxgU&PG~W~*&-*|_0sy_YO)Wp z_+97?jo!3XEfqsp7Ia}`FRgtwJZ6B+DWUDrZsGBSvtBNbtOZ$}lHkoDpk+d>?}cl6 z9(QMYqUSzkv|CY|ohFSgbRIpy71~B$~npj)oB_nYaf)AKEyClvWcpWY0 zAWMIWG#{$I`hy9OjU|?B+-AMq-j8X;Hsn1T`3fA@^+y(0ykEivl?)mta%IL)j~W?D z$`y{%&wK5CsK9Ozh6dXO;bWf2%UUB}#K z={3%pb%|j_+Fc7Bq#15kx0WQG-pa)4=1I-hHKOlxvDYN7@3(ZT%a`x7Prvq;apU9% zIio+le+;Yvfs*OY_*>4T=Xc+e8OHiQRHoD|>H;h0PD*G{fO@THu{T~f2UtaZW#H7h zWm|h!yEhChcO-=;b%;SBp-@BD#RN@}aM9mmd-0F{%U+%K7WbLgvgR2p!Z)c8-ys^B- zOh1Z-uMv$H4G4&5uWTS7Hu&|`CwX#rQ|EW0t*9{pT+bf#DL@!JrZU{6#HU uYB^@&5qAfRrNu diff --git a/test/specs/core.controller.tests.js b/test/specs/core.controller.tests.js index 2fb13eb4b..c0f1b2ba8 100644 --- a/test/specs/core.controller.tests.js +++ b/test/specs/core.controller.tests.js @@ -1430,14 +1430,16 @@ describe('Chart', function() { update: [ 'beforeUpdate', 'beforeLayout', - 'beforeDataLimits', + 'beforeDataLimits', // y-axis fit 'afterDataLimits', 'beforeBuildTicks', 'afterBuildTicks', - 'beforeDataLimits', + 'beforeDataLimits', // x-axis fit 'afterDataLimits', 'beforeBuildTicks', 'afterBuildTicks', + 'beforeBuildTicks', // y-axis re-fit + 'afterBuildTicks', 'afterLayout', 'beforeDatasetsUpdate', 'beforeDatasetUpdate', -- 2.47.2