From 0e398c4119dc31e62e32db2866249265f82e1708 Mon Sep 17 00:00:00 2001 From: gvreddy04 Date: Sat, 3 Jan 2026 13:11:49 +0530 Subject: [PATCH 1/4] Update grid docs, metadata, and add new screenshots Standardize XML docs for Blazor grid parameters, add API metadata attributes, and improve type safety by making parameters nullable where appropriate. Remove obsolete PaginationAlignment parameter. Update demo screenshot references and add new image files for grid features, nested grids, and translations. No functional changes; all updates are documentation, API surface, or demo assets. --- .../Constants/DemoScreenshotSrcConstants.cs | 6 +- .../images/screenshots/grid_detail_view.png | Bin 0 -> 17833 bytes .../grid_fixed_header_freeze_columns.png | Bin 0 -> 84281 bytes .../images/screenshots/grid_nested_grid.png | Bin 0 -> 38683 bytes .../images/screenshots/grid_translations.png | Bin 0 -> 31829 bytes blazorbootstrap/Components/Grid/Grid.razor.cs | 237 ++++++++++++------ .../Components/Grid/GridColumn.razor.cs | 100 ++++---- .../Components/Grid/GridColumnFilter.razor.cs | 16 +- .../Components/Grid/GridColumns.razor.cs | 4 +- .../Components/Grid/GridDetailView.razor.cs | 4 +- .../Grid/GridEmptyDataTemplate.razor.cs | 4 +- .../Grid/GridLoadingTemplate.razor.cs | 4 +- .../Components/Grid/GridTemplates.razor.cs | 4 +- 13 files changed, 234 insertions(+), 145 deletions(-) create mode 100644 BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_detail_view.png create mode 100644 BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_fixed_header_freeze_columns.png create mode 100644 BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_nested_grid.png create mode 100644 BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_translations.png diff --git a/BlazorBootstrap.Demo.RCL/Constants/DemoScreenshotSrcConstants.cs b/BlazorBootstrap.Demo.RCL/Constants/DemoScreenshotSrcConstants.cs index dbcf8be79..ddfd69234 100644 --- a/BlazorBootstrap.Demo.RCL/Constants/DemoScreenshotSrcConstants.cs +++ b/BlazorBootstrap.Demo.RCL/Constants/DemoScreenshotSrcConstants.cs @@ -50,15 +50,15 @@ public class DemoScreenshotSrcConstants #region Grid public const string Demos_URL_Grid_Prefix = DemoScreenshotSrcPrefix + "grid.png"; - public const string Demos_URL_Grid_Overview = DemoScreenshotSrcPrefix + "home.png"; + public const string Demos_URL_Grid_Overview = DemoScreenshotSrcPrefix + "grid_fixed_header_freeze_columns.png"; public const string Demos_URL_Grid_Alignment = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_CustomCSSClass = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_DataBinding = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_DetailView = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_Events = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_Filters = DemoScreenshotSrcPrefix + "home.png"; - public const string Demos_URL_Grid_FixedHeader = DemoScreenshotSrcPrefix + "home.png"; - public const string Demos_URL_Grid_FreezeColumns = DemoScreenshotSrcPrefix + "home.png"; + public const string Demos_URL_Grid_FixedHeader = DemoScreenshotSrcPrefix + "grid_fixed_header_freeze_columns.png"; + public const string Demos_URL_Grid_FreezeColumns = DemoScreenshotSrcPrefix + "grid_fixed_header_freeze_columns.png"; public const string Demos_URL_Grid_Settings = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_NestedGrid = DemoScreenshotSrcPrefix + "home.png"; public const string Demos_URL_Grid_Paging = DemoScreenshotSrcPrefix + "home.png"; diff --git a/BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_detail_view.png b/BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_detail_view.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb9b96fba52355a3b8a37b455c82a73b2b28fd9 GIT binary patch literal 17833 zcmdVCcUV*Fx-S|C!^)y?2lnekw{bB*ZktAP|T|PWH7L2t<$p z0$nBg<0^1wowCjY1d_6od;L_s02o z_GD`PL7_?@zH=hxJN@r`dS>H7B!h*}#`0=r;IhAlA-FpGPbr&m@$qFz+`t(L zvZN+prGM%s+{UmuTj%CDb2RjNpYw&2^(?%ct!&aWGWKE$hT6h=R7_k;6sN86s^Q$c+OntAWq|tx4TNF zN68lyp-kr~Sc5apMk+qpI&k(j#w(P`iTAKX*>gVusXE^$R-}>T^6s3;w+0<^z{a$s z|D3B|%j+Tv78`QNST!kTN{B5uW9HkGkfFE9T~5*_?Lw@hI|TO1js;`$(9a`Z2#?KM z0PCG_8C@jPx+*5T__Rfp;NEb~73?XoYWvijUq~>11iJTnwPXs`a#WL%Cc`GS5rMSx&AI+!D^8)I~F zcc*oUl^K4uC=|8Qs2Wty{e&J$^Kd|{)5UYo_<%x>lE$pre!MH6io4dVb{RVRj-3A6 zR-9l2!(v0Svw;jrw;SFko9*c-rY7bP>k`OvWm!{;DX^`L$?`dmsiQ{?YQ12e=zFwE zv$XbGkNH4m1*y5ovN{jj+ykNZWHY0~sb!wrqW38U4%ts5_n>619~`MGnblx9;YeB| zM001HZrytiq57-@?TdqgdapC>s-Y$keen}7y8!Q9mBgMP9hypk_ZUMxy1l79 zJ|XcrUg+2wKWDyHxpJ`Iw`19w!>Cd<&CstV(7w{h;QJ^`vc~M3$88p+$K2{qBI8&~ z+q2sP$!_h9)6mB9hAppu>9^Q=vtV;D8`8#_z;yki*=jIn8<8m78Xq`nP3{euclQgV zNw7Ew4?mBnSL3lh%FUO!`0bB+p;~2)bCO1sp9qv(lqRSc`rW4w5vnlrNFmhwIyCvn zG_R~7E`bI=n{e*8yWMa;zUH;hdJ%_c^MnttaG$t5wQ=6ja{Uy|vq9(Ddoyof`bMCH zyPwa|*B#06*NUZJmE36gIT3HZk8XyewgcFU1@W9inJ1n|ZLvcxok~K-h~Ya`d~cn( zKk>PxP{JxFT4-o~FOpiHR7)$5Z6nMt7IG4D_JB92PMpP~&L7?!?Yo~c`+w`ws3K>;f1HQwSJ-3jKn!)8*mz=v?CcES=V#N zUp<{>+!lRs_`dfEtgub{jI6szBZIT)Y&?2rd`Z8D?@3J6t=8%8!JB0QBTp1KOzAx9 z+bVQ{y=QnGPEv8o9qiSTAFp!ZqhN)0B+D#0z1a*UH6=@B_R3Qc1^SAVJNknLdd`EB zqe2ui&R;&^O6XyBbtPUWy$vE>a>YjB{1>hJC0IP%pTppl3Gir8LtZq$-gv)1EOuTK zUEn#3Z5zGWit{?oNH`Ku-awruEa5Z6Bk{{QA?Al>R8-?)8;N=PSZ@MxXrQL zpuJY=5R-H3?s>nO&dy0D6hE*d%*7IJA}`Rc~0t) z!)=}8KP_d&Wq&O!_G%{frRD1&2EK!OFX{Q~2%oaT?h?{Q6_I+8+t{qUuc4+UJB#VQA9=aCJ5(0Nv^Ddd+mkCSoMt|A@ReX6I{ zKVw@>&%pdE?(^pb`V>ZyNPIiB5tTk+Vtce#@P_0(_-wQQOnb4Da08#=YiFAZnNHV> zL9nk_ntWG*^a^m85`aJg&J~j+AhAtS$_ir9+*}IRD@hdb961WGi?v;#nm z_tE{e|8uzYA0nqC{}$lFw;3r(|2+KD0i2JPu!f}PLgi#0aQ&qagnm*j-yIE7l&z@B zS>uo661%>%uSwisBq3PbNSUfVct!!vK){;{WW+I@T z!`i3HvWMKnHi8o6KJmIKwLg&y%c96hctZ-WG5uv5f`HArJPa9h`>avw?8aAzyve?{ z^KuTO!$YC2&0mAewDX%O)6nQ#M2K+k3uA*4n1(wv?1w7n{0q3cs#v35n}a}Nk%$+# zNU@`74R%BP&!`N&sxx@Jm8xO0b!%8z(al((X=)q$xZlY@i@PsxVftK~-AtwCl|LO(XaHei=rma>Jhfp^tYf1(u=P#{{9-R%jcFe6`bj%FwleHo1;B z(Fmi2zHkrg7%oa3KbOJ6nzbjDVzIWX!}}&)mDN_A#t>R_|+UmF0G%Nwcl2gw!pEjGHe;m0oM40w>9+Z=IhW)`v~J5ykH+ zd!C%lViL~wk0*^{PL-_o@aJx53;NIMm>Ajlrp~y@;P%Bi=c{5<2G3g5pttB1%-#)b zmYAfN8(|}&kP|iTI~#9uqepqI$;&sQ?tf!7ch5Vgx*|dQrdME4mtI^>zKizYF_HPb z4Ka%4{2DY=;??06wyQQ4!HXZMXeiqmM~T{%Uo6Xr<9D_1HN<*G{q~>iWH~$NTYsOO z?(%?ce^MYPgDbV;IL4GNg)C*DS}WvhSuzb$r@{H{GwYbUhP665AP`v5^R~sTDuOCw zQ(BT86Q~&Y2WVrsCTsLoJyx;d)a)z|<~i4~R?xsAH$aBDn9;r$v1Oa)CcH~HUl=a( zOd;jqZ4x&Ty={7dgiNd2)m(Y!Rr9#*JW5SV3uL1S2u;yrpn3g@BP3W$P_TRY)Mb-h z+~va8>-@YS+G~jn0p67leR2N}*;NN+>H_XZ_aA=Q&+u`3wY0QIny`?X-mm$2)~(3Wgr4lwhwD~uOXWy*!xT(aj%eyx}@%nQ+nfB@l=T*GaOLo615oqVGwTmylpB29_~S#cA5u&}up}yq<ic6U+HnVGYV&V~hxfD&=GsWW(lX@u z-1@ZRF2Mj6WgdA8rpjz=NK}xs4lPmQ2ItD`zLFfVZcVp+vCAP1@z^D&bgCf%%9ey1 z?&TMtNQ3MY{>hvcerV?Fp>kX}{Oppm<{xBlMbOeYEv>KTk_29!LHzOmO#Nr3#jpXtX@B3Z3A$^^oJ{9jJPdlx zBUrNJ7|@m(IJ|M&wf_R>2hSrNW$b__+hkyqmzQ62aILDa7#dg+$jl4;iIuGR5l7vJ zC`hH*dhQh#((9OpLhM3?}y{b4vIt75;AC_`^$x4l+$xO1Ul zO~XGwB@U~)ko8UEl$69iKNT>ijibw^UA!TKzYw(4*_ zoBG*ELOVTPK>Gc;y8fo6UE)zZK}I>-zbxEycd-7X_BCoR79;y^P0@xDx3YVBfTj`q zVphT)g?veedVf}K&(Y1BFd$hNQ_{AcDtDRE!=#@s770WezIQ zwcJhOzLJ`C{iz*FU1w#Fh)Hv}dQ8|L>%fqmX*4Y`Os)UP?~&7!&*|&>gYH?s7IaC5k31HAChgS;ko^ zGV;MuGV8v@YMs{w2Cf$C*KUOGP);zKIt@z@^Ey>oOx6@2{YTYDVoUy)Gb&=%Lu1iu&`sK$PdAPszEA z_{mOGL-7%Mzow4dwPzup1G*tI{u#><1BS;3+V#P(xybq-EKAmyseWHoOT!%5W<6CB zZwD9;I%TI5*Nc#*^%OM7i7mJB0J^Pf)ne|;k zxL$z_&$b&_J=KV>iv{tmR}xK=qjRz!c=xXL6BGGTyECFZ7KpYkwhJ0A1opPhUIt4+ zY=yjL^lCr(c&CaThVRfk{&+`C)(fD0j-JrXZCxcA;-4@JW3H{N#5`nurjQPMmH)v0 zbE^T=4}*hhO=w`R0Gu8fqmKM?`_^EXP`)W z*B8?KzU@I|cw0C65j9Pno-F)g){IL42-^xo5eAC)Qz_6to%oF`=@NXkUR_aG%qRd| z<`xd!Hs?CaYEVE`^v}yl-w3>>9cZf{BQmN-O9T@5AV-w}msk5eVHz3MS~IHh%lWeO zP6B`%1bo|MY;?fUTmR8NSI(@j5fEAb)ajcCy#ZX_u1wpbU}`#3#N6E6*5Vd$rtj6? zu>L<^Q!O1xBHv|i2V_hTNN@{ULEASPMD@|naIL&H4jV*qnaH2+|^qlk3cYGji9fCMpZB|-*WG9LbpCCkylozR4n5(D~rArTQgK59rq#R8R7AEW`JfgiObDPT|CBNnx@}OF*M>Xl^R@?873!v)WO&kO#`C^ zfZ%GU*(e1iCwFb+clmJxW#87XOOrccslw6nL3%YKQ43RH(*4vR@8BE&2B(pU2@cCg zi7zf>X>nc{X6QN6FPsIjDN7N?k@zHX)b+6$+TP8-{i8Y5Sq?#saKgDPxI_uW|7dj`80Wg?a zl1pm=8OR_QBcqr>R?e~yQ4p%l_8;7uFpN7imY~8}tey{Zc~N?;Z8Z5!EMGz0WHmaP zO$in|$t>BhT2_&}ETCq)eV0&u>1po%Ur^neAz$n7P(91y?)xRug=QB`P{J<1Y z{Q)q&CcS3R3m<1~JRj%{D5%M642-B?A+IXrSvr_2ay5TBHnV8;Fw)*+8K6{Q&I$Ci ztiS%_avv+~DhSlx(Rp`XFben{OKXkA?d{C^H+g+FSNn&o39;QZSrrX0;G9Qz0I+)k zy(Sv2ZWvr^*2ztDjFjJdGrON)(-h{}G{n!zZzZ}VQ`f*3$Zs#x zgX0nL{|>d+S43=<{dU8=eK4J05S2i>E0kAPHm@KFXru4n!u6))0rikWl^p}hORO%eYT}|A0;f2DcxXHB z47AEEo2CRuHI09EQ@wsp5)s8nre8BOEOU@AkML|Y^by)_`)nW!bx|TPk8=GgIQlU& zozh`u&os)&!lj<1m!oYcLdbfh6hqhn(YXQIu-B!c@|WB6O~i0LH7I4MOBBcRPyQ?9 zZs3#1Pkw9saDL&;uLR#gg%t};->B>F*6cFuA0#wC*d2KNek$R`)_N9a;pK_46;JH4k67JbAYEH@wdvnTEE8OBL4CE2(clb| z@YIeWzhPw-z^CDvE(fr>wjwHz@Lhk*vrCZ9!1!YG-=lQKrrFkihtlm$9SK3xCh0J> ztt>6!VR-h{s|QaMxJu=9%+g4@xWDrVYA()syf(kO#9tv%e@zd?(In>k7 zJEvLLbXSSn!DQL)y6r?=mtY(`&0N{{(Y;8dgABL2cIH3XdsVO;JfzQ2e|8qzaB(c) z)u7`(zEM6TtRfxi(_Q7tsQ66Q$L-T5VS@OBtn88F#U$6VExm_ToVIb{-&w6q%>K88 zmH6gWKo$#S>9GG*@&%>~ns{ZX8--l0i{z^sl4S;ii>bgor`>0vf5GyXs~*R@`-f%? z+qi=BwDlFe zXJOe86X8c3;0#??vg*31u)QrYuHX_D<4I3H9~b+!QH{r!@OW_EogzL0(<=9G#Fbx^ zka|%MKv`LA6M%S~^T~zs3)Jr%M;{%Q4_tN%=fNPVM>#%2a_)tbB#nWl6rOGt&OD~K z)+U->Hh7c(2rwqDfEq&YaX(_D?E8yc%Hi!61VzG?vP)=A)t>Kk3t$8JVT{*eT*5J} zSv4Vj-{B_ekFNq0-Eo!g@z&o2o#z#`_!H|`TC5AO75Lzmv%rzoz*OiRD49%%y88h25H3;>d-DoM(0NHUXP*gQn~T2 zu~(`q$Rke^fa}yi12#fh8M&V=Y^Cy}q#%Rl;(HIuj(aK?JXRJgVfnXdAsX}O&mKKP z1g8A7hPgF@H_qSg@2CmJ+HqwkHYDxt&KX-rRiFIEXv(1qGJ8M#C*_%Hv*T+ZgHcmM z0}hrd#*c`GRJ(q}{zry9yCYnI7j8e+`ohH`v!9^pp{s+*#`W{K64px77L6Y}I@A$ZG#UxPUL8aP& zNOt+dv)BLRZ~`3WJVq2jrjI5Eu0Cy5a001nRE78U_D=NO2hJq=s?1!j`=1Uw2%ND~ zPH#B^Zz&z_!P7`RK8v`FhI|VqCi?U6Pwr8&b@bXm!TWmF*w^&3LjNPuq1Gu;xWUwiUgX?Kj_{n=c;5 zF1Ku-={OD?!G4MNbvO4gafg&Y+FfqWbltCOj;_3fCQ@75+g zqDO!8`)T6nY}MDiNd@6FlN1k@3tySKx864)VLvrf){&1kk_C)u=Xjbk^3ZReN`@a%3662nSjd~-=w~qh0f0~hd&w< z1*ZdX5I!t2`dtoYlzx1eOzvj_$(Q*`SK0XJg^6)FlujA$GsQ~w z^7mj7G&DuSr_>oz#Fu0T{+LsPYGEr6%Ca2LQMl?}ru)-C7jGbF<&{g#XVN-GPQcwm zEXFF0wWb)@lu*{cS-OMjLy`I8P?3uxnyPUJhi^-k%IW02(=rc*Fz=JTEbTQH$5w93 z6$)(ezcKV^S-K`HtDk^$T4XQ2aqsBhwj!T+1`8vpn?S1tU(!ntV*D#z7dlkbOp4GV8M1Q$fs0*}KF9?7DkkMoXd`#rKmj`$dx)Q8D#FfY5JOpyPqZ{ga;imiSZg<}c7kk&H@l7opoZIx!e!n!frn6QBy*1P*UVxz#Ut8)kC`Yw zlZQcIJJXRgKrI~s*}bx@nwMn%YULeUNDy{-s)^hGvV%86Tbo3AF=K9DcYSt9~~ zABrxDZ)B1sB{&eGt;v^D`;f-k>g98>AYcXl`_IL%#8sJyh$q45*dFGb^!?;>kbap< zOmy0w&3!*^e6M?%@;kE|)8oUI{FuDdiu{r%?GVYOTrSH;!ei>hBe@AnJedZgw`|R> zvpAU!lD;9LT~xtVJyPAzZ;Y05z_Z5MQ4!ER8R7AsIPsAzVye1cc5iReQ)gV@UUPiG zj;)h*&&tQCFrmlc?a3NViFedsH6&aU{*XZ3tv;Lb$!C)4-IOhu3XT|V1z7uHE=}3z z8qx8yx0Qk^8D8C!!2(?6(`1n1;=K9^HDcG}B5L|GGErqWPv#%zNei`^;7y+Pr7II% z6hCu~h#WN2z$qSJrLT)Lr15+)rCsM6Vl5DQ>%-5^RPXEhLxc&04~qP(4Lmoq;ZqFo z=LIuw^LkVe?Q!(Xx28W%?TvOC``y?hhqq^GMx3NXqZw;Knxk2tTJG~1d zvE)6ean%B@La^K)ysJl3Zn^-%A1zoJX4GJ_kwFO*Fo>9+C@VQW&q^} z=r1RY)7_8{>63w(Gx_|HsQ@fDFXQBF)d6yS%djE-MCzfxgs*`Ag8l`sL3?}RUM@64 z1pvAt@g8WImNO+gRDOSwmp=uze?}^p? zNb6$vpHT34-6Q2>_)y#TWO>;&b1@5eIF_=`IzO!GU+m2H#6QYO&yb8le*YD?Y-nJc z0f(mG+3)Qt+iF@dCc`ayrI$wg+_zg9OWOAwGn^oI^Aa1l_!77r>6cA_8wMpsR3P75 zSI|AdUpm!(WHA*PjPn(^Ni!}+-Dk@c^F#x!DfVr7neY-8so?LEVjbO`HyXm(n0+Tt z$RuTem{6-e_~l=~ej<8jcw9G>A%Ak^vOm(-z-iLpEgX(gc(PF1*=im`Im81S@P zspldwUBk$<;eFoY%%3lmw_Y*75MdS&ocus>a-p{Om}3$BX4FTlO$T|zso$lmVz zUElm2hJRH*?v*H6e*7d(Bl}GTA1cU!w-u8GF>fj|zL~R<)hDYKF*F>4DCv-hk_sp| zcZiFwv*OTYW09#r6DO9*)@^)93}7ONcEAzF=>52QNQfp8^O8{0+&JLU#vsBqSeK$F ztcjeML;ZnZL2H;=r--mq?d>-fot_nr@Q-BztO(} zQXJC?3r$8{LlKlfK`>S(3!ZZF(w8cA1~MHJjY`wr*FG?mx?)>3etS z`!LD*_2rw-**vGxIyih}uhSVHnWidoTU$PcNd^|FV?|Q15LGI>S-1N}W`I9mQTz&L zF9F2-n{~0r&9wGVneY6?Q3Wm3Y_Bo`S=7TCTT&e7R}_Qt(=*z%Q`1r&Wk3ahPZaxn zWb$48Q8|uzEWac?)uN4KlkV0vCR|lUz#-t`?H2-48?S^W*rR_t#3#|<^lgE`h+CtA zVxIP>2p|MZc(gG`_mf>c89lYxFf||pEOnjIMvY3%rER1m`VQ#vE@>Jkmp&1QD61mu zFR#3yQy~AQ!=4jpA@4dIk`;s0H)WP#r7o-5l%zA!lxZe9ebjH)lN~>I-Qn59boaYA z_R2Tr*qm@io5mWQEK@g|Mr%(4jVgBRJLL5~_&*IC{^5S*m35qWPEWlO#B=J%YSt|N zRWZH;s{&{s(kLz(>DYd!!~)fsKGpi8gOC?s@>|r0$Cdf0J4g3SqO%%LkU=UHLT5>v#9 z_R1=%GIcfZvUgpX8b0;#v}7jNE7~eAa=*$bp3)JPk~r8Oow0VX;DNT_;fq#Whpd^t zD0{H5j-{ss8~?d6w2+9%nlmlv4jo&PE?$%Y1giT^OqBSSi}^5w3gpcowR#;2)a@C3 z{5LBEThUsT#APSq(+~s+IMm+W4}S=G5(gL;;4gpCBGvyruJx~+`#=5eVSvijpsxX) zFr;qPE$s`c&4`KcGGz7N=Dz?-{inI%zuNC#>G}V=oTKcOtR2eXI`K=hsALOhcCYh$ zo%g>2jVBg26`UsDF~eD&aU<$7(X}r-FvZHXR5AAnZTZN%9w4Fr!a2%1EMH~S1MgaO z9aDhamw{dhD2_iS{TR8fQFvypc~m2<;VcJ-vjl+*s)z2pk6;hfrx^HPGU0Bm^A?l( zHzi*Gy#aE|2TVvj&=8!GUa8W9|1HX;)qR;5TJ2;h!PMEfJfn;#u4;x>%&7(TR?M-= zIq{gb8UU#g-CnSqw#XD98z2m@sTlP<$Lxq|^mqSxBA=U+oqwjcDx01DvWb9j^%G16#(`w4ofU*TDlNIqAvTUJR#p9dseMOTn?xXBJKx zH<2A)!SZpAJzGOI==4*P-$_v!=GghiWJEGI{JGgQ=7+|UgK4gt-k#})s)H+^@@~|P zs*x6~&hFPZQ!RPi?~^(YLHM^uC3x)}ieD^lQTcP#pzj42r^~I%&o{x!((k4I0xN?* zp%{N?Xs)U8_J>cv^L`ja@dL)3iIwu!8bwU85!Gqjh)-%tx36(=Y@(^8s6(pDxXs$^S@r1ma3uM#y?5UNlF%?{h=Ia}O7~2FEMNF~6-5=eW_!JOl8mj(^tr zb)Yu`9}rZQ^T;1wukQHv0MYcTE@{uf!53ve;`U7LOI@w`uQJ3*^5WaPc~1F3)a@|O zuk*zfIm&jZKb`-t4xa`=eWV*}v)<0j{X?g_8mF^!TwbhYuAI9uVyDqWSv|0N+_C~7 z5m!sDOMJM=P8L3%OTqVNBTJ&Iu1WR}Eco@ELEwLu_yT)Ly_*iaQT1bLJC3lIbMMxN z{OhWU>}GjQX@GO&_;=?hXW}L7Q)%gM9N(4Fe<>;sK~4ylgZ`JQV(+BlXXm`wVw}L! zTmNWpKbKb=fM?&;@)6Iba?D}MBKA{dC426=`MbH2gAYK;XBTs1(|1JSQ8W~i9Jnr2 z6Tr(vt{0L^@Q*Oq!mKGBO*{Y`bfH&4754wjY=8{=pV@$W|CeV2 z>S^&2#M^LTpz%zsnt25#-@(fREfg5r`ZLe=&!67H1hK;uuf4**wU|kqeD)G01gY$) z`jB{pYmR7+thl*+U&&-BJ2eBR{?00AU?Wljl#1amL~N`$R!u%@B+-ExZ3Np-g+%pk z&|D1557W|l9C4U4cy#*tZWi&#+uDFNBozs%l;$w@`QqzulyxqLin1@XHOqn;_*-7B zUXS^q==jdXlSA0@OkkSPVsXYS^rx);9amt|Nc05rmUi-w(%~oXJ`ZqnDU3y$v z%Zkhx+~ayip!XGMNR)!gvz#P|;zR;BZrpYpOX8`27f|#y!lQ&0m@?sFTJ1Ct@h9P| zodfVEepQ55Y!1qtz+SpF{7_g8CQ}*qdeD-^@+6R}-j)b!Fv74|mhl0FIvKV(y!Cwu zIyzV)a>oYApspV=5d%ZLDbn0p3tC_GW$H$K1;PfRslDCy8|$g&xf6&cKgVI)`=$=d zw@|K7O)(cwzuJtV`cWEd4edv_wwzR4*Zhvtgd->XC)JfrD+I z*f(mZP8chuTE!^h@{2b`HlGIfCpa)!e*W-OAO~h}Ix$qW*@ZAPC%?4~Fa)g6Y&4Ua zHhGS_@`lLe2+!1Wb|@KT#uDFq3NslaIptBCig+*gz^U~rp_V;h0O*GKcFGSrSaDy| z-m&qxqQMc+~h&5NH|lTh2!4tK#0&oov9$QRU^0VU}y8>?J1$RwiQcToGNKI_I`!y z;%ZLU$9`Tf-;D81;QC%jyHabx!a|+o+AN}{r9wcB;-xy+y>*yuLaes`` z&Rh$fE0~PPc*T}BsVuLD(`!TFi~E;`Yg@BvWUCCrsPzjF?L@O8N*9*yshizrTJD(T z`k{FD;XJP&DX_xYD>#7d^_~ph`+!a+Zif()&^JxG_66EN#zFiNtCbnekqRmbex`NBTkx*wp6@11{kl}qp!HQ zF^>=92!QCmc~BS4nr&EryL3TLc8n(Gb|7EbgZqp!zzVdtekOo=r;6ee`UFTLerS4F zbjJv#Jka{`>D*-a{;l41SF?TM)=+S0h}%2u9<2fWQQdG8t|W(%s26wW*PmXu9zi)! zYvfyhUjtA#=+hQfB zx$Ct4Grgln<<(`2jxRSm;_h^ssInRN{gG9H{z|nWRnV3Tx8R@LxR>;Fk@($~{=J@` zX%!|8T7h~^hDaOF=LT{8gW`)D?Xgt)+eBQt<61_xPruZjjRlb6iI5rK2J+wdK6}Uz z13Y?e545pxg7$WPd#a>njHm-(DKUi3Pkf^eo1BMc8{2P{h`Cb2Y-e-ei~rQ3c#Ftx3O{8C(R+_}VeUJ+pdS8)~vcAp+l@ zRKDTLx4WEX0fEln+L;vy4sJ*f*=f@%sOjhim*`PNy~_org!cukX!~xh{xucc_SfP6 zWH`9~GSS~~lDKPJ5euyNpcshLm2Qv!w~w_z)Bq<< zYVn&y$aq9J@b_i^m%u11lzaN|B){)<^+d5(V|%m!+*4FzV6eryGyv0TxSUl>8;I`| zFVoEO_~ywVOdD_XYOj&XE8OICC~y2@WY)2`(V#dT8{gJ-M)30EONG%`Fe{76l>HDQvmBe zcI!`xr^cEF1A$r%X1V%d_A8@6uv1>G{K1ks;i(yxEYoV6P&dkT z$>_?LKYeH~?4v>OY`fi$!JDP))T1h2ylF zGdN(@CiYEyxEk(pfn#EK{Wm3YJ-f%g@{;~i$DN;hL!%-r9twGNQGe~P+zW&P>7_I( zy)@>$PfUR<=zukUl(KwPE}syP>gsQGzEUB%YD;naa=NM9-cu$bFA zJ-}}PGREUfe|^-vq^#YPV%+zHbFM3ZPsmzKkhfI$U3=eU+LHSBPn1!d7xH&tPEr z?6AGK?u`$B5>4yvw0(mJXNtSHWUdgzB=C@;h`ABOoEx zIM9((1p)*+$C=?h^pJ_B96GMoS_E0P^*l*#Uq{s{avciIg&wWWnmW9zynep+;WCVZ z4&S>HWfU4Zcg<)Y@PA?hnS<}T!s~D)E`Wrv?w|HJ5?X3l_l{C-;JcN}Bm41R11i6k zTnob$D|3*K54@qegHw0H6*QEMWC8Q_^w!8~TbG{8F$GP@wbRsVj^ks`*68A{-Rps< zb$p5iK#{}RpH%zEoI)? zNTY#Az^B9e#;COOGEghc+iEMO{@_*{Vp54cd!!Ki_Q8WJR9TFnb^sOse6$JAO|U6g zJK|d{y~bFV8(}1;{wOeoP)2rOuO&_Uq6}iV^{eio<)Q8xr;KnUhbt=KOid>=YLE3b zq||!{C#J7I;&jBp+L}y)V9n{B0k23u23e4Sck6Y8t5<(FEb zP8+QlcZ;unGg49*#j%`SoMFFIw*6_CYU~pVh^o8H;&Otg z1I!$dGc@c~<*WKM)((}kJ0eL@=2!vYykUSnE}2+gn_p-TY*3GOBJDU~^?JqEaD8}x z%IalMeWL`-n$En${yZ%obFtC(s3|rG4KkGY@=AZ5MY3i@ar`9qE}@b8sca0xjjsW2 z8jtr&8l&rKU)(ABe(kT!_vF;4z>;^9wR|z69kNN|i8yUpo;D8Kc=P)Tk!qn>a6vNl z+Q4}fO{{)oJB~FfD*r^EQlbkO_zC)`Bx8=u*X|At2881Amd!GV+4Bd?U`^qnrP3cC zn3K`67Oge?o6;{(7YABekSiPTzoo%n1H!f0@t_LOwbjs4-njfySuwKH15(g1c%_-KqI&F z?7g3}&wI|jW1KPGbJvH4?y=UIt7cWLn)RFis&HjRY4q1bub(}8hW<%LLiO3Rmu=6U zA*`Yx!GEa@pLd7u(AGi#6rxf)Boej zL$V;q-`7ceh7ugo{(T`;8_<~NU)Nz_EeRpDh5vo!(DDDkWZOx=+im9#eTMc@!GGP} z7JKX(cHE|vN}U^Gno3n$nF-;~tFKp2ts}FvwA_xpEq{CHFar`xrEYEW?=%>Hh#f+b zSo%GCMrj@$b~w-wN3QJ=K6K0lHA}sDWF|cZJ}`TkamR9nHKLE;#Jam5PCl-__Gogo zDHz3q81RfZxCXqdMNnz%Pt>KVWzEeTtd*0vu52M6aU&fiYwilJ{T4^7%8ulsP|{$|5QZ^`_CbbXkH)wy-vB!NPabHbf^EPnhj5T4sJyG z&nIeXX^DcD5l&!_bSh*EBL%%>R=cyZf4u0B1lf6%`HYxrcXc?glS)nHOZnTHsZHYZ zNgAw1-tURKg5BV zfEST5SH0OuE|o4ePjhIz&yy7{UypQ2-GNH_DoOqvL?t@ksETDgI>(%8#w zbMtYT0o;6v7aJN4M7EYp=H1{*-1YAaSVprrN{pIjgEJSg`MT&`l4xGoT!qt-MNYql z=o8*wgmCf_Zen(&aK8H{4}6W(9v)U~SV^H&(JNvbab%z%xfmHMqX{%U=Rj)TUj=&M z>tF{#xZRP61D<$8hSYdfJGJoiG8%s=DY;8@jf-}v7&!ezewOPS`F76`W`KE_U?Gix z$i4Cb;p9LDV?V|a(4cnt%G}wN2Dw!$FW;BddJvmTd*TaEtfDhglAwS#zh<+UtSK4i zdG8>9h!r9vem0um*K;%iFz(Wy2PdX8D~w;(C9&Xh?1>td=2GTr z#0<#Pmj2NT{kgPU)e&|`{)IxZA~SNUnRA|=r}ZFWUrjKAqs<_}3DpSuqJ1E7$vPs|s51enk87#N47&Rb<(JWdszdy;W1;|I=A)m)V6 zPRl9_J$y;H1$p4jkZ(FKtCL=oRcIWHDpjn@o(NTPObQV?o_OH~{J^_PYen+i<(&J{ zWb*4%fXme-Fd6*tV8HFx72Z?Qa8R z7x}0yL97jykJo9OKj&B+UbKpOI@;Y)V2E`DMz4;XI`pEz>np7_LeP#lFMuRH2C<<4 ztIqe1v=XgoD&S|dR#W~){TROqL=q|RY?;np?-7|qNnwBwOZ4&V1vi;6YuBhj5vm)q z!$9SNlq{-`>CSJ6cK;X88RauX#iBuK4m#KGBtlgqT(EWADDcd=733=x%A3-+BZ$_Vl0kUhw8e z50tS=u1|Jo-*QU#IF!o^QXkEI?xvU&A`a4}A6fsBiJ-vu%RX&Km#kK8-fZxO?o3uT zwl?AOUEuMpgOfU5o;&Lc_FoF`4tS@@5h`=tczeuBSdpyo!6_!$Fv8^0J56b&KmKT6 z;k4rl6E*+!Yih@Ps-yguVD!6+o=Xu$U}II9Eo=~hG=n7niM+RX_kL1owgQYX(CZA? zwme~Y5QQEFPSa`B|Bil!)PB->9%<9g--AD+bu^gs^P)KiDiBudeot+k%CUyCWHcIh z#!@PR)ONJk0=au>q*E;Y^sM>_?PD12aA5x~Rv~{CdaVbvFOC%E!~{eAd0)f{NJ4Ty zw7V?*&cD=4Xm^nnJ>+gf!epM*cG(al6T7Ir@ttDBklU zontv9K=zJ=&x>cV!AGYiu29Sf$7ghC|J5_w5Nf^@W#9kWRHdcviJ z3(HmafwgQKEdW31yJ~My(}bC&ekrev2gtSr?s!yoryWyZJR)OiL`${R{Aca(o^MDOOM^#g(-RnF@oQCa->F?d{q4! z{vIy$CzhiXepdzN{D(7PN$Kg}UnP_ThmB?|4n1LOwynPohLFE>A@x=~7zlgwsPJF_ zO^j>u&65>_ZTr(f5OVM{9db*xD| zyRN?it5?^%BXE`xyZ*xaDvz@$JG-BhhTxSzolvT7qkR`=T0COaF-8HNPT7IRVzv&! z1L0H5Nb%`psU{9WK&Kr3Obxp@G{cV#kWnwc5_0|U>Tp)?m^^2C=j?;3hv7Y7&XK`C zvf=lKIseEIS5YO*5-JU#KYi8iW?lz+U5TsPJnD{3HhaU^;|YH)HWk~jLAu_I{k@-^ zfCZJ1sI@Rh!BydR&#KYBeQsd_)VD6mrkAZDL9)0xr$avNxiA4wqxRa0yEPOVY3v$` zMSO?zHH;8g-Lxg2YX0S$Ix3*yDG|8r*s!$1cb#x;aDPlz9ly^dF$UH8Zkyo^W4?KA zc>+lk50m4o)<7CuT=QlpiC|pU`}JLVq^yK_*Nbm!Kd*S5R*UO1w2f{vJH%(Bra#Ph z7qbfTGkj>+r3IOmPCw(LjpB1>dG$&Kt^1o5RpS~A^>(L33KMtMMMv*JX1R0qE?@jF&Z3V6 zhP}fIxclTf336srrEencSNC}>sW#<;z&vYNvCAf^V2iZMRRdRWq1d?GQ3j8@JvZ`q zeL+k!FhkwjK9Bfme>NhVi<>BHnTY9zi-N|@72;I>RYS zKb=2v5t^u)Uo;yEpVfZF=B=keTV<{6i3OdQ?A;`#rnJikQ@3`(&d}nt6#B}mb*6VC z7W53iQ0rMx{x*Av(Bo4CDkaZ@BR=xIoSb(Zao%jNcMMhP{p`FEpG+99=;ip0djC63 zqA2oZ`W?eg7y^(+IdS}Fu=v}c9L$wZzyMdLiso&!bALQE;#YULg zYEGU=rm1#NBr~=)sFD5t^!jQrA%*j&I#LY7*o5ezdfw%;0c)=TF#d=9tJ*81Hm0$O zSfbD#rvM*5j0Gph;{no~(^m@pCXhAAC~&>mxc$7-KTj(t-udwq%`gU0`Xa}^%0@Yk z4v?fwelxH|gme&=)^eCKe5#jkROu31KTEFm6|ukt$5MOM^m)xq_G)ayJJP9~ve<;! z(7J_$IQIkoaf^4RfmI@nXBcm&N|QN0lgX-)`I?Th(eYwld`qs~+UjJ|S0>Xcecu}> zsnqLO@|w;aNL`RwO`#%SE2CvJDKP#CSQTHool-+9Ct#Ew>0875uBLXJI{tw7QTxXa z6?ggiB(SQ1p*M<~m^9W+2LK6NC=|0_me1XHOU`fr-Cm2lUsXZ5%m~i#)@bmzt#?%H z5jl<~%71Vn53Y|2(dsl2r1)2+s*9EPU4I(tQO5*gf<_|x!dG1MS3G&j#J zjs%Bx?CIjDv>wC9`wCB(c1#n8;&wtMv86|%I}>2D9eFAidA6eXgHb_p;8z#@AQiyYA~Nk@}M| zy(iUai+mgqCc1gqkAwjlwmSDBF+HD`6G*z36) z*M!=NHe@Pc1G{+nV(Nx2$=lr;nY%dLH6rVXAB5Oy?pTu_-fX(lw_jO>jD7r_yhb6y zikeRQ`;Kjwn$n=;lg1XcwaE*N5%iDJUd&q5JWAzRL9^SL%Z3xTHcVk-%3o(gUUN}b z)610yyxv#I1gZ8(RqgEg$S)Nh0eR5qH6xsrs~N2(pyNBf9NF20N993^yopUhJxx+IOh z`x!2zKfD$mu3*SEZ&~7H5OERxvbHH-^-%!{-ugAJX@nIQUN+s=SY;wFM=}DK$$E#p zFWzJWzNVF&gI3X#&pypByvMu1Fkl-Jc|$!`Vs9`i5qIoBv%tpmdJmP(`^hHA|FOqQ z?2{hl^V+Nw8GH^u&;a@{Gg4}TpL}tjVR{jDw@}p!P-C{dp z2qoYW3(IZ)O6dN6Qo%4Y@*^MD$|Ickd5@-`VYaMz4BWiZz>obUK<+9nLr10JPy5pJ zOD(|~Ufy~A+%P_4-gEZ+Hf)lDI4z$#G!daigpS0bGabXL)no|?_xF5pA$=gTs#kf5 z{L;wZO9Z8GDR0C4>)X(l2(1(G7rs&%1toJ(I09=_0ePjes{3|Ht>-tK6oSviDwmaG z>TD^f`WPAGxn@v*>^fdZ0^2dme)9%mp^z_4PO50Mex($iVFWU`c-e8!hoXJ^xP*VB zY+uTJKrt5|gq3eAjPq_Idz#kT2`0s1rORYUHb;6SskhUp9{QxRYyojgytx>9&_egL zN-MdS7ktzw+{fFOd;ETe$ykSX)|boIYERV=WO2}NQm6Eb(N=Ji+`FrO7R$s)TIue?`uDsF!% z_o{yrSzp)ycSR}lM593=GpwJ|oR7tTy)9YV+mIi_V3v!`hIU>+RT=7|kVVbk>O=iG z>NOvEWp8tu3s|;Gh2{Ym5$C9sb6)rr>jB+Yw_z_rxGw=X)cX>sFJGPFY8H&J-f=H=||bp*c|CMM>) zY(44C!iZNpu|QYA3BseGsm}Pb(%|$vtT7`BCFO%T2bn^PIRS_Oggi zJKbOeL3ArH4KF%>1RBJb4I_iOPtofiwt(2iJaB{yA+z zp6cw>6?vOg=3}p2T=7xEI8T@a$#iE!)c)iQJl(jQY0cr~x0zSqb30T3YO^)^eg$pX z|Aph}uR^B%X{n$uEUgA-xZy?nNLK{#a?;B0o)uPcrTKD1k%zYsb@mOuee*4P{^o1am=V3n_+dCX*~XdfCxF0uVxK- zZ@U;*xP|k!P!SkWu1i!!6>xl!BXbky>H20V>YnM{fsf2Wp_jn*L51c1ZC8$aUvx#3 z&6sA@rg{M*@9l(Jagzk4mAa>W5l+uWV>#|J&sq_+zT-Vf(J^3ZVuTzaZtJ|1G#R!yTh}(t+THzH7twY1i$%zEWIAv zM6N|w^Gk8T2cORWT3lA2ZAF*z**^{)lbBCdB^Eq+p}KX;l5*o^bQ{|OCzyI>)onRs z$A)tUoK4+MPOT@bVl5_XrWlBpn@7ziyuw`}h+p(i^PGlH><=?6mI8xu6#Gu|V~#}) zqqlAV&FX8|YLW_o@qXqnGp9RiGtL|U)?CJm=H$&iI-~g|#Abj}M{J`Kz}CyOqWP;_ zVxlX#;QXXqGg51}d&2n}K+V=kt8DEQPGLvI@G?orSnomLvaF=Dhlhs4m8{mOcN&XP zHu>tkL}~lUYA_GJ(jYe16`n(N=ww;IT(}5@;;@R9;J|IFL5{=IEYV>GqFpiNFF2{) zJ(7fJX@vRLmWoZSxE~(r&Xw(qIF|Z|zQUDkJ}o#W=p?uk*v^q`HO=N`jq1l`#N5BK znaiSLXfvP9LCjprmU=h8@aA+LskP{xM?VPDjBUI>J3|6m9-&XNTsWJA)EP31tt0b5 zft5~mPfW9Tw8u?;Li=6RLk1nek#CYTF!GThf1I0|1_6ufmE{MI_44yYb_tCml1!pi z4R6h${1}&nHfjFs36$Hwcfh^l>VszGxijr41PH?gGXnni;~R$dlsrL>EHP3#CxP>X z3EK|_FwFwNA)y$*px=9#Lsg@cb1xlY_I#vy$^mNkk_^!d2y5Z&`!|OtZP^j8q$i6* zpxX3LzwOJ*zq>`wMy#hS{zx8U5$*JcRiEnl6$na{b?%va*d&Cq`CmCO^(GNLUtJc3 zGHLiSd9%JY;~O%HpPuNeD)qchWtO>Xzs?+-x9eLgvEnDq{Mj!_zpWVhk*;%ae?{Kj zcg3A!P*+>hv^~-;3O)?|7DNe{%vf_Qt2S96ObEv|^+r&gA7B{1J1FXqZtg+&6}ij3*{mWAj2QR)=TY(JX#n zv+nn|au8yNgQ6-(p0L2K)*8ph=?f}%~ zb`q>hiL1yNM5#MQGbb5KQ+FgqP|uQ;r^vtKl=Ov7hiuD52Z zBm~ZRv|(E2>0#Foh0KZWfaDT023Lag0u9d>DQI2?@T?0l-cLI4n@w2_3`O1Otvo=d5CY>|2=eXM@QbKc?A`kiU!)cbjt= zn)Nhgj{AoJ=-SVJd*5ocVO>ibeSg!H^Yf#_+vmvxA4{5KrCnHQvg)@=Uz-R|^OG5# zu36o^a}%P$n|VlF8K3s?S7}8cxicM)Y@Lc2*c-f~Q?keS9hD0fjqLRDzEGv1FpAEb zif_mo>qDN|Y{)a@z03${+NICq*HeKN^_EFVJ_+IlVwZM?LdpAT#^%F=;X}c=OBPXQ z@+0@ipl-mv>!++S-&FNIJ8dyHFFU-)+_F8KVyr@#eS!72C#DiAv%!k=IRd11&oDAh z9Y>BygLJ&glsZ@3_N|pvqR%WB!DY4qmoDzWd|rF4SJDehUOc^Zt34&r*vTeG+DAsV z(d8j)Lp{s-S(QQS!ooN;y9YH-#4p;LMi6z)J9|WVxa<=VM}I4Pn6=ny=1#sqkw4Xt zwQ;5@M8n=5CG|hS(?H543KHuU$a~RT+?z$PM_a4ZV!c>;fHSpBZYB>2+xxBKzS>dH zn?rKs-J$f$=9{{qa!lVlPiJ`|v@CPJXz4qN|XhNt-Pu=Zg1@Th4(Y8cm9gk zg}0URe$3chFxKx~@ZFF*3D`QQCSdio!PT{@YDyzB<1&xR{xVsKeaD*z{D4b!)hy0> zK;D|%^w`F{M&Y5U@0T5Ma8lj%ltdlF3UNG9J`xjnb%&$~;Fs@LSeZ$!YTLJE-D`6W!fX%EUfb8@sQKW60mlY`*wZO6?%NF96e zAlW4PWG*W0V7^!b{~I&d?`!){;N!hr+^_}9=<&%S?nDFR!aa7qj%Em47m?G!Eoxb{aYCBde?fcneU<*VLjC&uL&0?S(z z0QXWfuU%12bXFX;NrkZt?7<36GyCjxj@2OS5P3iJ6I$j_mJgrJre3y3MsFbucu&Gl z`y9$S^e9u1PZMi{^tei3TKcBRDH!;zlrB!SmIBJ|a1=81`G~zFPc_ErcsuH}AFUm` zID>~`0iWaa*w67&W%>u7hs(!FBCc!6R$F}SA?H0?nF(2mEeR-Sp}s^DvF5acv!C^v zr}#p^ojl^qq(-?ckG+!v#Wwgl3g!I4om)z{++bnd1oK73Y7|e=@8`}}YS(#&`Cyy; z>)=Zr#*28lqwE?n73Gsuy{Bs}^KRHTKm3~lairEG@yJj%mmZeS_dnm-<2_S4ash$H&av8_rr zI;}mu18w@WsC(fa{j|ffrZ(fLZKAsVikbWM(nXZ8B|o}1R+^Ow7_BjcjlHX~Q`Xo&hX7KdWR;Tr?D}+V#dJ!*8wTlTKJd!C2_xHGHOy!(%rFGvOkWA`VMoRv8AQx%?abmgZDIUY8!2Bte$Xn!7RNGT7 z0L<;=)m?j{k!8#S1%|BquUzVs+373~;S?ns`Ir14PR^CDu}f9bs_cKFvhwIs$Kojx z2k4c)z%#t2idEdX#8k_kIu?(AwO%|D`Sj9e6MzzTl&eU&wNEJk;EbfwqQy~Y@9;D>nz=!d>t zQ}R6 zZY8P%^l{8NF{vr6LBa?ZRr8SB2IkmqPbse5N~s*PeFw68DuG zP~5IMX7~_52yaDkgZxs9kvo1&X0SofmcsD0f||v_HTpH;ZrkH~we z<{0E~qVOXsdvb4qREl$)a4=7roC*G#nxD~GhkYO{FUm>8;oQ!kacduO@IK3qnD+kUG@{-*^CC)EJVs7-xq0Wgp$E&xGi>5 z`@CI+nh&P1u%pir1m2qOwj34vp}1>cyk?PQ_zSaeBFS9tve0y?R=7rCJJW`CrL`g! zxh~H)>n3C1#2%HYt+DT1E@~hNh~hi-GsfI*Z83VW5^m4F(Q2()ehK4GXB%;{7Md;mwS}K5J_kXtyd$_b@9cCMUnDUfl-Z|is;hqqTKZ?1D&YP@ z`m0QT`A_JN{{&3i;Qp&$%KhU%0l5FN{`jvyQvHAb#rhvI*$5BCiiDQs2Ac=lZIuUr zrx*JUaC<}Ae3b*U*Z$F>oOIz+s$;9e+Fi_fF{ohUEgIRWfO+LDulu#p-u|>oY8eC` z<3zQJa555GmaRcgO5W-LW82zB zzVUcvtm+MT_?Y=8(#c_BA7eNoUJ-M+_hVWL&`E7l$CTH{4xI#+Uv8%pG&-hn zyMlTC43=}8)$&~SJ4y68aH;8gX68il-JKoK6VJEw^z{3#y1KgiE}BD@#SHADFH@4v zyqDr4=Ha*F9U>U0trqKwTPWtAW(J-c4aD`%?e!f0sS+8X! zMCRUlxhp579{AACBkh>@_;VP#sU&eJZz8o-t#@>=o$uQ>m zjbH6Bw8l{0s5F9mhsib-k?0cm&j-CUh8hUWllSRLmpEA@ntej7k^n&cpS7L@ki9I$ zukb+rXAu_u6oIzpUe&A_A6n9eeOPG;S$utEv$;6|LGdUO)XVy%`|(lJWWXbQZdul6 zvD12a)P8Lx%9v*)!5ZGW(_74Ctz>%~+D4WhjP**CN$+s@L>N&=uP)gAd{CT{xrJlr z>a9^dN&1WUJQH5-v^ zPdz`%G2&FLT@s+VdA*4S397hupUX*joGf7G&NxP|Pl_-p2{_%7lT*TY(95*eAe%~Z z^$!YkpUKC+4Xkxis4ZJ$OqSRqV)Sa-C2LnyNX$~e7#2>VvUl#Ks*ItTWL^g`b*F}bwWDasYgxfxj)bZi_i;yNvT(XW zCoOl(VC$~UKGOW_f+#-)eumMgAyyyc)<&ngm&c1xf#76Pm1T^Z&(1JKqUm=g1^ znRAA{G1GU1B8!!@Yxh=xf68BV^rHL$#@NiM!B3_=S+cD-P9&f1Ls)eWARW~6gH-Np zDs9?Co|VO&fr3j?@BpLt+&vT1yO?Paayi4=0^{eANt(9F+BFptpGp5Xq(U;`PrN0P z^!Qyfdd_i}b2|{3BtaT|3J)>MA0tBz@oab0pWwrz=XBh%{$Nh98v9e5@nL{3?VZjh zHRo5O$Ev#{Pmv^u_--he(RB<6*VRvsFSU>S@B{@|Z#}3iQzHw9?vgzQq@3@{H%DiD z5qAF>$`Zg!KC=@L`fFAQ#e2)&yyT^>r|1F(?t73Q^2o;ZI(e3VGrv`-<0Ulxsrw-oiqr)11V3bh#RDP1$=0>uB*3e@SXgWT4o?Q z5ReEj#0~I{o3t(GC?N7j%f-avIW&OcA~M~{XBNA2B1$}~QuU>ZPL+fGWJ3U>zDQC8 z&w^urFyd1;U#Oy!?}nro`YkDuZvC;N%7cg8nO?0v7kSeCYHsFyv$>Y>ZN)42n?JXZQxLo09kTvu-#G@fxMM)gQQ6^pOHPd_6S)Uu>Y584(VlG%$Fnwm7* z`XlUV)c)E3{wz{RNQDoWT&^PtleOk@R-8n)XAQOsTTjHfYIOF$$)u%6PF!o-G9k4v z-(Le`!zoT1OZ=7JA!3S`>hgl@2*bX3y%p;<0#xxn^4`S5n@T38lWDq+;3QvP!GPD; zkB`E5v!0yWumahWW_&Cn4yl!LW~k8t4?O{EG;tuA&(t^ai9+L}a%U%41)?rLe|FZc zogM#O-g&tuc$J#Xd0ADS#0go*2ikpvVRj0t4?p!O&%EspD=(>ux$1K6yTLaU+uO_h zqE0qBh|4wYOh^HhNOFIrHsL@e4XcB7MCM~s+dV$8>2xs+C*!hj09#X(8B^SI77JA{u zQ(OZaS0h}XAKirwFAo`;Y;_+!-q5lDFn2G_h?vwqhaP@dWUj|Tj(8yOd;cuwBu!XZ z-(M@4!IXZ5m}n0#=oN@=cDayiNJX<~r;uia8cJclCw62H?s^}26)t;9z9v2)3^t}nsffKDZQZFiG^yAJ0Hddk=LFjZmdq#Y=K9&04%T?{swTN(6mCOh_Hfu z8#QT$wf*bX80);i`yw^Vw*Hk(F9Um;+_r-7#FC#WYo_<}WlrhXbPcu`)aG*pD=Tcc zn>z)+1k6bZM{t%1Vdx&H5ISQuRkZ3^?3t+7N88XM(@Rxj^FgpzOWe7`u!%1hA znQj;o#=Vk91@fTdN|1Y4_nwZFw=C*v-=zvxcZ3_G`d7)IM+%I_DBv=^&}n)RzNx{2 z#JxyR{B{t*)08#I-2r0?uMb+glv013&>6}AyF|f$OoT6CR%wjMd0K&!<3Y$IS5I^O z1;sf1#9OXcQ6A-8K~)&!5^Y_BGF5Z0Hv7ybZyld7Q<1KeKa6OK(XI+`6WaDkXCIkW zQS5AwEV_r$M5g5ws{5aK4qVR^of&RL60m|!nvLz2v5>1yR{MNYeX^q9%@(cx8@L@B zEBHtuC1U1=Uo=z#`%Z@uE&TlRXvE->)!fyQM?@reZ~8p<&b!b72k75FlZ`t z@Yf`==AOQVVq5>{rWfRolZ)sR>4DN4v9O8HOx`A6XDbPV&So~=ba|t7`f3F$U9r^H z$ir9I{Jo~??_kkBc-=_hO$p_o_m0VW7t}bndEl}QNB-#u>2gHY(F=3AZR@(?2_E0+ zGqCjhLg-T4NsCdldvrl$F++@ecuTGvUdY{Ck zH5N+K)l^&rIjUvkgq$;G)R78dHBg~?=DXHc{3~uLbY^P%4z=(yb?!oZALbOFyft`_ zH<20HV|l{aj%;CH>E}smugmu<5LUMPuwYqt9VO8zdYi_0{p3r(YjB{ zqqtk^W4rR#1U9|pi1;sl7N~A%yWjF$MQ2-;R6)n$RyU z;9KeL;gR&z^bG(#)U0%cB+xpG)g=>CKx1~uIjP`LIfn9`kd^E3N;P$*1ySBB zHx?1HFhP0o&{S=`?bm)Y%ln=D+*e+UaRO^8ht{>+a*3)|TaCWUGr~2t)|Z-_IV0*! z^_CQ}hK){Ck`a~`OGfa);YBB0rp%vaRM}(pGg$!$v*^do;}039>& z%#au#8F1fliW4+T>Ic<$?P0$dMpKvXF{YNex7#A_9X;d^!R|ShqO5dC9i6EVVYlSr zLQkHno0>3xBi^*Vk*0?EJ*(q|9QUBvQ61>DggPsep2YQU3>VYE^;p9R3Y#bM`^72r znO)W%kVI?gRCZ8H+CP2lj>OXEWQqiQSHA3@9kK}6` zc7R7osMu579H=ciXWDI6If4;w3szbL(dLR0NhWX)=nc>>Hs7mxwNodqVQ#!>*u!n- zRb=QouCyvEhx0}Sf|yMS%_~SK@tdn9l*7AwPF3!z{;wj|uIp`3lW-~+(737P*pYrW zs{~-WjAQe>vn|AR4MFJ6jYB@&{@2 zvOgy3UmBOb%)R^Tu82|;H$2_T1$8xmry`eIg{3!NuwarqPE=Gj=UyaqwWa>YJvZp{ z6sGffGO-}F9ZUK}oEzW#`%t)%wGRA4Jj75^(4e__(q84=w)9WfAw{%-@(!^irhEV$ zsx5G>-&ZYbz>B;@+$)!So|d&g43?-7b_g-xo3FFO(iwof?_vfTe;OoX+WQg3g|Nvc zY$dFE{DRuNZ_9$cngmNH-9x!aNfJ0@Aw%}=JYMSYTrhe@=+GgdBq=X><1{na3c5|y zzV`uR2G9SCzzl}*3{KMf+5o6>HH={X?n+XQ-D%PP*TB~9Y05d;6y!(8IP!!41KWz> zCoF+?v>3{nR%oPB#ywyi-XeM+>6mxE9Y%;An9NIsW~|Jx-!Wk>>~O+B_|LO)bwilD zn904dY(;pZo~!sj0f^eD=(2$i)YTHB($UKER8*yXYZg66P2=a;4!cPGX6x8v)?3jM zqh#lL^|(P2nFpaqu7f-_kWip=D|BUyWA5#Pp>}9O{8Q30*Yt7j|8pbI%( z3eu$--*<};#0Lwd?#Rf^SUvq{SLBWAUrYWWd>Y|IDlzb>KySW`oyddGv0oi|I-Y_= z7dI$gLS0F49(##3$%v{p0Q35+`;yK`O#OG)SsqGb<*N{1{E zY=oI^J0yjo%$xR&|2Z!md(igSZac7=0U`WFeNBnLJdMDAOf>%@lW9mvC52-v95nUz zV7!8Yg7eLl75&?%5GPmH_$SZ5UTH6oi{Jfg&HHucOK-Is%c~mgmvbdi?^RWDMyERD@5eWw zjkrk$;6J4`Juv&$VO0s_Xmqrbw$u8<3H0h6wF~V+{~$>B(e5N7p2df?r;RR<8Ha)$ zc}<4AGn^8`q3M5T?QRYLt+8ABvRG&ePMdB`r1pQDus4rBHvfO+S^t&&F#m&{9UC$D z$6i~^XgSDG{>AN150avroiFIjE4|;WY56(o{d%ORyd5^71#jgVN&Dn=a}1C%9ZCzf}=vMFz}oH zz^}m9GyNX1jWO*R@=kZ|a_Z{$_zRs~IZQ20;V1O}qIXh%(K{ABX8$WjdrT=f>WXbF z_(!=rGwSZs4W9xNdwo-H00SpX{*HRaOAT0Xa{8`O_-|w>)qnjNR`{t-;}6P{`U~X& z(d;Tzf*|7FEmF%>-qpoYtM8uTo0ROAo9u&59PYg)@O{o6`k^>$3rWo)x`fb8+Nv7R z`~w`Gzpb&}EkWq#PG~G>SFoL`80l-Kdgw$;fu#4JF!&pt34q^@R3^d)e`@RUKQ%u7 zr^d_WR}XbrAz@=h0enf-zdd80)Zd?IQueEmU}*E4gy$#f zYfm-BYgnrfxmo^D>UrKjzJ?e>jn~M z1Mfeng>Wf1fVxcAK>%ZZiAhnqh4ji-=JV+JB5}`63wnp7q+#5|h=|wb^h?B3#cvVE z!tdLz6yzxWtRatzf#(r|{*_1gJ6hvEe#<_1t?*C{n7QPt2T=dXRYm>Pm*MGzzkuJI zVam{dNuzKrDtxv_f8~L#GDh_FkQN>hQzB4NXZ`=^}KiawB|1;P3zq47y|3#CZnMEu%(8*a}918}yn5$HDE=N#y zVM>FbAVGMVd8rHgV5-dVeOwj&MO@vhM<@5J7(}0uJu;^ch;l2)eU5r8oFFQ-E|EVe zX)ZFPw)C*t4{hv#OU<8}J0-D02)n?VGe+}HO3;W(sh}MvXqP9&kJjwERsAQU+B{`z z&H6^w)K7|5`E$faN7~w)h~Kiiu;$GHlH;W_+I#Ho8z3`l0N?NmeCz z@Jj2fy^Yl{{8Qh{TR;OR-FzRAd3M8C&DxMCclUkP(inC;)!SHuTtVynt>ViE+J$>U zH(3`AZIu>Mq`rrx+eMGd)^odu#GOI2xb*st#9Lj6d>`Y+!^hd;^#gT2?3gK2NQ%C> z7&DVja{Qg)N+ag^s>|2e=J7|2(!hPXoI~RNb*1`4Qm9ObYH)l1!;r)V6_` ze+{#X>^W{b0$#|3XJVWXp78?obfm8LO~~6*GhfY(Ag*UKJ@+59*1#z|5zZS04=%pc zd($PErWv}qP1j2Cl*fgF153~`7!9|}*N(!Ki)8cMv?Z9R$ z!=wDtUBW`1O>j4#kn17>=u+m zUnIxDfz{=cA{d(R1aLjyKbw&UBNM@y7d&MIOA9Y!t2>bFNAfibX_e6#7U#M6(LPFk zJbhrp$}}svY$3qCS5)_}r*5$S%DLzLYC9^oM<3S5o#NPJ>`+U7 z`pD0cyd+%YsM9v6an?>^T;vYN@ilovxN1E9Uw-~1*^1bo!K`NQCr$hAed;Gj@Tx`O zh{2OkkygrB^%w7a~D@*|6fePC?xjdc`d9&%nS$e9s; z3gJ;Zn`NMGWWZ@8t+1^s_$d#kXv!uL(LNP!kF?pj<+aR_e3 zibHXCcQ3`=-QC^YEqIE%LvVMQ^f!CvKl{4&(Vm%;b(~~LzV*HLb3gIar8eJdVWxS| zqTA`{7eq8d9~fXR9U4I5B^iHMJ1Sj>;=AMrn;z(a5wR<#HTFYJqD4ttrD}tgVg?rN zwzZe?Qxqrp_t`k@V0nY{jQ%)7H`{;aoxeP^~GTc{= zAp7MZ?JjLNq(M7Z^Q+6@jKSIm77jF~kL{N_^HV^4$R;^bu%Q|SuNk*69f2j$#W-9k zI?f?tbnF>uH}rRi=!xbT+(fJ>Ay7>tupq4m=#+h%u@@^bt4Twu0NJo z=d?s>b>!FMFR6L08U8TT_^*J{_FW#il5anM?QBW<$Fsg&EbT;a78nL`b-CXheK>HD z1I|Kui$75~cw#$juh#fJ88M8q2rQa-;%jlG1;w8{$+-G29sHs$C8Tvm${&5)z~cgc zi5U5<18frpwc8^zVhzWmPTYF5`D1H7=+$cL%p zAmR5!+s(-2gWOj_oyY+ZBB3#zVtE)uBV_qvsnWm#7#Av%|WR&s|j&&pipRE%~yY0Sg^04D4AqBfgY#`=Yp;g@o!@tB@5vd)tp(S^HENHXr-~?nxNy9 zl~XMjqQH$CiD@`?2Y`Cu?=Il>vhuF}N*|X~q*heSIyLKC0>6k1 zCf67G!sll9x>);f5fk^EN{>KZFXCz|rSEg#gADe=%n#kEu<7SM0)@#f!f;QzEa42~ zelcJ_-2}$_parHC)LnxYaaoDh^BY^+#NS!J@Rsit^ZG}6aJShM1W6x1Z6hl%%cOmM z*Oq-ex7j@zD)+sK%_iC6MYL2x94FYVqvG`GF?RA>p+KcYEL(k03>-=A!X*Ptnd!?u!5HSHk*nTrfgkxmal@2ktFta$l*=erc0LHNaEaw8kMFPXJ%8%oWcP1`r8 z&;=Fgh2GW})na#$Q-)6s|J0Ws^&#@7hYIW;Z`K=E$mutevywRJ)k)#~OE3xiCUhNt zbD!0T1OxgeadXDZZc%?_FI0U$_`CM)(1is#_y`HXS&U>xsjX#%g+)h!++fA-WTpM6 zX+NrSrkLICGEIU0-Xt~y)L-7LK-z`P$jC$8LdIvwOYW_`Wi`KHZujkueZWOKF!9Y< zw2eM2rsF$wv5tD+1^ScbDy;N;VNvz=e{>AS9qk;h6(cIlL>L=bgnrvh!)GgSzb_<@NeGbwUc>{&KFp6A&-pKStSpK{oAHgDtOI&2Ns(N57@)Ao}XRe?dc6wH|gV&Bf?jC zWg9*AqBMOHrerR@S$x&bM5AOt*W|aZGrs<|jYfp8!`rO=O3MK8?m`zr7~j)_n0e>h zn`#b#-`%r^LFfZF2K3(TfKiP9qMHE53ftnWDd-uc&|PIkaQ!Wm%iL+N&OtMLVWa4| z>kI_Q2oknuVo_(Z4xV<4-(kV^m3P;zwD(Mz58f4N^ z4M&wcF{E8vRQw!@w!1~Dl(En6?nw3|RV^t`&fL$tbF7RzDp#X1dE%lSYiPU0#_}h} z#M91sfBOZP{#Ayktcr9b#Dg+4l(?Dt=!ZMqbGH>KTv{WQ$iil`32I9V8&NU6=)2Ou z)#*21Eet-)^8TpiGdp>l;HCSa;V4w+H1Xp%$g^vGmyZRP{!iP^O?rB)gNlZFa#*%K z6GRx|EoF`x?sd;BW?<-X%h3(yxU?tKpn4UMjg$s@@Dw+@NgYdUg(y(f@1#e}t6iPK zKZV^E9(Ymh%w_y%pWKPMr;L-` zwD_a;8H)O}(ZDvmLa)4im$3M-Kp5wOkIhg`K&i;Z$E`LR-~15+`H$~j%Z(40&P#d& zu-vlY*cA}HtMa#otlekptnQCfg*QJjiV(;W@AirzNiIwN9c-=31E`T%Vsg)x1NElYKbFM?l*ZsHv_m5dipP zLm@@tAA`r1kZk-bzJaZW!J0DXsf92iCoJRrz`cF7{vi6-Lwhz~IiYC&|m3c*u#Q0Q8i&tb~f{{^A* z8@*$|uw(9_i*%p}_mFR;kW0{K{ARG5I5$=(;hRqv`bfapHS=(N^PT=bu>^QHc_N1> zd6WHdG8(Fvb@@CE_j9z%@&P+Ho}@)Fj@jQ`@;i53O0$>CNwU~#&A?OvtKqos;6{(b zC}ufaJ`ho$M0aTxXZJRF9FFYp^M&Xx9JsTIxxaoy@Mabq0#NWCGmo+v`h%oa@qB}M zHDxRDJI=C$#TWpw2qB4+YIQ{2v@Xb=Mv}XGL9gizw0RA%BA~C>^jQM$rA3W7LNvFZ z-3)>A;fGx2t#^;7+f^}B4Xx3#k-BzDPaQ&Ic6GKi9MBeBhWu24B{C5hKf^?7 zuWMA6lU09YJN|unYa#U>N;asE!Q&;O4_j?q(eHP1;>8Z86}n8^;T@?et=(MO8*#ZA z%r1mbh+j*zu?-4OvC=IwFKYPA>P%S-x=%wsaNpN|XS@&InacxuYdDgl`0OArpzon) zn-51xVi$8!q+N%q*D&CC7hF9@J!G!zk@9S^Q<5m{B$Bdc6ibeY=^WM;g1CVs;i&V@ zOdZK7?p29*jYOZsa5hC{ovVYTw8nT-eA!JZV3wM2H}4-8yj2VLV*{pHZIGUfu-OCoR~cW;WqZV4)(mHt#e z_PlEttE1cM8&x=p39w8hVr8J8b@eae$TPGq9ukWu@vs24Z)TJ){=nDCott98?&9Fw zV!n46#Uxn??SDyc8|kePbdWuQm>8pP}EGTM7LO zt|36JV;u$rKA#)?l)nx5ZQ)EhG}e0N#bSDmFCz-&;`7p2C+Cck3IF5x2Q@A$g3N)? zkF1W|<;Ne?7jMSQC(GX_HXC7nB~m>0GZ)acy2qJV(AO;kPfRjAzhT?HOZn!=jNX^3 zx6={yQ>ZL9_MlP>K1W^+AM+ZZ&vFnE+!JUICdy@WM_)(?ygs=+;#qlW2W~4!=PrN8 z!H@`@I`IqD*UU*<{y4X+mDEN3P2r3<^mmtaf_t637?&d~?u({UXKEs`N1obJe%6JC zPQ-82x{D8$t{v9{Q}kv*IdVZ`D3(CJPjSwBZ5n2{{Y0u}FO^)&8OuG6G8HzcQPe_m zIH4=Xxj3XJ{|Pj7*YW&9C#4bj5uTUa$X3`vu}< zc|^&2H80CV&r#Dp3$ZqbMTGQ|S&A?Kn?%1RVP~W!eE>(*-SBTYa$Q$7w}2nnB0Nvr zN9=s zVIfF-gn7bp+m;Bp^nm(1PMKFbtd6R$2Ksp%N7WM&e9+zl$RlXIGe$+o4+9?Q)g};n?L| zbRu03%ygeqxmPabB-P9XJ`K`8_AZu2RBmqZlAKrE!ClRbd@qUPGL#VxTJJgvzsR&l z5Ck+4eeV*|EN|=w1mUKe~Z#+ zIA3OSoN6?UZ{DdH^BT|8+g_YmMvj%Tce^{DyC9&-Jl2LcbSn8gDLv;_Ojar(`rBIq zeJC*fXwDk^G0CBUB>&WiLcSJ~*pkGHvij8j7k#L=)gj}}l573pp0Wag)q)q-k{u1P zSz@Qu)&Tt>VD{|d;*V|%z8s>9;h56gIn~!T(?*E<>E+Ofm}OUfWPEUf7mn&GK_)rbEP%OVYAaTejcdn-p*uPpz=8W*AwXDFv|TcD zKszQkOa_*@+Q!g^cuZyg4S1d17ZIU|#j#pcqxE81;?F@?xW+p*i-_^Bn|ZpWiE>%_ zS#fX7^lbKt3k|i1PFTw{4DRko8H&k$p2C!hpUZT%6pQdBwxV&ezwt;(o!Mp{qoeIT2GeCU=xV|)DP^H3U=i1&DTEglQH@x_}R3p{eqqWZ*B$4eoV>O zWK{$AHhE)_cS@u2`@p`;8|4-ZWufC6ov%b8dhj#caz~{^B^rv+eejhDlN|8N=jO`! z6-m3!N<&EI5z4b8oPEW@*wmCO|M!X@K z*?nU|^U-8?qY?%e(t3Btbb(V?-61|JOj1m9yg1>l`Wws+gC+_^W}H@)HK5qd*q8!l zN=Wm|aZ61OVpuin&b4|S(^4cE2FzXq-_sKkKG|!!KjJMA-kT_R)_ht@o3#~D^acLXtDfAE-SNETAT#8=w zKwc2NQsb;-y#MPbu|p2Wu24kVDBN%C>K2Noq(8s10q@x-;t}bqJ%4O4JxU;yCGIyi|H>-bF))}1x4M<1 z;vgCc)7(*OBRk=`WOmBhu>p@)`HSm;*a`KU)1{#ENd>~%k(sAXH8NX zs}XfJ_;4T+QAA4zcA{#zr~ztk=*u=Q*8^dEi? zmb>{<8(vdX+%D2!9vh^w; zrJ?hMX6Z&gU(PpgDV|o3oa|ENZpJdT0Y)ErKIr7 *Uto5XpLG$iS@nm}x2_=^4| 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 literal 0 HcmV?d00001 diff --git a/BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_translations.png b/BlazorBootstrap.Demo.RCL/wwwroot/images/screenshots/grid_translations.png new file mode 100644 index 0000000000000000000000000000000000000000..bdba45fef92b322f0b5640c747623bc1a950eab7 GIT binary patch literal 31829 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 R?sxNR%1J3p7Kt1C{4c9U<~9HT literal 0 HcmV?d00001 diff --git a/blazorbootstrap/Components/Grid/Grid.razor.cs b/blazorbootstrap/Components/Grid/Grid.razor.cs index e4ce77f84..594196a86 100644 --- a/blazorbootstrap/Components/Grid/Grid.razor.cs +++ b/blazorbootstrap/Components/Grid/Grid.razor.cs @@ -652,54 +652,72 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets a value indicating whether the grid detail view is enabled. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("3.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowDetailView { get; set; } /// /// Gets or sets the grid filtering. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowFiltering { get; set; } /// /// Gets or sets the grid paging. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowPaging { get; set; } /// /// Gets or sets the allow row click. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.9.5")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowRowClick { get; set; } /// /// Gets or sets the grid selection. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowSelection { get; set; } /// /// Gets or sets the grid sorting. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowSorting { get; set; } @@ -709,6 +727,9 @@ private void SetFilters(IEnumerable filterItems) /// Default value is . /// /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AllowSummary { get; set; } @@ -716,49 +737,67 @@ private void SetFilters(IEnumerable filterItems) /// Automatically hides the paging controls when the grid item count is less than or equal to the /// and this property is set to `true`. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.10.5")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool AutoHidePaging { get; set; } /// /// Gets or sets the content to be rendered within the component. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public RenderFragment ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } /// /// Gets or sets the grid data. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.4.3")] + [DefaultValue(null)] + [Description("")] [Parameter] - public IEnumerable Data { get; set; } = default!; + public IEnumerable? Data { get; set; } /// /// DataProvider is for items to render. /// The provider should always return an instance of 'GridDataProviderResult', and 'null' is not allowed. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public GridDataProviderDelegate DataProvider { get; set; } = default!; + public GridDataProviderDelegate? DataProvider { get; set; } /// /// Enable or disable the header checkbox selection. /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Func, bool>? DisableAllRowsSelection { get; set; } /// /// Enable or disable the row level checkbox selection. /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Func? DisableRowSelection { get; set; } @@ -766,51 +805,69 @@ private void SetFilters(IEnumerable filterItems) /// Gets or sets the empty text. /// Shows text on no records. /// - /// + /// /// Default value is 'No records to display'. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string EmptyText { get; set; } = "No records to display"; /// /// Gets or sets the enum filter select text. /// - /// + /// /// Default value is 'Select'. - /// + /// + [AddedVersion("3.1.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public string? EnumFilterSelectText { get; set; } = "Select"; + public string EnumFilterSelectText { get; set; } = "Select"; /// /// Gets or sets the filters row css class. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.9.2")] + [DefaultValue(null)] + [Description("")] [Parameter] public string FiltersRowCssClass { get; set; } = default!; /// /// Gets or sets the filters translation provider. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.10.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public GridFiltersTranslationDelegate FiltersTranslationProvider { get; set; } = default!; /// /// Gets or sets the grid fixed header. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.10.3")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool FixedHeader { get; set; } /// /// Gets or sets the grid container css class. /// + [AddedVersion("3.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? GridContainerClass { get; set; } @@ -823,6 +880,9 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the grid container css style. /// + [AddedVersion("3.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? GridContainerStyle { get; set; } @@ -842,9 +902,12 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the header row css class but not the thead tag class. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.9.2")] + [DefaultValue(null)] + [Description("")] [Parameter] public string HeaderRowCssClass { get; set; } = default!; @@ -892,20 +955,25 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the grid height. /// - /// + /// /// Default value is 320 . - /// + /// + [AddedVersion("1.10.3")] + [DefaultValue(null)] + [Description("")] [Parameter] public float Height { get; set; } = 320; /// /// Gets or sets the items per page text. /// - /// + /// /// Default value is 'Items per page'. - /// + /// + [AddedVersion("1.9.5")] + [DefaultValue(null)] + [Description("")] [Parameter] - //[EditorRequired] public string ItemsPerPageText { get; set; } = "Items per page"!; /// @@ -914,6 +982,9 @@ private void SetFilters(IEnumerable filterItems) /// Default value is . /// /// + [AddedVersion("3.4.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? Locale { get; set; } @@ -934,77 +1005,83 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the page size. /// - /// + /// /// Default value is 10. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public int PageSize { get; set; } = 10; /// /// Gets or sets the page size selector items. /// - /// + /// /// Default value is '{ 10, 20, 50 }'. - /// + /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - //[EditorRequired] public int[] PageSizeSelectorItems { get; set; } = { 10, 20, 50 }; /// /// Gets or sets the page size selector visible. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool PageSizeSelectorVisible { get; set; } - [Obsolete("PaginationAlignment parameter is not supported from 1.8.0 version onwards")] - /// - /// Gets or sets the pagination alignment. - /// - /// - /// Default value is . - /// - [Parameter] - public Alignment PaginationAlignment { get; set; } = Alignment.Start; - private string paginationItemsText => GetPaginationItemsText(); /// /// Gets or sets the pagination items text format. /// - /// + /// /// Default value is '{0} - {1} of {2} items'. - /// + /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - //[EditorRequired] public string PaginationItemsTextFormat { get; set; } = "{0} - {1} of {2} items"!; /// /// Gets or sets a value indicating whether the grid is responsive. /// - /// + /// /// Default value is false. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool Responsive { get; set; } /// /// Gets or sets the row class. /// + [AddedVersion("1.6.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Func? RowClass { get; set; } /// /// Gets or sets the function used to extract a unique key from a row item. /// - /// + /// /// The key returned by the function is used to uniquely identify each row in the data set. This /// is typically required for operations such as tracking changes or rendering rows efficiently. /// If not set, the item hash code will be used as the key. /// Example usage: `RowKeySelector="(employee) => employee.Id"`. - /// + /// [Parameter] public Func? RowKeySelector { get; set; } @@ -1023,9 +1100,12 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the grid selection mode. /// - /// + /// /// Default value is . - /// + /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public GridSelectionMode SelectionMode { get; set; } = GridSelectionMode.Single; @@ -1033,18 +1113,24 @@ private void SetFilters(IEnumerable filterItems) /// Settings is for grid to render. /// The provider should always return an instance of 'GridSettings', and 'null' is not allowed. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public GridSettingsProviderDelegate SettingsProvider { get; set; } = default!; + public GridSettingsProviderDelegate? SettingsProvider { get; set; } /// /// Gets or sets the thead css class. /// - /// + /// /// Default value is null. - /// + /// + [AddedVersion("1.10.3")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? THeadCssClass { get; set; } @@ -1053,9 +1139,12 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the units. /// - /// + /// /// Default value is . - /// + /// + [AddedVersion("1.10.3")] + [DefaultValue(null)] + [Description("")] [Parameter] public Unit Unit { get; set; } = Unit.Px; diff --git a/blazorbootstrap/Components/Grid/GridColumn.razor.cs b/blazorbootstrap/Components/Grid/GridColumn.razor.cs index 0c82529b4..bac4b636c 100644 --- a/blazorbootstrap/Components/Grid/GridColumn.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumn.razor.cs @@ -197,9 +197,9 @@ private async Task OnSortClickAsync() /// /// Specifies the content to be rendered inside the grid column. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public RenderFragment ChildContent { get; set; } = default!; @@ -213,117 +213,117 @@ private async Task OnSortClickAsync() /// If , filter is enabled. /// The filter is enabled or disabled based on the grid `AllowFiltering` parameter. /// - /// + /// /// Default value is true. - /// + /// [Parameter] public bool Filterable { get; set; } = true; /// /// Gets or sets the filter button color. /// - /// + /// /// Default value is . - /// + /// [Parameter] public ButtonColor FilterButtonColor { get; set; } = ButtonColor.Light; /// /// Gets or sets the filter button CSS class. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string? FilterButtonCSSClass { get; set; } /// /// Gets or sets the filter operator. /// - /// + /// /// Default value is . - /// + /// [Parameter] public FilterOperator FilterOperator { get; set; } = FilterOperator.None; /// /// Gets or sets the filter textbox width in pixels. /// - /// + /// /// Default value is 0. - /// + /// [Parameter] public int FilterTextboxWidth { get; set; } /// /// Gets or sets the filter textbox width units. /// - /// + /// /// Default value is . - /// + /// [Parameter] public Unit FilterTextboxWidthUnit { get; set; } = Unit.Px; /// /// Gets or sets the filter value. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string FilterValue { get; set; } = default!; /// /// Indicates whether the column is frozen. /// - /// + /// /// Default value is false. - /// + /// [Parameter] public bool Freeze { get; set; } /// /// Gets or sets the freeze direction of the column. /// - /// + /// /// Default value is . - /// + /// [Parameter] public FreezeDirection FreezeDirection { get; set; } = FreezeDirection.Left; /// /// Gets or sets the horizontal position of the column from left. It has no effect on non-positioned columns. /// - /// + /// /// Default value is 0. - /// + /// [Parameter] public double FreezeLeftPosition { get; set; } /// /// Gets or sets the horizontal position of the column from right. It has no effect on non-positioned columns. /// - /// + /// /// Default value is 0. - /// + /// [Parameter] public double FreezeRightPosition { get; set; } /// /// Gets or sets the header content. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public RenderFragment HeaderContent { get; set; } = default!; /// /// Gets or sets the header template. /// - /// + /// /// Default value is null. - /// + /// internal RenderFragment HeaderTemplate => headerTemplate ??= builder => { @@ -403,36 +403,36 @@ private async Task OnSortClickAsync() /// /// Gets or sets the table column header text. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string HeaderText { get; set; } = default!; /// /// Gets or sets the header text alignment. /// - /// + /// /// Default value is . - /// + /// [Parameter] public Alignment HeaderTextAlignment { get; set; } = Alignment.Start; /// /// Gets or sets the default sort column. /// - /// + /// /// Default value is false. - /// + /// [Parameter] public bool IsDefaultSortColumn { get; set; } = false; /// /// Gets or sets visibility of the Grid column. /// - /// + /// /// Default value is true. - /// + /// [Parameter] public bool IsVisible { get; set; } = true; @@ -443,9 +443,9 @@ private async Task OnSortClickAsync() /// Gets or sets the property name. /// This is required when `AllowFiltering` is true. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string PropertyName { get; set; } = default!; @@ -453,18 +453,18 @@ private async Task OnSortClickAsync() /// Enable or disable the sorting on a specific column. /// The sorting is enabled or disabled based on the `AllowSorting` parameter on the grid. /// - /// + /// /// Default value is true. - /// + /// [Parameter] public bool Sortable { get; set; } = true; /// /// Gets or sets the default sort direction of a column. /// - /// + /// /// Default value is . - /// + /// [Parameter] public SortDirection SortDirection { get; set; } = SortDirection.None; @@ -479,18 +479,18 @@ private async Task OnSortClickAsync() /// This value will be passed to the backend/API for sorting. /// And this property is ignored for the client-side sorting. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string SortString { get; set; } = default!; /// /// Gets or sets the StringComparison. /// - /// + /// /// Default value is . - /// + /// [Parameter] public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; @@ -526,18 +526,18 @@ private async Task OnSortClickAsync() /// /// Gets or sets the text alignment. /// - /// + /// /// Default value is . - /// + /// [Parameter] public Alignment TextAlignment { get; set; } = Alignment.Start; /// /// Gets or sets text nowrap. /// - /// + /// /// Default value is false. - /// + /// [Parameter] public bool TextNoWrap { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridColumnFilter.razor.cs b/blazorbootstrap/Components/Grid/GridColumnFilter.razor.cs index f7685aadd..769766487 100644 --- a/blazorbootstrap/Components/Grid/GridColumnFilter.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumnFilter.razor.cs @@ -153,18 +153,18 @@ or StringConstants.PropertyTypeNameDecimal /// /// Gets or sets the filter button color. /// - /// + /// /// Default value is . - /// + /// [Parameter] public ButtonColor FilterButtonColor { get; set; } = ButtonColor.Light; /// /// Gets or sets the filter button CSS class. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string? FilterButtonCSSClass { get; set; } @@ -188,9 +188,9 @@ or StringConstants.PropertyTypeNameDecimal /// /// Gets or sets filter value. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string? FilterValue { get; set; } @@ -217,9 +217,9 @@ or StringConstants.PropertyTypeNameDecimal /// /// Gets or sets the filter property name. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public string? PropertyTypeName { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridColumns.razor.cs b/blazorbootstrap/Components/Grid/GridColumns.razor.cs index 663227127..ec658ab56 100644 --- a/blazorbootstrap/Components/Grid/GridColumns.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumns.razor.cs @@ -5,9 +5,9 @@ public partial class GridColumns : BlazorBootstrapComponentBase /// /// Specifies the content to be rendered inside the grid columns component. /// - /// + /// /// Default value is . - /// + /// [Parameter] public RenderFragment? ChildContent { get; set; } = default!; } diff --git a/blazorbootstrap/Components/Grid/GridDetailView.razor.cs b/blazorbootstrap/Components/Grid/GridDetailView.razor.cs index 88a761bbd..95dd70d7f 100644 --- a/blazorbootstrap/Components/Grid/GridDetailView.razor.cs +++ b/blazorbootstrap/Components/Grid/GridDetailView.razor.cs @@ -17,9 +17,9 @@ protected override async Task OnInitializedAsync() /// /// Specifies the content to be rendered inside the component. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public RenderFragment ChildContent { get; set; } = default!; diff --git a/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs b/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs index 81ea04f3c..777de5435 100644 --- a/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs +++ b/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs @@ -17,9 +17,9 @@ protected override async Task OnInitializedAsync() /// /// Specifies the content to be rendered inside the component. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public RenderFragment ChildContent { get; set; } = default!; diff --git a/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs b/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs index 51ac498cd..54fb7d735 100644 --- a/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs +++ b/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs @@ -17,9 +17,9 @@ protected override async Task OnInitializedAsync() /// /// Specifies the content to be rendered inside the component. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public RenderFragment ChildContent { get; set; } = default!; diff --git a/blazorbootstrap/Components/Grid/GridTemplates.razor.cs b/blazorbootstrap/Components/Grid/GridTemplates.razor.cs index 9b1b112ea..18843a8c6 100644 --- a/blazorbootstrap/Components/Grid/GridTemplates.razor.cs +++ b/blazorbootstrap/Components/Grid/GridTemplates.razor.cs @@ -5,9 +5,9 @@ public partial class GridTemplates : BlazorBootstrapComponentBase /// /// Specifies the content to be rendered inside the grid templates component. /// - /// + /// /// Default value is null. - /// + /// [Parameter] public RenderFragment? ChildContent { get; set; } = default!; } From 1c3a3c1d9efa54ba7ba2ff1392eaad7916e04cd4 Mon Sep 17 00:00:00 2001 From: gvreddy04 Date: Sat, 3 Jan 2026 13:15:03 +0530 Subject: [PATCH 2/4] Update AdditionalAttributes to nullable; fix docs section order Changed AdditionalAttributes to nullable in base components for Blazor convention compliance. Cleaned up Grid documentation by removing duplicate and misplaced "GridColumn Parameters" sections and improving order. --- .../Pages/Docs/Grid/Grid_Doc_01_Documentation.razor | 4 ---- .../Components/Core/BlazorBootstrapComponentBase.cs | 2 +- .../Components/Core/BlazorBootstrapLayoutComponentBase.cs | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor b/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor index 16d01abfb..4b9d2481b 100644 --- a/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor +++ b/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor @@ -26,10 +26,6 @@ -
- -
-
diff --git a/blazorbootstrap/Components/Core/BlazorBootstrapComponentBase.cs b/blazorbootstrap/Components/Core/BlazorBootstrapComponentBase.cs index 142150f2b..87dc2375e 100644 --- a/blazorbootstrap/Components/Core/BlazorBootstrapComponentBase.cs +++ b/blazorbootstrap/Components/Core/BlazorBootstrapComponentBase.cs @@ -148,7 +148,7 @@ protected virtual ValueTask DisposeAsyncCore(bool disposing) [Description("Gets or sets additional attributes that will be applied to the component.")] [ParameterTypeName("Dictionary")] [Parameter(CaptureUnmatchedValues = true)] - public Dictionary AdditionalAttributes { get; set; } = default!; + public Dictionary? AdditionalAttributes { get; set; } /// /// Gets or sets the CSS class name(s) to apply to the component. diff --git a/blazorbootstrap/Components/Core/BlazorBootstrapLayoutComponentBase.cs b/blazorbootstrap/Components/Core/BlazorBootstrapLayoutComponentBase.cs index e38db58bc..c09e8b672 100644 --- a/blazorbootstrap/Components/Core/BlazorBootstrapLayoutComponentBase.cs +++ b/blazorbootstrap/Components/Core/BlazorBootstrapLayoutComponentBase.cs @@ -141,7 +141,7 @@ protected virtual ValueTask DisposeAsyncCore(bool disposing) [Description("Gets or sets additional attributes that will be applied to the component.")] [Parameter(CaptureUnmatchedValues = true)] [ParameterTypeName("Dictionary")] - public Dictionary AdditionalAttributes { get; set; } = default!; + public Dictionary? AdditionalAttributes { get; set; } /// /// Gets or sets the CSS class name(s) to apply to the component. From 540291063476cfd46d9f750cb48644bd4b9e961a Mon Sep 17 00:00:00 2001 From: gvreddy04 Date: Sun, 4 Jan 2026 20:45:20 +0530 Subject: [PATCH 3/4] Add API metadata attributes and improve null-safety Added [AddedVersion], [DefaultValue], and [Description] attributes to public properties and methods in Grid-related components for enhanced documentation and tooling support. Updated several RenderFragment properties to be nullable and removed default initializations for better null-safety. Annotated new public methods and events with version and description metadata. These changes improve API discoverability and maintainability. --- blazorbootstrap/Components/Grid/Grid.razor.cs | 14 +++ .../Components/Grid/GridColumn.razor.cs | 87 +++++++++++++++++++ .../Components/Grid/GridColumns.razor.cs | 2 + .../Components/Grid/GridDetailView.razor.cs | 5 +- .../Grid/GridEmptyDataTemplate.razor.cs | 5 +- .../Grid/GridLoadingTemplate.razor.cs | 5 +- .../Components/Grid/GridTemplates.razor.cs | 5 +- 7 files changed, 119 insertions(+), 4 deletions(-) diff --git a/blazorbootstrap/Components/Grid/Grid.razor.cs b/blazorbootstrap/Components/Grid/Grid.razor.cs index 594196a86..197004c88 100644 --- a/blazorbootstrap/Components/Grid/Grid.razor.cs +++ b/blazorbootstrap/Components/Grid/Grid.razor.cs @@ -116,6 +116,8 @@ protected override Task OnParametersSetAsync() /// Get filters. /// /// IEnumerable + [AddedVersion("1.0.0")] + [Description("")] public IEnumerable? GetFilters() => !AllowFiltering || columns == null || !columns.Any() ? null @@ -163,11 +165,15 @@ private string GetColumnSummaryValue(GridSummaryColumnType type, string property /// Refresh the grid data. /// /// Task + [AddedVersion("1.0.0")] + [Description("")] public async Task RefreshDataAsync(CancellationToken cancellationToken = default) => await RefreshDataAsync(false, cancellationToken); /// /// Reset the page number to 1 and refresh the grid. /// + [AddedVersion("1.4.3")] + [Description("")] public async ValueTask ResetPageNumber() => await ResetPageNumberAsync(true); public Task SelectAllItemsAsync() => SelectAllItemsInternalAsync(true); @@ -896,6 +902,8 @@ private void SetFilters(IEnumerable filterItems) /// /// This event is fired when the grid state is changed. /// + [AddedVersion("1.0.0")] + [Description("")] [Parameter] public EventCallback GridSettingsChanged { get; set; } @@ -992,6 +1000,8 @@ private void SetFilters(IEnumerable filterItems) /// This event is triggered when the user clicks on the row. /// Set AllowRowClick to true to enable row clicking. /// + [AddedVersion("1.9.5")] + [Description("")] [Parameter] public EventCallback> OnRowClick { get; set; } @@ -999,6 +1009,8 @@ private void SetFilters(IEnumerable filterItems) /// This event is triggered when the user double clicks on the row. /// Set AllowRowClick to true to enable row double clicking. /// + [AddedVersion("1.9.5")] + [Description("")] [Parameter] public EventCallback> OnRowDoubleClick { get; set; } @@ -1094,6 +1106,8 @@ private void SetFilters(IEnumerable filterItems) /// /// This event is fired when the item selection changes. /// + [AddedVersion("1.8.0")] + [Description("")] [Parameter] public EventCallback> SelectedItemsChanged { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridColumn.razor.cs b/blazorbootstrap/Components/Grid/GridColumn.razor.cs index bac4b636c..eab61bd99 100644 --- a/blazorbootstrap/Components/Grid/GridColumn.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumn.razor.cs @@ -200,12 +200,18 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public RenderFragment ChildContent { get; set; } = default!; /// /// Gets or sets the column class. /// + [AddedVersion("1.6.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Func? ColumnClass { get; set; } @@ -216,6 +222,9 @@ private async Task OnSortClickAsync() /// /// Default value is true. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool Filterable { get; set; } = true; @@ -225,6 +234,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("3.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public ButtonColor FilterButtonColor { get; set; } = ButtonColor.Light; @@ -234,6 +246,9 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("3.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? FilterButtonCSSClass { get; set; } @@ -243,6 +258,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public FilterOperator FilterOperator { get; set; } = FilterOperator.None; @@ -252,6 +270,9 @@ private async Task OnSortClickAsync() /// /// Default value is 0. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public int FilterTextboxWidth { get; set; } @@ -261,6 +282,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Unit FilterTextboxWidthUnit { get; set; } = Unit.Px; @@ -270,6 +294,9 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string FilterValue { get; set; } = default!; @@ -279,6 +306,9 @@ private async Task OnSortClickAsync() /// /// Default value is false. /// + [AddedVersion("1.10.4")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool Freeze { get; set; } @@ -288,6 +318,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.10.4")] + [DefaultValue(null)] + [Description("")] [Parameter] public FreezeDirection FreezeDirection { get; set; } = FreezeDirection.Left; @@ -297,6 +330,9 @@ private async Task OnSortClickAsync() /// /// Default value is 0. /// + [AddedVersion("1.10.4")] + [DefaultValue(null)] + [Description("")] [Parameter] public double FreezeLeftPosition { get; set; } @@ -306,6 +342,9 @@ private async Task OnSortClickAsync() /// /// Default value is 0. /// + [AddedVersion("1.10.4")] + [DefaultValue(null)] + [Description("")] [Parameter] public double FreezeRightPosition { get; set; } @@ -315,6 +354,9 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("1.7.3")] + [DefaultValue(null)] + [Description("")] [Parameter] public RenderFragment HeaderContent { get; set; } = default!; @@ -406,6 +448,9 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string HeaderText { get; set; } = default!; @@ -415,6 +460,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Alignment HeaderTextAlignment { get; set; } = Alignment.Start; @@ -424,6 +472,9 @@ private async Task OnSortClickAsync() /// /// Default value is false. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool IsDefaultSortColumn { get; set; } = false; @@ -433,6 +484,9 @@ private async Task OnSortClickAsync() /// /// Default value is true. /// + [AddedVersion("3.4.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool IsVisible { get; set; } = true; @@ -446,6 +500,9 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string PropertyName { get; set; } = default!; @@ -456,6 +513,9 @@ private async Task OnSortClickAsync() /// /// Default value is true. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool Sortable { get; set; } = true; @@ -465,12 +525,18 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public SortDirection SortDirection { get; set; } = SortDirection.None; /// /// Expression used for sorting. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Expression> SortKeySelector { get; set; } = default!; @@ -482,6 +548,9 @@ private async Task OnSortClickAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string SortString { get; set; } = default!; @@ -491,6 +560,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; @@ -500,6 +572,9 @@ private async Task OnSortClickAsync() /// Default value is . /// /// + [AddedVersion("3.4.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public GridSummaryColumnType SummaryType { get; set; } = GridSummaryColumnType.None; @@ -509,6 +584,9 @@ private async Task OnSortClickAsync() /// Default value is . /// /// + [AddedVersion("3.4.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? SummaryValueDisplayFormat { get; set; } @@ -520,6 +598,9 @@ private async Task OnSortClickAsync() /// Example: "Total: ", "Average: ", etc. /// /// + [AddedVersion("3.4.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public string? SummaryValuePrefix { get; set; } @@ -529,6 +610,9 @@ private async Task OnSortClickAsync() /// /// Default value is . /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public Alignment TextAlignment { get; set; } = Alignment.Start; @@ -538,6 +622,9 @@ private async Task OnSortClickAsync() /// /// Default value is false. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] public bool TextNoWrap { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridColumns.razor.cs b/blazorbootstrap/Components/Grid/GridColumns.razor.cs index ec658ab56..7290ff95e 100644 --- a/blazorbootstrap/Components/Grid/GridColumns.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumns.razor.cs @@ -8,6 +8,8 @@ public partial class GridColumns : BlazorBootstrapComponentBase /// /// Default value is . /// + [AddedVersion("1.0.0")] + [Description("")] [Parameter] public RenderFragment? ChildContent { get; set; } = default!; } diff --git a/blazorbootstrap/Components/Grid/GridDetailView.razor.cs b/blazorbootstrap/Components/Grid/GridDetailView.razor.cs index 95dd70d7f..11ce1a7a0 100644 --- a/blazorbootstrap/Components/Grid/GridDetailView.razor.cs +++ b/blazorbootstrap/Components/Grid/GridDetailView.razor.cs @@ -20,8 +20,11 @@ protected override async Task OnInitializedAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public RenderFragment ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } internal RenderFragment GetTemplate => gridDetailViewTemplate ??= rowData => builder => diff --git a/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs b/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs index 777de5435..bdf853ffb 100644 --- a/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs +++ b/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs @@ -20,8 +20,11 @@ protected override async Task OnInitializedAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public RenderFragment ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } internal RenderFragment Template => template ??= builder => diff --git a/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs b/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs index 54fb7d735..688fb4ee6 100644 --- a/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs +++ b/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs @@ -20,8 +20,11 @@ protected override async Task OnInitializedAsync() /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public RenderFragment ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } internal RenderFragment Template => template ??= builder => diff --git a/blazorbootstrap/Components/Grid/GridTemplates.razor.cs b/blazorbootstrap/Components/Grid/GridTemplates.razor.cs index 18843a8c6..a2b515c3e 100644 --- a/blazorbootstrap/Components/Grid/GridTemplates.razor.cs +++ b/blazorbootstrap/Components/Grid/GridTemplates.razor.cs @@ -8,6 +8,9 @@ public partial class GridTemplates : BlazorBootstrapComponentBase /// /// Default value is null. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("")] [Parameter] - public RenderFragment? ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } } From 4b762942d056028faeea48c15043b1300a5dbb75 Mon Sep 17 00:00:00 2001 From: gvreddy04 Date: Sun, 4 Jan 2026 21:43:45 +0530 Subject: [PATCH 4/4] Improve Grid docs, type safety, and API clarity - Enhance XML docs and add `[Description]`/`[DefaultValue]` to all parameters - Use nullable reference types for optional parameters - Add `[EditorRequired]` to required template/column content - Switch docs and code to generic types (`TItem`) for better type inference - Add async select/unselect all methods to `Grid` - Make parameters like `FiltersRowCssClass` and `HeaderRowCssClass` nullable - Add null checks and null-forgiving operators for robustness - Update docs to include new template components and generic parameter tables - Ensure consistent documentation and default value annotations throughout - Minor refactoring for clarity and code cleanup --- .../Docs/Grid/Grid_Doc_01_Documentation.razor | 32 +- blazorbootstrap/Components/Grid/Grid.razor.cs | 275 ++++++++++-------- .../Components/Grid/GridColumn.razor.cs | 197 +++++++------ .../Components/Grid/GridColumns.razor.cs | 6 +- .../Components/Grid/GridDetailView.razor.cs | 6 +- .../Grid/GridEmptyDataTemplate.razor.cs | 6 +- .../Grid/GridLoadingTemplate.razor.cs | 6 +- .../Components/Grid/GridTemplates.razor.cs | 7 +- 8 files changed, 299 insertions(+), 236 deletions(-) diff --git a/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor b/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor index 4b9d2481b..1c17fb02c 100644 --- a/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor +++ b/BlazorBootstrap.Demo.RCL/Components/Pages/Docs/Grid/Grid_Doc_01_Documentation.razor @@ -15,15 +15,19 @@
- +
- +
- + +
+ +
+
@@ -31,23 +35,35 @@
- +
- +
-
- +
+ +
+ +
+ +
+ +
+
@code { - private const string componentName = nameof(Grid); + private const string componentName = nameof(Grid); private const string pageUrl = DemoRouteConstants.Docs_URL_Grid; private const string pageTitle = componentName; private const string pageDescription = $"This documentation provides a comprehensive reference for the {componentName} component, guiding you through its configuration options."; private const string metaTitle = $"Blazor {componentName} Component"; private const string metaDescription = $"This documentation provides a comprehensive reference for the {componentName} component, guiding you through its configuration options."; private const string imageUrl = DemoScreenshotSrcConstants.Demos_URL_Grid_Overview; + + public class TItem : object + { + } } \ No newline at end of file diff --git a/blazorbootstrap/Components/Grid/Grid.razor.cs b/blazorbootstrap/Components/Grid/Grid.razor.cs index 197004c88..331e101e8 100644 --- a/blazorbootstrap/Components/Grid/Grid.razor.cs +++ b/blazorbootstrap/Components/Grid/Grid.razor.cs @@ -117,13 +117,13 @@ protected override Task OnParametersSetAsync() /// /// IEnumerable [AddedVersion("1.0.0")] - [Description("")] + [Description("Get filters.")] public IEnumerable? GetFilters() => !AllowFiltering || columns == null || !columns.Any() ? null : columns .Where(column => column.Filterable && column.GetFilterOperator() != FilterOperator.None && !string.IsNullOrWhiteSpace(column.GetFilterValue())) - ?.Select(column => new FilterItem(column.PropertyName, column.GetFilterValue(), column.GetFilterOperator(), column.StringComparison)); + ?.Select(column => new FilterItem(column.PropertyName!, column.GetFilterValue(), column.GetFilterOperator(), column.StringComparison)); private string GetColumnSummaryValue(GridSummaryColumnType type, string propertyName, string format, string prefix) { @@ -132,27 +132,27 @@ private string GetColumnSummaryValue(GridSummaryColumnType type, string property if (type == GridSummaryColumnType.Average) { prefix ??= "Avg: "; - value = items?.Average(x => Convert.ToDouble(x.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; + value = items?.Average(x => Convert.ToDouble(x?.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; } else if (type == GridSummaryColumnType.Count) { prefix ??= "Count: "; - value = items?.Where(x => x.GetType().GetProperty(propertyName)?.GetValue(x) is not null).Count() ?? 0; + value = items?.Where(x => x?.GetType().GetProperty(propertyName)?.GetValue(x) is not null).Count() ?? 0; } else if (type == GridSummaryColumnType.Max) { prefix ??= "Max: "; - value = items?.Max(x => Convert.ToDouble(x.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; + value = items?.Max(x => Convert.ToDouble(x?.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; } else if (type == GridSummaryColumnType.Min) { prefix ??= "Min: "; - value = items?.Min(x => Convert.ToDouble(x.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; + value = items?.Min(x => Convert.ToDouble(x?.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; } else if (type == GridSummaryColumnType.Sum) { prefix ??= "Total: "; - value = items?.Sum(x => Convert.ToDouble(x.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; + value = items?.Sum(x => Convert.ToDouble(x?.GetType().GetProperty(propertyName)?.GetValue(x))) ?? 0; } if (string.IsNullOrWhiteSpace(format)) @@ -166,18 +166,32 @@ private string GetColumnSummaryValue(GridSummaryColumnType type, string property /// /// Task [AddedVersion("1.0.0")] - [Description("")] + [Description("Refresh the grid data.")] public async Task RefreshDataAsync(CancellationToken cancellationToken = default) => await RefreshDataAsync(false, cancellationToken); /// /// Reset the page number to 1 and refresh the grid. /// [AddedVersion("1.4.3")] - [Description("")] + [Description("Reset the page number to 1 and refresh the grid.")] public async ValueTask ResetPageNumber() => await ResetPageNumberAsync(true); + /// + /// Selects all items in the grid asynchronously. + /// + /// A task that represents the asynchronous operation. The task completes when all items have been selected. + [AddedVersion("1.8.0")] + [Description("Selects all items in the grid asynchronously.")] public Task SelectAllItemsAsync() => SelectAllItemsInternalAsync(true); + /// + /// Asynchronously clears the selection of all items in the grid. + /// + /// This method can be awaited to ensure that all items are unselected before proceeding with + /// further actions. If no items are currently selected, the operation completes without effect. + /// A task that represents the asynchronous operation of deselecting all items. + [AddedVersion("1.8.0")] + [Description("Asynchronously clears the selection of all items in the grid.")] public Task UnSelectAllItemsAsync() => SelectAllItemsInternalAsync(false); internal void AddColumn(GridColumn column) => columns.Add(column); @@ -657,73 +671,73 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets a value indicating whether the grid detail view is enabled. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("3.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets a value indicating whether the grid detail view is enabled.")] [Parameter] public bool AllowDetailView { get; set; } /// /// Gets or sets the grid filtering. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the grid filtering.")] [Parameter] public bool AllowFiltering { get; set; } /// /// Gets or sets the grid paging. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the grid paging.")] [Parameter] public bool AllowPaging { get; set; } /// /// Gets or sets the allow row click. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.9.5")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the allow row click.")] [Parameter] public bool AllowRowClick { get; set; } /// /// Gets or sets the grid selection. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.8.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the grid selection.")] [Parameter] public bool AllowSelection { get; set; } /// /// Gets or sets the grid sorting. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the grid sorting.")] [Parameter] public bool AllowSorting { get; set; } @@ -734,146 +748,156 @@ private void SetFilters(IEnumerable filterItems) /// /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the grid summary.")] [Parameter] public bool AllowSummary { get; set; } /// /// Automatically hides the paging controls when the grid item count is less than or equal to the /// and this property is set to `true`. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.10.5")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Automatically hides the paging controls when the grid item count is less than or equal to the PageSize and this property is set to true.")] [Parameter] public bool AutoHidePaging { get; set; } /// /// Gets or sets the content to be rendered within the component. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the content to be rendered within the component.")] + [EditorRequired] [Parameter] public RenderFragment? ChildContent { get; set; } /// /// Gets or sets the grid data. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.4.3")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the grid data.")] [Parameter] public IEnumerable? Data { get; set; } /// /// DataProvider is for items to render. - /// The provider should always return an instance of 'GridDataProviderResult', and 'null' is not allowed. - /// + /// The provider should always return an instance of , and is not allowed. /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("DataProvider is for items to render. The provider should always return an instance of GridDataProviderResult, and null is not allowed.")] [Parameter] public GridDataProviderDelegate? DataProvider { get; set; } /// /// Enable or disable the header checkbox selection. + /// + /// Default value is . + /// /// [AddedVersion("1.8.0")] [DefaultValue(null)] - [Description("")] + [Description("Enable or disable the header checkbox selection.")] [Parameter] public Func, bool>? DisableAllRowsSelection { get; set; } /// /// Enable or disable the row level checkbox selection. + /// + /// Default value is . + /// /// [AddedVersion("1.8.0")] [DefaultValue(null)] - [Description("")] + [Description("Enable or disable the row level checkbox selection.")] [Parameter] public Func? DisableRowSelection { get; set; } /// /// Gets or sets the empty text. /// Shows text on no records. - /// /// /// Default value is 'No records to display'. /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue("No records to display")] + [Description("Gets or sets the empty text. Shows text on no records.")] [Parameter] public string EmptyText { get; set; } = "No records to display"; /// /// Gets or sets the enum filter select text. - /// /// /// Default value is 'Select'. /// + /// [AddedVersion("3.1.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue("Select")] + [Description("Gets or sets the enum filter select text.")] [Parameter] public string EnumFilterSelectText { get; set; } = "Select"; /// /// Gets or sets the filters row css class. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.9.2")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the filters row css class.")] [Parameter] - public string FiltersRowCssClass { get; set; } = default!; + public string? FiltersRowCssClass { get; set; } /// /// Gets or sets the filters translation provider. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.10.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the filters translation provider.")] [Parameter] - public GridFiltersTranslationDelegate FiltersTranslationProvider { get; set; } = default!; + public GridFiltersTranslationDelegate? FiltersTranslationProvider { get; set; } /// /// Gets or sets the grid fixed header. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.10.3")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the grid fixed header.")] [Parameter] public bool FixedHeader { get; set; } /// /// Gets or sets the grid container css class. + /// + /// Default value is . + /// /// [AddedVersion("3.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the grid container css class.")] [Parameter] public string? GridContainerClass { get; set; } @@ -885,10 +909,13 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the grid container css style. + /// + /// Default value is . + /// /// [AddedVersion("3.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the grid container css style.")] [Parameter] public string? GridContainerStyle { get; set; } @@ -903,21 +930,21 @@ private void SetFilters(IEnumerable filterItems) /// This event is fired when the grid state is changed. /// [AddedVersion("1.0.0")] - [Description("")] + [Description("This event is fired when the grid state is changed.")] [Parameter] public EventCallback GridSettingsChanged { get; set; } /// /// Gets or sets the header row css class but not the thead tag class. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.9.2")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the header row css class but not the thead tag class.")] [Parameter] - public string HeaderRowCssClass { get; set; } = default!; + public string? HeaderRowCssClass { get; set; } /// /// Header selection template. @@ -962,25 +989,25 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the grid height. - /// /// /// Default value is 320 . /// + /// [AddedVersion("1.10.3")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(320)] + [Description("Gets or sets the grid height.")] [Parameter] public float Height { get; set; } = 320; /// /// Gets or sets the items per page text. - /// /// /// Default value is 'Items per page'. /// + /// [AddedVersion("1.9.5")] - [DefaultValue(null)] - [Description("")] + [DefaultValue("Items per page")] + [Description("Gets or sets the items per page text.")] [Parameter] public string ItemsPerPageText { get; set; } = "Items per page"!; @@ -992,7 +1019,7 @@ private void SetFilters(IEnumerable filterItems) /// [AddedVersion("3.4.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the locale.")] [Parameter] public string? Locale { get; set; } @@ -1001,7 +1028,7 @@ private void SetFilters(IEnumerable filterItems) /// Set AllowRowClick to true to enable row clicking. /// [AddedVersion("1.9.5")] - [Description("")] + [Description("This event is triggered when the user clicks on the row. Set AllowRowClick to true to enable row clicking.")] [Parameter] public EventCallback> OnRowClick { get; set; } @@ -1010,43 +1037,43 @@ private void SetFilters(IEnumerable filterItems) /// Set AllowRowClick to true to enable row double clicking. /// [AddedVersion("1.9.5")] - [Description("")] + [Description("This event is triggered when the user double clicks on the row. Set AllowRowClick to true to enable row double clicking.")] [Parameter] public EventCallback> OnRowDoubleClick { get; set; } /// /// Gets or sets the page size. - /// /// /// Default value is 10. /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(10)] + [Description("Gets or sets the page size.")] [Parameter] public int PageSize { get; set; } = 10; /// /// Gets or sets the page size selector items. - /// /// /// Default value is '{ 10, 20, 50 }'. /// + /// [AddedVersion("1.8.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(new int[] { 10, 20, 50 })] + [Description("Gets or sets the page size selector items.")] [Parameter] public int[] PageSizeSelectorItems { get; set; } = { 10, 20, 50 }; /// /// Gets or sets the page size selector visible. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.8.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the page size selector visible.")] [Parameter] public bool PageSizeSelectorVisible { get; set; } @@ -1054,52 +1081,64 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the pagination items text format. - /// /// /// Default value is '{0} - {1} of {2} items'. /// + /// [AddedVersion("1.8.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue("{0} - {1} of {2} items")] + [Description("Gets or sets the pagination items text format.")] [Parameter] public string PaginationItemsTextFormat { get; set; } = "{0} - {1} of {2} items"!; /// /// Gets or sets a value indicating whether the grid is responsive. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets a value indicating whether the grid is responsive.")] [Parameter] public bool Responsive { get; set; } /// /// Gets or sets the row class. + /// + /// Default value is . + /// /// [AddedVersion("1.6.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the row class.")] [Parameter] public Func? RowClass { get; set; } /// /// Gets or sets the function used to extract a unique key from a row item. - /// /// /// The key returned by the function is used to uniquely identify each row in the data set. This /// is typically required for operations such as tracking changes or rendering rows efficiently. /// If not set, the item hash code will be used as the key. /// Example usage: `RowKeySelector="(employee) => employee.Id"`. /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the function used to extract a unique key from a row item.")] [Parameter] public Func? RowKeySelector { get; set; } - + /// /// Gets or sets the selected items. + /// + /// Default value is . + /// /// + [AddedVersion("1.8.0")] + [DefaultValue(null)] + [Description("Gets or sets the selected items.")] [Parameter] public HashSet? SelectedItems { get; set; } @@ -1107,44 +1146,44 @@ private void SetFilters(IEnumerable filterItems) /// This event is fired when the item selection changes. /// [AddedVersion("1.8.0")] - [Description("")] + [Description("This event is fired when the item selection changes.")] [Parameter] public EventCallback> SelectedItemsChanged { get; set; } /// /// Gets or sets the grid selection mode. - /// /// /// Default value is . /// + /// [AddedVersion("1.8.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(GridSelectionMode.Single)] + [Description("Gets or sets the grid selection mode.")] [Parameter] public GridSelectionMode SelectionMode { get; set; } = GridSelectionMode.Single; /// /// Settings is for grid to render. - /// The provider should always return an instance of 'GridSettings', and 'null' is not allowed. - /// + /// The provider should always return an instance of , and is not allowed. /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Settings is for grid to render. The provider should always return an instance of GridSettings, and null is not allowed.")] [Parameter] public GridSettingsProviderDelegate? SettingsProvider { get; set; } /// /// Gets or sets the thead css class. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.10.3")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the thead css class.")] [Parameter] public string? THeadCssClass { get; set; } @@ -1152,13 +1191,13 @@ private void SetFilters(IEnumerable filterItems) /// /// Gets or sets the units. - /// /// /// Default value is . /// + /// [AddedVersion("1.10.3")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the units.")] [Parameter] public Unit Unit { get; set; } = Unit.Px; diff --git a/blazorbootstrap/Components/Grid/GridColumn.razor.cs b/blazorbootstrap/Components/Grid/GridColumn.razor.cs index eab61bd99..3c15c53ec 100644 --- a/blazorbootstrap/Components/Grid/GridColumn.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumn.razor.cs @@ -27,7 +27,7 @@ protected override async Task OnInitializedAsync() Id = IdUtility.GetNextId(); // Required filterOperator = FilterOperator; - filterValue = FilterValue; + filterValue = FilterValue!; currentSortDirection = SortDirection; defaultSortDirection = SortDirection; @@ -48,16 +48,16 @@ protected override async Task OnInitializedAsync() internal string GetFilterValue() => filterValue; - internal Type GetPropertyType() => typeof(TItem).GetPropertyType(PropertyName)!; + internal Type GetPropertyType() => typeof(TItem).GetPropertyType(PropertyName!)!; - internal string GetPropertyTypeName() => typeof(TItem).GetPropertyTypeName(PropertyName); + internal string GetPropertyTypeName() => typeof(TItem).GetPropertyTypeName(PropertyName!); internal IEnumerable> GetSorting() { if (SortKeySelector == null && string.IsNullOrWhiteSpace(SortString)) yield break; - yield return new SortingItem(SortString, SortKeySelector!, currentSortDirection); + yield return new SortingItem(SortString!, SortKeySelector!, currentSortDirection); } internal async Task OnFilterChangedAsync(FilterEventArgs args, GridColumn column) @@ -196,155 +196,159 @@ private async Task OnSortClickAsync() /// /// Specifies the content to be rendered inside the grid column. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Specifies the content to be rendered inside the grid column.")] + [EditorRequired] [Parameter] - public RenderFragment ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } /// /// Gets or sets the column class. + /// + /// Default value is . + /// /// [AddedVersion("1.6.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the column class.")] [Parameter] public Func? ColumnClass { get; set; } /// /// If , filter is enabled. /// The filter is enabled or disabled based on the grid `AllowFiltering` parameter. - /// /// - /// Default value is true. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(true)] + [Description("If true, filter is enabled. The filter is enabled or disabled based on the grid AllowFiltering parameter.")] [Parameter] public bool Filterable { get; set; } = true; /// /// Gets or sets the filter button color. - /// /// /// Default value is . /// + /// [AddedVersion("3.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(ButtonColor.Light)] + [Description("Gets or sets the filter button color.")] [Parameter] public ButtonColor FilterButtonColor { get; set; } = ButtonColor.Light; /// /// Gets or sets the filter button CSS class. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("3.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the filter button CSS class.")] [Parameter] public string? FilterButtonCSSClass { get; set; } /// /// Gets or sets the filter operator. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(FilterOperator.None)] + [Description("Gets or sets the filter operator.")] [Parameter] public FilterOperator FilterOperator { get; set; } = FilterOperator.None; /// /// Gets or sets the filter textbox width in pixels. - /// /// /// Default value is 0. /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(0)] + [Description("Gets or sets the filter textbox width in pixels.")] [Parameter] public int FilterTextboxWidth { get; set; } /// /// Gets or sets the filter textbox width units. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(Unit.Px)] + [Description("Gets or sets the filter textbox width units.")] [Parameter] public Unit FilterTextboxWidthUnit { get; set; } = Unit.Px; /// /// Gets or sets the filter value. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the filter value.")] [Parameter] - public string FilterValue { get; set; } = default!; + public string? FilterValue { get; set; } /// /// Indicates whether the column is frozen. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.10.4")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Indicates whether the column is frozen.")] [Parameter] public bool Freeze { get; set; } /// /// Gets or sets the freeze direction of the column. - /// /// /// Default value is . /// + /// [AddedVersion("1.10.4")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(FreezeDirection.Left)] + [Description("Gets or sets the freeze direction of the column.")] [Parameter] public FreezeDirection FreezeDirection { get; set; } = FreezeDirection.Left; /// /// Gets or sets the horizontal position of the column from left. It has no effect on non-positioned columns. - /// /// /// Default value is 0. /// + /// [AddedVersion("1.10.4")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(0)] + [Description("Gets or sets the horizontal position of the column from left. It has no effect on non-positioned columns.")] [Parameter] public double FreezeLeftPosition { get; set; } /// /// Gets or sets the horizontal position of the column from right. It has no effect on non-positioned columns. - /// /// /// Default value is 0. /// + /// [AddedVersion("1.10.4")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(0)] + [Description("Gets or sets the horizontal position of the column from right. It has no effect on non-positioned columns.")] [Parameter] public double FreezeRightPosition { get; set; } @@ -352,13 +356,13 @@ private async Task OnSortClickAsync() /// Gets or sets the header content. /// /// - /// Default value is null. + /// Default value is . /// [AddedVersion("1.7.3")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the header content.")] [Parameter] - public RenderFragment HeaderContent { get; set; } = default!; + public RenderFragment? HeaderContent { get; set; } /// /// Gets or sets the header template. @@ -444,49 +448,49 @@ private async Task OnSortClickAsync() /// /// Gets or sets the table column header text. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the table column header text.")] [Parameter] - public string HeaderText { get; set; } = default!; + public string? HeaderText { get; set; } /// /// Gets or sets the header text alignment. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(Alignment.Start)] + [Description("Gets or sets the header text alignment.")] [Parameter] public Alignment HeaderTextAlignment { get; set; } = Alignment.Start; /// /// Gets or sets the default sort column. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets the default sort column.")] [Parameter] - public bool IsDefaultSortColumn { get; set; } = false; + public bool IsDefaultSortColumn { get; set; } /// /// Gets or sets visibility of the Grid column. - /// /// - /// Default value is true. + /// Default value is . /// + /// [AddedVersion("3.4.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(true)] + [Description("Gets or sets visibility of the Grid column.")] [Parameter] public bool IsVisible { get; set; } = true; @@ -496,73 +500,76 @@ private async Task OnSortClickAsync() /// /// Gets or sets the property name. /// This is required when `AllowFiltering` is true. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the property name. This is required when AllowFiltering is true.")] [Parameter] - public string PropertyName { get; set; } = default!; + public string? PropertyName { get; set; } /// /// Enable or disable the sorting on a specific column. /// The sorting is enabled or disabled based on the `AllowSorting` parameter on the grid. - /// /// - /// Default value is true. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(true)] + [Description("Enable or disable the sorting on a specific column. The sorting is enabled or disabled based on the AllowSorting parameter on the grid.")] [Parameter] public bool Sortable { get; set; } = true; /// /// Gets or sets the default sort direction of a column. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(SortDirection.None)] + [Description("Gets or sets the default sort direction of a column.")] [Parameter] public SortDirection SortDirection { get; set; } = SortDirection.None; /// /// Expression used for sorting. + /// + /// Default value is . + /// /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Expression used for sorting.")] [Parameter] - public Expression> SortKeySelector { get; set; } = default!; + public Expression>? SortKeySelector { get; set; } /// /// Gets or sets the column sort string. /// This value will be passed to the backend/API for sorting. /// And this property is ignored for the client-side sorting. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the column sort string. This value will be passed to the backend/API for sorting. And this property is ignored for the client-side sorting.")] [Parameter] - public string SortString { get; set; } = default!; + public string? SortString { get; set; } /// /// Gets or sets the StringComparison. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(StringComparison.OrdinalIgnoreCase)] + [Description("Gets or sets the StringComparison.")] [Parameter] public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; @@ -573,8 +580,8 @@ private async Task OnSortClickAsync() /// /// [AddedVersion("3.4.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(GridSummaryColumnType.None)] + [Description("Gets or sets the summary column type.")] [Parameter] public GridSummaryColumnType SummaryType { get; set; } = GridSummaryColumnType.None; @@ -586,7 +593,7 @@ private async Task OnSortClickAsync() /// [AddedVersion("3.4.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the summary value display format.")] [Parameter] public string? SummaryValueDisplayFormat { get; set; } @@ -600,31 +607,31 @@ private async Task OnSortClickAsync() /// [AddedVersion("3.4.0")] [DefaultValue(null)] - [Description("")] + [Description("Gets or sets the summary value prefix. If set, it will be displayed before the summary value. Otherwise, based on the SummaryType, default prefix will be displayed. To remove the default prefix, set this property to an empty string.")] [Parameter] public string? SummaryValuePrefix { get; set; } /// /// Gets or sets the text alignment. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(Alignment.Start)] + [Description("Gets or sets the text alignment.")] [Parameter] public Alignment TextAlignment { get; set; } = Alignment.Start; /// /// Gets or sets text nowrap. - /// /// - /// Default value is false. + /// Default value is . /// + /// [AddedVersion("1.0.0")] - [DefaultValue(null)] - [Description("")] + [DefaultValue(false)] + [Description("Gets or sets text nowrap.")] [Parameter] public bool TextNoWrap { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridColumns.razor.cs b/blazorbootstrap/Components/Grid/GridColumns.razor.cs index 7290ff95e..339b6b3ad 100644 --- a/blazorbootstrap/Components/Grid/GridColumns.razor.cs +++ b/blazorbootstrap/Components/Grid/GridColumns.razor.cs @@ -4,12 +4,12 @@ public partial class GridColumns : BlazorBootstrapComponentBase { /// /// Specifies the content to be rendered inside the grid columns component. - /// /// /// Default value is . /// + /// [AddedVersion("1.0.0")] - [Description("")] + [Description("Specifies the content to be rendered inside the grid columns component.")] [Parameter] - public RenderFragment? ChildContent { get; set; } = default!; + public RenderFragment? ChildContent { get; set; } } diff --git a/blazorbootstrap/Components/Grid/GridDetailView.razor.cs b/blazorbootstrap/Components/Grid/GridDetailView.razor.cs index 11ce1a7a0..ada06434b 100644 --- a/blazorbootstrap/Components/Grid/GridDetailView.razor.cs +++ b/blazorbootstrap/Components/Grid/GridDetailView.razor.cs @@ -16,13 +16,13 @@ protected override async Task OnInitializedAsync() /// /// Specifies the content to be rendered inside the component. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Specifies the content to be rendered inside the component.")] [Parameter] public RenderFragment? ChildContent { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs b/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs index bdf853ffb..73af4910a 100644 --- a/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs +++ b/blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs @@ -16,13 +16,13 @@ protected override async Task OnInitializedAsync() /// /// Specifies the content to be rendered inside the component. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Specifies the content to be rendered inside the component.")] [Parameter] public RenderFragment? ChildContent { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs b/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs index 688fb4ee6..71adc4a78 100644 --- a/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs +++ b/blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs @@ -16,13 +16,13 @@ protected override async Task OnInitializedAsync() /// /// Specifies the content to be rendered inside the component. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Specifies the content to be rendered inside the component.")] [Parameter] public RenderFragment? ChildContent { get; set; } diff --git a/blazorbootstrap/Components/Grid/GridTemplates.razor.cs b/blazorbootstrap/Components/Grid/GridTemplates.razor.cs index a2b515c3e..3f4e2242f 100644 --- a/blazorbootstrap/Components/Grid/GridTemplates.razor.cs +++ b/blazorbootstrap/Components/Grid/GridTemplates.razor.cs @@ -4,13 +4,14 @@ public partial class GridTemplates : BlazorBootstrapComponentBase { /// /// Specifies the content to be rendered inside the grid templates component. - /// /// - /// Default value is null. + /// Default value is . /// + /// [AddedVersion("1.0.0")] [DefaultValue(null)] - [Description("")] + [Description("Specifies the content to be rendered inside the grid templates component.")] + [EditorRequired] [Parameter] public RenderFragment? ChildContent { get; set; } }