From bb068cec8e9936f5d97f13d8d7840bf1ef230098 Mon Sep 17 00:00:00 2001 From: "Irina V. Kuzmina" Date: Thu, 27 Nov 2025 22:28:05 +0300 Subject: [PATCH 1/4] fix: bar-x with the similar data should be displayed the same for different types of axes --- ...different-x-axis-type-1-chromium-linux.png | Bin 0 -> 7235 bytes ...different-x-axis-type-2-chromium-linux.png | Bin 0 -> 7996 bytes ...different-x-axis-type-3-chromium-linux.png | Bin 0 -> 5441 bytes src/__tests__/bar-x-series.visual.test.tsx | 57 ++++++++++++++++++ src/hooks/useAxisScales/index.ts | 38 +----------- src/hooks/useShapes/bar-x/prepare-data.ts | 2 +- 6 files changed, 61 insertions(+), 36 deletions(-) create mode 100644 src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-1-chromium-linux.png create mode 100644 src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-2-chromium-linux.png create mode 100644 src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-3-chromium-linux.png diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-1-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-1-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..970d3155261f8e298dea18c329ead0dca9fb8133 GIT binary patch literal 7235 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 literal 0 HcmV?d00001 diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-2-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-2-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9620400c2833a11ae87e27c721a8a7afcfdc3615 GIT binary patch literal 7996 zcmb7}byQSs+xC%=lx`4|K|&fNloA*kQ9xm&L%Jo0ZjeT$B~(Jnp$DX6=ti0m7+P}Z z9Nz8ye&2f6^L_Ud?;otix)`p#XP?J)oX7dw?_Ovs-yvco!otG3qpAYd#=^Rl2>j3! zU;``HGUEJLSmao$V7ZsxpSF>{E-xqU;_p{wA_p_W!pQFt(5thDby48T^LR?cKJ$^@M@J-L=#Pui@)oZbMDIH6&zY#B6Ld5L}8RHhKs+kK{Hj z1$St$BDl}glp;y^Zb7p~UC-PVWv(FnTh782iW zCg;Y{xj7!}(U!`pD!0K5(GoqFX9H6HnO>{GJ!w)xS&CYRnS+CV0lk+mSJv0@Z~Bgo zj`sZbe9su^=s176<2B-qS(tJc)zr}VN6u7P`%245N%`&0*H>8&o6`;U_m8ubmXvhF zRJfoz31bk#ff&CXbZ~I+c;WNmG$D)jFv4bI==JfGg`96~ZLJtLHzAp4e440z$_djb zx4MQ#*L-l!7>i-KXObn6+Hs9bSaAGV4dHFJoC@Q%E29~n4 zveMPlTc+SOaT^q!GV(%>KbMVjZaG5;d^c&qU@rHZ9UMC0aHQuPuswbmXt|^r69+uG z`GCtE&xY${J>xdm+1vu=Uh}Wq8|@2t&?x^CLq|tPh*;*J_nluM z_dGfs=j*f*pETcG?|m(-a#@n!{&9A4zMjL%%zSmVE}IZPfI}t~ly|l&5C|QXK0P`< ze)a0rvm6=!Uyaadi_yZ?fcRmbiQ-ouIG=Y7o6n!dIr~{4e|UHgx(!Qvtqm}2A6l54 z7s_4}BFVR>&x{~S!~C3___9$lL!T8Q?d_3?KlJ+IDOug)g)Oycw|ieZ5u zG#dS_#iErbhkwPUCqocve zhLvwrJw0phDY~e9quf4;B8IaU^5+rmz>*ivrrPg^N{&7HO z_g=uMWFzrTk)DaahmDPjK^IKnwXE||9@*+ExVKk`#F*?YTnb5tm+IJrGrLwxr~rgQVmp@fp%hJtNB0|P_UW{~rU9yeJj zyKzuF#LVozHknZs%x{&aKZTDfkMwqm&(U~%_Nq>yrWqsgp)ikbY3rl7@lC&@QRQpu zwp`oMFN(93wL!{Zt|6s?`-^gXX}_TBcUQ8kJ^i*O%Pv?_2vBz}9_F8xm|PQq#>E%> zs4S)fZ!Qy}mM&s#?*7j9fHTMMAamiW;Dox% z-dNz|=Jxf+0~=@Og_c0sh>En1c6fp;=4>zU#y8fO0YYSET7)aIl{VP+Mx=7FAk(S6 z*LNq3&Qz8fG#W$&9UL4?dpmiPOG_Jg-ftrKHH?9I;A6{vJ2Ab2Spi|;FAQ)r)>l`T z96&>8Xp^>~j7HdH5iIb*`}~p;V!6=tJ!#()Q%~j=cfhTdQ;u(LhjNGeEmYf5DUHjX z_dXY_MND>tX4`{Q2ph+Ygr-G=&O^ozr!9mYywue#kdD8us;)i)T*c)2x8BWJx2zqK zJi!;RC!L%NYOA9D{(kh%aKK5GfpgPwx^?#X>{Ro~v_-7Sraje}8v3q{&l3qxU z)O#NLPk4`Q=#)^O`~w1H*4&StHyuwJ(DR|*n8?e^w?0Xu>wYZy=~+iwPf7g!H$PiS z#U=Q!By>q$!{T77d?dVV+PBxsqf{9F`VA*0>SJ3g8=Ixzzgsff&uMIyl zg);*-rCF%cE4>!`(ni7mqs+J=WcpN=H}+c$3ZI_zkmPU z+XMa>D#=WGKk}zi0Oktn7%ctgZvOEef^oK1dOyILPBKndLC!7Lo;xP?R1}KFK~-TA zh2_4dyJKTxmwPR;va&73#cJdfimE{@x_*9FfRlgYD=aAZVaP8BrhXtdXeKHyJ~c5R zDkc`N>y|@&hKivRV4DrYH8L_1%XHl4>$x-f>({TjxtI(2kjY8i!tqUyIr^`LbuRa> zG701RcRan^-Mx(r-8LHYC!AVWeYs*B->2COW!>8-!Sm+&bU)AGx87|<<-ov)itxJ zQyA-H45qOX85x!Qj(Ga zkL>#4;qQr(Bwh2B0%K$GMHWUzMtb`483({PAhclcs70HgASb7C>^$0U?^hEZ9^OS^ zLqh}7$;;C6!NqI-)RNLtUJ;S;Kty&nOCv-js1j&*fZA1pyrRJ=?j=6da0u`FT~r*Z zx3^aw+wX{L*JEqGP0ml~9sT&!)YOFN_PK7utEOIdOX(Ve3H2udUz03SJDWM!M?9@n zPvujPJvDN_Hu8LdX059`8G=WA1XF+he4*SdwAN5Zrz-F!0CsB`0@Fq!(;$BGkMwclon1xY49_O5_t4Fs-4U5h{lZHL3P z!3}4N`sQY1CMik^#qj*5Cja%JEXXY2sLcg=c~VCs3J@*<0h0z#zT5A@!@~{WPKZ(| zQuF-${E#RvHC~|CF^M}J`A{1v$2JNEhp!qa5wLx+VG6t`tEmBwu^u@E;yoJ2{^E}g z)z9Ez|49n|n_&D;mSS6jJ+`MSW@q)QW*lnt)z#F5g@th`v>v5h%kH>HoB)cmn<%ca zpBhRRDg5z6|1Z;NmG8DY{yhQ65Rxqgee3KDyT=y&{?9SOsmUxPB_rEIHo$XppW+Hj z$O8g$b#*<6#=+KC$))KQqo(YcTXcf^I=HItv1x!xp8PNmWu>6BVa;zuaePp<1EspV zt@S)QFy%y+6c<-kR?_l9$oG>0=i1rXk;i^nJLB-)>D9vM=+fJIc4RRNVwC8C=*OX< zp|CLA`?s{Q?42t7N|Wjgb?@gjCbG$nt*vslFdx8=Y66oY^Pqu~P8|do`exMnM z5fKp)@}{P|_pE&EJvK4Z6H(Du+NST42HEy{IBY{f<>f=h2*=vL6y@V{vC{iBlP)-X zQ*TGJHKL=F0Gqf>Q6-2r-t3vS_WSiDu@9G7Co*QS-e%=k-^GO zBgt5u?Cj+ARrP7uzTCsxFf((3yRB>TI?PrRn&@b2v-oV>2Sjn_7B&wEWU<^82MFr+ zzM9wn*H`|R?e2fP>2Ln=Yp^IV>THaBE-o&9pq@faLjz@5sC6{3u=rYQXlPg(7#+p+ zUJ0iJm}@?NHd|^BH~zo=gc*tlgSCWwKofwAr6wmsk$O-Y8yi#8R;wyN=;}Yv;uKnm zO1_W}9M2dpf%3rTcD|REf@S+x-`*b;77+vOL4yFjFtTc8f=zkVV=Rn zSBYk|A0A?2-hPc{@Ox7o$_b*U`i`kQ{Ao-P%JhtOnI1<$cJMj0t@(90Zc|g!S@eZG zb|Xa$BINi~YHY$Xx~+b#txXPwG_(ULyE-nAl-~z>jJU&eF5lG8pW8rCLqyYH0@)uw zehgGwCFmqlT1VUT^R-#c13cPU)@Z<=e0_XY99Ch}@rs+ezN#=C6z44Fwek)C}v~Yc-5Isc2 z5ynTJuEdh-yf8La2|ZkEZkFK%EO~up1+Ww@^i0RYzl_LHS6A1}Y-zI0V0>(hl9CeW zdUzCCAHDHYJkx20NX)gds34GL%P`e~_X6rKtWAlj@5X^@gWflQKq{!lK3&RoGdoc zUB|GjF0pmTGl7ramMXk=)18zgR*a;yYTGkvl8ybTtAl41w3>6toit`T)M~K?3L5W; z%W+pWYC!U{KedE4t!ltGiRoBbEs$b!JNp4F*$K$w_T?2hr1b zdU_V*=i4rrf7>>egH6;us#w1o} z&`Hk>s;X2H7r-XA4WHy;e@fhm51gBa?5+11c9dBmWg&5f_lRmdZQ3}?SaDD)t6LUB z{rx2+B~-y_$^?W1tfSJxyyowxXz3f)x-k5z$)mWdG~$zK5%;}9?G2PvT9tOUylj&P zXJ%$3m_;8wTFj*4)Lh*7%sTR!vle=2brf7-XkwD{;R7ft>Pu(H{6lW;HeMQ^&l`#s zDQdo78XNs~W@|Pg%s2vosavHYEG%qnO#9D_lDbxIHJEX{-$Ay;ib$7puc@wB;sXJ} zqdG1yUy|brfLVYi@iNGk7bK8_!4+YF>MH-7`u&q|^Dl8B0W*Y;kMHtiXKQzNsHX=~ z>yVE5UIGRuQ7>|sD<~+?(9q;yjtW`57lRo@tQ;1ajs83P`~XOlxjCv4dRT7wm*kGU zj2^H>=K=Aj^Fshhl$M#bbs!R+Q0wz;(x^9JPX=qMeCk)qX@J_<1QI#^M~ zO0zCGH|k^{5L1+maR(YX*ZRaTDl^m-*rL_`FDR@_?`&Oo`- z;C41Ptq1R@I0bW71Eo~J?9YSl-*3FZTmmE!u#+@8E*_ptVasU1Ga_06BufqQ&X@c* zboO7>NulpXWJ1#8_s?J){4nNd+I2BAG*5F~Uf-B6Bs4VC32xBy*~Zn0inaw6qh8F5 zzAC95hcDXFNM zjQ9I^U=mqFKtZGW3xVA}jFi_cAz(k1SbWH~iVCyapYZ8dZw#c1{6TR5TBw<$i%!^m zWhR^s{zlC=!`kU%RkNd2UYwXff-f`(}2=*%RRV(;0jJ z$xT3NKC=XXF&U=~4RB?YB_P!*tHFnSd^Hf>Vc8o$!0#{4v#kfML}HkX4c+p^4n}+- z-$FhY^skOJBVa&{>RpzwQwlZGDcA0p{ehHD;*P-gdTk~sWJ}r=)d{dEZJx+_ z!N?A?8vSsJSiao}9P#qH#y&N=)29ocYieE@blHNAxH0F$fs7utnTTVyNqwu~?7Ik0 z`in&JyRyuzKvN#Ews&$00Ejm1?)_L(2Xuw>{;=PgNCb7N-s?@24_7!;$9=ORw)X5~ z&UyL8I}^^>RuoH;10OIDrKhKB*+$A4Nkmh3QY_BbyB)3%D?fHH8P*a1<-H8dhvoI7 zP~x3}5$zcJ5gd~$t2?yhA;8r1ryEolk#O_FD!(9_WS%h#x_;}taj)l7 z3E(LWz>9!3eAZY$Ns{8oRqJ^2raFK@4#b%~<(Frxsq323V96jLwO{&kqob(pw@S@* z90z516~d0Q)dcX4THUteFz_a8*Pky>6rP}9^T{h}47X6H%< zMf%389d%tlLL1QX>4%XWr5HH11-}f7MqKMua~tcf=5iqY2Psfqr3P?*V5kd|vvZAW zJj5Z&f<|e$n&cD=TJ;YPlUZ-KqA=XE)B^CzVHVnp62OBXX;RS2{j3m)P5O3AI_;Q* z2YXjR^42VDx}S`Odg$o-YE$~lwnfTao=OBm$nNSTB^^M)LITCsMv9P8NR%zL@mu3Y_g_A}){769?y)vq zS|7b`>oWr04oG@#3uX=i*h%cS4KM7ht}0Wa0CCoPizcS3pWz(E2rYYXGWU77wY@Rb zQg9-dG}HCsDLr?)YnfU9X=-p|mBqOj)^ z`bDZNVDG(KzrHq<)$n#z%{`DM@XB={%06MaJm_&dAr%KuAX2wT)WLbNgNmz-y}bel z@X7;VX$%3F2_3^Nn!azm9yONKQ{Q|mVxkcbuYyu0suEv}D#mIeqH06)W* zaW1}RcVLq;{@E$ExdM|$rSJNzbBN3k0GS)Vx-seaP{hOzP4TZBOVE@bJ>=WLtUb(j zSv9ra<7i`awLcXYJPZS`kImwZ{9ko>3a#8=qI$AfpPpjAH|$2EMaT}Kd3-8j#t@dm-qey}W42bXaR2Ko zsVfmO?HFG!;IeNK6;+Fe@>8X7xYss0`vBP^eZ(ExNZ0A+>_eCet%eAI9614uDJ z`(wAYsDAO2f$v($isVzZx0EU`0(HKEU60;4*DXbiJXGiVo|7wd6;x#73RC6jn7W#= z&OsO(85+iJQeW|ZT0W7Y36P96M+-7NPV2_xOsd~V%s6y4N^oR?Rs62;r}uec7BTn% zJw`Jdv}A?&{IEI}O2m;^Ir9Z(77lz)&+zpF`d~YFuiS!^+WGV zQnc^cMVc_P&Hz;4@bGZ-b=MW4%xhlz=i!0bYDg3-Ci)JO7#G^)i}x+->Sz#t6NgQ~ zv&^-6cE!tyV(Q_cA<{!N#xe;pZq592{T;!WWva%V+PUi2D%&R#74hfJ)C<6?xA;?u z-;sy5D3yqgAbCVn+N*N`t;Qe`eZ+$QsnPbi`I~Y#fV;Ciao^Zq>QFMe&9H=;4sUOK z^pYo@f_3OEeZ#D={deh*=PoXtBEwRl@l~FWhzf->qSwP>DG^Pb(g!^twX0Mv<5mU) zDqAZ71AZ={aLGlhoI}73k{7M5(<+g6ay>$lGE2Bz9NB)-I^VXI<&hWN71R1sms-b} z?cF|o6SZQteWQ=U`=llC{d$L*g~U2!Et=O!#nJ>Jlr4V`)tE^T3Uj2qL^K&@xGOsk zCiV|^6*(DN0v9Dl2+4&ix1UQE^VE2sCHvE~Y!+k!2?XrzS0+Y!C1gCWzH#~>mJJ6M z77MYYwMLIb59i357=x4x2ozNLNI3?Eh(zy@ko0WOsFe+%cv(OQ8Y9PW0I18@lF)kt z*!=&2>;E`o{>^0a*U}9>7S_#;nPp}X@DBX;pMe(#OK?8mQUCw| literal 0 HcmV?d00001 diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-3-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Same-data-with-different-x-axis-type-3-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..14a1789434e5f8e0fe47a846389d961c015a0b15 GIT binary patch literal 5441 zcmcIo2T)V(nhu}{Dn+pY3J3;>lt`B*BB*phMIdwuL?HAgT?9dT3xwW_K!ngcC>@NwG&t@c^~XlOyT0p6Us$cJh&3s3jEeG16QE4SX^O-KV8I_lD)v6_6MW zKgfzv7c|6y1$~e=q0sdIM43VDclthEKE=;r2DwA5!|bE%_@7&HAjx0DDHIC(M&8~> zqorm{OiaDU#DM|(<%0Z<_V$mk%G=!B9V@YB5t0^NQ8!i5f?^kl(1l1EGnKpc4L@4W zrTgqJwY)nQDR=z3`~=LyGwpM*x~XkxNAx*9!<`rKlf1PD+>t*&KW~dO*F0QE_l-xR zgESDgZ{LP@afI)DC*sQM;yoLU+((CoDi)5dt*w2Jc66-mroFb*fvZ}fx~eMB7Wx>K z-SxAXx;w@!QdV3<#3{Ys-EK~8&a19!WpOboXmgU3K0JHVV_Lg<3ticK^fNi-q%T#P z4jBx|yir+M*_$NxJrvp$bqrguNf+Z4uzgon$X z9B%RP@qK(Z+Y#=$km{C0?2ZS6!FUF9Qw@#2*eCbg2jtHv>(`NwcBi4wZZfS@%&b;V z`>d39=BXueQn>ZY?&=1))*9reIEKjZK_JRiGW(0!K@99^adA7{Jn06`gAbp`Yy|K} z(;8Y@E;Xf=kKs_7n;L0?(uapz{pPEzb`2X{T#*J&y<%?D-n*pYQ4;;&LGgor62a;{j3?4#;v?P>D1r2 zH=m41_jc9O8w+Ch;VokG-X4tAkWywTNAx%Cl00*78t0;o+@@Th&4-)e5+vR!JWNn7 zD+i$hGe;og4pz!%J0pEhj&|$my@CDc1;rz#>|5!|PW0^>E6d9XuzGV`yqNWff%ncZ zBGqN2S#F_`S>`oXCO0>ioQOypYw|u&g*M)jm-OD>ZnT-k-Q2I?qt(+JC6NRZ`ILEd zHa}LA_BT4&>5zde@vB{TbZ%-^XTyHukPEl)4ae@lge0|Gs@0ZD7 z*25SvN1ks>`RVaTxt?qz!jHfVIBxUMTjNBq}fcH~@{(sDSn$UI&ZnkwU7=GV)pD?V&yqeV$> zIR{0Z4ZV~Mhw(g1002>gPR+^BPq%NOeKBFx71Po2$TDCg&fIJ8AoDx;IIAvhes9&|gHJ}A3L)^SdWsbSTHpe~_@ zGsla*YhP3*A^ENM2SQ=NPOj%tWOl3avNkz-z4$&Ar9y|0Bld5E|1Xi`p zYTWGMbM!Cy@IgsD)~YV-*<43f7$oNw{BkpJWb=wo@1lE%!8~bq9cJ2&oclbvx;eSz zX;~ma0(xb0?N^OaC#az=kI9-{g>7@4r_SjjhzP}1Dh3%2G0bq04(>s%0kyb-$=IL* zgX}FTcIK(ByGm>-hLd&eg0cc~a>kDsb&T9|;Q{A);hcmW3}120gO~@)y}~8YpUPY} zPvp51AWtt;lWsw_xT_}ww7{30A&$xzC5OgN1)Qv6?amb`*YDF#Ytd~XaC3mo08|Sy ztk*8EC4TQF!Fgo+<~<}8+1RHI1HtOkWDSGSRHZ4ywTNzSp~NYrxK0@F^tOP0m9sj-dj0x6WkF_-6!-bW z%%CXESPw5_e4%f@`}E;~LKlJT*lqaEc0KT&H>2*Etha9|A#%7ks#ZUqHr4)SrdXU( zn}{A7b*X)dw&wf!T$86CZR4~xVKWVJltlitevB5&V{tf#d_H^0QiGH{pP|wtT=M? z2LKCw_A@>t_XR!Q%u^sv=$8Ym*S%?gpyJcheS5`-*L@E++S}WyL0PxH(C`Tg+U{>J zz3}|;_4ADzH-N>QCt{f8<>io&5cOnnfHU<>B}h%)^@_=Z9S2wa?R|Q|zv{#;QPQq%Qv6{5F!{(i1)T7rIwb>#cTbk@FxzU2Lk0RN;KcBwZ zbywA+lH$!P8YW%gX3yijg`?vsuGNqF)jf?5j@d4~c||J%M(s_t1v7!mV`5_9$T&2b zxUCI1qUN91i~!m zHKDY?I5~*W`cON(0IB2iN|oEcCv(Bd__ob@KP1*DU#ISE<76VYHpq@=6>qU z2m9gSVF9BCU6|ASm*^4zULqD>qBuPhH#Q#q`UESt zP^D5#;T$|_-NFe<YOF#3ul1zbVghexi2Ovjns9Bw|{Ss zU~r<1iH$|{CYe{Fp~glpUWfy{K}r{XHIVVy{|u|mq-`~hjDI~JeU-Hymtfdo0cX4O z`p28bV9^gECSm=fVT7eHd-UF!>8}_J1|WKDay!tOa3okxP&CbbuD$IP@|v!YkPy|c zi3L};@jKY-^p68d+!Oq~)zy0&+_zx*`niUBdWq4|rXUWLpHeMJ(r&hYh z;oeqkOblR-x3;$EK#Iz{pUOxUU^1fCkoPpdW%@-ph-2J?%@p7d3kwSt5H>cA>iYoD zpRO(I|4bJDbvFLTL;kih>*{yk1fVk@YT8>`764#d{7zHU(9lp=Xw?!x`&$7^xG>RN zkFQ+1^je0E3Z#W6UKkn3R5++H2T0f3yD=Cw%@WqXe&+<{sW}tjGaA>WcD9Xfax;U- zC%3S_@L-3lgs5-aOgOKp-W$=x0Ojmh-+f$Go_wU`90^==_g8kxBIJ@N^Vr+Yoa{vA z_c`!*B8j;Np*S*{SXj!8#*sJL5-4sL8yd~s=&(r9$nRuAaDF(U0>oNF7^fK0TB>SG zdo7vP=+wlK%nDQx-Jj-nnVo&Gk4f2qq`^uZ-}>!693j#0k>U;K?*bg_nULq^0C;Yj zCxwGRrB%UeIuSXb6>*B;~$2he82LcZFXUYf0cPN=;72 z85f;l6e#ZN>w90tECl< z92p$c($u^I?}{Srj!sTqXK_E!N94DT_OFGSQ1hqvM-V3$w#39edO^dJ{KiPPF>^+y z?mk-#3m~zh6U%dRb9&_#daGm{8XXs>o+#YD-SilZTXjuVa=3fADR)Plse#6IW%#IN z2~}FP8aVNn6G)=yA;(;;ogNKq{bpa!yUIs1ceu{*hk+pSE1u!cR5f(lVQVdq5#sjMJG&d#(b^Fcp0?cKng+2j(el=Cq zSd~MdVZrVH-LKtidkgO`aIH0L^$p}YA~XYGBa=V=rk_rqF;!K-h=Txnle&FfHwf@n zSSBAd<3Abf{GTxu{=-lE*|T!zC4639-q6rccPvkSP7Z))YQ%bxw6ye9L4&)1zXoOu zuD^bK3%w#B3}OVEQd$G?nk^FXB|!)ez{(bw-yo5qAVxaVynu^OGM(-xUKSS>y#)sE zY@&e7TUAk!ptRu;#L8riv;Y!(rNgSloAEkXZKHD?7FD)Wb>qee>JO_%?$Hbq;@6mt`BDq$=)_13Up|@|VC@KBe z^8)lF=(^*3fUE2evoBr-DPCB2KJ&M!+5cYL@o)x6Sjc@2EReuwW@eOQxqp+u3c`8> z1A#)_q*86GrJ>L#Myrol^CiD-+vIOCMT>?&L3L8-FZ)w zNNoX!Cwx_F$jO-l!oT=gt=94IX;7!1LP(&cr6rJ@M9vDejH4MKr%COXB{$hE3Jm-dy{k5*qE5ioL{Qc)L( { await expect(component.locator('svg')).toHaveScreenshot(); }); + test.only('Same data with different x-axis type', async ({mount}) => { + const points = [ + {x: 0, y: 1}, + {x: 1, y: 3}, + {x: 2, y: 2}, + ]; + // linear x-axis + const component = await mount( + , + ); + await expect(component.locator('svg')).toHaveScreenshot(); + + // datetime x-axis + const startDate = new Date('2000-10-10T00:00:00Z').getTime(); + const day = 1000 * 60 * 60 * 24; + await component.update( + ({x: d.x * day + startDate, y: d.y})), + }, + ], + }, + xAxis: {type: 'datetime'}, + }} + />, + ); + await expect(component.locator('svg')).toHaveScreenshot(); + + // categorical x-axis + await component.update( + , + ); + await expect(component.locator('svg')).toHaveScreenshot(); + }); + test.describe('Stacking percent', () => { test('Linear X-axis ', async ({mount}) => { const chartData: ChartData = { diff --git a/src/hooks/useAxisScales/index.ts b/src/hooks/useAxisScales/index.ts index fac0149b..69ab8d91 100644 --- a/src/hooks/useAxisScales/index.ts +++ b/src/hooks/useAxisScales/index.ts @@ -10,7 +10,6 @@ import type { PreparedSeries, PreparedSeriesOptions, PreparedSplit, - PreparedXAxis, RangeSliderState, ZoomState, } from '../../hooks'; @@ -29,7 +28,6 @@ import { isSeriesWithCategoryValues, } from '../../utils'; import type {AxisDirection} from '../../utils'; -import {getBarXLayoutForNumericScale, groupBarXDataByXValue} from '../utils/bar-x'; import {getBandSize} from '../utils/get-band-size'; import {checkIsPointDomain, getMinMaxPropsOrState, hasOnlyMarkerSeries} from './utils'; @@ -330,43 +328,16 @@ function calculateXAxisPadding(series: (PreparedSeries | ChartSeries)[]) { } function isSeriesWithXAxisOffset(series: (PreparedSeries | ChartSeries)[]) { - const types = [SERIES_TYPE.Heatmap] as string[]; + const types = [SERIES_TYPE.Heatmap, SERIES_TYPE.BarX] as string[]; return series.some((s) => types.includes(s.type)); } -function getXScaleRange({ - boundsWidth, - series, - seriesOptions, - hasZoomX, - axis, -}: { - axis: PreparedAxis | ChartAxis; - boundsWidth: number; - series: (PreparedSeries | ChartSeries)[]; - seriesOptions: PreparedSeriesOptions; - hasZoomX?: boolean; -}) { +function getXScaleRange({boundsWidth, hasZoomX}: {boundsWidth: number; hasZoomX?: boolean}) { const xAxisZoomPadding = boundsWidth * X_AXIS_ZOOM_PADDING; const xRange = [0, boundsWidth]; const xRangeZoom = [0 + xAxisZoomPadding, boundsWidth - xAxisZoomPadding]; const range = hasZoomX ? xRangeZoom : xRange; - const barXSeries = series.filter((s) => s.type === SERIES_TYPE.BarX); - if (barXSeries.length) { - const groupedData = groupBarXDataByXValue(barXSeries, axis as PreparedXAxis); - if (Object.keys(groupedData).length > 1) { - const {bandSize} = getBarXLayoutForNumericScale({ - plotWidth: boundsWidth, - groupedData, - seriesOptions, - }); - - const offset = bandSize / 2; - return [range[0] + offset, range[1] - offset]; - } - } - return range; } @@ -379,7 +350,7 @@ export function createXScale(args: { rangeSliderState?: RangeSliderState; zoomStateX?: [number, number]; }) { - const {axis, boundsWidth, series, seriesOptions, rangeSliderState, zoomStateX} = args; + const {axis, boundsWidth, series, rangeSliderState, zoomStateX} = args; const [xMinPropsOrState, xMaxPropsOrState] = getMinMaxPropsOrState({ axis, maxValues: [zoomStateX?.[1], rangeSliderState?.max], @@ -401,10 +372,7 @@ export function createXScale(args: { const range = getXScaleRange({ boundsWidth, - series, - seriesOptions, hasZoomX, - axis, }); switch (axis.order) { diff --git a/src/hooks/useShapes/bar-x/prepare-data.ts b/src/hooks/useShapes/bar-x/prepare-data.ts index b2bde3d6..8da5caf5 100644 --- a/src/hooks/useShapes/bar-x/prepare-data.ts +++ b/src/hooks/useShapes/bar-x/prepare-data.ts @@ -127,7 +127,7 @@ export const prepareBarXData = async (args: { ? getDataCategoryValue({axisDirection: 'x', categories, data: d}) : d.x; - if (xValue) { + if (typeof xValue !== 'undefined') { if (!data[xValue]) { data[xValue] = {}; } From 8aecdf351001b4a32066245dc1dfede73e17624a Mon Sep 17 00:00:00 2001 From: "Irina V. Kuzmina" Date: Thu, 27 Nov 2025 22:30:28 +0300 Subject: [PATCH 2/4] fix: fix --- src/__tests__/bar-x-series.visual.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/__tests__/bar-x-series.visual.test.tsx b/src/__tests__/bar-x-series.visual.test.tsx index 16ea3307..9de2e771 100644 --- a/src/__tests__/bar-x-series.visual.test.tsx +++ b/src/__tests__/bar-x-series.visual.test.tsx @@ -27,7 +27,7 @@ test.describe('Bar-x series', () => { await expect(component.locator('svg')).toHaveScreenshot(); }); - test.only('Same data with different x-axis type', async ({mount}) => { + test('Same data with different x-axis type', async ({mount}) => { const points = [ {x: 0, y: 1}, {x: 1, y: 3}, From 7e7f5d203fbf0d6d7b075d8810b6220a773882c2 Mon Sep 17 00:00:00 2001 From: "Irina V. Kuzmina" Date: Thu, 27 Nov 2025 22:37:14 +0300 Subject: [PATCH 3/4] fix: update screenshots --- ...-series-Linear-X-axis-1-chromium-linux.png | Bin 11125 -> 10950 bytes ...percent-Linear-X-axis-1-chromium-linux.png | Bin 7748 -> 7870 bytes ...-values-nullMode-skip-1-chromium-linux.png | Bin 6774 -> 7063 bytes ...-values-nullMode-zero-1-chromium-linux.png | Bin 7000 -> 7209 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Linear-X-axis-1-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Linear-X-axis-1-chromium-linux.png index d9753105998c5e2d738cb5a58844f8b6bdb77ad3..b8689a275305151eafa60c45d313fafa04f1d1f8 100644 GIT binary patch literal 10950 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 diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Stacking-percent-Linear-X-axis-1-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-Stacking-percent-Linear-X-axis-1-chromium-linux.png index 690362c99f7420500c5e0ec214da9ab32478d3d9..0f8ccdb127468034f453a9b786ac53c23844624a 100644 GIT binary patch literal 7870 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 ZKtDF+Q@-Xt3k9Blpb%x5A}Qnd{{hlR{Ja1F literal 7748 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 diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-x-null-values-nullMode-skip-1-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-x-null-values-nullMode-skip-1-chromium-linux.png index b2d7c0e2af0fd94630a81fb0dce8c00bb439a014..6ed79cef54b9559fafd9d38375f80faede50b351 100644 GIT binary patch literal 7063 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 literal 6774 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 diff --git a/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-x-null-values-nullMode-zero-1-chromium-linux.png b/src/__snapshots__/bar-x-series.visual.test.tsx-snapshots/Bar-x-series-x-null-values-nullMode-zero-1-chromium-linux.png index 1abfba892b12da38e918ce2c576fb0aae7591d4f..297b00b7a16dc91bb5b01a9ad02c65468374542b 100644 GIT binary patch literal 7209 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 Y)r&JT@rz+mzzRs^5%gh!qKV(X0g=Cy9{>OV From 57da85ea787e87306ae63a34b09f6bd790dfc99d Mon Sep 17 00:00:00 2001 From: "Irina V. Kuzmina" Date: Thu, 27 Nov 2025 23:23:39 +0300 Subject: [PATCH 4/4] fix: review fixes --- .../ChartInner/useChartInnerProps.ts | 1 - src/hooks/useAxis/index.ts | 1 - src/hooks/useAxis/x-axis.ts | 8 +--- src/hooks/useAxisScales/index.ts | 43 +++---------------- src/hooks/useRangeSlider/index.ts | 1 - 5 files changed, 6 insertions(+), 48 deletions(-) diff --git a/src/components/ChartInner/useChartInnerProps.ts b/src/components/ChartInner/useChartInnerProps.ts index ecb0efcb..3e4ab645 100644 --- a/src/components/ChartInner/useChartInnerProps.ts +++ b/src/components/ChartInner/useChartInnerProps.ts @@ -132,7 +132,6 @@ export function useChartInnerProps(props: Props) { boundsHeight, rangeSliderState, series: preparedSeries, - seriesOptions: preparedSeriesOptions, split: preparedSplit, xAxis, yAxis, diff --git a/src/hooks/useAxis/index.ts b/src/hooks/useAxis/index.ts index def9d469..c5017f74 100644 --- a/src/hooks/useAxis/index.ts +++ b/src/hooks/useAxis/index.ts @@ -53,7 +53,6 @@ export function useAxis(props: UseAxesProps) { xAxis, width, seriesData, - seriesOptions: preparedSeriesOptions, }); let estimatedBoundsHeight = boundsHeight ?? height; diff --git a/src/hooks/useAxis/x-axis.ts b/src/hooks/useAxis/x-axis.ts index c36ee787..0fc8576a 100644 --- a/src/hooks/useAxis/x-axis.ts +++ b/src/hooks/useAxis/x-axis.ts @@ -27,7 +27,6 @@ import { wrapText, } from '../../utils'; import {createXScale} from '../useAxisScales'; -import type {PreparedSeriesOptions} from '../useSeries/types'; import {getPreparedRangeSlider} from './range-slider'; import type {PreparedXAxis} from './types'; @@ -36,17 +35,15 @@ import {prepareAxisPlotLabel} from './utils'; async function setLabelSettings({ axis, seriesData, - seriesOptions, width, autoRotation = true, }: { axis: PreparedXAxis; seriesData: ChartSeries[]; - seriesOptions: PreparedSeriesOptions; width: number; autoRotation?: boolean; }) { - const scale = createXScale({axis, series: seriesData, seriesOptions, boundsWidth: width}); + const scale = createXScale({axis, series: seriesData, boundsWidth: width}); if (!scale) { axis.labels.height = 0; @@ -111,12 +108,10 @@ function getMaxPaddingBySeries({series}: {series: ChartSeries[]}) { export const getPreparedXAxis = async ({ xAxis, seriesData, - seriesOptions, width, }: { xAxis?: ChartXAxis; seriesData: ChartSeries[]; - seriesOptions: PreparedSeriesOptions; width: number; }): Promise => { const hasAxisRelatedSeries = seriesData.some(isAxisRelatedSeries); @@ -235,7 +230,6 @@ export const getPreparedXAxis = async ({ await setLabelSettings({ axis: preparedXAxis, seriesData, - seriesOptions, width, autoRotation: xAxis?.labels?.autoRotation, }); diff --git a/src/hooks/useAxisScales/index.ts b/src/hooks/useAxisScales/index.ts index 69ab8d91..5a8f5f38 100644 --- a/src/hooks/useAxisScales/index.ts +++ b/src/hooks/useAxisScales/index.ts @@ -8,7 +8,6 @@ import {DEFAULT_AXIS_TYPE, SERIES_TYPE} from '../../constants'; import type { PreparedAxis, PreparedSeries, - PreparedSeriesOptions, PreparedSplit, RangeSliderState, ZoomState, @@ -41,7 +40,6 @@ type Args = { boundsWidth: number; boundsHeight: number; series: PreparedSeries[]; - seriesOptions: PreparedSeriesOptions; xAxis: PreparedAxis | null; yAxis: PreparedAxis[]; split: PreparedSplit; @@ -346,7 +344,6 @@ export function createXScale(args: { axis: PreparedAxis | ChartAxis; boundsWidth: number; series: (PreparedSeries | ChartSeries)[]; - seriesOptions: PreparedSeriesOptions; rangeSliderState?: RangeSliderState; zoomStateX?: [number, number]; }) { @@ -556,17 +553,8 @@ export function createXScale(args: { } const createScales = (args: Args) => { - const { - boundsWidth, - boundsHeight, - rangeSliderState, - series, - seriesOptions, - split, - xAxis, - yAxis, - zoomState, - } = args; + const {boundsWidth, boundsHeight, rangeSliderState, series, split, xAxis, yAxis, zoomState} = + args; let visibleSeries = getOnlyVisibleSeries(series); // Reassign to all series in case of all series unselected, // otherwise we will get an empty space without grid @@ -579,7 +567,6 @@ const createScales = (args: Args) => { boundsWidth, rangeSliderState, series: visibleSeries, - seriesOptions, zoomStateX: zoomState?.x, }) : undefined, @@ -605,17 +592,8 @@ const createScales = (args: Args) => { * Uses to create scales for axis related series */ export const useAxisScales = (args: Args): ReturnValue => { - const { - boundsWidth, - boundsHeight, - rangeSliderState, - series, - seriesOptions, - split, - xAxis, - yAxis, - zoomState, - } = args; + const {boundsWidth, boundsHeight, rangeSliderState, series, split, xAxis, yAxis, zoomState} = + args; return React.useMemo(() => { let xScale: ChartScale | undefined; let yScale: (ChartScale | undefined)[] | undefined; @@ -627,7 +605,6 @@ export const useAxisScales = (args: Args): ReturnValue => { boundsHeight, rangeSliderState, series, - seriesOptions, split, xAxis, yAxis, @@ -636,15 +613,5 @@ export const useAxisScales = (args: Args): ReturnValue => { } return {xScale, yScale}; - }, [ - boundsWidth, - boundsHeight, - rangeSliderState, - series, - seriesOptions, - split, - xAxis, - yAxis, - zoomState, - ]); + }, [boundsWidth, boundsHeight, rangeSliderState, series, split, xAxis, yAxis, zoomState]); }; diff --git a/src/hooks/useRangeSlider/index.ts b/src/hooks/useRangeSlider/index.ts index 246240ee..8d4526ac 100644 --- a/src/hooks/useRangeSlider/index.ts +++ b/src/hooks/useRangeSlider/index.ts @@ -69,7 +69,6 @@ export function useRangeSlider(props: UseRangeSliderProps): PreparedRangeSliderP boundsHeight: preparedRangeSlider.height, boundsWidth, series: preparedSeries, - seriesOptions: preparedSeriesOptions, split: EMPTY_PREPARED_SPLIT, xAxis: preparedXAxis, yAxis: preparedYAxis,