h-p6~rp)sdP4#IXiSZbv5tk
zF6DBwrgv52hjXS@GsOI`)g&x7`n{3py54`YZmelN*Q!a{cf-{iM(_2SwtAj+$>jye
z%Ibm^UGn!ks3HD{fzX3*JBmfl5`M59^u?Z3XM{Snq2%NG9=41;
z@36*A7jY4QFld2^eZ{JUPD5l{XYjS%R*A<>UDT(<`p^-&p=}!5`WB(CUN>r5RkGbS
zK^Id3vK--MTd+CQ+6GhQI=Ten*Jj%YQIi9Z(;DmOvbh&cY+5|uJHL-JP5w2@I#=uD
z+go_BS}h(MjtHSBnzLW*?zF^L9LNA&)&+}Le4)U%2p#AuEiFiB6ZEc*w#IutZRfk;
z%KakddB~SKhgxSF0JjMw4XGpL#l_{LSnAGKX4MfTb66QxM+?1tty7&`&*Z?(#G{Q}
zKpCq%t~&m%GupVw1!yo&sPN?Y23!T)lMq{#4WWI!0I?kWJt`ztAw+S9)h
z3})8)^Ukb(OHffn^M3N_ASr!<{ZKi(alC(DZ0^!F(5FEkBsCw0A=Cpo*xIZA<)@$c
zor)W%O|V&wF^G-9IE$IMTJT79QiQauKjt3_wCkO|e*t~E`W&OJ4aJSd^H9Ir{dgXL
zIe)$(Tv}_LUL0FuadH#oA~scD?@AOEozx7PBHE1WC!4gai;8UPm1WG}QWIVFia)th
zDsZ_imQ&P{#*sLB)25tY3uD6qK(l!4I1uU%JDVe1(j75ry`YhGQrqwa6*Gun1G2Ly
zMggPY(*}MDSsf)F?P4^(FmS#}2xME>DTa!eEG_YyzqjUFBb-OnZ|Se9_kcFjN>=Fs
zcR|0~pWoL1utk4IzV-IKuYJGvh4EE?Bm9BVF!rx$`*Is#zjqTGVZTy(+|9RdhvQY+
zXA3=leZ^R+&1lo-*#Le?QxVi%6oc5PR|k4BtyXWahB1H+fP%Sr+-?y}hHG5G038Ad
zjvKuq@^J_~uX{d%Dz#E8STL
zicW5gW*re*e7eM^%oK+zWMt=fxsOekdYNpBo$AhtOtmAuFBA7@>dA~JF4T=s?sw&70ZuM=q2gi-Fc&-i5WXHUHU9S#a~z!mU|)mr0OfwSV&Xsc*`7gR
z31edgLT9D>_p9i>g+EN)6>;TmJDgm|T_d6C(pZ}IjktP$zHV%4J-OkUwvnV;ER3Mr
zMlS%E)vWCb^PV5Z5D~_#QWqlFJXZ|>t%}g^IP`2;SoZ*EsW4H!f`n$K0>*b)GG^)I
zR7E+nz?o_jH{QIkpB>3?)>Pe)6^Di5P&WnW)Qtl0p-kz`omAKRd!;y@=hUNy@ZLVp
zlY`(l_H2cRYyOX+A1aMElt6jZ9x2sY!9=wKmEATtRqsB$J!XvyMw}o0L6!<|{TDFs
z$m**Vha4!C=nB{$9t=YX`gJIuFpnldLbd`WI7VOwN03VJsElu}Pm>9TXp{~e8%n;u
za#A`LM=${p+kCMf@R3=sWiy)tPq+8#x7;VkV=(v)k(EG^73nVui~~Pfk%&(uB7aR}
z=tED#{{FYfduR1MdlZ@UxxwHdMBvRwUQdrqq+Qe6?%hOE_V!)_17l4)aU>bV9
zieL;Nn9N}Y9kE`YbXB$1>TH77bR>x^|G?!|8^UkOd-9@SL@`F2#&%T&%o!*dX
zRnx}n?y$U1g9}elvsPJgZ&6eviq%gY@I5Uq&IfkfLp0DsZ2TMqdpxi&8SldBxp4Bz
zqh0Vcoy^Jmq5D^N>A_3
zE-asmE`T;ZVsZ)l(uNsFETe91Z2&MsVF~YxttvzS0Zb0!(e}wg3&%?|Jx@V1>+D#%
zk;TawJcj~f5zJ!d698oi5`(BL%{;R+30E+@qbCdBHD2sdbTXSx<*w>a~eA9H!t0M@+l4Kw_G1T=5|je
zoxi>JuE*1-Ry|Kr9?Qh!?#bZ0oMQ~R^|*pXV2Uj5Yv_+XA*IS=JS5laO?yg4<~RPg
znkhw&=6OLJn;Ud9rEc*oB2P(8otKU`X52lv53;SOg@CpWM~5HQZ;O;L9*r7d2f2u
zjkvR)j4Dgu+4=AUXU@Rg$7#Cw1m{bdI|8SFa;IN;NqFb61jFd`Jpp~e<;B8Q$%nW4
zd)*l#hMVq4Lhi)-SfjLXlV=w>fj0cPEp4@?gz{`QA%$cu-tV80)}Qdodskb+hr#rm
zbnpZv#D#_70bgU{yvGMY0Sth~^1gr3R?Hf<7=HF_&|=Wl2aX?4NMtcf4+Tz3AGGSX
zr+!DZY+=WaN$#FKb6IzjdNr(UT4d8*EtuxH#TP?m6b?onUxipC_#(9qf+z&5v8Y#
zOhR-cM1&Y{ReNn+>qUF7>#nbYI#cuXNQ6KI>FGC2MVL11oHx{hk=A8ow
zlH+}wm@r>4UzxxfN9A7?fiUoRK(W~B?AO{`(Dt8-FmKX;6JP@vIMF77`vf-bvkm?)Q{PO*^Jdc!FFum5r48A4RqTv5_G?=w(fq=
z$j(3)LOG_Mm^_RTv;|X}IQs?Gtv`Dr{T)l8Gnr_VfEL5FX;-|i>x6%LTH-2ny!%gW`J6XNT@?p8T9*UPno9JsX
z-@%3R4ctLyCvf?urUMHThH>}*)3-PHZ*F>Q$RK+frm6AF5pd?|%JgJ&1k7|=J(*T3
zvj<>btFC&pAV6tnwLGOvm$!b)#R>APl8S)vTh?2$%2KTOrFxPPDO+$oDk<%cq|~&e
z-vtb~__T)r&fNK252qrw3nV-VtBWP(iJ1dkP+;};pTxis#6XRwvczS~py$s*ahkZ_
z;xza_@S4b9wm(1Ihy3)jf%ifhFLQw5tNlbn(tXr6D;)1LvzaOJgSFzpeVA%4`|UA=N0|2}nEd9=73KsMG+nActq-nej%B&^&6XJM
z&?h(B=az-WpsYpSdSIhoIV=bA_B-#(dvp4n{*3#a_uF)qCZyUqp|lbWyMoF~Wt
zH*P40WY=xePIk8)i37;`nA3mD*t^p2@6$2sk%ZPib-7EdV~Km`!s*SrRRBHyAir&k
z@4cmse-LbY{WkyhTT_e0ZeDf#xWkBecv!%t5cNe;94P@|5wDB_M%biYQuMI{SKya&
zC*@4SnRRl?9-3Vt$)3^xD-}eNiX-5tNJNS*)M4lxwrQCrI!8Vy`q-liIvmY4zT$iL
z3VaXUL*@ks76+0jGz6?PsZzvdtT)oVF{dvnd}-=p_Gh6)A17^|$>3c>E9$srIlKJ+
z`?VA^xTlCciWLn}HdE#Q_r4tCPmRO<7`@@|>H}j#t*(}_-t6&@KOVWkI0e^ZOgTog
zk4(Hazd}*_4{zEh?ZB<4cgtG3mIX$g|6}vv4Gs*97P|7|c-%!`tYHl~qPaQJfK`*%F%v!RX4^{oj8L{Th)fYZaid6)EBqJ&tR
z{-;X@4FofXjf@VbZzQrd9eswt^HGX>P{DdDa5?6lSWqE3L3upcwr)LgeSo@t;*oXl
zCE@1j|Mb^CdUU95aMf~k(OZ2>aPD}UV=7sBEzmW
z6-YxPY=z8q+mn|+m*Q6zx^u-A@4!O+c#VbcezdNAYkKnbblX7lM>;$UE>mP0W!=3X
zHUMA5NvT#I`nGOWn*$(3L;Ewe`o}{zXLR>n{QjUvvEh|L+fRf}6c_V&Xj|4<-!h>b
z?e{#pFyy)$6*B)@L}r=i$?Z)Y>N@fPQk{As2k;aV@MKnei4P6Mf5BI8+?O~n7L|63VC8OL%Km}&n~&4{K8~Ud#_vg?jMl7VM(d{
z(%l9!9;k7p26V%eEieH7N149NC~$2gMM2e49#g-mr_|r5k11NJf)crQec1^g$}N*A
zp;q-wSdKXt>lWwRd~|fg)18+3%_cZFQe#e@7+a~Zw;w)5R_YM8J1y~7#s^ak16QnA
zsZWoJWZxKG&DU~uwY%;x`xyY=hx;6>9cBHNMxzs&iCT#}&(GP9*V6J`M`v-@EzN!A
zHsapJ9gDJ#pbps(aT9X;cCC~zmFBm!)JI#J1plBy3xiD?o=@0MZROP!1|mvlNc?m4
zcXK#v?4^^nljf}TxxQas#{Kz$$xjASNgXVC#u==s6-KmA@
zd+e~U;l`jn(iNIF2AOA-Q|r;@W^_HcSZ5LnGI=gjE&9#+Q!bg-IZ0Nj1aRSJ8suz_
z;JonhgajIG<;H32euh)Qj@)Rb_zWYFdM(E>m}-`g0MtZhPB)8eSi&JQyE!F>-AuAm
zmCWikERHToKsIki5=xLnKehy<#3sZ{W)@;oVr>>G3o*3;uQQAJyUL8o#${5ase{U-
zbTsAH$eTz_a%q~ngTkbC2xh|bYKp4K%EG+e{6BZ>-$^8sih|3827l;U*P*=;mGTOA
zyfR{Y&yrkJmfOoJ1+C&aj?2Y~^jsli{Ae6jn}SdLui{K<@9;c-
zUK9j$Z^YQQRBtd@m?t#GB~4!U9-6kE6Nz3~zxtt}CC`==zYLSV|r
zN?unh55X#g$fC$&WFZi2h4LZ0A<0irO{#;$m~kFWm#zvHsptiDU9F008qbVJZ)W!Q
zHy=9nV1~!gFjnm{z|nXimdq0yA}&gUF1EctI7>1lQU=e=ig948^vBgtu8{;?3V+{r
zS0cI?vEc-GBV$4u%Y;P}(qZLm0p|ZKXzdC`J&|YBzBX#DQyKG&>lF$WjgC-XQ?dS<
zX4#<4WYj4X?M62-BW@j|y)c`O&}L{%6ZsHk=q&JNI?{lac%wZw=AOTlDI%5mS-e>F
z4UB=NrdfM&`y?E}E#O9k3-obGL_!_mD*Q?7agoxP
zI=+f~zek
zm>Ps;dp=yZWjw#@TvS-{6IxE~+MKnu&d&xnWSq0E&7o}_hp7>1nEuQV|v
zJW#91u4I)O^kX&u=z$c1j*YY;%dL^rJ+~&adqg!d0QF#-;!31WHlaNmPk@I4FHg|<
z*1<&o``4iZDcsD~p&r9A5*M2jNuM$&Jt#G%x}xI>MSZk}>x9bsQE4Zg6gFG}gHF7(+q|Hdao^
zgpYkTrx*ZG2Oe76#yZDBhMy&!XKFO=zLjptMwj?YX!Wwa@ODQ`Wua)(-NJwF9;Ctz
zd{wZmzje&lp*pi%g`81)X$>k9Rc>x|Tbb0OtlwCWL$3D}m5G428{_xeQ-_7}LV2r8
ztGvYgPHT3|jRO_tVP^%sDF$AwnC!c)3wxsxsT3(G+953DThCWu!NE>WD~C}HaF|dT
zm7z*;@tRig?ZYqHnbF2$*U@Ykl?$M~F%nx98x7Qc)1C>#0sypXU$J~Gp)`pp6O943
zE%CxJj6Yh7As7^tn2f}vL2QL_%Vx}1}sv
z6|ab`mzn7D2Fpuyn8MPPYhqMXu1iwQyy+U|M`L1$sSq7QiE*ber^F+b7}uQeBNhh=
z4}FKJKYA6s`@F<5007V{s8GWfWbqNBuNuRIXOAJ{ZDZ^ev?n8B81>q%6siuXTB8%Q`7L$mWH@79Wy^MRhqhFBdf0@m2(E2t
z0CrHL2?#LZq<{h)t_c`0;Q@~uIxXPA0OkY&FcC~3gBW3lqyQgLQV&5e48yb!6C9wC^7={ynL9=!z{cFU)teej67uF6M8$WX8H4Y
zoOuxrp0}GGf?ybiX?Jc)p3}U0>qFoEFI-9lNm%UjP5+@NJ^A7N@Rou9CMnZmRdMTi
z`7lK1!J1ci8@>?5XqY@?zTXMG9aaH7e;(25=B(sUer}uo#OPZhsr>;-q5^T^B}f$e
z+3x?5P_h)M(f~x5P{xH++F0jGwTJsYN1S!N-M|pljc&!5pZ$vdXX5MVHpyWi
zb0r0Ca+xCOTB(PKRfeMYecNAky*`i^<1?gh+o?Vh;ijzC^?dsA9{rp?jeLnNPcA*GgGqG@9;?h#d%KHDFjcv
z@WIdoRt!>-pO36K+DfT9R;*`=hVrByQw==KC@n5W*o!{6h~65*s};d!B{i14Dks1R
z2EIFKwNWaX6;!FlYpu9iFXFLQ6E*#46wc@}*jg>ZCEuOpwOflN-Pzj(c|*&01~m|S
zs=$bGg6$stq?{_v0(
+
{_t('Total {{totalPage}} Pages', { totalPage })},
@@ -133,6 +135,10 @@ class DataGrid extends React.Component {
handleLastPage(onLastPage, event) {
onLastPage && onLastPage(event);
}
+
+ handleRefresh(onRefresh, event) {
+ onRefresh && onRefresh(event);
+ }
}
DataGrid.propTypes = {
@@ -160,6 +166,7 @@ DataGrid.propTypes = {
onPreviousPage: PropTypes.func,
onNextPage: PropTypes.func,
onLastPage: PropTypes.func,
+ onRefresh: PropTypes.func,
};
DataGrid.defaultProps = {
@@ -179,6 +186,7 @@ DataGrid.defaultProps = {
onPreviousPage: null,
onNextPage: null,
onLastPage: null,
+ onRefresh: null,
};
export default DataGrid;
\ No newline at end of file
diff --git a/ShadowEditor.Web/src/ui/table/css/DataGrid.css b/ShadowEditor.Web/src/ui/table/css/DataGrid.css
index d13af9db..14d0b2fc 100644
--- a/ShadowEditor.Web/src/ui/table/css/DataGrid.css
+++ b/ShadowEditor.Web/src/ui/table/css/DataGrid.css
@@ -100,6 +100,7 @@
.DataGrid>.page>.IconButton>.iconfont {
font-size: 14px;
+ line-height: 18px;
}
.DataGrid>.page>.line {