From 789d7c73afac3bce7e93e454d9a8599c0433f665 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi Date: Fri, 12 Apr 2024 10:04:46 -0400 Subject: [PATCH 1/3] fix default trace orders when zorder is present for some --- src/plots/cartesian/index.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 580762f1b55..2a52d2628e0 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -221,7 +221,8 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback var categories = Registry.modules[name].categories; if(categories.svg) { - var className = (_module.layerName || name + 'layer') + (z ? Number(z) + 1 : ''); + var classBaseName = (_module.layerName || name + 'layer'); + var className = classBaseName + (z ? Number(z) + 1 : ''); var plotMethod = _module.plot; // plot all visible traces of this type on this subplot at once @@ -233,7 +234,7 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback if(cdModule.length) { layerData.push({ - i: traceLayerClasses.indexOf(className), + i: traceLayerClasses.indexOf(classBaseName), zorder: z, className: className, plotMethod: plotMethod, @@ -248,7 +249,12 @@ function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback } } // Sort the layers primarily by z, then by i - layerData.sort(function(a, b) { return (a.zorder || 0) - (b.zorder || 0) || a.i - b.i; }); + layerData.sort(function(a, b) { + return ( + (a.zorder || 0) - (b.zorder || 0) || + (a.i - b.i) + ); + }); var layers = plotinfo.plot.selectAll('g.mlayer') .data(layerData, function(d) { return d.className; }); From 3c398156cfaff7bc3bfe7b1b83eb3344ff439ea2 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi Date: Fri, 12 Apr 2024 10:16:17 -0400 Subject: [PATCH 2/3] add test --- .../baselines/zz-zorder_default-orders.png | Bin 0 -> 13211 bytes .../image/mocks/zz-zorder_default-orders.json | 71 ++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 test/image/baselines/zz-zorder_default-orders.png create mode 100644 test/image/mocks/zz-zorder_default-orders.json diff --git a/test/image/baselines/zz-zorder_default-orders.png b/test/image/baselines/zz-zorder_default-orders.png new file mode 100644 index 0000000000000000000000000000000000000000..40884d1f4864f2bc8fce76c3f9d133de2bfd86ad GIT binary patch literal 13211 zcmeHubySsKw=SX*BHbX}ARtP2BOwi2iH(xd4Vwm$mQHC2X|_niCKNUeDj^*rC=Gkl zeHXuPoO8bW*B$qc`_H}OjDdr9_^x-&6?3imJkOj&X=|$B-=n#Qfq{Xq`czRD1LGF- z<{u6g_@7}OZyF2?MhsO&Iei#(I|n<3%wQ&bF={1IQc=#-G$~r0C@sH~>QNz1WN?0P z(W}U1X6AdMEBTdbM5&D8cgW@Lk}DD4!hI8rr{)&c} zV<7DxyLhQ!f+l4A$Dl_H+zgH2Wg%+OR+gJ4(dmBwvd=Dy%DkUFe`6j4IVc5sl*MEx z&4)e18rk`0h|8<=phw1A$-pH0Z5!_!qhOeX|DO$${-`rk$bJt!$Y1z0k@;jPlu*0L zg~kWm~rKk3)s8OeDKs*HrR))(6R z3UvyVr)q5onVFfGBPSkE=Sz+d%Zox#C=$(eBoey3=iix1e-p1i09aKsq@x- z>c@A04V&ESj@Lh!OHYWQBro>5d@`?rW0lM#)u+WYZ)Mr! z`e2b@tWY|8c?ny_UxD#*KS~gur}O<=;w`hXpx$wLl%>{)xH{WB>6N)kEIE%NZ?s#Y3U2S*16_P`=|7Tb)OIlc1SOsD8 zEmsK+Z5!vkOxBVv)5H<`U_Fvu#(J<-`;Ga@6VmOOdOfcDi3yuTxY9>c78^zBeHv$p zqy?_Odte7YR3`d4<Dsjyv1rP)?EYZ0)j?Q4b!D^5Kak3o4ElwuTN8Cpx zeYVDu8lLD88~J*&+B5+#rcZU0KDWEoVfr!RXvTg+p3OZyYd=wbck-?XFYhzcN-IgXN~3x;Qw^mxX7^KP>e{Uu-@}cv$IPqU-HOOR zSLeGB%3!mgOM`9db(RiTSg1*-k_$NNM{5t-_LBoX+Q_U>z_+MX5BtKHj_+#mef%6B z7IX0{F&zV0p@49E^YF#zJ9w0Q`otv<+~n2nh*%F%NgmI+`*ic@WSXoh4Ky>f^mXwi zW-8jby@`>9z@f3H`+xu9=re2e^QxPIAL;|I#d!yLO{~oOyJ|f^_ZwR>JeH6;pUo{Y{={!^}sYj5r$s0 z8cZ`dTutyyMA;Y96m2OGN)WZl)iMq3Lz3Bc;%4u`JWQEz~c;350dIbi~R_cM3Ss$JL6-y(m_?_f< zj-V|`H3F>`58by4WY&~AXS$wG-ZD64Ifr5riLE#(@qKbD`Mo{z&?HO)wLt{Wej6`y zB^pl15cly}7Pn5HLVd_>?DFdoerWSy(qmF~jlQv#Y=>1O|s*fZba z1b8rG<3TfFGYb)J^lPW))iliI%hhx<{R7s-Ied}1gpz8Lq7}=uiso7~;BT_A%K zpwx&H-#+-9xDpcgRF(NvbLtR3RO|!m*W}^!>pp%BE*_n{B8E5ynQFHR65D~QEX6=( zyY(*5!3{etryMp2cha#((x1SbA-y<=rb%<#a6lxC&6yLPdsjRh?Bj@IoR;pxq>+TR zCqdmjZp0sV&>Kl-iQ{oa%&e)Tr7)#Tw{)f-Mpp`NdAw=eB9@;aNVZqwHxy@*3S8RE zPbMH{WjF?W4WGT-j+xhSe5N?Qy1R}rNd4V`bo1<|eFa6tk_;G zaplWf1VO#Wx^8N3O5{kYVFIZheP>gv6$q83y(R0uEKn&9BSwpa)2IjT3~uHF+pQ&$ z5Oije?j9LxfaalD`&>dKgdW!K=*LJ5Z^bTh(0k7AnYgeMGu68nG##2_)5#)=Vof3tC`LjNwqrg*ZPN%z)@0+rQzN*a(U(5c;JH5*cUDrCQ8UkAifBt9Wn_iO-fOXOdKhaHD1NMCZ_SUBAWAW)Tn(p)6a415!Eb>c}cg^`t<03_V;ta zKlP98Y)n+N=7c0J<6GWmR`x;jI^XZxgrPH26di^$h4kRC{$D$ukDG-k`A9BRQ((Wo z-aW+F2H^_{P=bMzJ^@7fx!Y3pMM24AIV&#Ofh9+~>3;l0+Q+9ZSV* zw-`Q3$;1|a*`8#W6)zh<_u~!_5+}O2qVkKYD?=3h(R*4uuPyWX=)xsaQX{p0nus=a zpYMN@sVLRqYe#?5+<9H3k;-kLZ<&2vh4ntB?-`%=XB9~hW+_WyZ1>Xf^54Cn>dWGg zoC82OfC#>F-r})d@b<@NtHJEdQzTCilbC4K+R6rh<4@+>Wh^@GSF`*+lR5<~Vy|n zt4!&ADhn71BJyqwZt6U`X?RJBb4fOxfhq@DjFIUTB@R&cR=) z(tiHwCYR`HP_D09%wy@?bdC|W8Q?MXSf3(EKuSskMxPcqT zo!H<=`EEvAYWfk5CAF;nFs+5}OTPfY7@Q{-#5^tB$@lCIca)Re5oa}Ew-CE_ga0z6^a3tFWU=nAzd~eJ96;w|# z5>|#x83@p;+gU`J`y&)&7GTP zDm6fF$T(>Kp*N18kuXczKg2}=czF1-rNs?#$$u8SJYn5Ua`XI>6EG+3Y=?I@%&87E zntAv9&CTGFofky5~w)K$58QOb6w(qgW_qcnf^O=54<2C;N z=~Y*@{9?c{U8b<3-82;!ly1#?dnODJ1oNp+ubMW>D?G+u5}V;v&iavT+gvQw4EW8{ zen3rF`P(L0g=)M+m(ORMt8|#ZkQB zp1{?5o+$suHW);h6&o37s}y&pFudSOAu> z3FyR&-c*osXy(g@-J=qGoxsg6H_4Ib{{}>nUxo3~@{LaODR`JtoKU(u#*I#~e5Nf+ z00A1{1%SmXlaa*a$S2=!@qIZ?D{5b8^mHMmU{u~nCEuQ1p6;<_WXm9#YqWn1C4cp( ze@#sd?9Y3f@zadl+&FV&^eaGs)SBGxKM*ByTM%|$c)(*=+3DPInMR6=wp4jX74o9i zy6p34cps#Q+x!~f)V*Pm#idjTRA)I=Vm^W)km?2}1Fl>5v1)Ud3yQDtxs(~K)ocNv z?4m(el34et@~b0({GdR5^-xXKAnQMO!KdcsZDa8RyRIt;|@F)1N5aE zi7eaSiRP*9v;F%8o1q)wv%lmh?c8>lR(`%#7;hI1DUuAlfFV#lwB>|R8LQc54Gz>t zThoQif9~Q@aH42EwGlL|Yy#Jvw+WX3rBl`zS}oc7yau=&pnr6aA3uI)gx56_H6>1{ zlXvi>QVNc*gk=2PTo`y<|9YS4zA3ua`m*S!=iXWew|&~aKBKROWP;U*k=23-{08mIrx+1Y)D+zx0|R!{{_7|xUZo!Fp?+3(CWRbY-w4f zMmHC9effIqW9&y5o0NdvIA;p4v2e*V+*0eIjF1~KIi3_;r@;x)IKe3<8w!(zJ> z)NflTh0Fc)Ry<;!5u!JZ(ID9{bXR)AV&r>)dGIfeiyid^>n87+#>~TX4ne%F?eO%0 z40fobC|%P!?yy*x-7P7x1(LAB8mZ0)@R;~JGGiZ~=@B~tE}p8r=(j7C>g7VmtlCVw zJysI0hK)G=lf`M;Qbz(W!U?)OoXpnm`qdSI`ijTDQbe<|`%&Y4!3gRiq6n-k)2SH? zVKfALxN$L%7D!W&^)LW^@S>uksKnfg0v26xm{9kw5(m9rj?7%rLkiTBH>g~L9O-yg zi*b;&R2}~H^`rR8hzUlnVEgK3h$7v*I?e(kls_~d0ecvUY>%KV`n^a?zhq8Jmrv1)@X89%^Y#^ z*+yqbz@UO?V)e>fwnGkQwmFZnXWYC@%c+qs=o3`WSSts8S=dgzUqC&K5nnXZm{u3k<2c_{6_g=i<|G(HWV3m742DvUYe|q!tRxs#ksH z)!$!Z=`zh;?%sVGmB9&@tPLkcy7rtGEOQ9p}}p3La?dmXln&kYscp#``?1o}ZI zbD6hElg#<`*8C%CHsoe^*hd%_lw-#pdpK&@^Sk*Ujj-inSWXk1PLLydQZ7an<@-Y8 zBTaVGn1UDhtdB1zJ>GmM@y|7sq zy6iabs?jTU)+p1Caa_94<9M>$JK9;J);GLys}18KLBYmc9_#YS${k%N&0DxHeI z7m%2@L;*>V44dFV@Wt4nk{DV`Z0>SA-v95XBF<x4z?*f!)%!^PSeafkzz2T9=WqilHP-V&;iSmZ`h#z&-w&`dHg6) z;_l_?;AWB;Yqy)=PW_!~R2hnqXD!1y<#LI7N(? zeikT)<6rHQJDD8_E@)8ybTj?U_g)Km;=O6c2!_BDCO(s?L*RFlBjI?+_Atl z0m6IcnQvd<<=H<9A1~ajgTB`0n<25=e2eFgMrX6`?(Vg%iELm-EPHtS<_KL*x!UXg zT>48YbFTB`6Zde1pi0hX&wGME;a~_jAO`pRhrlRv@cDBDOn_Y@Blvf3Jd1z;vED}w zxn{T3M>e%_o@8LvNUhlMqJ>0yE6_bUg2oURCGCSUI+!<0VZ z;^LN%lUd4+;Owl z>3(sf$g$RWwsZguP@Dvll9LU{5CD~AFIpy>RROu8U1MGocyP(YBfE#-6Z>)K=TCIb zW#I=09zfeyjpb{Ev90d?%?m03z=a~tq}3i!6P>lxd~ia(&(=#9(?~`^bcxUv-GwUg z%7+^hOsk6B=rK7jaZad2Rk)7Djo%a=C53IDkfH`$fRI|LOTeL(tLWhHP~2-PvURt8 z_Un7Ht<2^62{$T1D&R&!uX$?TFA?R#Lc1nr47tFD&CvBN2;pc0?_s`~)_>kjL)m58 zV8=<1>qGx2qQqYdfP6;GdKbTTku@c9q|)w$se-~zX-8!>lC+f0NA_CN$3@&_jPz{K zkE_{fS9MD~DZ1&aK z?acRz>7VxV<(0&Cmm;6Odr|4!k59DwZwPwqZ%+NPz=z@3NFHOns$FEUwLlqn1*vRAKEw|TRuI1Jimjx7s9fku; zvMA{F^53WXMB6P`uziDKRA78h=5MQ8et>>@R>t_BhWr05@fY?75)2Th7vEVnvUv5L za~>gU|J>){#wt165-5UKaWtBD_YjMw2Hq<+SAS(0npkT5v6{&--S?0|HtpQldtKJ8 zb$cwr{%GPcT4m^6&Px5oaok)+ z=sWklO9jIz`pGhWHk0wAcYyzgxLsYGCVYFRqNG%oL`_Y-!SS@*u&P{|&}oq6ZMWaq zvhDpdYob6=bg2Av2Q7SyKV0~zlJt1)T4-Nx(%PNyAuc*gP0O3NFH*$5XBt9$8R zQYiG$7j0UPJR>JHorMIc&r^FPorj~@_G~-;NI%O9+g1t&9ZPX8_;+6TSNz(hbG8`x z$kjJAqEEd2)|h=MS{_379N%Y3cxm(2l!pT;GYj*N7_UpV7UF?Y*1lXS0=9Nc-Bm0+yn}aj>z` zu}7A}ME>4u5^SSTProt|DrTZzt{X3=Uu3j8W2(mr|N(6;ljQaBc1@#^*?VM1Muw zH|Y@TJgrQREqMA>2!?j3 zD0^YCUy9sBra=1 zOx?(yGR{UW-Z5t6}IXOnK9 z09k6Yd;aBZ6yHKEmBr6^IbUmWr-$B!z6KB5pCf+N>5b~9%pG6UWB*9}LG?U{F}HO6 z4-YjLv}?Ln?ivVASGBdy&+w3bOusRe{bewDj;gf%S+BW$p7-}+Z9e^`rZRfQ%DSs* zXgX)KYRD?2C0~ErHkmTFhXmu^8XpebiWFmGk{wa~l zFM(9zR7c%D0Pd{la>hB4n?(~I!$?Kc*Kf`oPv|5T?HCFeH<(}! z{bvA$6uj0E_p|@k;Of1d%d#fnG=S(#tsWXeCv_fVaIL22qD^-=7nacVA3Z{*EKV9^sTO<6b@hWaL@}=69m>=si!ZWSxGHWTe*epTJWUAHA#cny6ET+2b zdTla5yj}#dYltXDnWIlNk-H7ow*}MI%Q;>hCRM57ZhoxY+Ak~{Ap_!~&`Ykrr zn;vR3cCdZ^?eN{rZMot)Xe;9{XyC)RVf#az3vaR+vf~bD8T2T-*!vpYnNc2qekGR$5%YiCABD05AyTsav24eVq z)?=m5+WJiIE{>nh`5m^g?@)PJi2&R4hTVg((c00(I%(Yg)?|aSxO#DO*~?pzagig& zG0XL-FsnzDkNHc-yCOOQOM8y?WaxYLWAjuTEFEyRWeFxYK_5D-p>vvQM)yeC)wBs6 zqI=1DGpsGX7uew)x9K7pNa6OfNxlgPgd|Q|!%BU|ocZH&qyZj!=heO!xQu5UmFC{r z9PU;KcnoW24~j<66x)|VQn)GLYd$Mva7QH1?PSO`Nr$HX=_&IMrE!HuiHb#POo>DV z!Dt|xll3#!xpQrjuwRK1?|TnJsv0kCj3sCHUUVz=z;+4|#8%&F|TiwSg z?SOMf$5ZEfX!r2>CyWxUJY_&Yf0Sr3%(-;oi`)6~CHY>FP&jIS8R;rZ2!b1|-;>mZ z-z!h!e&ejyj!Y0zaQQPzeT@zVtUPiu)z>9pLmPdJ*7=`O{Mr|8RpgTQ^_D|h$s#I#zh>yO$o?f zpUwQF`uRFzSF4?CA%O&b->}_AVd2;_fa;@tPW96h2xb9u!NrV4rKK}4#IU*lU4ih` z&RjF6&evmp*~GPm^(lCQFH@JrH;Bo;c+cFz*tNG5=n3pxC%XLQXgF(;&Bu!PAT3*g zyH+tNhZgCdqjNy~k**&35{fP0f8v7Jj|(zu6?K~?7<$pVXb*o@%^Py6C3Ng+*&MBh zVB&#NpX}(h{s{66It)`OzL)y7$e80pVA$E!F80qlI^ez$Z2dz+-L>DOV{U{@P$#K_i zG?@>cc^5ZwESD8*WU(rHgQnN5tgK#v8k|!7G7@p`ooqcGP!D2*mmV{JID_>-IzX;= zEQbS2jLI z9e*_?buH60HjCJ8xEKvkuUS7~f7jxp-?@F7OoP{?C%gn0ONE7nrHzdRD6rzxEyD3V z+A1py|I0kTa7kR@MZZ6zyqcu+$!pE=>bOf^LC%XJKsD|l%+(h$pSHA@OXD+aa&$qGa7?}0e?Z%V?l=_V@Ke#sBCS!a^qh!(L-9~tbVMm_#_ zx#C~a#E51#kS4kftp1TE{xh8YOPcsU319s;@)K!eEh*4I#9a;kcZ^;sBFd(fYB+1D z4XuT=Cn^*#Ledgtma92;WwcVpAo}+oUA*;+{#SsGchOQt{P|+76#_`}?GHASE#fQ- zbT1~p|JDsEvP|cHl&n(N{^f0kNWINd6ouu%lE>0Vj=Jd@#VLS_bD9psk$&Hh0#m7` z^DH61e(Wxnt$jm~-t0R^u7X@HDU#N*Gffb#farfeEO0XV1R6mZ@np)dNdmdK$^3Zv zF!lLVY6<9PMZ8-At*bKBk5F+x8nnn$*zUWXJ179+dqs21b4D4kwS7`GXXGzuD3P0k<-Ren#URXth&by9B6YWoByE(n zwz^cnT@>GmpfD4lntIgLMR zi%`zhiF1qrW3UA;f&PMi=jLEc22WJKc?o{oq*(l8+UWnDY4NlpP?bm};q@@^bd@sY z;R}-6SodXt%zy9a&GC+g^im_4L41=+NJ)7M${F+ZN;FSE$yEd>^ZZrSxFG*QJ`DYj zX7(RVd+7TH2IPSRT;uXfo{Z1rc`Cht`5lnMqZhOrk6d2m*Cv~jyO4%v8UPYgaciwR ziu9?5#!a@#O>HDo2+!5k6}DB=3vL^*zSaRZnRZ4Ak2NAF?AP6)Tq%i?mAPhjrbL&& zBRNdhJK{7Ks9SbL)hHk0i?ThH4;v?y1B{IZaMert>nn>8nc*`N4j$%v`|#Y2254Cf zR}(*5|6k$Ds!x>z+7||;(X$(Lf$FlXpD!F|N_-d7H-i_KXFWZ8HY=OVpg&YJh!VeBJ*gTu5uDtzA>=j$BT0;4ScD*Nj1 z?<6R-I}fTO6t95NrTi^d>PG5vSU|jA#-AJ}D)P}o$YIh(58tGWKxy?CP!U8-PEH=J z_sDVxlr@6{DB{d14rD(;HHWqpOEcJlIl|~*1UrYb69PTJ1IlXsr*y?Yc{GrCF?_meLnxP$N Date: Fri, 12 Apr 2024 13:18:52 -0400 Subject: [PATCH 3/3] draftlog --- draftlogs/6962_fix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6962_fix.md diff --git a/draftlogs/6962_fix.md b/draftlogs/6962_fix.md new file mode 100644 index 00000000000..2b42235e108 --- /dev/null +++ b/draftlogs/6962_fix.md @@ -0,0 +1 @@ + - Maintain original drawing order of traces when traces with similar type are sent to back [[#6962](https://github.com/plotly/plotly.js/pull/6962)]