From 441795bd06ed3a54550d4263d59b884e30596297 Mon Sep 17 00:00:00 2001 From: xuying <33517362+tangying1027@users.noreply.github.com> Date: Fri, 14 Jun 2024 14:35:45 +0800 Subject: [PATCH] fix: stack scale (#1978) Co-authored-by: xuying.xu --- packages/f2/src/components/geometry/index.tsx | 29 +---- packages/f2/src/controller/scale.ts | 31 +++++ ...35\242\347\247\257\345\233\276-1-snap.png" | Bin 15425 -> 15235 bytes ...40\346\237\261\345\233\276-max-1-snap.png" | Bin 0 -> 11591 bytes .../interval/example/column.test.tsx | 110 ++++++++++++++++++ 5 files changed, 143 insertions(+), 27 deletions(-) create mode 100644 "packages/f2/test/components/interval/example/__image_snapshots__/column-test-tsx-\346\237\261\347\212\266\345\233\276\347\244\272\344\276\213-\345\240\206\345\217\240\346\237\261\345\233\276-max-1-snap.png" diff --git a/packages/f2/src/components/geometry/index.tsx b/packages/f2/src/components/geometry/index.tsx index aa54c6f67..91ddacf18 100644 --- a/packages/f2/src/components/geometry/index.tsx +++ b/packages/f2/src/components/geometry/index.tsx @@ -274,10 +274,9 @@ class Geometry< const { chart, startOnZero = defaultStartOnZero, coord, adjust } = props; const { isPolar, transposed } = coord; const { y } = attrs; - const yField = y.field; + // 如果从 0 开始,只调整 y 轴 scale if (startOnZero) { - const { y } = attrs; chart.scale.adjustStartZero(y.scale); } // 饼图的scale调整,关闭nice @@ -286,12 +285,11 @@ class Geometry< transposed && (adjust === 'stack' || (adjust as AdjustProps)?.type === 'stack') ) { - const { y } = attrs; chart.scale.adjustPieScale(y.scale); } if (adjust === 'stack' || (adjust as AdjustProps)?.type === 'stack') { - this._updateStackRange(yField, y.scale, this.dataArray); + chart.scale._updateStackRange(y.scale, flatten(this.dataArray)); } } @@ -391,29 +389,6 @@ class Geometry< return adjustData; } - _updateStackRange(field, scale, dataArray) { - const flattenArray = flatten(dataArray); - let min = Infinity; - let max = -Infinity; - for (let i = 0, len = flattenArray.length; i < len; i++) { - const obj = flattenArray[i]; - const tmpMin = Math.min.apply(null, obj[field]); - const tmpMax = Math.max.apply(null, obj[field]); - if (tmpMin < min) { - min = tmpMin; - } - if (tmpMax > max) { - max = tmpMax; - } - } - if (min !== scale.min || max !== scale.max) { - scale.change({ - min, - max, - }); - } - } - _processData() { const { props } = this; const { data: originData } = props; diff --git a/packages/f2/src/controller/scale.ts b/packages/f2/src/controller/scale.ts index 4491a17c6..a8e53ef80 100644 --- a/packages/f2/src/controller/scale.ts +++ b/packages/f2/src/controller/scale.ts @@ -241,6 +241,37 @@ class ScaleController { }); } + //堆叠下的scale调整 + _updateStackRange(scale: Scale, flattenArray) { + const { options } = this; + const { field } = scale; + const option = options[field]; + + let dataMin = Infinity; + let dataMax = -Infinity; + for (let i = 0, len = flattenArray.length; i < len; i++) { + const obj = flattenArray[i]; + const tmpMin = Math.min.apply(null, obj[field]); + const tmpMax = Math.max.apply(null, obj[field]); + if (tmpMin < dataMin) { + dataMin = tmpMin; + } + if (tmpMax > dataMax) { + dataMax = tmpMax; + } + } + + // 如果有定义,则优先级更高 + const min = option?.min || dataMin; + const max = option?.max || dataMax; + if (min !== scale.min || max !== scale.max) { + scale.change({ + min, + max, + }); + } + } + // 获取scale 在 0点对位置的值 getZeroValue(scale) { const { min, max } = scale; diff --git "a/packages/f2/test/components/area/__image_snapshots__/area-test-tsx-\351\235\242\347\247\257\345\233\276-\345\261\202\345\217\240\351\235\242\347\247\257\345\233\276-\345\261\202\345\217\240\351\235\242\347\247\257\345\233\276-1-snap.png" "b/packages/f2/test/components/area/__image_snapshots__/area-test-tsx-\351\235\242\347\247\257\345\233\276-\345\261\202\345\217\240\351\235\242\347\247\257\345\233\276-\345\261\202\345\217\240\351\235\242\347\247\257\345\233\276-1-snap.png" index aab0ed2cd37178a31e06597c11dd3d31a324fee2..b92e14c8e1091dd0acda7268559e50f8eb4cc165 100644 GIT binary patch literal 15235 zcmcJ$byQqmvnJeFu;35~n#SFN1Sily@Pr^u&_+TC7ThgZ0|64;NeE8k?hXM01PJaB zXxv@rkl)<*-nrkqzF9MC%|Cru&FMOO*V%j5Q%^k=`ch2+4~G&51OnkHzJO?eKq#ER z-%D5zfKLZ6cp(V%1f&RguIXmDO9)^zc ziqYl$Q$bWpln9UjY~#t_Zy%tjLgiN2ZSv%$8NOmG_xJ(VmjYPt+Sw^}EM@O+R)vZ_ z5J08$&wMUTqCH%zL{)HauYH8?D{v*nLrpFX>(-in83Fu~Bt8-axPE;{_$yFLpm-$s zJ-Pt!f2W77uCP@3@3=1Xa|)LA05?M z2CMgk_!XX?Hi#;8U8>wN9A3K}0$;zd-sKth{Mfd5q0y&+f?&!FC-FMs0ZB1s$`yDs zWMYC+ArO|l__4FIt}RKBC;Z)e$wb0og+M|&9CTDyks+B^-6t;y$Js#XESUs&e6Te9 z#VAlb(J*n3Vhd>B9^^wmouUdNeF{rE`Kg;8VPW^_?bMJI$k^lng+dNe<^ZWAYgKn( zL|~$%=3#Gr#{7f3A2tOyTZu8|bxVnj25F)`OM)Bz$k8tVp3UaR5xS0bD?#yao-_Lz zOjLz@gM1O&A6}X>$Fe|PX5T`1P65(W65kNq@7fU#_sv0xAk!xE^8j}u(fnJZ(n2!T zVO$3FmGjj*3m{`-T_*2Aceu|3V;mx9l3`O&4#}{++Qmc=;Ta=`0R1JlU%2Y1cwaf9 zBdIlza6*}l4rN~ov{pI?^1(Ew^|J@flgfC#Qo67KcgnD>5-j6{!*^YG#RA}lRM;Wr zqiYAgwN4R%wdk$yP!3!zl|3#Hba(6qx(e>QBr^J~?8;d7=1&OEU-1L)E)LW@a8mAp zv9Cq{Mh^0cp|GO&+7%2jeL{#u{E807rB}WEqQ6`S#f`c(0VKYfXM+an>Cd0Sr=K!j ztoEemQE8+pt8HJBSu}Xz-s0*qGZ!$W2-yQILZvWU`yozWR$}%X5X8gT_!nNfN*DI@ zqA_q=)Y5iv-3^GFNGA0UVFqUFb9zcy2n|S$T&7W7=`nh%jlI|_aA%eMT?1ZEBbL>s zghPO=w)agmv3lh^eeDVww}nzIW~&s)%O5QjPSHvMQ)HU}8Lu7@6QF_~ffn=iX#5`e zd<9maDdacy*W@_Ai7gtcP>2i2jgF}4%j9~2R$+mtsA%Hx0-0>4}`BaD3_`U3jQ37Vh982h@Q>tCNR zOQXr+dsZ&o1SrivT9}y3?qTp|U^0Lqxv_@{GH@|ee~{EWCRaJb)N{L$N9xS3Dintc zO)S-X_5`)5{#RtQ);2TEFO{Z#1W0fg(J!~bIEm7B2q{*)Q2fr&)=~C(K|b+rAKas0 z6c#hp-UOyRf#<|Aue{ct1fKiFM(6H|Q`M2Q3WI)rc)&MtLC@1((4^DtAgh?r@eU|V&dPyW0H z6IWO24I4Oh6W@!F|GtL`#{%CzCB#CwP~SRR{PxX|g@%X1(E@WJvkJ7UlWXcCZOftx z-FTwAQ3;YLY?7j_(*3vl{T6q}>Xz5-fw!LY^~@9x4H>ibw@y5)$axHBDOor{hzE&T zy9EUW(cfOKr+|u?=wsl?)XpdFEem&=%F6w6adB}iJG;AvU0K}(GQgsG_cFkkDFdJA>%oHUpQ58U#R=zxZu)K zNBkJ6!xznNPR6JWvyU-sAGFqysm-ddgn+rD zMxSNunJRjxKNWQE;Qgel9M8Fg8KJllqoPC`W#J(}IhTB_mm2H7c}}C?KoBQ&SgaFQ zy39~F%6s;OCp~9Q6(YX6)ek#3j#9*Fr2rX-?|i@tC)e=VV1*U0*tabB!T{Htq392c zKD5}R>8Bwc#uVXsun0v8rx$qXk!bUrYbX&td|-MmTHEDa-jxK-(u6{s%y=mp<&}DI z;&XSdf6jJY6#k*sCWd*3!{vcfm-9?7Ixuc4_H$?lO33OyCx|4FP&{IiBl}uWOKYt5 zB`YaQ*y|=kyVs1wOCf=|(c(0o%2)@;wNG309f zjC$?)%46C#8eb<5@pQ-C+LcJxG~Xl57Dlr8&DhUmtRTZD%dr?S_(m2VD7&^!Xdi__ zo&~ivFSQ)_^;1% zWt?*l6_SVcC-7uY0v0|?$iS(xVx=&Cb=O5nKlv~-lC3=COiRohDx69dQ6_`sBJ;Em zO#97ZFjZH?ZeE;&s@;M5Cwg#SU*F32;q~=*0+%hIK_7)9P4gMlv5N^jEoXo)&1wK=P>M5F?fSF89 z^6)*FWkHwuC?M`sNfYW7^Ayix`jy3XZVf1PL$g)!EPqh4*bSefI*XbBWN7&i9X0j0 z(@C7A9vYE-W_)kJ7-@{}w$c-R?FyEIkAV|gO;W_69~{!?9yOrAfd1uv?x!*0J0buBVUpKE2y~dc4%6D~#{k zOSsOyEpw(FlMs?{>Plr)e4rfB!lLr{;?DispBEN;GlKZl+u=rKCJdPs)Q9}3&x5hI z%tA_cdBWLX>CIG?&xllU(NXuhg}w3R^dcf6V(>b!j^Iy8PZHjwshGLWyCa?Y%ip-Q zzO%MYrN9pnOKa;eO@5nZnM@P@h|45Se7!5wOuI&$>5m5$6_rS@(TG_bHc8yV>vO` zjvVIhM#z870zjnJ$nIF$=>K!$7+{1k@3{yYlP^UJYU?PlkY}B@#vcz140uVi`FcEK z46Nk_f{kM{`QQQ;^0nwW<4i>;Tq+2`bB~G{cv(>~z?}5U-)n}>+{AgrFlF^Q0~6V^ z{{-+|pj+I6Zk3R~R3(if)Q=Xw!_SXXt^nNN_jIOm0f5~A8s+ z7C~B3+ORYCcb1kSKrlNZvKKLMCwaud*}=PcPHK*HW0jMLScy=L&{-S5{ZMl+9o{AqUf>7CYVcXKLy&|%0xmADm>|N0vGH+-kMmkO%_A;(qAS`BF58p#pL$j-Gx*JMGSYXF zm6dddr>8w+Y;1Ni3`}E9;dvspojr8cD>!KwODMQ`(U_q)2}YzI zLNOQ+UZP)$5!%qryn1KNahyUYul)HKStkAOrH31k`f||_LDIZUQ9;zMa6fIR$mL*> zQg@MyWl%QlJKK|N5A{9>Y=b)9<6W)b-Zw{R_KNaJ`Y{7%T1OvdtA2mI^RZ*0!5dh< zLb9GWV3z+CR5T<`{oQ&wrT>VmG_us;IA2des%AQyEZ*a5-B`k=1RF_Ewj*@&8({2x z;)XZ$z1ym1&3s54&qtAX*R6G=c0*;m27y4$rA8Brd1k2-K1ar{U*>|S*&%*|u+{a~ zHIY8HRmvQkC(@3EJY$|3%s9%((%-VOzz6TB2&Z7< zL4XH*bf^F$-0wTH1zbnoM%~}=AFjjvzjPfiLc@#sB1h;2eWI!RzjezYHlBet!%GjW zb!zQMN#}p(U1bRYCwyhRr}rb|SZHv@=P*KdR=nk9*0p!YTI%s*Q`_z6>1F0gfg@lFg@LQ8WGBWTj z;Mf(VPsUwj0m-Adp|nmxNYyZG0Q71G?liBesyeI3^8mbgF-hj*b9nHnVlQ@14=17q zSVr(QVD*m&=R$y+oosve&g=%VyBe{rcBZS|IyyQE`*E;yaQM#5&E4>TTyelM8hvD- zNYDp1zc`4d9ApR7jP0km&IRuD_LnwxXJ2u~SDwo*5J6BVV!LAmHi8Jtj2()({AN)p z^a8nR+|;Lz5cPr~O2AQSNEiyKR!b2oS~N?HG5}T@fybt~f_TW-^cSPrY;s~Gcy|;h9`nVbFpCBF_|Zft64xIWlsXob#fUF$Oy!qkiI_qSjfn4Y zG&1o{;=-(K?|YDad-g6!kg%eWOxq+5;zZ(Smzd+;Xs$~Dnv{kp)3lqIceRv&GjWi1 z!l2qO@XgnCPa9W%T)>VJG15rlB_0edovEaWR#jzZui}DoD1#3qYVJJSXHI&ksqc)C z9TXDH^+!5UkLP&yl&@=sE@!&as!DuZN^iHPFDGf@zV)aVZhKf$nmNULOcEH%gl)R? zyKd`AzYF>#aK|Qa(36pnX>z#kZDc9bZl_w&sNg+PdN%ghW#*5MAodW)=P!17drSJav*`E6A|`G7rAafiDsS+V8l) zrRTq}Yct*#Vq0Z`ILQ>?JKfn#?>(Fv5Gip1AF%E9dJ3&gzZ!E8*CPIG8Z)NYnEq#& z=kPk~DQuaOO}DD^w*SEuh_p~AF&16uFKrvK>FcRl zgCI@*isKCKxkwSU@il74!XA;6$#b>Rw@o{u?2 z58;22YB?d{SIeKD#)UeGVk%u}+0e@=o{Z``bafuvbKgwTZh$=dV2VA8WA&DhY|z38HAf^Qpjk== zuEkeTkDHWIf6edt|Db7?WirKnCo9=W5DOB`B2;DjtyrG}t+M_|noMS zunwD@dIa9jtL!wDEpwQ{t*CEbe$GWLI7CWl@tpTUX^_A+(56xUg;-TPCB+MjBx3wW z8TU}WV`=}kvk13Pr{r{Zs=}iEK6}9A=)Wrcbu;4r{Z#){Aw3dwI6t2cpT(Iu*8~SJ zT-WsK$n<%FKB4`xR`z_p?9_|){W;WuGZ2yR`9y|7P=&n!J^PZAeB~y`d;)j$bxfa& zrJUG^s_aUis#3a3n26%2S~|bfHeco$UYBtkHgZx%j_3J-lT?w6)8-T_y3lm>?D7$G zC^E1q>GCzAg+K(hil(9ui&{F zBwj24&Bcemp?=xl=O#rz3s??~zI0v&8nWRX)7OpW#J$ zr!5{@OK&YHQlK=lU*|!T{CPj2J{tQ@x*z6=DL(zKY^OvCiqkU7sS7=W>3%CxR@f1> zuwUjfq)P1xLpG(}$V}!XpJ6p=ip^DKwulN~K%UT-3Q?szT@5SGH)Y+mFEp4Vp-m0{ z&|lpb;A)okN4+zIjN5uk6vbYxeL)x})L1f{Z^Hrlr9~CzMQG<3Vp0Z!+fTGnh9G!|8PsY-OEJIwtoqm?1C zV)@aX7Ui-Vm{I-0Bq0{s`dS*rx+crJsxK@_FYc4xPM;hsJB&+vin+7>mLsl=Y&=A_ z2+OjuD4P9+HZ;^-CHDrC@lT&hm{Ml|3#rDy zvhH`mNt{jpJ6-nJcBNIH(`?*S@GoBO&w z@!H_Klb+(of=3Eb$dT$oYz_l_j)cfZ^`G<{KOwlSxTaa;@*cbU>Q#Mg=3+xzu2=1ImBnZoXD_f5`p4G}pZBROI zi21Zg<*F_gGb8j#$3KX4{e{zb+3kJfNW`0m9eI1N7j7IC7>WxtwHkZcog0&qg*V>h zAOmF($#28WbFMse79<+Kl6h_gkn?6Tk3$p|G$#bt>c@$$-pDd{99>AHP-{z`Y?V`@ zF!RYjH*f1w&2zWDSQzZvkYCuAuxMzj{$a$D#)OfG=zhNJhj%p^dLAiiKNP9I^Badl z;m>S=8GwnYNVVB@baVy|cM6-|Ys<~FlRG{P0&~Pi@Oaj|f+I~+tTAj4(kd+=Ei@B$ zVsOHg?8*`~{a@@rS^!}8p^x_%@2$44!%zQ$e(rqR2DgYez292I^o&F~K1oICnuU{S zRy&gxkSiAY>F*T4{ZaNR`LRRT2W>}zy#UTImzetGqpPj;Yvvz(ZmWG@-u`wIwy@b+ zQiaX7_hm4>yRAAPwh}kIFSq z*+^;HHTj0lyK?TNptKnk!&|gt_{$`rdjC9nfp>JZp9p0hV=w6Z;+sxvV(ll-rni4W z*uyw{*0G;FqjOoOGHx_@4v(vAw#avcG7!eqMf%9v6#UIc=8i5dqZi6ZiE&Bhi>%2} z&+t!)I?r_w<`^PaNUu6=`A zo0$NwZ7+!S2FE<}pDA?w%{B4kSpON_KiOfNEP(sJe7n!*f*&nZR{dwnRPf)kO%zvp zAdO&HBnObYtocM=y6I+mxQYZ)z-}uzh^)l?gi=0J?>?~{`F5CH&lJP~q@O_@8u>Y2 z`pEd~8*L|4#HQCL)5D(O*i4Xp8y%do)fvE5bhM>@l2Ix=AaGi8X*+h5Qh}k`qMXR3 z5wgos$uq{q>V=)w!7iSoJN7K~`+`n8%XkYB?dY!u3yoNxZdp)J_S5yn9o+cRlKJ%45P3zqWaRPST4)1W);YfiE)u8aa zq|>K2wtPj(anDehQaUd8bGBM`ztnogHd)CDeLw$j>CP(OQd>U7;yp1%D2RO{0{U@6 zXwn2moSU>O{1^o6Wg?=#qke5$9ZR+Rp1tsa zdrYMO66dj)|HUs@26j;0T(%^ZNT zz;0^4H9QnS#1%*8&(mW0DN($)%H((^t_HGdpRoU0y_gS{U=^ z6o>E9Uau%GnLPdhGALEKm?T*LyNpICxT@1vwPPe6^GcIQeF>4*meuv1^~+0q&?IB_ ztaYNp>*5`z>H(Xn5kyVqDW`1dCh^I}3(k}tzcRXjA8Xk1S(XKlr<)fJkMjp@-KVG`^^h*sOD;{hSn=DFUFC~REw1NyD!qZ(;}_;14IJ5epEXM{t4rai z>i0sr>Zm}bBxAj9M23#>7RY*Q2bqnJjOo$~5n)y&IWX~6J%*sBanhIb{GV;4-w->a zzHJH|6Nuemoaxv}4$ifkP8>9}>=l(BSH@!AZ)UTpzUg0U4$ZV!z56s>%bwynIv4XS z4ZkB*NVAWZj%rT7+RPE^b$E38qj;;t7g-!~d90u@ADBxuMqfW~cl@W4KRzrEy;Or@ ze7aWj3y3B0iuUU;efjBk)5yyNqRWmF{x1{Pzu54^wl{;(_Jy(%!)%b%Dp5`8B-24y zJ=fUeG-J#&qCU-g8wOLq$(48Yx~X62@;sq*`{JLA@U{mzJ%JVcVD+9GwA-YKB^aIzmUs1jEnikjU*mPx!txwtbShD= zGU?h3&LwLoD!7Cb3M%%W@*NsyDs4zFS(b8LExY|US}Ngl z@5VuT{)zaHbFK@lWiWt2|EtwUygNYsR)%{1=Iy%pd`H$Ln_m!sXWA|FumVU%M zqVA{W;Jl#LE^k*7ob$8!NhZVVf081<|DxwCSCPM`kTNwdn(~usVHTfVCExqq=MCX! ztX;&@0r~@|4l$%A6+M;0WJ-$JRwbIG+5lUt-DN!krC5lEVL4H6&>a1o`EnD38BT&? zy@nC0a?$KYJ5;?bVsDQGN=&+Z@LFp=hh37(7dr+yqcT8c7 zWv#S)gE~f0^f0WD3dK6+b85!)18}m2Ey<6ZvMkSK|KxKES*WV4>PwNtf^g6}joZ&B zevZ+g(4zQLHDS3J-mdDlY8NxywlJg#bDKj zgQh^0f_x2n+NBF5spIyLk1$eCncs!83lD>Vll~B85|+Fc(tKJ~(p2ZN^QNM%?!px` zh)zf>qfd^7K2Agw#VUoui_?k=8f4D=z`lan4_h6Xl8LvsD*jRAQb!*WM-LjLaNJD9 zwNh&^Yir<`Amx`l%rA5`O0iB{PUCgeF*C9rgUZlOxAs3pligPTnSUtL{?PvO?LwX^ zn(!l}sY<+gQl1cmph3`*2b{2*KwM|KId+n(J@o$Q>V~QUQNLjGx8?y^QymoYJ0lt1 z0yq)e|1a^iXb7^y2JZruss7iGGosr2FdoM7+iLOKR`nO*Y~6g1Jn*j1foYre%kmVQ z`##$p=u2oHeZtktveKConpz{#H6y=4d=XSFCitq?`C41PAa#dqWvHmZtzAJ6;Q2F> z^1R5xN+sz76T#Wnl71e{ob;E1erXUV2|YOo5hxesJbYpAY#>8QN(SP3umE5Gq#0kh zRvPPBf(uln&`~Th=y5|P>0d^`5$;j;A7sG`6fXk9bY^QH-3Bv8z%w-_Ii6-48H(Om zh&co`JqaYUONG1DoiT=#rlXa%y)sgPA`sA^B7o`&>9hrXU?9RfM@6|C#IZ`K;yKqI zYEZw)xv5Jqde}7Xtha-VDkPlW{Bm0Z^JLF=K6z?e#uC{h;f%|(KyKsfn026N+cFwS z?IzafJ@JKX^xAgcXtudTt;yq*bg1@{ZpYgzEoC`;=jyz6G;-_9mtyOK>5(IXAvcv; zPuI$uYlzH#>-sUy6+>4S9{gdS2z=g z0}m!KAi_?6878X+24!IE|2H~}y?d2%(1h zz3uSCLPYg#pN(4te*tp~)qBs1KIDnn6$l^GA3fJ#;iZ+z`T6Et6gOSuspj(1W+>fV zd-ZxTi`Kz3<+O;m&DB%#HzSgqDZ&plh~6mIp3Hf>I29;p`o1fnxmavPzNQ9k3r?tr zxH_h}7W@>N*S@f;+fCeLNT(U5)~0O#-_c!f09r|l@r)-yYyLa0D%)75BUI@_mo0ZJ z&(&%0lmlmr2xy<99Q8aHrS> zZd1lDK@o)JqM(qF8h%K}6-f;@!mw$&!D1*KJDi-ymgeDyCZ#;u$RNtNF+JMGzqS>y6!;ul0)ep<|Oep;U5+LHXJMn31Vsm^rug3%FNPhr@(^U&8|VL2W{w*IH@_{7H--$t z;v#`c4B(^-W9`r7e|PnLfu{7o6lngbL@cVIJKZW)-tCQxvXE<`Mzghl1w-5!&0z38&D`%z4 z5+8tC5aF)xeIbd!!#$QJY}js3Dqbj1EO&w3#;#o?=)L^7=BWTprOcK$NxG46^X@mW z7{AH@yEF%p$nP&ldi^d!BE=Wa?hFfpI*()H}g%W@IKmM@KDnXUB}UW-6W>gZX9qcf3uj|V=r zCzncHOXg*j^U8dUL+h~S1v_HU+hT&+%VNID#f+1Vg-&WXv3J8C?ymsZo|ULlMisPB z$2L02eYEfpRQB}TBRA?)XldrEb-muGc-7Lh{!QJ&aJu3srpp zZB3iGRGjafF2S-ez8r~$!MwdRc^x(7?Eqf-6n17QM=So`M>pgOV=`u)dqC#Nf;C5zNGkwY`$&c6zlh~gxKAG>^p<-^7 zqIk_w_lLapcKvomt*YZYlCi2xmlA4)oh3=~>f7s<>oW;l9xsOxC1#$Ih^;4W-Wyke zSW>kInYO7IH{XnEfor#LI(2r|779(^D1=8QV8LKH7nmnHWXAnu(JBlzt-4l`nZ+h8Ogt1O>um4|*`ZFUw=L zy`*yf_9c&dx_xJ}uZ^wPxlT2Qnn~~NC$_3z#}6LUjDlwLGM4?PpZEz9k%*{IMbBIh zT3%7vdf8gHT>fNT!y#fQR$(cB){_CN_&iA}G%S!f;<%ZH+s$ez`o?c^unK2ajAM*B zUB;2FmOd&XNT&T_H+h@4@oGXvVi&g%sJxJ^&GyArwl7nUD;GW6J5pDjXGcG8qxb-2 z=XkI*)dEhjROIhuBa3SV*cZW2f&$pLbh>l@KXKER2qBHgQOF; zn#32$e(Hb4-~VCnTMBY&(a955m2}Knov4~3V|k=Hdzy=knm(puZM=tT55AH zU_LTro)X~n>JPd0s(wB3msJ?|WUzDAo5Y@^X@7XK%8>+lXjkLFJskEai9Ig)ZU$HkNYJO)vMMggxI)hRFEcV(O%)Jhv zv(1=scxm0Rl3j-Oi1#pGIHNqLQykU<=WrSM$!n0pq^{$?BW|t=-LZL5HImZH+%eM} zom-u>>)5}?l-8k?UHSlR{*{#D6Vtln=1#=x9M=>-xGIZ@9y2)y~J=Y5kQXQPNKe^;3MySaWXr9UG%idS=)1E)XMNHdm*(pw=url z;~MtIHPfrwL4uydUK!qd{<^psbSw2S85IZS)>mOV= zrSqSmLmWc~`8EpzdLPfO4jya-zoNZZOED6N?8BhdA&GyF&p{4y;EEYoPq3Q1i2X+a z;i)y2FjyUN7g_SAM;QAk%oO2Fw6m|h9m?g=X%s)yU7*6q#5Df40oCWVx5Aurk4shk z@*kwNXo-V*vj}Hg^>GuWzs7Sv;a-{Lal|EwZ-t-Y09c^o*(8ytoE0Hcwv0xv%l1X| z7D>}rO{*i%&V6pg720%aiuZrkyzjSh2HZQ>}5!mc8haa8-U5) z37%~Ge6M+kG+{b?eB)rvUubgA{vi;v6MM{m;X;VgU!L|q0Yh2`B}z-}zvK=1|H;*5 z(^7VPIeS@y161{$fB#icP_qL}+{M=f1>Jus7>xf(zb7Pqpn*fAVDl~8Dm$o=->nspb@9BZeCOIsGrS7)pZJd` z7*Aq{gAJNIs$7TCB}g6tYV0?cgj=-t%_TuH#t^K+m)%<)_bn=iGJvqq{X*{y(6;=( z7Z$!hvs@8GUALhr)`^oFaec5`|W(ythJ=>z2;k{~ga z(d%CmKxQrc_&Gg2$moGF=v-ipNRn)1ZUoT*cL@?eGSS%b0crHu( zeD}?Sb1LDn=_hyr%7;&BIA335*=qqZSj1<(c#c8*aWt=u>n09hxTkrU_hr0#$~lvA{I#74=BPIS9)0==IQ>|Ov{q5Y zi43q7sZ_XS;4?rM2@dA|C!++c2LVQ(H4blPqm)q)W@7L>?ADAl%+IbTz6tPi4l-S% z{&+62k#d9rC>4D%>VUi}O)|>y#UUSP1-@QMioypu*5-E52N~oqFLHvY zK)-Rpo7u5<8Sw5u#uFeT_Rh(0&@G?i+Ry%!l$4A`i$J)f2AqPb^Y5h3!DF{npGwyNX;>i4U~HSh<`0%kb}|@$^87R;gf+DgAM2a3|X=p)8LU# zFP53WokPo6ZN607$^?*3#x|uDt2*LGQHW}rp)VTT#4^`@GlQpF#E@evkXY!tN6#%B zMv*&NebWe|V41G=j)qa(9lME_0AhhWRVHcpyHvvEQH?%zP~vB4s3(fP8YGIxp#E64 z+Qv?0>`ZeqYqKy+^}zG>SQ<`vZAQ$43>155$aPvJH>l;2j9U<4372kpprX-+(pZbN z$eK7{o>5!27n6vk8>F8oNR-^nk zgpoK2Yte3_`FQc!!I(ZaM_X}jAfY-hEc>b+0!Zoehu=9>nojswOxLu%in8`?AT;?F zdx#0DMwxuLCpfSiMF=&5n!*>f&vL8%$S-jd zbw2~-Hkf{>Odtz^vbAt8p&zdDfr6j_V?_E_+7o#L2I-)jv-yQWDupQ?`sgb4daGQp zrKz+HL>NUzsm+xZ$O`2rk&J$aduCu8C(}XU zbUXyA+XV$$6oiPl><=4L9lmBOCydWj-za@EQK_OU08TDJQ1Xhsaq^nTM)Q31?1Y=1 zEtpeV+ZUae48)Q>6G)hW4M^2}Lk*Iek9kQ0ZO8+i z5E|E}DA?w>#HMw|sZeJ7{m?rJ5nGZy^$AySr&M z@idRbtUEGoFI4_}37N6dxhJ?Y=HPnD*rxlrewj&EA|TskI5M*c3Lwc;4qaCQEv&@J zBIiZi#l0G*+p{RHM6JZ_Fj`%v|6rz#4ft`;2tj_Al+>YHJIn#+u8yn8=aM&71qI)~ z2avODg7y_?>6|1F6T>Z4pf{HakbrKAme_@nk#-}ZrMuoRbi6ST~e{MI4jFBkr3hg9Z=7h3V>)z`2uHaD&d z-e;2sD?P3U7L^rTF+1K&C6Z(cFOn0PB-`Q)gEZ; zEUdlBEt(=0V^e`$QRCeu1*)++2Mcg-cYVVGxjbV`r0|vupe5XAkq;>BV`-s^hF+gi+ z3m7D;xvM;(^e?{;$+~rVu0Tkhy*FrkXSpSaYJMM*%N=TV0mW_YeMp|Y9UTWkG7j(@ k^Htk9K>zu_4*U)i=sAkLu?AZK&9xv!IWUrjTX0)oZEG`x~76=5wm6wC4gFq-8!2KEq zI&gIlgqDCn&q4B#SDL=Y2SJ$Wlv<6y1B#mh;0!5=aX6NV{dtz|R@ic==Eud+A@4CT zW2&AI5fPkv;6}^8%T5FtchNbMajz?{qc*&C#b%49lRoA(0~0BkR@w0CS$}OV8F>ht z(n`t6Is7HEB>r+rydWn^_GQrY<;|}6(bY(i2ikc)_y>k9+8`Q=8q>k#@FZ~0hx#KN zku6343Cu!)#%BhLEAo8Jk4ld6R(JjhA1Zlh)hj7N?YVRXK~10u&@|}(>ZYGeFk_+j zSf;!o_24lQJVv@*BI)nZGWjN4#O{z9Dk(AYH~|b=hBQTp7pM+JR~ABZszC~NTlOIw zn+P6HbI8=?@D5EqRRfho+iGVz-Q%uCL29IGT_ESrLo}jyET>vTg3{U#QIILnr(EcS zbpE;c>q}#{=T9$@rasqj4L_2aJ$tMpRP_u<#Xh#|tFMl8B^6b&X*veNB=$`kaG_eyxwGQg{DM zT>(`Uca@LMzgMNr(GF^h8NwdD!*VZ961&8K2uz3SV{>{uKP7&nyK$7#$LJXN1|twZ zgp)CtLg09gQ!w`37ATHb8#hFTwtEvW_U2G=41t7m=#ASh{N@62BTJJdHrpVQsN8U< z2y}-BBuh9J?R>8jj(=&%#z%LJ5~BCjj@m(QI!Vb?8oKu-H39TTIHYLN8Ptx>P1u0} zs=%a`U`Mo=VDP9YT)kB>1CQw}dfE_m)y_a&tfG zzUc+qrl#$VD6I;|*OAE|JF+Gq0UKei2ERy~Vh>q>?l{w#Q|e{Mt+iv*!e#Tv$iQCU z>2ZW&LM4ZTc!&wgAIgxGM*9U&$Gv;x%ByZX^jC^0zSfh0LctOA5gl2Hr|fG3&4>GC z*^qM@(Ei>8ikJ!{twG?5{Duu2)XA7@fJogY91DovVFLLyGSriHAf%xhM(fxpvnr4- zXd!Ngo-}mhODYe@kaQ-6NZN33PSRG0q&QA<9pHN4Yz`DQIr;( z)tCFLkZzDjI3vOkGXys3A%+1;e-u*Sj0@8L6A>emp8y_10o9hGb*>#BL+DOOLN=f~ zQ|AgtZ8wLRb#($v;sU+4AeR$c6^II|DZ+;sl*1HE3`*H11vz?~$S^fq9S(KdADe^D zK){UuL16#%Sf}B#;2)SpNZ#1LKIsxvGMdOK8w31BfOQjfCh1w0hzhYER!Li%#Qga9 zILaqXkP5r=qhkrWV%j_%!|&yfkKI7Gzv<8?wSkZMbYr)+=1+w9++;O)Jr7`E!^u9RGn4@v}&D zRL1$qaXW~qAxwAGQH{tfu31N<^7DtjWf9qQKa4$89r3$(**LyV|3@8MZzn!tgqS?- zswz!0?CG*RAqrsu#g`oKxFPV@BuuSti)6l24aSvMo7D;Fr~Pl%3;t-P{qm6 zxZ>Ww@tKqyVJwY+bU*FXpgW{ba9`X?Xc{39dhL%Za-x#!i>e;@N%j%vjreHpS(oHC z5}WYa1-kQhTZm3|_Y$I{u6JGQbfPvxG3D=I@REJ|HqOz-<$)l?A-bO-&sxXG$k@c> zp&1T`D;AfOyqg;va}!J@Wj^bU)JU5zl@{ zQ7wfr5N1*@t5AvDt)Ys~wUU5ze|Z@Pjc+>}5smWk^gNzCV7qU|>%7Jeq3Bw3RpiYO z8|rCXNae;hb0b@Q4$dArdJZP;!40zN&Lf9~A(3A3{rcqvNa&6jUFJ6po-Xc@DyN&v zQlxJ&EyD7&KhW3H6!qqdDApoQhy^=k1I;K`7;}OLS?)yT7m3mA%ocmH-Y-3|q-U|c zU(Ufy2*5==c{2jVHv|(>{dWIo>9}9Q#A9CQz>qCTi)HCI{dg)9hYWN%r(Qis-|Iex z$EIWE9M)0fHIOs%}NMeoX5tfgKCcJ}f4p;wZS>v#WA={K7uNQs3 zMc-*Nm=TLGTCTf(GZPlW?2w~HQ=#`(WPPWqq46@WwRMR;=4I!as|Q`uYFc$x5E#I|bJ(UtXp2#|4vk3cAaKOW# zm2v36K+n5b<5S)Mf(uJEn}A@fOKkYD>udc0-Qm+3(;8V_X(+DxU>}O1fZKYvta0E; z&$C;XG~`HOd3o?yRp~B-?wdxC_BTTr`ZTI&h%&TqL(KLzRMvHd`ib=CALm?wYuGML z4_igSZ`e4dSZUc+K`m0115QQ4weAp{Q&cQT4oM#sjxQ+3 z`VPaCv`->$Y-c--L(jeZCYf8lWw+cGhg2E~7N{g&2m7ygM^C-98L7F&hdY=uack=6 zgxjICW#&PCgt{R8pH;* z1g(?Ptv}AH1vTLQ`tnRS5Zf+Y;YT)9==|F&FQ&k4w~fjhBMPLyIclb9<`(x*mGSBy zM__O!bswzfET z_y`k{RGjvhSF$fYf38C4%eYHTmw7~hOGuuA^@PT+HZkmoBju`R@ahXYhw@M5u;8QO zm-iFxpq3fVkg&t3=9`8VGI;fuePK`qpG>~mQ+xF5f%>vgsF3Q=&u{iI11o;x&<|7l zMJ><4PovtC)3@9>b#iFfD{qdht*<}BS{{a+Z=UZO(ut1n4Zq|Zx|W?! zO?r^zN~PR53~KJ}fjgbN)OLjM4Ks3eQCX%Vl|3-`*u%^fbiW+<4=Y19fMLp7{yN%L z=x}wqX@S!PJ%dh=ZtCb~C|TC81mBFot!j@$Dg&=h)lPhGLqvVUl_ngy-&Q+)d;hpJ zIUq#i^ldBg%Ud% zFA2v92><;WPbN3b|B zZuAR!#|-4eiSK&sAB6As_sMYwSFUGwCKG%r`Zc!TmBjZ8F70>ymb?Qx()?$foPk3x zS2(akTukrzKy6nUT#?_e_h&0DculmQhyPh>{>Eh^q(q1FQ;AAUN0m-D z>?jPScpoSPoy~q=crMgA;my|Fb%EBs8qCPJuxX`H=s()kIhk-EZUcXyLs&P_AqRKKU;=QliCN9dIkXmIA^o==zLhz6))Gl=)@zZ=2*++eSeW9E<01TAJ z251ekXCgJ(&c+GUI9&ofeJ(^x}X>QUp5y)>t>O57cbmQ$SX^@6d6T%x>ifL}ziWlUY4e(HzEVF0Z{1#owFNGHARA`pkRfMxzF=+T|yJRDv#EKHG8_lrU{ z1C3ih%N{%J?v>SwL{7EWX;zfIbKeQly$kb5(0?y-O*~%Sy&|KMB5jNUWnYSS4(}Gh zYGXMlKP={O+NMCaxpo`6mnA$DI=R`6k;dGDfBtZU{6POS|9lLgzl) z)lXVo6X2d(dD86Ecc|Q+SYK7Sgv+0|8NxUPNTSpF+lx-`s_S8Ud=a)4~x?^;Q z83;cUPAI102hbNB_1_p7DPTrafcAx#QdL<+=)2LS%9Sxn56c>mjMh^9tf=X zS{)C=FL^FX6ugY>YZJ{btk4hl#s9kYacBOZvTW-M?R>IVeQSHuLHVP2cXL>3vOX)U z+g{#0m&i7G+}JKdraBk>YXPR>cOrr_&1gk-4y`Y>or96Op9;dCnB)X}@msY~!3=m< zxK622@1}nM^=qS4f>9~V%&1g~c;zSLhfo}7xxN>L2)(d`Iy2CJaTGcq_n9!Rc=SGO z(I}jmb_UC?R5`s$e(B(bN%qA$L0x}yCkw7yGCnVV8BAy(Yn|7PIqpYSP^H40Aj^*W z4MnIFAxZ8uzPwn_1oB|!_)3rPCamUZlGd~kxZSMcWwhR!MY7EL)IbJ`gEp6R43p$f zf-0-*#9mE|xt+r22Fklwz6I}B*jpQtP5R_M+@7W$A7%;sd28a>l+&%{7_F>ypoV!> zX#cS^G4sMtH{z4FZ%$0S*@*;4$=wBGSAFpD3zU^e`Hgz4Sw9SSCU+qcU!u9n>yK#51ukGk9PY7CY3=ywwt(o+UZ8Qu zJ>h1WMcRpL4lU{O_7*7bIH-)#!ud^fN4BeB8_nio@ZZ4Av0|*>oZ% ze#k^2)uI8q)|Pv1-QXJn8j%NGQv(Cb2Q~?1(d{npNTTZS4ke$E)A8~!&aG>`!s7)d z8<}F)b=yJN{VbGk5SSAJ9=phbMh%1emd@7gYIX9`b1X+i#M_KeRGpnlx=q}~)HJ<) z6fv8Ke`-!#Fk^Rvjw0)XWl@KslqO|VOmcOAv>WC`B>yVAXf#hyPgbevQcoh7%08q|F=1Zu7&{Hw%zt9b_*6Gk0k~hY z!`U3j+3lUnW3)F+M-5!L*{65QS)DNtLEm9Qo@*8LCS?Qg-@Ar`ne`#ZlhdHDmL{6N zrt`cg31I{Y+Szq`mEY^^BeblshGNZd=Olv6{3l+@l@KQeR;-Ckkx75H>~VTlsH@gS z%3XM{OLp}GXJWZcc+o%WR2!>ev=fd?Yqpp|qPWPyuobDYp!efy)zG<|O#9X)|0r|^ z3tMcKLVmLkf08w{qSrV3M1UC{c_IaniJLPl%(U4uJ**a^(eV4eEb ztS9$bZSh{SLTKZa!1NXc#Jxy{%sL|A)Vja0&& z)yH-AOW!+94Cl}s0_$F6l~e2~xAY zVshV=Z+=&5f%aO0Jc_yecT3*?7^Qr-=ER8aaqFnU`ewB0wqe`+wf{-Ez< zlKdBnW6m(%@vpOGNduyI8UqW6D(rzt6F+|q-9{Ns+HM>hKO=J)c!F=X<4C=Sv?F|c zOLvM=lBeYR_4{JW_w(iIY^9zCLR=!Z-H&a(q_oyhSp9_O#v(QaTMd49@igG#OWz}eu)WsQ0GEl890h6_(!B?H z>zyjOzF8A-Xt!II^QkxH@29$vr*q=O8|!#=V;CWlii5xNM02J67M==4GWtk1+3N0< z(Rc`=xKts;Z9et0wI*cLo!>rN(qWtdd{2y-M&Qv^fQa7QR)beS?;VqXsm|0TBYrVf z3D-g%v9{aJZ&>HxOmTS%Gw7a)Kcz!Ig8PAmaruevYZNp#u^(Cb%0Y~@Ia_++i9*bU z8ePtVSh^ExJ`*uvUDht_C0V&=!Woy%xn%H_Do>F(srdrcXUrQ+|Cu=-~K{j8!ZY(&*kDwwsM>VkWwv1Uc|o-9vPXuGTr0+M^xj*w+(`8}yq zq<&{}y!~wKqB$?gVzi6)Uo+*Vz z{5%>G3wC@~#chBg!LQv$ozdbTZBp0gGS}E2bM_LmUMIU6fC9I9dU>8#GVKIf`G$b& z@~iTc27;!im16dbTJ6=R%Kb*S6c<+7Z)&Z&drh*%?W7Hfg}t5}aZ(}+1gq9%v}ypX zP>OOUYUK8ewu9M9YCR`ZTkooWFif)#iQdt88y|ePRP(70IEcJdR4X@WVG)f<8a~S< z#s+S}x5-*>*g1eB(uYpc4evrdb`$_GyJW?)6=~gndw(IAFLSpYre&9qa7# zNh2;pdg3T9g?h$+iw$X(|J`?osA|f#T?;Gq#Bl%xX?UIQReVMN`=X)%DcZVyE|}I% zG|7KGHK4Uly^A2tdEJMctYq(ok32K%^nLG8{ryLHn-F%pYSp^HU+_hf${n3j;fcZ<8s_Y#Nz&V2$sXmDG^3XCH@ng*H5lCz9CR@t-yyzXA1?ix9sWZy za4m>zz3ImTcq{|bZ8H4Oad-0)G(wx_D{ z;I%1Y%8MuRwCr^tZ-pJB4uTLyq^tHFvousy7gB@P@fP%_W!DFPj2+_1XX1yp$}*!V zPbVS=2}IpVBU1uB5J)eQ#>u2vy)5`^xF0PrZTgcQJ7jPXYXs6NVdKkV7E6YsJ*Qml zc`s`nkuqvkvKT><^*4=0Z8d6A-iYMdAqfiL0d#3Izc|{wAds>b@iZyQF;5{Ls!(o0$XB}@ zAY3j(SL|N!K@ilC1pO1X^13SXr>j+A7QwE{tSf@raTf8Jy+8GSXpEmB$1&Mk z`SHY#r5X?jL>KpmYNv&JdT_>Vz`txrolZoLz4ZP541J2WuD#Gx^axlq)Z>_jhVcN( z+4${>rc0Nr%+la#_bPqjh97cEe+1TNpQX~>almDIQA5i~v69a<7-j{kz1X4LQ=E-@AMY{!r?E}m! zXNT1Xo3FCuK{r73Y6DD~Tf{xH=gegGYJIdZdc@P{j8iKt?+8_d8t4Yb=$zr8P$ z#`twNqS2i#>Jx9+;JQ|~y!zt?sj$b<#1|)pj}LfjX&XoySo4~|zSgD0&cWXj^Onjt zLQCn17mgxT>!)6EPn>^gPDn2@<`)z=WzogUkdv;HfVWndYv}y5ub3~r-k!lg!$YC! zA_rxmX$_ofHCs~&?Ik-^Sx?J#X9bI#%P-@Up6|F|!dBf0E@7Ng2I@_e|E%4Tf_yRS z_BcuVp2xiuPIHTelRTvq^D4Pj1LP81Pw8vN@TJJSJ@Oj`uWK_4vfoApQv;(HrhdtX zs6+T;E9BCv0v%csZ&mQc7$eR;a@5TdTZf17@^wYJ$_<4tI!Zf7V>oya?+=@?E?9r? zO%oHl|C4DLzBMDG2epq)J$*%s=5k6kx`{&^Jta8ZLUN&z20*za$y8wJESBck={En>JmTF91~;lmBtIzlM_N8jN^jH821R`<%dd~eR>4srf!!p(!@hP{ z-)Du}5_OiQs0+v$xHmi9i95aEs*to(@y4BC!8hxmvfG{o%38wr!vXD=|heL?>0q=SZ*^@{LC2*wCTV8 zIxeN1seVn@)^So)QBUKcn1wT{?665)pvvgYVcYOkhCW(J!{c~YnG8rZ_cYkvGA%CC=30^dtYWEcc-VA^MuNkJ51 zs1v{`1>d_0F!_`2&#sV_pJ$<~k=yh;^pW1y(>%nArl)A}k*GJZ?p+Lc{?ihz~XoUn+)k2i; z?WIjhsyjbU^8lV2!e-Mh4@MM-+M&d{);-e_Rq%nfe+zSsmPx)rZPQdL4z7C7qS&4&FphD@BCA1-D6(72cc^36#S#Qwa= zvOP5VTt)s>9j{<>)w`Ns3?8!f5tAtdw+^{goGjyVVNIZ;KVO@iK*}2O#eJ%8LUVyY zBSMOPmC|e-ZAXjRIHHs=`YU0llY_@w9uJsL(9N$ABCjZ|iFEwD7byAVuQOBpv&xHW z-WG6DhXU-#N#3#jFjMgGPg$ZhPKRe?>;@yvQBtv@;VU6x^m z_4a9NF1fGvr0q(k=3=d#A52d^AVeoAK%Hx$gZqcd zM2`^9OyAzT%7K%Rn;fI=23T6wiQetiVHH^4=M-g=O~bj$Sn58iZ<}bp+xTFly|C3> z|4z_BRid>mHGA`eG!Z$wX4LKTdQedhCd#C|&;rlLGBOpMtGh*PdfOuqh~oCI7T|?+ z>0LiEh(FCpzu940p*=`B;o)R5^U064^bwL>i{Kj`{9gdI@3}$hni*Z@ivHPpx-HLH zLP7b{YZ5-FpeyjmN=?h*HElpV>8f|yNg8OKpdi?1sDoZMsC4cqj>)i3Bf6{LNZRtN z;DyIRl{OZ;{@^bY7c7V8l#?ZA*GXxV&5DQiHzzqOE;@EkRCvr{GgcoW9N|*-Ypr`v$j!>$=`?u7?RpASBh9s1 zutx4+b-)n!Av5t>yq7s$mM;sGq>O5NCLqi*oe=kQXvIg8`KI0@O&$%cSEkD4ta`gW zJm$;15`;LUHFGgyQy=KFHh9{v}RbZb34lFL4Ixe$wYQiSY?^F*kUl88uA2pZOvQ>VvQP&sK`( z`H%E+cJFFDZd0ASr&7J`l!sNj47KiIn&3=2&VWdzo^|&ZLP!EaDFYV``7)%xzTgkh zrI!}Ets(^&Z!0+i;DTNoHTy)A%)5-wn=62?8w90M{r()#-h30yB=>9i4?VfCcBh{q zaorm!0n7>8T@^+xOdbv`0`<4K!ox15FBjGv%ik7p z*=SURka2~||BA&jrZ%2^=2BA;+^|(tyS&226IuJ!e!1@wdJ?d$e4BdukLRJ1{rnWdGQfGe#t@U~xY0*}) z=Pq1-7)v{ID_I1YJmniX*CfYHTvhq>(U(KA^g1%;Cq3mO1A)WArgNd9daJH1)?>bj zQ5~GNj-4(@#v1rFv~GL(Oxz|y=K`~)bC)v`R*^3jGe7Q_I&RM%nSMHz|BlN8O?@!X z-h@!og{88BiNG9=-_qd9QnO|eiQj-bWh@yGz2*#77ppmGUD*>*{d18Aq#9^}uxDTF zTT)F%!b$JPYG##qEf)Qv^fV<|ymo#=#Wt}Q(ds`{IB|q%(tH*Yw&1Pupnz6Ria>Yt zcY3QnD4&TAhID#2pL`whef_kN(Zatqp*<{uR>#C|Hfr8F?zW>22-(h@!C(iMQiO1I zoRY+4(j?}>$~=IkSkY*Mt<^^SerETZ3Z9+sYex95YFv8YdYGXN8H*uS7#3e34#zdPDW3`PG zfLUbG#sz!b_xIrQIxi0Q!cb40nnofvJZ$cE%A|RKP_fj{+YiByNsKh>0P6vgGF)sw zbRJi^O!~~?`|mA}k~;ph%od42(|OJ%39db>2`~RqcKv?>#wmMbaB}Nc@n*#4Lz8Nf zz4a|zykdMU8#PhUXh$tRZG)>^yqZ7OorqoLYBic@I9O-GrQIuYtLGd3Mm1lxgxhJ! zwi9SCIjFsI0-((jezezcAT{jnxq)2i5sCDK{JvxqbZxvL(WLnt-?dC5@0j{ zil-l1t8j$GR`UOk?C z6V`-qn*=F@cvuuymh(!L!R{R|@ z67Wgw8w2PLd1L}q1m%{XBMT&fyGlUk&zIIY?|cw_S8_JIa+h~ew4Lkp?$_#epHZ+m z3}fc$dHZXqCYSToHO>2RYP^I1@~t3um8y%{&|c>1`$yj9D-IkT*UPr|}=D(~-m=p}u=ec7#l5J|LY;xec!l}M61 zcIv-?Om4)u(_Qn15JGnzHJa-hhL`D1PK~OtzcA%w?IOmZ0Q26BM`X|z-7C9xisZ3dR+AAj*}J) zFggmb(blUs5J@ywFer!oFa|=GLdv0wWT!|Cgny{9~8gtAn6~IP02&(T?m$`5+<6ft@_>HH~mz2ACL9)`~+ZaK_RJ0 z421!^lfWvK1-zVif|ct?ij9K_{Bp65ac0OkX3XVsNb##DbvnKW^!bHjVu#^S_m=d@ z&2C0O!Q%P$8g6GN0S3;7d-&L#CjXYaNU0gD!oAh5NNIAUUz`!<6zPU!<=rZ3zDr%m z#fqJ>zsaKcXs(xEa6C!wZ5abzZeBkolnnA=DhF0UVF59`B9C}_;V{jF7|9h)anttl zyik@}^Vt}77~yR7RdHlI)x@D0vr18FY9853yOB)kq3_?fl^*Vc^uE_cefNB~K*yM; zjlr1JDgWt(qlLg9$+QNXjgH;Vgl#mNBBJ%V2Z@$>9-j1;vuc)gS}%#c(?@TWS^0t) ze!u!8U$u_?c_1~N)zP&X&&biVTQHn1fchj1yupq~&A(j4rDn9v!SF?VZ5NIkS=sK? z?Z$q}rpQG>=$Kb+mgj_PS5vlIWcNtQXD9AYWE18}Ta)B%p=O(U^k%9N&QJw7{wDLH zqpiU$J1xhgq1cQ|qHz6t@ZP%T!oAx=t#{z0*k!~LYV_Lj(9?ba`o%h4-qQ*PUA01B zGK#`njJcQM@v`j~YF{?Vy;?mC4~2EczAfStQqpSshZVmrfPcKZM0Ui%~#A*Yb)nK#xLbiSYec2{6jpS7^O?-RUc^xAX0&$B8n>9u zxR&ZsQrkZq%ioz|q}g#PU2>CZ%xG%U=OSi<`ru}nSTRex^lf^2ii`ag3vpH;8?XG(F-v$p+iY&3+oG_;TIwj}QWy2d?Uf%6gyPni_qI%2^f^9it%-cQ&sr00Njp3?JE(9zlH1Y@j-0EU z8 zKhK$dwjkP><#Mxtzf$rJ(aU7u*M++%z~`9Teh|V_JW7IRh!~Cq32>oW&KYcni{U7N z1->>7F6rPTY!pT1x*sgwcN7zO;bfA*O_1YX9hHo8#{9Z}uJS&yGGU20#r!9`j}>ip zRqMy|izz|o=Z4FQpxyFBS5qnuyU&XWfgjJmRD)J;k_0kwLtBl}r{3Uj<(hqVJ5BF? zJbH+8#_T9gt&?H2$MTJrt_)Z|bLN2F;Rz^3$K-Ln*8JxQd$eoRP)!cy^7r^%@1^xc zO&Tmjj>^1w*i@ff{yoEpe2Y|E}5kN9kI=aTUpvaC-+}FB!U3|G#2`A z?&ec3Qo@}m(#U)NP|@Zt_~&5gasKk|xx)~V-5Rqp&WN1A%-cWHJ$JA4M2`QQ_F3qJ?c~G?3D}pfgio|-omRy{nK%GwI9$xj zR+47y`xLnUn;kg3ugX0aVjf;Fu&%4vh9Apr<^7g4IL)qEQ@Zh1Y3)_U$$7OwA````gT}INhzX^vE_DT2)yUOu(4MG10@~|wc zZb35Z+sDv&&gII5z;m_r4)DtfWumoI3Wky*I%Q%r0*U6fAf4x44 zu+%u#|F3~O>V_ zOS-+fs=nqk+)_`}UyS#vCV+0FTJKe(qVP5GWC&%(`}r5ZTgxc_!r7my@qnxSP0o-< z^omb9s1E^|9D854-G3A+QSN_{@(yv*|5l?^|3B0y_)2Jh^D+AblVeoL_%Zh1v@_pcF4Fa8^%{|_wt|BAaU6IuRAIN<_} zp{tZ&q)UD8q~q)K4H6yW;Xe>P{vU|`Z&S8jeox~#DQ@r&AkBqT{14P;#{F-o4W?WfV{+-hF*nIBGx zc(rvQe2+TtKsYGJI3XTTmKW-%TfX$`C8OJ1nQ&`_lg*9CVb>Za9sT$hxn$h z{~=<}JLnUO93M*+QrvZ_QUB1(br&x8V($PA!=Yg&%GRWW9qMos5v zLsbFtvWJM+8{qX>goQ2D+!#>sYbEq5Jo)0wD|g>>@G_i|6HVqZW`+5kxcMwi zVQjzR;QH3~e<5!zI^K*=K*nMlk(x#@HqgUcKT`2mt0;k*C)wQKe_`)2@%1egXoNnG z843+MENv)181>$1`dcS+3IS?QhP1Q<6w zz-s7|PEnsj%ErG+^1C@bqclL>r@D-RgJA{}v~0Qn+IC0*az}?xi8B}WK!MI6Ac<6u zRI>S7x`U1dXd)j)w3O=r;j({W-#dM)B0>A#RQZb@tsE1_&?icj^E^uE5 z6c0l7@D1aAy|OI|f5gU3Q)qU zE?{TBMFGxA01`wYd%8+>n+yiG2fBcShWUmc!L3?N$$I5uNxAOZ&!29I{0fBz4{&jW zFo36sP{qJTXshos48!ry0QsxYi&a0BG-!``Zj!pY|6w09sC3mEU+rZ`djr?=qumE` z@Chq%TQ1-p)E0Wv^dRNO$IM5s-Rei_4U+?LIxy%&UdFyY?_km~2@)K9oBp@MmUcjg z)6q>ifpQy2e(Gregs(Kj`vQr0pCFFCx*1K#9PAEwk;<{CG~|dqBH_Y(s6|2s5|}qo z0HVZOt-iIQ0OPVoBowXh^}!pjGZ|eH+7wwcJ_ek7eZtral7?cc54s>Nc>k&v=hO$U zAf6u-2}Ut#gMTKWKa~BQR;c`YSZ|&*W~{9CLS2CZD=7wT+kn@NxY2tk^%EovTJEus z%Z;-ENH22*a5jh*>Qwk~HgW-#CE_tQ$-cT9J{>u2_@DID(=L$ASManmD3>A6gj28T z=Te>z7oWS{ z?&~vL5P!UiMd!~C$h%?c#LZJ(RkqT{APH#*hmT+8x8&PRK=s+2 znv7r~i0)54eb&}cawnl*Id)x%v#jPc6>Go3kw2hI~B`aNK;zrMbO2pJ7Y*3e2 z#E+~L!ZCLc&H6?poXbRli8`VE@oGDChtaA--EtQ3+~{JtB%u*)FpP2GU|q>dhmA(D z9$`Y`kzn4$LlFIOmx?42Ue6$*jnVtdZ~O_((NRWlR*r- zDX*HyzCCO{Dz|fR*yxEy2L<+TygsB&h~SIEEHQY17V6M!B%B)P>;EAF-;ZWR-e*9+ zdOT9tu~>5a)z=5zSvky$uOIxbaX*GQuY511Jd_%TT%0<1(LP*CZ?FPrlqcq{2mPKX znOQxG$~IE4`<^SAyCJQY8!Ghcn@e^%+iX^FQDmz6qFWzT{>?51RXipTbuul%mnPYB zMSRc2#ctnR@!QVs!V}#`h6R48TM-MMxH{o!w}SCzo6rnt+nC(wvfgBralqQ1#2~N9 z$&A|mJtb{B*<5aZO*^2W69WYV=&(jF8-CQyIG_yRv@X}VRmN2H@6oB6Vc?_v_fY-6 dw)q21kuBRd#|zW^>$o;d&j diff --git "a/packages/f2/test/components/interval/example/__image_snapshots__/column-test-tsx-\346\237\261\347\212\266\345\233\276\347\244\272\344\276\213-\345\240\206\345\217\240\346\237\261\345\233\276-max-1-snap.png" "b/packages/f2/test/components/interval/example/__image_snapshots__/column-test-tsx-\346\237\261\347\212\266\345\233\276\347\244\272\344\276\213-\345\240\206\345\217\240\346\237\261\345\233\276-max-1-snap.png" new file mode 100644 index 0000000000000000000000000000000000000000..743fe1d957595fb4531fc62c16c0d200beff6aba GIT binary patch literal 11591 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 { expect(context).toMatchImageSnapshot(); }); + it('堆叠柱图-max', async () => { + const context = createContext('层叠柱图', { + height: '300px', + width: '400px', + }); + const data = [ + { + name: 'London', + 月份: 'Jan.', + 月均降雨量: 18.9, + }, + { + name: 'London', + 月份: 'Feb.', + 月均降雨量: 28.8, + }, + { + name: 'London', + 月份: 'Mar.', + 月均降雨量: 39.3, + }, + { + name: 'London', + 月份: 'Apr.', + 月均降雨量: 81.4, + }, + { + name: 'London', + 月份: 'May.', + 月均降雨量: 47, + }, + { + name: 'London', + 月份: 'Jun.', + 月均降雨量: 20.3, + }, + { + name: 'London', + 月份: 'Jul.', + 月均降雨量: 24, + }, + { + name: 'London', + 月份: 'Aug.', + 月均降雨量: 35.6, + }, + { + name: 'Berlin', + 月份: 'Jan.', + 月均降雨量: 12.4, + }, + { + name: 'Berlin', + 月份: 'Feb.', + 月均降雨量: 23.2, + }, + { + name: 'Berlin', + 月份: 'Mar.', + 月均降雨量: 34.5, + }, + { + name: 'Berlin', + 月份: 'Apr.', + 月均降雨量: 99.7, + }, + { + name: 'Berlin', + 月份: 'May.', + 月均降雨量: 52.6, + }, + { + name: 'Berlin', + 月份: 'Jun.', + 月均降雨量: 35.5, + }, + { + name: 'Berlin', + 月份: 'Jul.', + 月均降雨量: 37.4, + }, + { + name: 'Berlin', + 月份: 'Aug.', + 月均降雨量: 42.4, + }, + ]; + const { type, props } = ( + + + + + + + + ); + const canvas = new Canvas(props); + await canvas.render(); + + await delay(1000); + expect(context).toMatchImageSnapshot(); + }); + it('百分比层叠柱图', async () => { const context = createContext('百分比层叠柱图', { height: '300px',