From 450be5a12cae22d3a2514426b09391c30437b07c Mon Sep 17 00:00:00 2001 From: Frank William <65594180+ai-qing-hai@users.noreply.github.com> Date: Thu, 23 Nov 2023 10:08:12 +0800 Subject: [PATCH 1/5] chore: update dumi-theme-antv (#1890) --- site/.dumirc.ts | 29 ++++++++++++++++++++--------- site/package.json | 2 +- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/site/.dumirc.ts b/site/.dumirc.ts index 7415d5602..4ed10f662 100644 --- a/site/.dumirc.ts +++ b/site/.dumirc.ts @@ -13,6 +13,7 @@ export default defineConfig({ defaultLanguage: 'zh', isAntVSite: false, githubUrl: repository.url, // GitHub 地址 + footerTheme: 'light', // 白色 底部主题 showSearch: true, // 是否显示搜索框 showGithubCorner: true, // 是否显示头部的 GitHub icon showGithubStars: true, // 是否显示 GitHub star 数量 @@ -124,30 +125,40 @@ export default defineConfig({ }, ], detail: { + engine: { + zh: 'F2', + en: 'F2', + }, title: { - zh: 'F2 移动端可视化引擎', - en: 'F2: Mobile visualization engine', + zh: 'F2·移动端可视化引擎', + en: 'F2·Mobile visualization engine', }, description: { zh: 'F2 是一个专注于移动端,面向常规统计图表,开箱即用的可视化引擎,完美支持 H5 环境同时兼容多种环境(Node, 小程序),完备的图形语法理论,满足你的各种可视化需求,专业的移动设计指引为你带来最佳的移动端图表体验。', en: 'F2 is an out-of-the-box visualization engine focused on the mobile terminal, oriented to conventional statistical charts, perfectly supporting the H5 environment and compatible with multiple environments (Node, applet), complete graphics grammar theory, to meet your various visualization needs , professional mobile design guidelines to bring you the best mobile graphics experience', }, image: - 'https://gw.alipayobjects.com/zos/finxbff/compress-tinypng/870e2e92-6187-4729-889c-232a7df0998a.png', + 'https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*wi05Q7Za5ZIAAAAAAAAAAAAADmJ7AQ/original', + imageStyle: { + marginLeft: '80px', + marginTop: '30px', + transform: 'scale(1.4)', + }, buttons: [ { text: { - zh: '图表示例', - en: 'Examples', + zh: '开始使用', + en: 'Getting Started', }, - link: `/examples`, + link: `/tutorial/getting-started`, + }, { text: { - zh: '开始使用', - en: 'Getting Started', + zh: '图表示例', + en: 'Examples', }, - link: `/tutorial/getting-started`, + link: `/examples`, type: 'primary', }, ], diff --git a/site/package.json b/site/package.json index bf37ad634..929b1ecef 100644 --- a/site/package.json +++ b/site/package.json @@ -20,7 +20,7 @@ "site:start": "npm run site:develop" }, "dependencies": { - "@antv/dumi-theme-antv": "^0.3.5", + "@antv/dumi-theme-antv": "^0.4.3", "@antv/f-react": "~0.0.7", "@antv/f-test-utils": "1.0.3", "@antv/f2": "^5.0.4", From 6a6b2264e841445aafbf447a27b852d607f4d520 Mon Sep 17 00:00:00 2001 From: xuying <33517362+tangying1027@users.noreply.github.com> Date: Tue, 28 May 2024 20:19:50 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0Pictorial?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=20(#1967)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 增加Pictorial组件 * fix: 修改api --------- Co-authored-by: xuying.xu --- packages/f2/src/components/index.ts | 1 + .../f2/src/components/pictorial/index.tsx | 4 + .../f2/src/components/pictorial/pictorial.tsx | 35 +++++ ...st-tsx-pictorial-ellipse-symbol-1-snap.png | Bin 0 -> 10957 bytes ...test-tsx-pictorial-image-symbol-1-snap.png | Bin 0 -> 21603 bytes .../test/components/pictorial/basic.test.tsx | 124 ++++++++++++++++++ 6 files changed, 164 insertions(+) create mode 100644 packages/f2/src/components/pictorial/index.tsx create mode 100644 packages/f2/src/components/pictorial/pictorial.tsx create mode 100644 packages/f2/test/components/pictorial/__image_snapshots__/basic-test-tsx-pictorial-ellipse-symbol-1-snap.png create mode 100644 packages/f2/test/components/pictorial/__image_snapshots__/basic-test-tsx-pictorial-image-symbol-1-snap.png create mode 100644 packages/f2/test/components/pictorial/basic.test.tsx diff --git a/packages/f2/src/components/index.ts b/packages/f2/src/components/index.ts index 176705b17..a7f76163e 100644 --- a/packages/f2/src/components/index.ts +++ b/packages/f2/src/components/index.ts @@ -31,3 +31,4 @@ export { withCandlestick, CandlestickView, } from './candlestick'; +export { default as Pictorial, PictorialProps } from './pictorial'; diff --git a/packages/f2/src/components/pictorial/index.tsx b/packages/f2/src/components/pictorial/index.tsx new file mode 100644 index 000000000..58a55755c --- /dev/null +++ b/packages/f2/src/components/pictorial/index.tsx @@ -0,0 +1,4 @@ +import Pictorial, { PictorialProps } from './pictorial'; + +export { PictorialProps, Pictorial }; +export default Pictorial; diff --git a/packages/f2/src/components/pictorial/pictorial.tsx b/packages/f2/src/components/pictorial/pictorial.tsx new file mode 100644 index 000000000..032ee5ce2 --- /dev/null +++ b/packages/f2/src/components/pictorial/pictorial.tsx @@ -0,0 +1,35 @@ +import { jsx } from '@antv/f-engine'; +import { GeometryProps } from '../geometry'; +import { withInterval } from '../interval'; +import { DataRecord } from '../../chart/Data'; +export interface PictorialProps + extends GeometryProps { + symbol?: any; +} + +export default class Pictorial extends withInterval({}) { + props: PictorialProps; + + render() { + const { props, context } = this; + const { px2hd } = context; + const { symbol: Symbol } = px2hd(props); + const records = this.mapping(); + + return ( + + {records.map((record) => { + const { key, children } = record; + return ( + + {children.map((item) => { + const { xMax, xMin, yMax, yMin } = item; + return ; + })} + + ); + })} + + ); + } +} diff --git a/packages/f2/test/components/pictorial/__image_snapshots__/basic-test-tsx-pictorial-ellipse-symbol-1-snap.png b/packages/f2/test/components/pictorial/__image_snapshots__/basic-test-tsx-pictorial-ellipse-symbol-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf583c43e63ce08eb548213281508628c8df0fc GIT binary patch literal 10957 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 V2fQie!Pis)&0BX>OO(-%{~y$sxY_^! literal 0 HcmV?d00001 diff --git a/packages/f2/test/components/pictorial/__image_snapshots__/basic-test-tsx-pictorial-image-symbol-1-snap.png b/packages/f2/test/components/pictorial/__image_snapshots__/basic-test-tsx-pictorial-image-symbol-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d8578931156a7697e8a9dadeeae6416ff26f6d GIT binary patch literal 21603 zcmcG$1x(xD8!z1A?lxes!GPhz-C@{};qEdhUR=wD3}*~?cXy{71BNqnxQ!Oq4J~lH z-(PNWZ*ud#H@RujG~wIloF4ti^AM$}u85CAjRODx@RgP1wEzGh2lDeK76$U&Bk*Gt z0PqZ;EH9(uYj)Iw+ia_^%Z#W2PxSo3@*^VoF0jcIf~rR3CznMh-#k3o|2nJnW{%#; z$>_Z_4Z~nqv|f!d^Yb56bZlxw@-&t&W6f#0;skMCZV>)05cL97j4z*E4p(O}0>GCHA_g!avqr4UDz&|7R?1hhkYlQU4k5Q* zA>1efW)p0=VeJd7`iO zmq*K2xm1h-#gmg06Ox|p?q^dgD=UWsl;+)J)`6rDTv@CWHC9t%>p(mvN^68C)~1iP zN*b!KVeDDy{oR!m=oQrpt@Vn4z%=JSgZ)zz+X>6U;Wf|T9YCB@Xt}m?zY?65mgb7# z25MUlvPO3EO{{w)>I?|bO#!_FbPEqEU3`LgkwTV%-JLUg;^33Do;H)9KXYJJRaNsi z9`A)D=$8+eee5N_6NCFgM*ZM9S8?Y)pA-!Vv*5w)+wo$#OM9N`Sy@?(bkzp}Z=umV z$6kH2byJFeV*0LQ5{|F#9$!plat7M5f+4U zfJ%zix_IWE53q*5u??WZfDH8!%U*9LPYWO<2d_o1KKFYJMzRV@`EfB~A@`r+Z>4O%l5W6nPJ@7CFJuH^N~PRK6M zS0?tX2)(}4%Gr5Xxm3#c;)wy3I9<*cAC!&$3zKJKz^E)aF`{}>)I)iI&-hIqg$yB3 zqIe3G#FQGbE+dN>`iPQ9vQDa1xPoPgidvV9fnfvXMM?cM%{yg?hM_9GA@S`lX2Top z`AQ`JHMOiTpqLxb!(F)CC(-?@vCcImrl9~LP^;<3A0WT_wLTNlVn3PtA(ZkrRb8QFTmZUCmpfCUq}MiHukQ)E(xwR3-lEdpTj`(p zVL8%EQOVxV&`?PCgq{0*LpXG#Q?YCmiB17T1Pu5OBv^USMf;!^;#Vxi^34+K+jM>8 zP|;(dRBs^;3SgVgX5a||Ob5xEp%5eI-4ylY%dIJC`vsN$T zK>3sOZO_3Y!SkFx<+1MJdsx`=*GKS^5cq8OzfUg-LlUKhhik$u;)D>!&ean%QNj!@ zJ~wCglHY20x0t6bA(@1(zE_wUsU|{J*(e4y&j+T5Qj?_p7q?vo597He0uC2_cRL6N zCsxIHy1*1oVs=w|waO-I&9YQ@7zQQ=U#CAQaL}4T3sBd;>bpFO5=hmP1;Z~-R+}%( zY^{(BVb3w8BbN-jI8DOERwy(1gEl>0wm-&cJ|D!i3?Sx>+9U>9%z=(M{gHBduO_R- zkV+A{qhN7{Ro@Qa5C_nT;04|pLxX%!uYyUbrZCNWzMiZ|>QcSZ{rt4WXq0R7C3ed8 zwvq)_eI|=%095_`yt>5@mqi4$rO5weTxVl$`;iXXdb_>{$Z`3Tw=s`B7Z8Mb8yOvm z{=!318=VWWa)OHbxNeS-ng-~hQR37EwETLcBtXSgWP@&<37DbR4;m7aI%)$zvhP>z zR_RFVThlpkELwbJa4lM1A~^Xyfz{&yJTc1cesyXYhN{S`VlHW8h^iGZPbJHy)|!UA zMx56UOaY(^vn<}G)EAn7DyA<9JWj~P5vG&r#Ene`UFu%w0?fmD1a0j&mGc35s_*Ho zf1(&zV^#1knjr(W_|^IRZN+(H%qU43Se=R{HCT`A7?GAkV-GSQGV}?GLDtn$az@Jw zO@IZ$yHi>ZgEG%PEx%U;Yg^9?*k} z>?KIsZaxXw-2;Oeh!Oaoi9h9%jmAmz0)p`V$&sg%ezAO* zmy_OsJ9$C9n>~-O{ym}0DuX}XlCTX8eS!ezIjSZvnC*Lh4eXcNPk6)B;V~Uc8TL8Q zFDDtUJ+h4jZ7FB88|kAt-0ul5x|*a8x`YCI)paDjC+yuDMxIPk_T_B`rm{cVqTR=~ zr_Z=D4G$JJ4;IX>feIqh`tsQD(kqAKjhxWyUn`f>(kr517;x}@p~)5!lnE8;bl^v$ z={xhwUVnQ>jHP5fEiF1I7Uz7}^H7gsg2)Bvq2@^|8fAlgN-Z0N6)JHIe}NM*UaCbq z|I{1cxbfra@1OM($09CCQ$#Wz%@Jxf_e5Jxwq!9~PfpFgp!2MP>CDxE z2eB;86`%~}C32s#r1>)xTwX&=R>9M7f>7A_6$9S1f4XpU*p~YN6eN;ApJ|MdF0aPN zDu&hfXR+cdq$2aMd_WHXN)8)2bAOR&cJ{59rc-b+0uY@^&gNFgI+(ToMjW#tkjTLR zgF(Vo_2|0*6YxpGh1g9NTX8kN82jE_9UunER1<%K$j!_M1PSKe)f9(2xRkneusRwo z<)?>jb9_{8VTA~=4!hI^&u9edSMukY?Ffy?$V4+)LUidI!kp&x-TE}*U;MuDoZ zB7_ARVJKc7sCP_5fC_`7b<@OmY^+x^6gG9^q7Lh=3Y@sNB`XVv0d)cNV!p1+%9YVS z!Ye!~x$h=SU~ZE+YiQUr-krL}_c^1o7M4r#Sz$2DA`#`I*i3bdz(bah2F}n#Sos^- zP#Sn4Lsj+%NS&lPbPvLuUmeQ%9HDn++0yEX+@Z|3oC0pQR~kw!ead~Y4=nGa0II

~J48T5cIR4{q+EdGEbUuLp=&gNkxeEZ4JKE(x09*UN@{OMBhwEJ18fCz1;cy} zC&&0PC5{fCz(>c`ftEeEd(tnUeD3F?uwjS}NdcMKWqRw4X|<4ts6JF@8$Iv*5RT^O zn<$7P`%?YNo#I>Z5*aiz*``gu55piZN>{Rr(K3*UKUF)GHq9;fKB1=9}}L;s#rVAXI`(#-1CJ(-*mO2tL?8&wkPo-h7FeW@V3TazsJiT)%C#Tq4xB5Yg) zKg+<=kx1Pk;?5bVbqA-1-LWs`fd<>vAF=;#%I9BPnp{B8q$sBGa1SD)*-|}wrVk$) z1!tM9Q|Th&IU1%afWxy*C%lv0@%Z7p?X4^|>{8|gw=16}C3jf(`ZBZfsfWCAI_`e5 zN^;a3f$DlLe={n^2U0;l16NQtN_YmdtYarJPlEwvfNL@ce2|LLI+hq}yP^s_ji=g1 z{#_ApjRjEzwxdE7cm^kHydIHvn%#Haf;?l?)OLL|fTIQqPMq;w!-{5wav`0gwVipY zzH0LO&Zj=ND-IK_FrkZBe6LO_`Zr5dk7G{{ac(xR1ggy3W7H*6GW?TE=eXba48It> zHU{J#Ls}@I13ZI~15|zJ8~y-S;AuF~S7U9J6ZBIiz~ruX*VWbC{iL^O4htd12M{nD zxFHLm--1(Zqa#wS-gAHG1SmugWA z&<&YcLyO*g)xDR=B!h+{7UIKB77H$E#gesa18o{w@v>H*I{%p>TrPnRXb3bCg@*1{pq1cFe z;i&E-By-`(@1^p@XX5~~I`xuSRR(-oDU~4=bv4AUtwNZWl~r_SZ(0|1M6%}AkKc9N zbG2rUDou3z0-_J_rG^tyKGU{d^0?h%!F*EcLu_((u#ssus$r>N)-6ENc61d>3v0YI6JoT|h38b>KY$ zfdFZ%)P;N{%{{$F@~=1tT5}|Kc8mR_el-d3rGzA)`ceVt9$#Z^Mrx}poZeAwA6UiS z0lWV)Fe?(5(@M@&eC3UH0Eld(daz_fk;W_V>q04D9>*dFdxOF!b25S`_}zMM5c2wv z3Q<SzL`+RnJUJn9k)(`32sI2)v~CwMCA2}{v8^Rr(=bRN`-36#usY(=vxeJD5o zZGN=a1h-flay%$b57Q35a!T4mVzn2PRw)i|#v3?CG0Ox;U+W&K$ zif`a|h8eN(Dvt~`=Ad1YBIMLShG|M0h+|!UN2sYLn`?g-Vx~E#HSe42{igy)g0^hp z#mJjt4wl!o0<5#u*N5Re=NHM#rr>((T-;F{3tt@Sl6p%WE7ps-X*N_%UxTCJVD>l@ z)cHeoi!-H^q;v~QFH|4A58=9=m-~~cJp7{^qB@O|s*hUs%zyT$(K5x0%J)f)M1MIE zIQ4VjX7^9aqFYr`*NjMt>$hNH2ahOKMoU~i1-tP0qG6rfj_I&+Y6~pB6;c3J{|k~z z;~Pwe?O*AV{CRTSE@(UFPF?Zo0;u~oa-DU!oHv23bjqWPyZW8w4ejC2Pt~33srqJc zRlZTaBG_JX$rr!gYPapOQXJI3_ZNlne}Y1QsZfQe)9PZ%stKELW%j2fw`)o8irtC? zUKwFCEyFYsBgxHLR}T{F zR??Db^y*?E6V)uU;4N{Vw&($qyynYn!(OlG#H0hp5ER}Bo90;&`?T?-0k zLIPEIIm0s(Qex63S#_StK?`S$|6p-Otvl_wEgV1NiyZMurcC{QKkRj(Kw&wiCV}iCDBIoXJlc1d`q9drvM_AZ>c_*40aa>yt~m`e zRe7Hr33M*(@yW%;-?U{`N?UlqFNrMt(BA>G9Zc0fyn-6mj(AphH0dUpdGDjhLXuS2Kn9a=#AgRX=tR-2mD1CsW1P7FodJ`azQWk z#`sUdQ(W3V?8cugElSLmqfp({qPfh6+35HrEj(~6RF|ur2|qo)WUzQ@<_-lRm&zpU zODW2?(hGCyTrpU`*n@xND+^?3#|CmJHB*5{AT4%rOkS=d%Vq`_c#aoE6PFpF_bfNgo4vGnG6(}+5a^$kO|f5^Go6Q$_{g`*Kxf?@-koernO zrC-)k6U2N_u(PVAv>aQ(0+Xj&)gei1d;5RL`R#BSGuZKBU{!S6$d7}5oO|7}X}e{x z-&CfI?_=gOdTo4lL%f2C76Yk4#1DtQW)h5VPvzrtP*Y{YoD`>3mzULxA~%%ev~T>2 ztgtM+LV1r8t7EN5TH8F3EwJ3x@HgJnW8uu|l`o!}KIf0V8x?qkihjIrYmsl-+1(t7 zZxSnUsAIvB2v0)O8g#%nlRL*~x(8{&LdHbkc=3^o&ss2B+72@u8{c z`JvBrq)q?^H;dt#1$`pdc%?IsacNCWm2qL{?&;pL-{G4PkR?aBx$p@8-&lqcrBwfi zQ#}XH{O9#kvD;5=_Dsa%VrWk~B6LZWDx!YG7GwXcnixf`N^y{(&H-lftzA@{2A(&0 ze4csrmM0F6-h*@E+9DTaXe}q`q>r(?=N%HEMnyFv5h`(mOPBf#DA&}%05?)UP$lX8 zOSHjH43EPdI;|HlJg}pMM5dEXW*JU4niiTciR4a~Rwb2#{^1Afi#vaUH$441d~}iT zDs07f;`mumrQx>33Jy3Pc#dW_pqD9XeaKyGvWncr$q(~Sy1YAQ{5U_?sDD+A8`{3N zY20Bo<_MnrP&}@&V@P+{6gg?oowtRzXFSr(^`7`k%!V~2eO$&aPh>&g!{~|Tyb+lL z;Y7C3e9z<;HE3nd$*apdrqudz+yA+Hb2A<56PcOtqe}DL^OS7eNJjxx+71Hp^gr-p zWaX|g^{YV`F>b3I=% z_*hg^vw~t!6BVqAFYZKgTpgU1VWaM~vF_DrMHpeXC5bK*Q^xeDouk*$HT`-oVKL2{ z1l`QA7KVDec$i=l_Hztr-*k-tVXSk9s4MHl*A|_CP`H|9wwgdTZjTK&jonrAX(1 ze_01JbVTh-CjCy-Winl<`U+eJ<4FEIK;$=gYRlfire$97i@kezhl7FrORr!(y*1UH zL8LU+?)LAa<#*yt4znRXiu#1fc;M$&?a#6~YtIC`QIgayNJ3|@bG&Pnis`;Pb*v7% zOpeJ0D{|=_y_=jEb-+KI)Or;VSU4cq`8Xb}AskmIr2Xcr;DR%-TCk+gYtU?Nk4su> zOS~lX$0UW2<44AlYy4)Q@oJO&fR2yI(1IxX~lniQA z_iMzj11%ogU}Tw#KBc*2C1aJWEPYq4=Fsk9eZ5wn)qzpb>j^16U*6AOqx~oUTx9TgCFAw8v&d0J<3meH~)Yhyju) z8*c%}0JpcXXJAlNQ+imIPl4LZ*k6^lN`MDx{RDGE9)TMOqOUisCF@Zz6(>~UsSta{L#7*h zHuF4e9qE`6Y}g{X_vOj@WAzscH*o9^c2zpg*+NU_wQxZ-KK8#*e*OjUpbj984b4OG zeF2F?@uh?GMe!Kz4^nOaPj~Fv>G6RX(1z;kg>?5|Ydrz39k=^c@YK}QUTW(xM=E^W zOQgHxih26StnTWeX;ShIj7dm`_>nxlJ+iJqH`GKo(Xr2T=VZ&%)|ql~uAjp$!G0|r zoXocI(zziCCU6qKw5+{}qiQ^sZ&Mdrgi`IbB}tKUnq-w3vzF2tkrI$DYY1Gzsclt} zG*s9x=7fyWdWGTCdTjt^A27c0NMtr?4y<2YeA;!)Y>R}UX(9Jb6+))8i+P}P{ha@Je7tS z`6NEmB>K*Q7zCHG)5uAh(eaz2QZ&7Mm2me}CEO0RxC93xOlO{r3ZK53wyKo)e#TEZ z%A}F#mDnf^;x=AKtg4vH(aqNdd00`sDs4}wTKvXLW8IDMm%nLrz%oG-W+o;GqrUYJ zkGAD|y#Km-IU#+x&>^5W9zg%QkSvx|ww4t=eF9G}*I+w6bksUFfeYegve3>isg7N| zASLufY4)bL`$K1hMHvb!DuG6>;>L5Ua`8Yj{**Er-&Zm3(^eZ%%J3G>wEncflK<53 z^G54e3rM~%ZkFPns#FmxJ@e~?!Du4@&1@>fYqt$imQeTTplTRt)*-&oO8voFzzNec z30eR>`AI3Z@V_bQG420GQ6)i+I+P=>J6=$~0c^-$f;!*A88^=w>Ny-f%wHjHV5p#) zf;I_|6{%a{Xf78!L0iq={Xx|XR>j46(oyx(EG0i{dpW&2=sT~u*@5OgDG_H` zcN)>?7Zt-<7q(ab$pvuvDcH9yhq>uYpGSpJt&JEGci#HkbGZc42s!;gj{xKxW)8;* ztqFs7rwaJ$y3a?%E*4FFR=vtflSTEBR-VMo)xQZa)^p1Hw^G%@t1J!jt>$?xGeJWx z+{-(5PZVVM;`~-?G%K1pe5ytiOSFvr-dP@}S&8ioHu}^B7A2WR(-c23fcu0%ajP4x zCN@)IWI5l=m8pH!Cg8aGl9AJ{rBn8r<7zx*Dw|>f>BIbUYMJTwGrS`5G}u>dK`EJ= zMQ764NH)^bBU!8brFrLm4~?$$UoJo)ueD`WHm_xRf;CY~mb$Sn*lQoES$i$|DQ_`v zPTa|fATOj=y78R>Cl?X`{G*uWaFq~(+?kx+YYdTaJWN}T=SUG+y1^O; zCL6fB=}pgF`WqUCjrP((72(-6I|)v{p~T0LHwvP6t7lyB5K~rBK2lEn#=Dt_^LG2C zw3`*k>3m;$drHeERqMYjA(HaHQ2y~Zw>CP%O3p=&sH1_$w}sL)kVxr~r`|rv$kmHH zz5BM;SNl_~#%U$IFaxw_neWdF_FTccVm}uNY*SI!5+lXpJ%52IwL4Zio^RZ2t8JbK zni^JSB0be62Ig6$I1+}|HQp&epPCZI((;8BZ%dWcGH;A0C@;%+y3!Hq!C57^(9IVA zi%lxU`#E}QAPc~qfL3FPER?;jv?$oGw^>x=aR9r>k)es_qC2uJ#q{fZDsmF$<@-u7 zYO{|EDvkPmL^~?}XpR&HwkF8!3^ z&YFvF6IC`XWnhY<%_7!=7l98~z~UO^(Z&v~eul@Y0-|~5cfe}*`TlQz1?%*8ZMs8y zf7Xo)P+f!HBQZM)hoew5s*XbT3K{7AK;q8sFD=J6dTYTB1F?K%erozA&ugQbE2|PG zqo7K0$`f8Q*R*3E`6Ifd4w0)*!h}LRE0a_I+Dct^O+dZqh7Y*(A~9meSp&zelNKF9 zA6)jIdriozz@K^bp<2Ge+;{`9XXHsy7sgjAW7yOI*l-=o0&>{sX8HgUvo6y6W;N6%IaaBR}mIQ~*myNTCgk-G*-vHFeh8 zmJ@9nL-<;yjL~c2wTgy3R7y_eP0oeVvuxbrnWbcH0q+gRK2$7oIhK1yE%*i2hdxCt z^KV-1m`xvCH*05(2@Jzz@4%8Gd`fk9x%;Vtid}v0B0jMw*!w0(a`?Q1?=*Rob-9;j zM@ZMOa#Ly$ZLJ?_KNoDBfm`TcN`S{q$t})S&0J8HZWP%zK#msUnNeQrYYIHr8WXbA z0xHIkln3$4(>Tm~^WCzL2%=mRyj)-y%k!{E#uC;UtNyl7Pj;*G$cIs}qpFigEf7$;jdu6^u9dCtxvD#TGIQXzLrjM5&sC6jC zk^zGbU2rhU!G7vXw{SrKqx>@VZSdxpL)nxKIEB752=XV?JeVml7z=9>SdZOYhTn-5 zyZYvuL$(vU;<5L1n%!kFKUc_0XwSYkWZ=NYJ)mH^)@F&7{X^)G6FQewZWdwmQj*w| zZR!*Am<(!hVG&HqnXz-IoDeIRwEfXk;bh=3Xi+zFp^n(x^y=fs~!)J7A^UmMo3mT4DbT14&Wst z`OGt=@Jq+sj)b=^MQjBdGU!q^%BwwLD=7$P_^h>*|25c&?pXVC9_M7vjxr`LVbuWB z0=32cnwJlwXL>*|s29uNYW3cJQ_3Xh$2=mmzt0h?{xFeL8Vsc#;Z-4>_);~Iu`}Va z+yjOd+Pzo`Z45IC5dHDAe*d>XtdOVFlRnaqPq0LsWjB~u9vnG*ZmKvI&DZP&TsAFR z+6#?QIWmdhk{H5p;(p@|&JnBrh~B#c=+j3u+H2mgu88sEo9%g)@FL*o-6!o;2m?5i zR1+x&0*oennfI)XMV1yPB*lI-+2wXAw|8rb{P81LJVaAPmpc&4DC1R#`>=D<`s;+3 zK0PZezQfB7^I_cYj~$WA^>-c9nZMh52l-2T5NE@Iw0L>K+fEzL!O#psboC5bABvz? zKI`a#7wQ{R3y}VG3<`qfEy6zVU8)f`sD=fVWA)mL5rbYVz|@W*Au6QATjY7OATId4 zG*E-UU>tF>zx+nR=USU@TJ<7{kewyEF%G4HT}+TM+wR58SRlUZ!$n1BDN>?T!!_Uz zSc(3eY9lQnlOeVj+XO+Tg^2IsZOD`XyVSiNzm=QwZEl;K60Ts<-Uzy#v_bBA(N_Yn z+8@{0cGJ2UM_oG3XIjZEek^jah1xu88cSLaCzsMba+^HwAsoOKO*~B!>=OddBLZ`pn`;_~4_7PGBbvT1v(=MK!k>xcsuJ?2)%Z_kLvk3k#>5So?Lwb50JO zz+A>F)X1B>!*FY6H;Mf;CwAya({m*f-m726Bwg87&A)lo$#hdOGTwVF*_1I*sjfA} zMpx8=RGyhQJB`b1yu^>8Zs4!a#Drzn+Nt}ae&Y~xEHnOCw7pXI*^y5G>AnNsw68m( z8>kuL#Gap|G_es{)v5{I)^=aZ6G)?#i&qbMV=Zu?dHp6A;GA^8$A}$~-!FwV%uB0# zc+E6k*E0vs&{o}{7mYKj}A;${HQ`>!Pnc48u{S%qUwL3BHj)N;pumD?t`#`@;9YWU&k zes&nPUIuCh#4(w8AC5sclTYvs-eZxW<=Tz_k-?k4 zi7eB_ng95%xE6Cs&bLJzpFeySNnm=gZV`!=b4{exy&$3wAQ5DeLOQ=(yc__5U0Nt>@>qrk*Q|Gw%wEOeite%c&>^k zJ|3m}W|*!0r`4ZT_LRy>u#n&NYss`H7>HY8x$Hs$WXeWs$-7senjV3uqH$8k#`000 zo*2V>r{6bn8~b}8YU{szc}i%bdma$;?QMh}7FD)_(=1Aifc2|NxVV;@=zEM%Wp3v< z(pg`EJ^W%OBL2fZeOsP&G@r)V8dfyWxzDByVcTi4(CfL_Y46X53`0oG8pBLiu&} zS3r{j7vVAd>0(A8Z|_th_4`pF<{AFF&aXGWI+Cjmz9P@zbtC?2iiN8e5y%aIT@k+s zF9mXhYEMWr175Naha?Hsfn!rG$eKsCk@=JFmGmRlliao)eZ|HM0k??%^ ztt)|nlRoAIf!;Z@!_|~l%5P+5RtG^@g&~qk)afDb)sYjrOO!cva2>m1hEmLkkITFF z!%tj$Sr)!lce=SGecIoEmE3gQ&aJo7WRTCyuA}AIEs@-Q=Z_pvu<-V_6*p}Pl)TLz z7wW!qZOe;by2$1ok%AwHPjWdDVoU0**r&IFFc=Tg>DV%Ef^;mSwma%FFGL2Bwnw~T zJu3}D`^)yYQ-nV+K zz&U&U*Dv=sc0Uv61G_0JMe&4d3 z3>cH7ajMm82djNkJr>e~{dV)IhvW#R8qtMc--c$o*hJtvUyA2GE!bDMHj)X<{x1G> zuVwSdC;Ozm4g;DTz3Hd&5-vWWhQ{n;- z%f*Q%LH$4$5tFN-e;a6R|JZY)4cp5Y^=sFKVd0GAb@4O|h%rhTxsqSxmid)JUIOo4 zGx&ObeT%MB0?bg+$@oY?Hg38d?nwH&qXElg>(W6#!#c?}vPQOK=@)Mstlc+qgGqzX;%#(A!DK*3{ z{w+e7R_WA1K2=dfAih!w8}1-o<1c+J_(L>=T#cWbMUPVEX?1cP<<_x)Yn;nUny&af&G~oFpr|`<`Xzfp3IbofqhsQup&6-b8^GRh+jIS+Y}#dSi3z ztw|pkKG~r^*ne&yscX9Vl~Q{R@vK-;7`#eRg&OyUVAN%=Awn*guy3)LXSeZt0)zHo z?o`SnQ};!Pa|Py#5j)TQSl>Bf=1DnR%unE@uekj&4N3VgLwVNiCCr^n>aN=Uym%c; z&2Df0yX&N;^)M^Z1iPl?7*yV#kJ50-|Mi@-o8Fy zR8=f$-Bu{Ik|=<-uo)wRRz%wjY{dC4m0)T8Co{zB2A3@}x;Bj*d@AkvzKu?_BZ|o% z8>rf`k`=mx;lDNhDXk28JqXU{B8Ev9w-o0L*;U+TbF=iC*p8RT$}8VV2WN#bZR z2XqTSJFoY2ISM`&7+Jig`14ctmbH0T0c&UGGkmw=-6FBUVPoYJ`_Q4*YXu5hC(G29 z=NhDZHe8y2SSUxIe)0Yg)ufnGbe8)j8jO8Sp9I zYxJ~J=;;XxlcSpW5HF;?)tNlOWK)oIn%=CnYcFSFEFYLVa48&&YheDd51KyVAws!KLJ$m|Lad{qJYIahYPF!ErC`V=zl# z2ZRkKmxoid+x){OAFRxio2G&8Pu+72p6iC3xwhIbX9JvWMwPn0e;g_ek9oZr%s2XU zQjjk3B)Hlw$h|Y`&?>eIh!BCWpdux;gaN8YWSUSQ-~`hR2ciM=b%}N78KeT5z!Kj3 ze52xy#xDgwlDpico@NTJt-bJh{RzSwe4*->C;UvYcH^JaFI;n(};#GhhfG(fHT z`=$Y3YrT6DrxI9&Qkz*sg3*1KP}*Q?mTRtHuGfj4ak2^amwUmr&ekMm-fwvU1+N+V z%zHs;Gqia12ulUSxt$Huo(9Yq{a^~8QGQ--sY#ye9$T23no$r;WYjySu@IfK-Zw6x z{iKSy+zv>&)KiVRZs;sJngs(1AV%`kQs%`Qh6kyxP_Kyr8fd2nfCpC;&Hw)e9D9I+ zvfP~~imNO#Eaf-k;v#E2e`I;{CGg6I!{%?Q!oz+Y?yl_BCT4d>nDPDoaPfp%RqTE6 zX94Wk+PUyYgg&V;cagj&Z$g>Gqv(^a9FNhA<7_l~w%OKLy^W61UroGx35_|XmP4wk z)6vChQ49sb)1n%g+6=`%90E}&fS)e5e%jIbze}TIJ1@$3KQ5X=7oWlhYXNSErG^Xd zvx9-FBqjT;-y|9RlF7!nsqF;&Bn7)-A0lhI9NS1wSa&Jc z73)-t&ieVBEbY@&Z=}fYLeX2WeDvV{Pd&?zc`cDZ%WT+c~RI_Y0tyIFMJ(v+RIvOyAwUE zI1%Z@s&=aCs6Rp22{a|yZSsB_Av_o}O8C1W^z4}?G7TK1E!*eonHf)1I>5$T<}j#GcYc0SKc z0%nk`GfK_-@!=kR^0Q%kG|fEtCWvQ{1$f<@<%hM?WWphL5k$)ZlGBAao!G00$N`&NZplx&sAQ~MAUf<+jd%{sN zxg#cdTEX391?OrvNJKu%Hw&)W=C$khvxMh~ZK&@1oU{`6YxP%Jj~**ouTv#Vb;;y5 zDzZi=%B)wx-GU2V0c18ZFfeU9(zq`Y~5iR>K+R6c^&Zt1TUcRsl~zNDDc*3Ft( zku!75OEpbai6H^ii29JvE>X77tuHo#HuoZaZ}6CBify#WISldYzdxe5J1&yQ z7e6bSPxp>$S*~uG-P_nGImw`BO28L?_>cWjXSM*cLKbczK$z+JCSG&82_|M{4=4~Y zFc2LYgUl0)=b7Gncmg;F)%yL9`V7vz zGyP9WA`mKKmLWwLQ>bw^;%*~&1uiL;JXDSsAq z3<56opqxrz!t9~r-SWq--*;*nNt;)qt-#DUvLGO;eLVg4%EI&`|5kC7n&9BICm>{V z`!n!no@#q?0-5NSq}3TZ!VS5zv$vmI|63r%^ICMyeD|p0t?A1?@;tG?T);miMOg&( z!TT90(TrMUoZb>aO^5@Knz((}!Z-PK>Pes5VkUfB8n0?HFIn&_x_JGmAMO52@a;Wi z)3#xQ>l?qZy@$)b?4SM_-?q$L^OPY9m~HMmw29w1$`+X)Q%&u6*5MyrTF;8S@yXTl ziJpW~EH6c;og6+-GI3_B*5dqcK6IYF^iiG(v+KXzE+3t5%TB<@A2wBTc zAxi8Z4f`Cg`RAgGUWbD;uGu1NF3gu=YhrZ-^Ie zhop|WDW>60?@lobRx@t<{w%R6dW%A;S&OuruV~UEXRZYTEA0+$HNWfM<~P0LY9Y2P#|KQU>? z3lE}kYk85<6O_oRN4J0F4egt8|4m6^@kTa7(IkKshGsCGif+=8plm5PqR6D(y_cqy z-^u1Sy0YMh=g;yaIg`AP)LjQ$Afj{|rDYLQn+RXg$_GC^*=21Wa1+A+aj3iel)&}2 z=-;Ie%l~A%{fig;wv1{9(a_s$wkPl|gvI{e1Hxaso+9*MUFZAD)6MaPlCRR21nRO+ zS;2`%acODJ(aSt#gHyAgHTd8$QMlhHzz=$6HesXCZB1OlgKx)Cq@rEAP%VRSiU@Z* z@yEp0_5*+|lgovVgv-;<}mQM6&UQv>`A;+$1KmyguAKUTZ9 zNXLDaGmmO(Y6!{>@NK}kRirR9UUv8{4G5Ul7St_z^lI3pp;)=TIAH%0V`DmUO=ahTY$&;M2Z?{ zZtA~RkZO(Bx;D?M7kI&tQQ{(0y1($ubU;5kO>{&``<~OZwhU*pu+}GaC9K@fkY6mj z$0eK2XDgF%KzoNRC#v=5&ay?8A&g_P5^AuUVDC?ql?lI5qgcB z)utNkDB7imGQYE18>6PlKH+QFp)6EvDQ2!wpx+Hs(PvyjDU*&2xqmhS)r2tTWeNwJ z2Mia4=%nfpt5;!t-13xqJ1Y`;fmCN54OHAg7d~LknCN_)J!7hrJO_#Cz(cZ0x=M5| z`jNyYoi3HweIFDnI_*+TJZtTXy`y1R@t)tuxC|OqIx8z&G2L#4t{>t9E(GNSgPZzN z4Ltx=p^)5Z#Rpd6uoBMEDm0@p;W9KbVTbO!S>e_~L?+jGl%T>oFEjunw{<@+l zOVyRzEUb#Dz121g{eD?SQ3z!!D;=)(oOz4N4*uYy4@~|*v0h<&bjot`-k!C5oQN<9 z)_>0#(%S=IhmY)(<_haPIPt#S!6so63(c&}LcF)j?Rd%b_CN~P#nt25Lro=^-61qW z*HGBNv|hKPzLC~cyo{OLhq(6UMB7WP44J(~R3iZ`jMy3e@e2!XV~e6W^J!8J8`11L zj(xC6d4sRX?Z1%h^g~Q(QTL+ELHniRTM%DqPau<%9Db~YE%N@{aEU@g7$Ine!F)`Dxe6x07pOcl5 zjhb<(Hr;@Dm#y!D!R8@b+9PO&XOo8G?nzeu=G->`vO`TVF0u`;uMVWJ9z64--q*WCMvz}$*h0AIn{@AjgIqk+t-0u@mUG;l1g*d`Dx`06(he_ zxR9_(n_cj=g`F_K+-n~IoQu@VQA&)rF8K9a_q~ox^Am1Y+z!3|(`;)Rhrh)8QocuO zU9{YD*mr78zccQcZ*6Q;7uBaWeVSk8@5R0-2YO4A$WcMt_S1oxONSsJU`zY+=@#yD zi)E2jWolc5*+bIGkRd$Dbb?o^w!Z4MrudLfU{Q?_xwDu5fa7z+8`^V`JMrk5pln=` z0>LBTJed7+eXuPvMPJp$yMO^QU`n8>-tHI1>z1xGu?ci77?}@d(2>RXE|H+#Ab!%k z?L-ha#G+RavtGP`<}TGv-=5U1X+Q|GH76oP8}QP&;k#E(O9cZ)*ZWLRNRrf>jal{0oHeZ?~z03ajz`+or#!CIAZUG;@~D*anm<4?bfyP4VOgc_+^%=LRE z64kQb)H9{@`CM?X8V`-yZyHzJZh`%+tfG;pBzfRGl zxfzHU2@?<{%K7qU+Pb}zH_mFw@n@VFPgPrakimF=A;CvNmWGPmFpo&=dbF2b=aQ2M zBYSN(Hr$FAPI5-53z2}zQZC^Z*$ZMnotp-3_;hv4QXr(B({V7!cBA0C{||DsFtw&)2kKwYA#kzRSpe5; zDaFq%mjqK3j61~luVnAz_K5;6@VLM)8RcMq!)vpZ;12w0^Q+%Z zUaFAa7w2fJpIZC)^Sf3*04T-03_b6Tah?&4Sabng%il8xiR=1|QY!#!cLuVD7#NWB z2^{2C2k92i(WcD=r5t;d-TBW;=ft(5tf3ej5N~1RG*tjWAA+s3R-KHYBjLf~)atz; zefy}VO~03oC~tiS&1(|G-@h-}SCy>3bg4i(6e&T#>g{CL+_fEH4GF_>T#FnI$3$9w@rXcXp8|p}LUYVB^`pJOdi6t&cW8UlI|L2)Nphs|%U_DLbm;y5ZlIP? zxB|iczKA+e%l?zWLzbZ4Z~wHd%;tzc-tAG7?2x&w0SEkg16BjS zcn-vuey;PQUD3E2N}iHzkG0q(m2F;^0{EdGLAAKk2RO|UgbWRnH<%?()j^{<$mP)A z7UlG^gTeshIL7~_>|!7&4!5w%IgSDPnFDITx=s$z@!t9Es;OXw;tTt%dm)P72GGcu7lN=E1c zyg8@VnnbYVQ!4e*=GMk$Qv}RUob>^qo}?^%FuEu+}TN$)8sMYXfAQs9{O-vGl~AU{5JUpn=V2P=Ym-Tu zZ=ZYqr|`?umH&Iam$m@bdL=jc^9o>XfQ%D;SPGv}AhW9LDz4Acw=g4ur=a1uG!yB3 zSA9DIksRTw)H0M-*E3kk%(LvJS!!izX!567Wnm9sHvbo$_gR%;&PV<#`M<0Vo+o}I z*r`N2NrnZmHej`Et}cqxy~XR%nh%SBMJ32W=22-jUc7*gY?@dEEhW>VsmISW z9jO)ZIRCcXTC9RXC;d|8$R`M@s;^8>rJ>>2YG+B>I-b|ccOea|ych*Ri(o0U&m8Mj zFl<%Q%3ms(&Uv$}`SpLgr5 z&TC=@1tnQyz9j;L0i6StX*yn$jFzBGu@$Uu!oet|5 zb`XLa=$0@sto&_4q#Wt%3<#a-ovrQM0Z#}+<7iy=+wHL&Pu0GjL%)i`uI5wS$L!0r zZ1$b1afb6At%$^q0pS<_K&emHE3T7zUIDBP5Vtwq#kHy{pX3}T&)c5IpeZIym4!JE znPa>vs?5UgsgY^dPQap=Fr_LHu-J{^ln2orEWeWP2C^Od&NByaF81DSj7XF=`GuRzr5T-ueWSKCJ-}VaB$Oi&A+Q_<6z?L2|PI{ zv7g>dRRW3Q*mdtM+Z<;6dz+KbVR^ahn*5*w%MP{tl`#Z#?AI@?HkzyVs%_Z+`~Jk+ zfE(c?bg`utU~3xI8()-ab4w+j$a^wPisiQa!K+Y>8bIjNa(V$TcC%tmT|B}slTy&A zx{ZO(3gcm=%$SN9(BV$)j`xPsAC%L(u2txBup7nwTXk9+Ux6NfHf^a$)_eb?pZ~#1 zd*aPb?S}8vS_nw|oNH62;bh>$^8_H$eDb?Y?FA(ITjS__{>^@*DM>ra=O7@|JagdE zoRqY**5tDFLcqG}Ls`C@^-ApIomT*B17w}{{Obyl^4&H%+pSosJKFO+SIxw1$^cO3 zQp(bovZ%o9Y&FYzN06K@Ps1#ND9t|YI?A6#&8#lnmG>!-GBagG0(H>^PmL_5yQNBA z+Fnj~X)6Q>YE=B&K2w`_z`;I}waWpEee)4y{dTHxZC$wu z$kt)E1@`_%0P=6 zRwLP3&Va8!`=d}A8i7Q9ur()i7!fdaar99Xgw#t?d)KdFy!?H_F^jeM(@TkY)mt9E<`5{w6?JsDQf zZ1i0~nu<${JrBcLftgyn3JEjbr_R?LG!{+G`eM0RSnpgqz&5nLvP-z$Rk8u+wFX#C z4Qm5_%Vz9i+DL}$m0{ZZl4`e3=H6-@<^CgqPySsKC|2uF?b((PMGZ+>oW_)frSmmb z-e0~u*aS&yFW}5}EAU>-_xUHT`F`4@+FJs&VmQP4=ESX72^C zCM*1H16ZUr(9c5?j86C54@A?C$C?^et^qZ*peB$BOllG-&9%fxhN^GAmfgu-!AipH z>~g*9r`$D6%bAmTh*`bV69YTU|9_20>((#%L?)2t|J|Zp zm--qlih16z9p)OjCYCz)$|wifj-qz#1T?vMm~*YPPI#^X)?&}Js^&cS9YKmf%C@-! z-uPV^plVFEyIrF%#oNF^g63pV%1a|zHid7?G zX)C=heeOWUg_!#|au&0m)|wChuKg_@3ny{v3EbrD*g19FTpi~&ZHs%nRdaMJ1FYuF zEzKzRAMyGS{ONZxUR4%jD4$W%F$XlYH*%;`5RCZgq|_YP*80xEa(u_ph^+3kZ?aYB z#Lus7KAwM`wujJ`;?=YUSoC@DsYo@Qi_Ad7x0SWf^)!{XBOgWHPTCX~p8CndEpnBA zNRt|L(CtDRk1d0xVuj5k;kG(dkV& z3v{|P5j)AW9DXKnNxLE-81Oq7Nh2~%$28`O;=l)s+9)8J$7kGUr3W9c4Zq_{^WZT7 zmfGq1v9EkS_AqSBDGfr1)1@^Rz*_HPI6JR?A{(zJtPrMs}NriHiR@Fhm za=&_t)=zYMQs@4Y71H90SGWqvXabcjR^Cv3kIWx-!_+rIE(_ftS$M~^J&o6UY3+LQ z_w!ot!6Lvi5bJl11usCLT+IcL$$i+D#D^G3r(M^=D&G@vh6;XnoYw2nR(8q6+;P+Ax^5htQ@5tQg}X0DJ_%qX66i z;G!7g=hj+?t!Y@~?KB;pD}S%ZSPMo^)^4vtj-^FvNL8$tvX$lqF9#|{;Xq@o^^7*1 zF_-K7?`l&KL8}zbRvg2~iVW&ytQw)Q`i^sII+W!fabL-_E$$NntlUSGJG=>G0ueo& zsJRem81T;P(u_8!BKWFTCGV9s&2sgMT&T3TD%?wJp$dktuC^UxJZYuSqti|Hpi^W+ zy=EHuWtu*$!oyncGCBIZ7~>xSI0L|i06xUeF~$ov9bn1l!HH=R6MzU1%ZoGze>x7Gu0=|Ni~Y8Vm+E z#~4>)MH;KUJq_#ME+d%VNah&RkyMLL3zQ2|CA0DZ5%nVX?4)%`bAnSv l-d0e39 zS+4<1MKEkko@Xa|-Yd^Ks=27#mp!SoeD9hIzvr)6?pJCYO`5?VOdDrsy!S@`pwZIIh8(7S#ZpJolI;B|sXd*y_-l7?BNTtyogi!jvz|{G6sy7rc7~|nir}NCcd-vXQ_0?C;EiEm5HO9DRhQxyh5AI1ReX`&0-*Vo0=Y8Yg!GqtG zQhLaw|32rP|LLPOSdFs)k0qmgaSsJ7uS2jWI+uLN5c+ps{Hsqn8S2yw;o143Ny>s8x7bM1bKY-`O z7(W?fd@O)lV~lHZfld}cH80>f*ZjK=lNY_Zs@`yLA9WAp$Bz|SUq6}~*ZM@yHb2Rg=~!zbrQYo4@BF#<{p3ag(y04y zI{?<-0{D20@pUoA{QzDbV|?^_(RotmrAxo>dLVs2Lg3s^Z}>kl2f3#pRs%EJ>L9NQ zIGS2jvrT^gjCFoJ*h&iI{44vM5qO60&n2XE2hh0{%l)guuipHZlak?P>Nmamdmf72 zyWWH}cs4?KBmfp|TzQ@FHECS;zbn1 zrUop@k^ZYad-fa*&29HhDCqRF7oCEg-E(jxoP}=xEFheRPVYOB29E^7!_n!Si-dhUK1L!Z`iO@TMojVtiy2}`_3d}vrc+lxfh#y??eaUGS`NZd* zUiGvYe8+dNlu-}&40S?3&3CzgTXxr;V@Eq0G-a=0Pe*g-Gxr?n^?H-0G9d( z5q95+U7cmjE-c}2zmHwJmT>Fmm%|5d8>VPXTso5-pa9ln { + it('image symbol', async () => { + const { props } = ( + + + + + ( + + + + + + )} + /> + + + ); + + const canvas = new Canvas(props); + await canvas.render(); + + await delay(1000); + expect(context).toMatchImageSnapshot(); + }); + + it('ellipse symbol', async () => { + const { props } = ( + + + + ( + + + + + + )} + /> + + + ); + + const canvas = new Canvas(props); + await canvas.render(); + + await delay(1000); + expect(context).toMatchImageSnapshot(); + }); +}); From 736701d6968563f44b28500cbdc60e39c1c6a5b5 Mon Sep 17 00:00:00 2001 From: xuying <33517362+tangying1027@users.noreply.github.com> Date: Tue, 28 May 2024 20:31:22 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20symbolsize=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BAwidth=20height=20(#1968)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: xuying.xu --- packages/f2/src/components/pictorial/pictorial.tsx | 2 +- .../f2/test/components/pictorial/basic.test.tsx | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/f2/src/components/pictorial/pictorial.tsx b/packages/f2/src/components/pictorial/pictorial.tsx index 032ee5ce2..2f943ea87 100644 --- a/packages/f2/src/components/pictorial/pictorial.tsx +++ b/packages/f2/src/components/pictorial/pictorial.tsx @@ -24,7 +24,7 @@ export default class Pictorial extends withInterval({}) { {children.map((item) => { const { xMax, xMin, yMax, yMin } = item; - return ; + return ; })} ); diff --git a/packages/f2/test/components/pictorial/basic.test.tsx b/packages/f2/test/components/pictorial/basic.test.tsx index 14d848e43..c7b6bfe9d 100644 --- a/packages/f2/test/components/pictorial/basic.test.tsx +++ b/packages/f2/test/components/pictorial/basic.test.tsx @@ -78,13 +78,13 @@ describe('pictorial', () => { ( + symbol={({ xMin, xMax, yMin, yMax, width, height, origin }) => ( { style={{ x: xMin, y: yMin, - width: symbolSize[0], - height: symbolSize[1], + width, + height, fill: 'l(90) 0:#9cc1ff 1:#ecf5ff', fillOpacity: 0.9, }} /> Date: Wed, 29 May 2024 17:08:03 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20size=E6=94=AF=E6=8C=81px=20(#1969)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: xuying.xu --- packages/f2/src/components/geometry/index.tsx | 34 +++++++++---- .../src/components/interval/withInterval.tsx | 1 - packages/f2/src/controller/attr.ts | 3 +- ...nge-\346\224\257\346\214\201px-1-snap.png" | Bin 0 -> 13047 bytes ...ze-\346\224\257\346\214\201-px-1-snap.png" | Bin 0 -> 13925 bytes .../f2/test/components/geometry/attr.test.tsx | 48 ++++++++++++++++++ 6 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 "packages/f2/test/components/geometry/__image_snapshots__/attr-test-tsx-geometry-attr-size-field-range-\346\224\257\346\214\201px-1-snap.png" create mode 100644 "packages/f2/test/components/geometry/__image_snapshots__/attr-test-tsx-geometry-attr-size-\346\224\257\346\214\201-px-1-snap.png" diff --git a/packages/f2/src/components/geometry/index.tsx b/packages/f2/src/components/geometry/index.tsx index b176a9295..996301626 100644 --- a/packages/f2/src/components/geometry/index.tsx +++ b/packages/f2/src/components/geometry/index.tsx @@ -13,7 +13,7 @@ import { ChartChildProps } from '../../chart'; import Selection, { SelectionProps, SelectionState } from './selection'; import { Adjust, Dodge, Jitter, Stack, Symmetric } from '../../deps/f2-adjust/src'; import { toTimeStamp } from '../../util/index'; -import AttrController from '../../controller/attr'; +import AttrController, { ATTRS } from '../../controller/attr'; import { Scale } from '../../deps/f2-scale/src'; import { AnimationProps, isEqual } from '@antv/f-engine'; import { AdjustType, AdjustProps } from './Adjust'; @@ -116,26 +116,39 @@ class Geometry< super(props, context); mix(this, this.getDefaultCfg()); - const { chart, coord } = props; + const { chart } = props; const attrsRange = this._getThemeAttrsRange(); this.attrController = new AttrController(chart.scale, attrsRange); - const { attrController, justifyContent } = this; + const { attrController } = this; - const attrOptions = attrController.getAttrOptions(props, !coord.isCyclic() || justifyContent); + const attrOptions = this.getAttrOptions(props); attrController.create(attrOptions); } + getAttrOptions(props) { + const { coord } = props; + const { attrController, justifyContent } = this; + const justifyContentCenter = !coord.isCyclic() || justifyContent; + + const args = {}; + ATTRS.forEach((d) => (args[d] = props[d])); + + const attrOptions = attrController.getAttrOptions( + this.context.px2hd(args), + justifyContentCenter + ); + return attrOptions; + } + willReceiveProps(nextProps) { - const { props: lastProps, attrController, justifyContent } = this; - const { data: nextData, adjust: nextAdjust, coord, selection } = nextProps; + const { props: lastProps, attrController } = this; + const { data: nextData, adjust: nextAdjust, selection } = nextProps; const { data: lastData, adjust: lastAdjust, selection: lastSelection } = lastProps; - const justifyContentCenter = !coord.isCyclic() || justifyContent; - const lastAttrOptions = attrController.getAttrOptions(lastProps, justifyContentCenter); - + const lastAttrOptions = this.getAttrOptions(lastProps); attrController.attrsRange = this._getThemeAttrsRange(); - const nextAttrOptions = attrController.getAttrOptions(nextProps, justifyContentCenter); + const nextAttrOptions = this.getAttrOptions(nextProps); if (!isEqual(nextAttrOptions, lastAttrOptions)) { attrController.update(nextAttrOptions); @@ -473,6 +486,7 @@ class Geometry< const defaultAttrValues = attrController.getDefaultAttrValues(); const mappedRecords = []; + for (let i = 0, len = records.length; i < len; i++) { const record = records[i]; const { children } = record; diff --git a/packages/f2/src/components/interval/withInterval.tsx b/packages/f2/src/components/interval/withInterval.tsx index 76a8822e9..b005a5502 100644 --- a/packages/f2/src/components/interval/withInterval.tsx +++ b/packages/f2/src/components/interval/withInterval.tsx @@ -75,7 +75,6 @@ export default (Views) => { mapping() { const records = super.mapping(); - const { props } = this; const { coord, sizeZoom } = props; const y0 = this.getY0Value(); diff --git a/packages/f2/src/controller/attr.ts b/packages/f2/src/controller/attr.ts index 6af272f64..8d8199540 100644 --- a/packages/f2/src/controller/attr.ts +++ b/packages/f2/src/controller/attr.ts @@ -18,7 +18,7 @@ type AttrsRange = { const { Identity, Linear, Category } = Attrs; // 需要映射的属性名 -const ATTRS = ['x', 'y', 'color', 'size', 'shape']; +export const ATTRS = ['x', 'y', 'color', 'size', 'shape']; // 分组处理的属性 const GROUP_ATTRS = ['color', 'size', 'shape']; @@ -86,6 +86,7 @@ class AttrController { } const options = {}; const ranges = this.attrsRange; + ATTRS.forEach((attrName: Attr) => { if (!props[attrName]) return; const option = this.parseOption(props[attrName], attrName); diff --git "a/packages/f2/test/components/geometry/__image_snapshots__/attr-test-tsx-geometry-attr-size-field-range-\346\224\257\346\214\201px-1-snap.png" "b/packages/f2/test/components/geometry/__image_snapshots__/attr-test-tsx-geometry-attr-size-field-range-\346\224\257\346\214\201px-1-snap.png" new file mode 100644 index 0000000000000000000000000000000000000000..c4d1871287cacb1a8b9b5850335e87f7dfe94d83 GIT binary patch literal 13047 zcmch;cQo96`z|`8_ZlU7i4wgA5u-<U*LB_ZL_d9^K~BO%0s?`^A3svl1A)Lo!1E6x z0^qMlP*f=h!~uG&ru@RsY$urXlZih3sJ^r*_L~w8@nb{$XHm+QA2kugJJ=ZnCERJN*I`{ z3Hd_6bOh~+zbe&w{FW5$Uhtu+o&eMee$RfdO$2hxtY{yn{*KcCwZ z3uSCy$ull%D|*U5&nES=`!+I!I5#J42}|%r7&MHtr*Av_s~tXwja6HfvW1j9Bg9mg zx68m1Fk6R;1jJA-4@(V=Uf<_#dknFUf{(Umt`ogrWm68*(S78~dnEFl1@DgEv&t`~ z4cWFYPE8&5M!%_Fk=3=So?!rf3HA1Nb!o=@l`m{`DWHO&7NhX77&<{)3NkW8>GYQ9 zkZrXuu54PGtCg)z)6x){-H{&o>+p>DoyreFWiF30gFr_}&h-z5jtW)~ixXgzIrm=r|amJDQZtQXC$mQjw>HC!j6;Jsu?rEQgZxl`0 zIXgO$IZl=6C&@U^7JxUEKuvfTIFdOpMN*p8t>JBQcu2XF!6DNIw;vI*I0jT!cvETK za2Ay}DK;!DTqrM2D(Y;Uz2eC~=U4b%x}#M(BY?$bt8#$DZ{{ycHqt5ay91lJF|+HB9V~u05R; zQ>sUdgez?avwbGFpITU23SC8^P%DINe#^9M95FBMltEl)YwUY4WiLrjgRT}I$*<-i zYtAwsq4r0wi@2!qghXzUuoRIGd6BkyG*NlYoIl9Hx^j2$OtI-D-#&d_W?;4DS=v*i zf86A~HN3I0adL<-s%CSV>M0J@Egf;3E?0PvF~pWNvffVbons77G05RlL6ICj%(q9D zJj!{{yeowMJM>uhXPib_UF2Qs8kh8Hb7ODju9)#~;}m#u)*Qs5He#_|Esx8bZW;GV zn%Uvvl^c7D&5BXMobt9f9$6SY(YNd_600zxWHe77g55b4oN%d$rSCU-yb z4b6y_HN{)1|Gb|~`gm~Ic?6kn;>d8e%0m4b6>~*x@@y-Q^fSNg0OZ_R*Vy|d#b8BY zXa5(Q^=K+2mnF2i;=^T@5F3GIj$4sS`3{j;Wn1Kxywj=uaESesGnpV_`eZ^E7?mA) zk(Sr!mB*Dr?B@OgD=nY_yPh^L$a@YxV#JA1vceOJ#CAyT(~YrCN-9J}&`@`9UMd{8 zrK*f)UXGW{F&Z!?{He$QHk@s#UWxhLq-mxxJPQ8(ot+cCyIWM+_2QO#PBG~hwYTCqSwb(ha}yMHu)ZdTCUWiQH?vTLvTbuWUh z$LeCM$Y#CH4*CpH`{j_$ss*w)X7oYji~0^_8K`J zDC206UMr_yxPDspC^F)!;Qw<$xBppC;%<^7hpcE!)q_ueCX5rG>~q+0MWEiQp**0% zXtUzJUi=0T;$5oT`u0bpos;mj?G%HB9%QFqTP;djH&hr zkn4`Sake3M~qIHaP!D2$TH7pQn9#|8bqqmfwYNPSl=Yd|g3EvDXzi=}#ABb)q zu{xA2YZ8vcj-7MS{Ck4k?R?QZ&r>5Nl>Mqfyu%`%{fWw)6^_4|_I|&{64cJ~CSNl<7T(5LAq5Pu+oHmu z_P!(#B{RjXdeRwV*sJ^gGY}k+^6ygZ%W6xfewlzgN#1o1^*7OcFvzLR0X$F+VcjYu zEU)_(Mi)v^8dkyBrRf8@-K9zIY6aEVqX-N$ud=O~1#XYS1#m$++|C~4E0A{_SG*-p zY`r)lmC?Z1(Rt94M;;~=2^U(lj~4{iV{K;z6$j51K&_ztKLID_jesL=m)!%vL=^MQ zdSOU$1fx3@Av0tWa_CLC&N#CisEVlT| zryA{wDQ2gc(`leIF>$n?>n=r8g75QL!igYjmA(2@^ixfn0SWuOwnS1uR%4-;bR}?$ zBS8FMN)a^=K`k#Y?|`m84cRK{S4{8PuC*Tc+Cmsm{%C}TQMxz+4!UP6k>=Rk)N}@1 zKOe};|8&khlN+>g{h8Tteq90o>|3bZ$D%W?m~1f z2KG~CGv&4{iAzhb2VGrxRXho z@FujK1=SsL*$b!ij`u-;W7ASV4OA#N8aos3`&g3>_KaEcOb`& z9qX+q1lu*&xWd`D3`Z^qN-h1t2FDDWnYm{}2Y~5G=Ub(uU>ahCBBkeB6Uhe2AFcyO zX+9`t$2Al8N22w!Q5%w-ts;TefLyFn01 z4mAUbrD2F}omsylf=n5YXQ=VUa$~Y|L;vtP>qVdxsiLGT{PBGbe@$gE%eZ8=y&lWI zs`Tn4K-Ad2@d?n9Jtvu2+Jw#CU72btTO~TFcSsy|;aNZQwSt-@#yk`$b1y8@<+1R8 zC;SFRC(yB8oAntxdp8nZ5#{o@@jgGj&OvtC)t#bpONWN*VOLWioW??BPwVH%B9r41n{NUHuH21QGQg{mB+ST`4Ah+rPT*L= zK@`zUoH+C^Vkeos8x70?xkrC%saQcdFJ;UVg+T|Y`URBKBBeePo%|%y5p?)5i-Tej zbhKTXj%5qBa)<^T%z%T8`u^IO2Xrx9=hjCc05~^`Blv}6OX7eHrvfY29s8_526;>B zxKLoHsjAq6R8ie11pyI4T*%x&>_-IAs^GrDG0d}u$i_|68Dc*JWc+Muu?XyKf!#OG z-N>_593sd{>+#|p!kmuDc!tDm1@cSAE)w#*3Y<90?r;Ct&T|UKBRi~;9UtM_)Abi?GOimGPHyH_OTr7jnI~&olLeOiMl+SQpC_c|qcXPu+th>q*(%@vGty zbi{Glq`*Jgu6-vkEemZ}S`NImTHej~)_El!bj-X!ouHAE3J=H=%1<5hCS1t0n&q2y z%{FCEM5zu0wk;Bti;O8-MN>UIg@NPdzVG7?M9WuDAokAPjg%gjGHvysp?1L&o7knI z?le4a-Xv=eFk1z(1b*R$^*EE^EUp!FY{uR0@lGEyLVnu2mPPw8@BCzGjk@VROm`~g z)@er1kF$77{~9&5SN{x6J<}Uw4^wK>UBn?|S0-=`lX}qPnM2h!X4G4oAeviCkk3hl zkJE$9S8{)Gdk2kV>X@q4H2c_Zadel^Rq?DjLHo=G)1ms9;4W|0=I(0GMo` zMzR=?5$V>jV8q`3`zE(ngO;a+(%bQ$fnxx+x`eTm0=$_(0YF#rrFG^sMbazGUHghe zov(pA4bKMPNss;=@pqE!BgSL zT2h>hd(P>V-dh+INKU(qQ4Mglz&6qA<7m+W{dz2t%adIf|0aXptdo|pYk&1Pk=Ter zP=a59?h~fL0m#q9!L$;<*4@KlSmY})_`jJg8H?ma(e<0~-;$mAA^GW3CaJ}fyr&Iv z@0y-(Rv$^0%|~F79}lZ;keF6y4Q93n`H@vA8A!Xk|Lh)NJ@mTvHh_EQiM}Ow8Mg*_ z+tnJklA{Dc4{(=RY}>-pmhhGdK+i!N)1kW7Yhe#rB}w9)!Q>(MQM$ z*=FM}bApmUUZ4~0dl{{5W)%R547A6hgG69|Q;n8Nc8(gfI{&W(HM0~EdD_*$LYZfv zP>DsRo+^6D$=VHPCjD;SZR-LEXlt7G8vOmr#hbKhrmO+%zB-o&lO+2T1(~BkMN2qQ zMf#_1%cLp^>{qa{Dk{{FZ)Gc0L;hnb;lzK40!{W|!u|0o&v~*fdC-yV8m%D$DsE+A zk$X>8*3TLs)a>9)G`e2Ans)*29xPM@1mg5S@9-e?C+{reh$5xOPBVxGE)~3LrzOG% z3e(IVmAVXC;vXj8a0BquxI5r7sUQu{S5{C$6P^)P zuRSqvR+~b!n_gK)$gh_p;VS<@#QV#P)G+`eRs)z*W~T%~c6#<*jEMlMQ|Xd6s1&2R zOHnYVa(5U~@8EjlVWn`J{7Z#@aUyfqfZ-}7=snp6iM)gEE1J|y*qP4Me|gxXnUs(J zKfK8x(-v*0*7-^IjocL5nP;km_B2)MYoc#;l!7E2+)$dHPGl2=`*|^~ZshjLpriVk zbDxCIbKU=e*@@x^rKpEg$X9cbbjg<9R1|?N8Eiy&Xhu!@H3oq50qHyN*&vK=uEAl7 z)(Toi<**;v#??;XW}I5`1})zqJ=?e#z@wh; zm9w{iXiPI1DE-oJ zupkDwL&HU$x2|ViDWneSP2*pNQ-4+mV*U8SC6|{^`m^@mIEUBZqbige3Nbp<8b;Gl z8z6ApEeNZ1oMy`&vP~FX|7)&Qj zQaEkVZ!AltFU9kc49R0zql+eBBj)fh_24$?n=;AE# zBSawT6=Z_uiMqHAqZ(Stn3xy)oV!|5zvUN>U*4TKN`HF@@(5vih?1M)Dm(hTqHzxh zmpfhiR)u?2_A^E=A-`{95T&ah;&7K5zbbcZ$1A)bcWqnHiaIZqdl!?*30vIwwME_G z4Cn(7%{3u!<1J4?f(6Cmh!3Eiyx;FEv4L1~rO}GNC&9xNbel}=nt^YE+PIpowT{D1 zgR{%&?AhBjd0mON?-IoYM(7v!k>j*1iRR)3_-`m4$a`;_#o+b#;i#%~Djr zOd&x&=p$;juig`+EeD)YapDM$V*CjpJ(AT!Yg@z+l4{OzX+2+` zZ`sEQ{%{WY%v}WC=J(=ru~J>L#Hm3t)(5@d5>})6N*{;q(F_APO;{$!ER0LhvpL~%{(ysCQ&1b8xXg2J26%+-oDv*z1O~ItD&x=|g_UR~bi&BZ`H#$}-*C@371asZ9#*8z5P;QC@ynWSdbf9V z<(`d70js@K4{-S&pc6WxoLh#I+Lv-26@_H)IH(465b z9^833p70FzOx=+?;9wdut@CFaN!9Ah*kT>)#?s5c!ck>aIn~{NLFq`didDagx(GFD z+L_@tp{q$f%!Tx&uVkEF1%(QOsYwsEB~SPFO{g@ zpVOTSAK;x?A9Hrvg3(QK6iu^)r3LSIB2cbBuLuF(;}I%9HEU#%s)2X>Rej?N1h$vi zbVpA+%3}~*xpwF^;x@yryyr)wB5LD^Itr-$5T3ml!qW9o{zyoB0P9p0;%TBUY3^~h ze+Yp@D*d#Xn6ny<-+5C^2C@Ldx>Hv7x#LOx$Pn55O;(U!$Oucf29y-Z?#1;Bfm1Pw zll22m}!V4|yg*X+{*(Ynv zD7^w;H%>-QFf=~qkt6SG--tpegTOc+>VlpPK+4Px3#;}c2Bl-Pt8B=oa0VAB)uriG zzqoN;5PsVm1>*P7lEgWf20ip#x@9dB=qOMY&)7+_L6BQE)Rgj4!bJFbROFyPLv0UN z5sURmz53pG;H!8)@Z&akx-agGT~{EE=Maw&-#i09F_k&sKNxl^VAGU(_sVz?_D$N z@PRwy>oFH(sL}_uiF+@~GL8=KFhAvwhR8S?HxnX=t0@H=Gc`R$0Ss)j*|!@h&vCL& zzp`^?oCslZ(+)7u${%@WCTB`y{%4$@%fw*ky~}5}Bw{(Zd!ci*f`xc>_EunA6vRXT z-qwXa+i7D4X@hfX4uQhbYdr1m1FW9@{y zHuA{!wbY+yx&3bJBy^2WUpencmU@^3kxu z^@aoZc5~V(y=@2$iVh?IV&lzk)B8HPcZ5cQ1*2yw`pKmJN60H6Prp&=9#5Aw|2_=Z z4)*josJpKq{j_(1VsGeB{md$}VZGwxG3xdiQJYa-S78AC0-l-sUuX!obZ}qmk zE0lg21urvwH?3+9bvM&c%Awe%MYY@XlI*J@r)!{-ypTfK zjG;xteHtK)G{asdFKL@qtb4G0xhZWCD(=MRUpds4*zJU@<&z$1ozxbIwA=4(R8ESr7{l#3b(NR;Y zXO`Hm8_2!S_p5A`*;59*Cm%gmUlHX)M61^7= z-WaS@8<%Ap@!x96{`kFYRu(roncCuFbPc6rfd)@j7gKq2d;4`CK(F(#+A-%#e)uh^<&O7fq%zwi&HlizUSy#jK_T!B+;RKp8_;ARsM z-`J>O`ZHTMPmz?2X15=m5q7OyL;$ZQ`N0yRKc^50H$VXlLKW1u+Rb)nqx9%Q`D-r! zCV_oYocG5spah!~u-cgM8p`ETuvVv%JJt z+KMH@4=p(yjs2`l*Jpm0k1ICE@2=>t^LAi3R-6Z>MzqI6jI-A-aFQ98^?998`^E|V zw{gs<_z(I?sDn!2PLqQYWuoTPmzv{YWxwA4QswSCTs>cnr3z}$Z*4Lzp|dX`Y<$Y) z%!(XO|05hpH^3Jx$OrFAKQ)?>myZhMl=rNTpFMMn3};YmgVmk>?qeh|D?i}0u&I3{ zj9Zf9gB7fzVVw26cf|eOWUCTZ>)UFknD>VHKw@y zPv1P_ciT7YXPNx-V;IpQkfQ9Om32ipJZc#2LaFaYi&d#$5q>NG60U>NpW^ba|44cs z_>vHTTuyBRO5bFrm=k|+&umQ-Pew;9X823*N>6DSE+BjS^vN+D)Fs`OV#Gw%s0z5| z17%$)t1V2~yC6uYD~-Xh;i_YkXsxp8OAc8ckqDWlHXtDYl#tlfXDgLR4l(9dG`0S} zQ6#2EH2(W^a{9h!>tAH~5P|ord2ug-&Ltbxb{Ud#wCGf8YZq`01gdkeNR`t9R~sv6 z8z*Vu2l^z;!+LKNi4EQJdw@ElKoRzDW(S0pL(iMCL>8dl07%;)q~qwOdhu~SQaaHS z%55f9@R2#22t4QkCGL4&W4kEDXkb{;0wV&HkdbBg1jxc4M_328l-*V5T z{8ME;^~On(!E538unU(|ZfFbJjs%!xRf>c*FC&g~M%PX5JY3|iYdwn~ke0XiA5TZc@sfQxAHK)=WoBwG8#Mr1()#k z11w;ljmpIZ^DS;UYb&65ldm$!r|fG3fRR7MAz7Bl9JeWTezjfM)VdhcSkf}n+W;Ce z^I@uy(S4;c%(0BpF*>oemt*zui2KbZ*Z z#3*NXk~OqTXQ!mkNKH0a?;*vK*_U&*J@^&d+3^R{KL{7HLCF{W#AoDC)oOF~5Zq-O za^urjpi=s%{Lml?uwk|Mn|<8Myfhf7X+7%X;b`%xK-|jyIsqtc5?dDblgCank`chl z7reIj$1R{;!kUiLfIwp%jDGH{%!uiGvm=zpm.NxEC$2@QOc09>a;eSCQ?AjD_! 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

o>au7i^%n(R?>Fi*gxABUoe_8XBrC-BlTQ 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 literal 0 HcmV?d00001 diff --git a/packages/f2/test/components/geometry/attr.test.tsx b/packages/f2/test/components/geometry/attr.test.tsx index eb6f9800c..211afb085 100644 --- a/packages/f2/test/components/geometry/attr.test.tsx +++ b/packages/f2/test/components/geometry/attr.test.tsx @@ -456,6 +456,27 @@ describe('Geometry - Attr', () => { expect(geometryRef.current.records[1].children[0].size).toBe(16); }); + it('size 支持 px', async () => { + const ref = {}; + const context = createContext('size 支持px'); + const { type, props } = ( + + + + + + + + + ); + + const canvas = new Canvas(props); + await canvas.render(); + + await delay(1000); + expect(context).toMatchImageSnapshot(); + }); + it('size = {field} 用size大小来做分类', async () => { const context = createContext('size = {field} 用size大小来做分类', { width: '380px' }); const geometryRef = { current: null }; @@ -477,6 +498,33 @@ describe('Geometry - Attr', () => { expect(geometryRef.current.records[1].children[0].size).toBe(3); }); + it('size = {{ field, range }} 支持px', async () => { + const ref = {}; + const context = createContext('size = {{ field, range }} 支持px'); + const { type, props } = ( + + + + + + + + ); + + const canvas = new Canvas(props); + await canvas.render(); + + await delay(1000); + expect(context).toMatchImageSnapshot(); + }); + it('size = {{ field, range }} 用size大小来做分类', async () => { const context = createContext('size = {{ field, range }} 用size大小来做分类', { width: '380px', From 1de0b902b41814a90d174fea9f031266ec5fa8af Mon Sep 17 00:00:00 2001 From: xuying <33517362+tangying1027@users.noreply.github.com> Date: Wed, 29 May 2024 17:11:26 +0800 Subject: [PATCH 5/5] chore(release): release (#1970) Co-authored-by: xuying.xu