From 435e1e339781b4ace12210de70f7ad9d6c17f0ae Mon Sep 17 00:00:00 2001 From: adnan1naeem Date: Sun, 14 Apr 2019 10:53:37 +0500 Subject: [PATCH 1/6] feat(CardComponent with stories): card component --- package.json | 4 +- src/components/Card/Card.component.tsx | 15 +++ src/components/Card/CardBody.component.tsx | 16 +++ src/components/Card/CardFooter.component.tsx | 16 +++ src/components/Card/CardHeader.component.tsx | 14 +++ src/components/Card/CardMedia.component.tsx | 12 ++ .../Card/_stories_/Card.stories.tsx | 119 ++++++++++++++++++ src/components/Card/_stories_/paella.jpg | Bin 0 -> 33329 bytes src/components/Card/_test_/Card.test.tsx | 15 +++ .../Card/_test_/CardContent.test.tsx | 15 +++ .../Card/_test_/CardFooter.test.tsx | 15 +++ .../Card/_test_/CardHeader.test.tsx | 13 ++ src/components/Card/_test_/CardMedia.test.tsx | 13 ++ src/index.ts | 10 ++ 14 files changed, 275 insertions(+), 2 deletions(-) create mode 100644 src/components/Card/Card.component.tsx create mode 100644 src/components/Card/CardBody.component.tsx create mode 100644 src/components/Card/CardFooter.component.tsx create mode 100644 src/components/Card/CardHeader.component.tsx create mode 100644 src/components/Card/CardMedia.component.tsx create mode 100644 src/components/Card/_stories_/Card.stories.tsx create mode 100644 src/components/Card/_stories_/paella.jpg create mode 100644 src/components/Card/_test_/Card.test.tsx create mode 100644 src/components/Card/_test_/CardContent.test.tsx create mode 100644 src/components/Card/_test_/CardFooter.test.tsx create mode 100644 src/components/Card/_test_/CardHeader.test.tsx create mode 100644 src/components/Card/_test_/CardMedia.test.tsx diff --git a/package.json b/package.json index 4126df95..be10a8da 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "config": {}, "size-limit": [ { - "limit": "15 KB", + "limit": "20 KB", "webpack": false, "path": "dist/**/!(*.test).js" } @@ -153,4 +153,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/src/components/Card/Card.component.tsx b/src/components/Card/Card.component.tsx new file mode 100644 index 00000000..f9cae177 --- /dev/null +++ b/src/components/Card/Card.component.tsx @@ -0,0 +1,15 @@ +import MuiCard from '@material-ui/core/Card'; +import React from 'react'; + +const Card = (props: any) => { + + return ( + + + + {props.children} + + ); +}; + +export { Card }; \ No newline at end of file diff --git a/src/components/Card/CardBody.component.tsx b/src/components/Card/CardBody.component.tsx new file mode 100644 index 00000000..9d9e595e --- /dev/null +++ b/src/components/Card/CardBody.component.tsx @@ -0,0 +1,16 @@ +import MuiCardContent from '@material-ui/core/CardContent'; + +import React from 'react'; + +const CardContent = (props: any) => { + + return ( + + + + {props.children} + + ); +}; + +export { CardContent }; \ No newline at end of file diff --git a/src/components/Card/CardFooter.component.tsx b/src/components/Card/CardFooter.component.tsx new file mode 100644 index 00000000..f4f0a21d --- /dev/null +++ b/src/components/Card/CardFooter.component.tsx @@ -0,0 +1,16 @@ +import MuiCardActions from '@material-ui/core/CardActions'; +import React from 'react'; + + +const CardActions = (props: any) => { + + return ( + + + + {props.children} + + ); +}; + +export { CardActions }; \ No newline at end of file diff --git a/src/components/Card/CardHeader.component.tsx b/src/components/Card/CardHeader.component.tsx new file mode 100644 index 00000000..2e179624 --- /dev/null +++ b/src/components/Card/CardHeader.component.tsx @@ -0,0 +1,14 @@ +import MuiCardHeader from '@material-ui/core/CardHeader'; + +import React from 'react'; + +const CardHeader = (props: any) => { + + return ( + + + + ); +}; + +export { CardHeader }; \ No newline at end of file diff --git a/src/components/Card/CardMedia.component.tsx b/src/components/Card/CardMedia.component.tsx new file mode 100644 index 00000000..df53e33a --- /dev/null +++ b/src/components/Card/CardMedia.component.tsx @@ -0,0 +1,12 @@ +import MuiCardMedia from '@material-ui/core/CardMedia'; +import React from 'react'; + +const CardMedia = (props: any) => { + + return ( + + + ); +}; + +export { CardMedia }; \ No newline at end of file diff --git a/src/components/Card/_stories_/Card.stories.tsx b/src/components/Card/_stories_/Card.stories.tsx new file mode 100644 index 00000000..5f677b3f --- /dev/null +++ b/src/components/Card/_stories_/Card.stories.tsx @@ -0,0 +1,119 @@ + +import { CardProps, CardActionsProps, CardHeaderProps, CardContentProps, CardCoverProps } from '@bluebase/components'; +import Avatar from '@material-ui/core/Avatar'; +import Collapse from '@material-ui/core/Collapse'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import FavoriteIcon from '@material-ui/icons/Favorite'; +import IconButton from '@material-ui/core/IconButton'; +import MoreVertIcon from '@material-ui/icons/MoreVert'; +import React from 'react'; +import ShareIcon from '@material-ui/icons/Share'; +import Typography from '@material-ui/core/Typography'; + +import { getComponent } from '@bluebase/core'; + +import storiesOf from '@bluebase/storybook-addon'; + + +import { withInfo } from '@storybook/addon-info'; +import { withKnobs } from '@storybook/addon-knobs'; + +const Card = getComponent('Card'); +const CardMedia = getComponent('CardMedia'); +const CardContent = getComponent('CardContent'); +const CardActions = getComponent('CardActions'); +const CardHeader = getComponent('CardHeader'); + +const stories = storiesOf('Card', module); + +stories.addDecorator(withInfo); +stories.addDecorator(withKnobs); + +stories + + .add('SimpleCard', () => ( + + )); + + +function RecipeReviewCard() { + const [expanded, setExpanded] = React.useState(false); + + function handleExpandClick() { + setExpanded(!expanded); + } + + return ( + + + R + } + right={ + + + + } + title="Shrimp and Chorizo Paella" + description="September 14, 2016" + /> + + + + This impressive paella is a perfect party dish and a fun meal to cook together with your + guests. Add 1 cup of frozen peas along with the mussels, if you like. + + + + + + + + + + + + + + + + Method: + + Heat 1/2 cup of the broth in a pot until simmering, add saffron and set aside for 10 + minutes. + + + Heat oil in a (14- to 16-inch) paella pan or a large, deep skillet over medium-high + heat. Add chicken, shrimp and chorizo, and cook, stirring occasionally until lightly + browned, 6 to 8 minutes. Transfer shrimp to a large plate and set aside, leaving chicken + and chorizo in the pan. Add pimentón, bay leaves, garlic, tomatoes, onion, salt and + pepper, and cook, stirring often until thickened and fragrant, about 10 minutes. Add + saffron broth and remaining 4 1/2 cups chicken broth; bring to a boil. + + + Add rice and stir very gently to distribute. Top with artichokes and peppers, and cook + without stirring, until most of the liquid is absorbed, 15 to 18 minutes. Reduce heat to + medium-low, add reserved shrimp and mussels, tucking them down into the rice, and cook + again without stirring, until mussels have opened and rice is just tender, 5 to 7 + minutes more. (Discard any mussels that don’t open.) + + + Set aside off of the heat to let rest for 10 minutes, and then serve. + + + + + ); +} + +export default RecipeReviewCard; \ No newline at end of file diff --git a/src/components/Card/_stories_/paella.jpg b/src/components/Card/_stories_/paella.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1747662330c25a69e661a68e642155a4b4044397 GIT binary patch literal 33329 zcmbq)V|OND)9oEw6Wg|}i6*vfJ9li`=ESxqwr$VEwt4bA=Y7u~ICXV@>R!E8?^V6) zs@l81R=@rNkfp>W#Q`87007AM0(@-%f&pOv4e;-P_)kDVK|(@7!9l}(FE|u9c)0Ha z1?dM8;`fP*j*5zoONfJwLr6hFLcv7OBp{#y^8fpQuYLduG@u_u6AXj|0Ez+vh63_6 z2p|9eKtaJkz60<-0SN^G4FHD$0|kNoS_eS?-wS+?seE;;pLOKO1Y`u625c>LQE3`* zREJT8Ws2Nq5UzOI9yhgcd(5OK85zl*8i3}VfCN4{SN=+VQ|*5PCyR(lhhs4f zjSNS4Jw3@>nV$l}p+3zS*@J8=W>nVrf9~$}!h-BY4Icwmb?#uY`)j@37k8XCS4N{f z%J~L=eJ)V%%V#88P>KVEvNfuQA8^LcbVhabsoV9C-p9~6aZh2VY7^D0i*J>1ca*e| zd8hl4bYAvv+ew-NOx6RFxtl}g>&Qcb^a;I#WWb(3%$L32kLHl%F1j-)vTd5=qcoH9 z1ShZW?K0eC^Ar$*2|nBdfk{5G$#82{M^hncxn^c&o>~OS*vOuU`&Ol93$4dl@jR%H z1vA9y93CDKv4Q6c>$4--bI$6&%}0O9$~{j`zOtN<))zL{!n4IGTxiZakL9aQPMK*6 zzg=y$JP0lq+HToO_NAt*B^NHyX%Moqa@sJ8AW0qkGn}=+oz7}0E0h`@QdD9+B!z6) z30dErpEKBMlRZ3=haFEP_RbV@H#74=+j@hXCV9OJsQCgT*lh$oBq)+tan|Jf4J z0d2dqkJY+WN>WKn1Y_Z)3v3 zU2Dtd^JczpC$H)t%e5jk8?SV|&92`2qbKS$H7wjejp`WE;-Ct;r(SFGH^GOze7rUf zZ*p=*0wrg{$|f#fyAM5I*rTRcg|xC-TVEgFiel&)RD`4I2|Mix1S4U& zZdZ+r3AdNWXMUcr$@s9oUr>S!@A&%FX6^ZO$&jAj@5sq_qdT_ovR(rgI-`fi<#*bq z>YPQX>^aj^s3r%QQ2V5PJ)50fnaq%dOvfcl|Fjy;nL^h&{|+fmK9lNzUqK|ZMP~w_ zUHCA5G&b-x7>Vs=1^-yFM*yavIlSJ@3DrV0A_{rtCjLqD}__nD-SqOj6Uam z!FKavqH#LO#jCgp2rz#9savmS`>s$G{{;v#k%{R)_-8e~3got(agdhO#|D!&MbX)B z&f z0NDTIH~;_w5)2#)1QZ(ZUycJs{wBYvOXR%fjnIKr!=?^S$0Y4qG(QSv=Er(0bZU05 z=6;|#wFVc~+50mmeP1*bDf&fx1U2b?5P5_NRikTXVWBwCS0f1>x3aeNUb}$ z>NtWov*Jr*NcL#vRgt{U*vROcduGToCT?fBaYN)aM?>e~vZQAaiX|{;o zm5X+x{^h~`21`GKqWLI+CLp!id)OPC1_X|fu~S}*wjTbdH2oo1R~L^rNYWRaopm&U zDmA1~b>wI;v}P|2r(O<{y7V3gOa#B-!~cfwzeVDI zYs5Ev;85R?LW98k7eBE7;CF9hB8fb}C@$D1g^L8O{Bp)BGw}}#Ie(Lr6U2(HK%=0Y zIiW#*n%-Baf+^mI|D_ra|FJmdu|>9elB9gJ3glU>)ARc9JKQN9hLuIMKcus70UoLtZz z{|=d=I7fi)RY&Qgu4ibOWxI!MZYeN4#C+-37r^QLLTv4`;SRLv z!=F8>j#wlaTB%OYIo&~YY1{FtrQoLIFdnvmDu3w~IgW*su(w7F%BfjT6cr1*L^n*N z-^2w5SLZMftzP^ruJb*Xt1&NzLd+qQF$**i0d%+M7h|$!$%qF$%FD;k z)4$nyaE1Q><;~oFnaa(_N#z7KGPq z*9Y-y9Vi)0O1Cqq-QY)^v4AjRKiZ7h)#Od7au;df{VrAgcqLf38fcHT6vy0By_AuW z(`-oKZIRGYxL4EwlxexkZw0|IXgRsmFQxqg&;$|B=~|*qPM)^NR^}~LV8ffH@7aog zX9E>uf7P?1Yo)j+g~vNZ9q%bJ3o3uew9N6wX4tfDoar6ecQGt}uFIBxx{y!2DMF3A zi%xg#1#+02&}quuJf_OP4>xeafbn_H07E;?E$67?YLA9fsVZu04bC@K+w^XXE$F(j zkfNK4^fL!N_Q18`6c_Y1t;O?B+fy8ML@oIB9;Uwlo^e{bJ1@(Opqht-Pf=VGh9_6(s1J?zio6-2d}eQ;SkS3d#+84-Kt4k`)owf4`!tztjhm#+;qX52 zhBJa$Rej>UB}mWXJ*$lNYXbMfiQnd+kK`{PaSQlIqZ#p>p048lxomF2*&nXN@l%#aX zA8qGWdC1Q<-Tm6ncLZi`Z!28tJ28^cgZAAcJr}$u9#ACSFTtj?f_punpCu=Z?TZcU zbUF4svXreepc_!C8n!{X2WHnWmqg4(rnFqU62mz*nuLy3B?2|#kaFgYDJn$%F4$IE z+nYZ{)a>eVi)&oz+*_tXkS45)F9>N&&Ionv$C7)3wcX@?mA%EUVRzu`+Awl;vR7ha zC(z=Hcwxs(0@d3o76e82s$ApUqW9~~f3@Q8b4`kW0geaH;7+4fb5cI79vEh)$g+NY z8k?!t<&n&$<2mVEp(6Wo!~he!6?yi%+F>l~Sxarf-cDQewj|f#(v>C`Tlw7ndiKAH zV1*=T)~?&!kCa9VsG#65ig{XmR$TnPXF#wCg>sRtm85z~(K6Z{!b|xX!bEnziQzr6 zrzfwPVH73R(XTf8RJm4;!E8tdw`y*yRa80&A(L2~@_`SOru0hYI@@K;8LHZ|+i_G+mN>>;9tfT0SD)IS*6fN% zoD$Cal{^_EqoI-E1(Kv!@}q(-(`F?J_cN*`^;1!pk^f|9mv(_&Ku3Q^ZKI+|t1zBV zzk+tZMQmo&^{T?b(uC>9;Kr>WDmGDuHs{91r#)9j0@K~F5r=2~wz2zCMG-10?r{e1 z#UbUE#us2yYjmG(H)j?hr^4ixBg_HC!ES5c=C%sXoOzA2_!Yj=X9g@6=K(!5-!dQ} zN2yz#_6p=~{9gk{jn~1aAwrs3?weXftgCK?(wH^M!iQw~^PLqIyOW1aP)kw0;!f`S zHs2a;04>0ZO3N*A(5w=weN0a-LUoXinFEw=iF2sTnvRX#ZeFAJ3=4}Bgo?=6^2dr` z@^r%mwN|%sYl%OuMP*WiL$=zoJMK)(+vCk(WN)AsBgE;7#>gG(sA3x@*PHSWUycuj zAfP#&Uq|v8Lar}`6p_J_-UVM`M`iYOiZ2&X^99DsKjCEkCr2GK^WRu5kC;7Og*j@F zZF+@>*q=NnOToL&C}c`~$$RF6R)l&_RJBfsTo)}-1mhV>EkW-oG$Fa-$HaDy7?JzH zTZ?&Vt8xp*&O^)QqBC{weN;$CWN%<I|$eG<_ZkiSv^ywR{ zV!#Vb^?>w^w=*pt@hF8c&Doin7h5A?2Hmhllfd_1TB@ld7yuSs)ED^}y9cxp{(DD6 z0y9E^-(P_H`Py3h+tf)tQ*%?&FR(X2uGkfF`3%}Tu zi9Us|exF_D8TDW0Dh8o-a+rQqmsL7#YvCoV{e#G>X;X==^jG@IzzKzr=CXT;KBNhHyKju4d$T%M?lcw7U*tnoW?k43IHmYZ zgi{$pAt|s-|Ex|yhn2o}fh~!2{;F{q%<-#8A8X&&d42RJ&Fm;uNlrPD^hfu}S^A<> zEFw`6(79SQ2ciE|L>DSMcDg#O?^l13*=t4s1YrULv(M5 z(>u6u)j#d$TnzH<7Bc%(Ljqu*iR)HW#5u*-WZSE{4V#GdnxU-ZP|u5g%$3RCRdg*? zNZndU4WQaq$9_yys z35^r@Pwl=iG}$bhB5i zMKq?Y;^~DS?f*Ds@BP z8QdOwX{Z+EXDL|H2A!Lj`bi&A>NM!ig zzU>-gEc%MS#tX|LGEUaA2mxP+y15m^keS^N0x~a;l(t;3DQZi=hCrR8R=5A2YJ$_# zap8Y^msGodVB~}oPLT~gd>4B^q@m6`)LrGtlaf5s1O>iUb!x}f0qQ<7pb-&18;{Fm7rTj1L@aSb~@B_-XadEd&vjNsd1sQ?tZ3Sx&W+ z!h=S=s&&>YuoR^jUquUcS|2$Yfuv0yzuC2~n9A@wJf}tcAIekA9{OjuDrwU=(Xd(9 z#_bI>F><#IG_&EDRpDvoIL;^}^JN8VBQR-{&=Q(cLD~e&J2w@r^nif$dhrdkzVi$u zve3|$vjRzz$2qRPPWS#mG(-L~MAz0>uprj&Nw}RuWf?M?q zuut7EFHWj@zRSEQ8_e=y#FbLcz}!tGw94NtYU?kNH+T9DFtw8XGw=mq{&+$1jRJ#T zv#w663Q4cdda!ZGc&YN;8#&_jlg_4dFE?3d$MHhb@Um$Z57ibSjOT*TV8 zZA3~uT|KXp))(ys6=rk7h0Eb5EP7Vm^efRifuu77zb#pgWtT8A)-PW+`I;+zeeO|$ zfw`dMV1wF(+%aVs%yRW{JisC~A#|dy@KbiKLZbtnkuK|%k)d0us-zd~6o)A!e57yj z$38#ddyR39bn|9O+0&d2ON z%WqJ2vjI(t0dA7IPxHOAU)0Dk#3O?G_$nEzE|obfxOpQ>KTu~CEAHtX4N-)Cvg*=q z)WAvj+BDa4zi8yjB*rKgdY{m!B8ymcl!fD^8RWk&^>$izZoVOVH^+=&FIVhEY=2_J z?Xq7{E8uh_SUvZJQOkCy85`m^JJ^=N7YzgD_7e!+EM3tNccE||tQ1ngDx;mEqX?U3 zPOH`uKG|BOCX%g*#aXz%8~R%jB4yOa{J``b*&;&}p7f2^6tUvaZgVEY`q*x=q+Rx( zWG3qQAq5Z9ZBX0&FQW3pdWigiCZnb~B~*mB!NWJ|>n za#b;9z$K0 zX`{8eBYa{v5pvlN!M2DTr559L-+6GJ-$_H)jI88g&rb~bqYb5_C3B-2(%y*t<2dc6Znd2Om$3vGrGWS(Xd==xA|Vu8HW0RLjI| zu5%af2P?1j;`!y6t9_BZ02>h2+D+1G`sfLV=Y9XL??=s^3_om4efr%aawSDsqqp{{GWT#KjNXk0HHU71+fEv*>Bl; z!Z)>6R62+C$%vc8SEM92kKj-}^*{^Y$S_nB$147gOUt2<>Pgs;@OYH3 zOctuM-+dm;9_|wK=+At}_WpNZ)LaZLIsS|564VU2-yqx0EAm{XM8ZcKMK;XIoaYy>Zgc3L$kpzN^DA>rs_r1f@<>2@pr<^9od zu293$+iN_Rar?XC<$$z0@>%T>7#h*R}Ek zrBtOceryeP;-E_H$IdtZt5L%}j8_LfV}busV`b*Gl$bGM$owpInuy4dRatM>x#Xm;%^6cg+V zu);I?YWK*~Co*DCY&OM#S6+higYtV&=V&@FfLY=8`;+`8^N#Qfzz*@E)J5K5MZkO2 zn&(B@iMhD1lmbgT`RC`v1vY4A8y&lNLqO1S*8rw9A-n~%?UKI2a##=|5h<-yi!3U9 zd_-4JkK{g`G*5kc7Lq+OqE@B;Dr<>EmefaPDW&nKqED2PS@CGd8y+LeuL3h2N|Zvg z;=GX@?BJ0bdSl8s#u9xhZ>dt@B(F$tp`SF1?`oauT118Tk+K4(14H%(3H330iAYw# zQO>55z>b#UYGEP8Ug9dHp?G?D=bJKekl5p{@09yvA?j2*IT;eDS2McOBqBY=3885$ zGn3G_;S7FYgOY+Ri8j4W`zV^BSAM1e|jm@>n3BH5ngUy9*rio#7`*tV>1i zrmHb#B}SEIlzLGb9JbC_^q$kE9^wwUJSsB^*0i56pSc+T>U83W1z)xj(m??;TTaDK zemdjm=M@dVJ)CddK>!&50tNyJ_APnA06-wVm6~rk2Zb2y2eYuEAqk5kGV0HOdM2fW z{JuFNr+?sRq^u&!MuFGHLJ9@*H~*tQAP9n*!qhfd{7UR*2CELVi(HS`;ySkLAbhHPKDq0NVsr}!1Ymx0Np3Sdk z(6i$5$K0#7CYLftk1j~zrFO27CB1(kmn5g6dEkvWT~-DE!>oiUv9WdKDd3xVp|}I% zlsnG&$3;ERsB)p4;Q~*h90QS&=8dL+LNL|FT>`DCz3<1ujvd&gmhM>sYDlPMc=@qsD=`M9VwAvV0s! z%ce(oh@KUdp#w9d^99J)?Iujb2&mhXJ+K@wwZZnO-j1XZo$1s5I2OaNmjo>0S=r(x+iffH)21QXi8E{4;%IPCnnpy92Chf(F znSBMP9MNgAP02RFv~Cm1`-rv&4!*2sK|qpC9<0ds1%Tc+-sYth#>C?`c}A@R$lM1z zFc=c_9qO7nBy)$w8z^{bm?bTp(wCJd@Zgp=YJgus-!`#Z6 zdy?f8qHxP2J6}M^PZ)|gSmU69r`m0F-z7CS%H3FYFv86n5VJUU30@csgRvgm7M;*z zI?m&y7J-uyJuO9M*vd-;0hje+do)fC8lKL)mt$GEUlBudjWW%0ITu8V%*Duow0?}T zZV40LmD-MoK1zQ<)AwH6`U67>yD-M_z&kP2w`DE6R2kfpisw{P#>O-4_cHvKQZ$-L z^g3|U5_YO*7??%8;tIuXI(UY$rrMJeT9yG#D`c^b%i4fDnPRtlR*ync@}&CXJY}_$ zUs(|yv5aPUqod30Q@Ks<$3oah-B2GFL|W4g^C~xN_r&1Va6YD^97O4C4Q=nPz*)gZ zaVPz7K@YjPXCc(E1tRsF7TfjItT4eV2^JEnCxT~L)9iDhaIK71<0-2>CJKu^{u_ z^9t~i8=Kl3xoR#o-gsGhFFOj>GBR-9h%D55g7jBJH`Bz>nh`6-Bj!R)d19@76dR+e ze_IHkQBkUR>x*Ue1wttVwK49&-cN0+-4j^ZtwHsjsupf-)oCNjyG0GnX{>EK>)oE% z)gR|so1OjME)nJq>6*xM9KIgzj(oy)*p2s%LcC;IR;|insip=ZGs01BQC?=iV}`6F z0BKd(=oQh&*zj(^*n02G-+E*3B8?Ayn7Jdi7IYPQLZNB(i7$NWkWxvrbmnOljwEy$D& z$peAFzY*Im)jnj(W=U|3RcP&&dZsfF*2g*!OPd}vd0+|>)61O+)ZLS=B3KUC!g;S# z^PBdqk3Wu%Y6q$CW8G3Y&UmH$X|Mm8x20?E%ofO0;l}zIy#}waYZ*&*)@r(DnGL-L zVe&S76>g!LW3x%dNV?$S!qcgmJ5-)Rd^1bBcv4 zQ(In;xG5ifN}koI&vwVkr)vX^&d3>)n{T`&fdUF;U`~pH1;FCNwVh7zT-B}ZCL8C? zfk{`Z!!1I#Id6$hrdwq;W>+@ZM);07t%wdb);xvcDf&%DQDv%|hE}gO7s2RfCwnmq zJAd@7OMk9imV|KO-oc;ItZLblnVc1VC`~&CvAB;W_l}Mt4NO{88dysE!=rX&)#J_y z@}L0r7*($8h$V6ASfFajtyR3V|tr}iGg7A2J4Ad)lSU37YE7&eKV8In5 z(ql#Pdm*?LuPqE2PI>xCqWNtAd9Mcv6%w4#ohFnNmYlUIt;z{ww7&=@isF9m9A^s; zEzvesVNESAMK#r5omIEtC@cEpKD+XPFk1l&qn;sq74b@m2odP!uG0)l7nHa@q~q-e zIhIEQyoRO*6t~N&nKZp=Qu>Id?8^4y&s_NFV zw)+^faGBynIByKdIfVy^#~Y>ljpM1TYLcW+_Rx81Mu0lhESk^d&j>8=l zmd~~Ul4{WEjRZKYrD;x{NcuUJV+tF@;F1pLzC|^_xZ0L_Ak&_GLGk9?x=aEd>1M}8 zmQ$IwAXC<^GTR=h_#)xyUd~I$E!Yc3)I~MFqJhXJ;I1O`5jm(5udtj7ipyUDkCJ;u zq~88HXT+qeP=oe{dRKcOT+INEUW<^Hmb-jjbq?ORq0$HG5LoNMnz z3MwBtccUhfLNNH@jXnu)!8_tMnA+2-YyR@Q@}Uv?<*>misuf=e$4$iBTogh#WcCl^ zB}Wx&&zymXjMUT+8@(V5a_yGQa!2J*b&vGiaqiJ}w_O@9C}dsctSwzgHmu>+y-tmn zm2w6CKevwxyxItGAoRt=A1>bcQy|#-3khl*j2j|!==&D{FjJq$#yo}U(iy9BsG0(k zVO!~VD}oG)rTed|fg~mUG?z?``bn-(AC>>7D`KzQ$;Nn{m(Iqo>x4k(nutOj#H36V zha|`haVe9WaW~F4#?fptJYv1_Wd%4;UPuU_TEIvLp2B8SlgMYm6szdJ5erKf#PmvL zgmGd%0!DIIcYD2xMn`0)c@A;0t2zm-w&6dOT^$=WmZ&{J3fmf`-=9lQUz|0`vS6_z$Y-u&`Pz=C-Y z0R}`LR_KL9^c_>|yKkaG{*UeL+p+}){y)w^5C97Cf0`!8fQ0;dv-)$92Mraf{34{E0>&iqTJggl&s{?kT_+{}C@d}R`(ZEf=H@s1#mvMiK# zjxLD9G~>K2)w2sZ<)l@#rjg-8CR76HK3!pOmMax-sa8&R=<8mk)7Q#s*wV}j8-3hy zNu<;YWdj5|kwx;nEQUj*eaX|<#ZS6p8=#IZXEkn6Vl+GKH);h%xTjUmRc1*@qqj;()2xZct$G4vwwpGLvwsDa<4#U`8JxvpY>gTg=iPSdoV!OeYYJ zX>mVYNTcHHI!LnDG!>}nRpoGek;z?eCGV))r&9Oht!PO5ytxonP1PYyRa->_U$A7d zOdhv9lFPy5B^1$w0d>TwVqk!aXU?4|0w^4pGpPlp63tD526t(OX-)n)%b@hvJnlw< ziEH7Iw&fbZ$P94=ksiQKo9u{pXP3LSqemn%Yk+8Ms+&gCjDxsvz6)eZ-B zNEC6~D8{t6>{^!Iw6%>+nX32szHAY&~|lk6NG8AwsL_JS9u`flqb&hUz|Y25 z$tamk9R;vgGsVfZS49NatFe=;??JU);Q)5{q7q2NP`N%o!sx$UEU zFF)iZ_{LvL<_i!duL`_F>pXZ*Ft(bPo|MZ%qt}85so2BcDGNkhx5ji>mq+xN?eCJR zMX_6kI+5DoB}Y@Cfk&-H-2P{U zKKF>hL~>ya4k7Iuaq)xIOA!4*YC?M~@U=S>!BMlzgUY?JU0Xq^nS>H@8w=E}?6+VJ zI9iQOIPF#6_sO=O=bekaGcNt^JZY*GDe5aP5f~C9MTqtke%o@Z%K3Nf1fb>n`w^R4 zB{z>&I%NZ<>wiNxw$nJ%H?pO*^Zkmb0-kco1U1q2LVCNo^q`&2syR#0#=*dxz4=IJ zR=U8`QmgH#1<$qgft$t}+rfB*EED6roz!tQyZo!lZ4gdDaXET$#ms#ixj>AOo^42tqcM{T;(|ya<#-zO3Dv=3w zhI)%4nc+I~)#)zp9KGoo#=1SK04n{fBCLoHg0m-3VSPwz6u;KiE zI=_VS)FUn#rx0kgS(|oA^hijw|@&$(=^>mb2MKV@1P=ZajR=?HrZ~)rVBKL z9?W`0v3kd1WuRNZHL3`fIZ7=(I)YtG{uzVv?#L)?9pKGyX0j(z4ad?G9>@4}WX))#{^ojyEdATBQW`w{(c5)U18?Gm9 zx}qyH8bsAztmY^<>q1-aD28BdbULu|y;+lAT|wD?fEY`xeH3%Vu*E@S^$|AFm@DBc zRZ2%R&d}Bu;OpgE(b~t5x0T(tU%s4EzhkLdopl?Uh{Q0|^MtA~zUMGUEgK*D0_>Jv z1wp_0Z>-k#Qp}i9{J`3vo_>^n!z!GDS5NJL<{m7APj7p3U-41+d-&H{AKf(VrVXU# zLTh!$+52S2TM!A3quwiAFwqG0e&hC|Q&^=_p#M3|l?a#3%}5)30QTl;fR3-4k9m{v zhjMee@Qjqw;>fIq@$&D#ib_&ga6?f+d+{yk47Z)dgbebGC}$<6SrG%;Bls`mJXIhw zH;TkDcWx@nD2|GKaCSsN+a=JgcxE@o)6{oV2S#r9an_~-r-44dH#tAJS(~Js;ViT& z<~p~Kk@nO0s?c(+)P37NkmlkR`YHc$D~+B9PQ5wfb!IorD3+Q0Wf3q|Bc1sKV=l9L z!_TGsIJ%*+){lhks(+1R+Z%{0QyZ|pC0^zF8<%!FiaEnMh@=ZM`Zkq{b&x8V-mWplOR=) zX{St|HB$Oz(#{u&|-3A1XD3BZzXyC8M8()^F}{%*D-t zWO6tN^~zHnce&q}yhBvxc(u%|dFtUi`{8mCf`7gMydEjs*<7rb&>${_TGDns%r6Zn zL0a9N5?11r4~|@*A#scn&|TU-M^_e|iya)uxog*~S;B zo^x$GLX2tdZh>}feKO9VRmZ`453L79>pR%ZwM6TQr!Wq-YHN;j;@@@da&3b)xzYE= zJgB+6?w0Evinmp=Bp9B>t4|TcPnmd6a`j=x zWsJEEMO6U_Litvta(W4d1220>eq0;U9J_HHh+2fU&NWF+w z5WoB4$-K}D7cerfmdvc3@==Aya6GmIM6B}Ip)_5rz4ZO}f%T@KQ0T1?>hEIHZM*>_HZATTB-!y8DO39%41DIaFe z{F7yz-8*cvJ)Zb#dQ!#r>Nqh!xLx;^H!JLJ zCO@P>ApK|3-(9{%M%pfDsiwlPiOHE{R7@^;WagVgrFS{fC$Y{0ZN5IBL9VWhdnP4; zyq>oZY&>Nmh^15hZ#xv_*Hk@H16B3G{>>86BA@zzEL#bqt@g4NtZLJGra=nNhs}lP z@ePsN5VPBXF2X~O5X~=uktRS}E5!LFo-o23qH3sD#Dr0b&TBGwn?=pFCb;)o`Bz zHLE+zbeWOs*(y{)HFV=nzO{^GYw(OJ&>)jQc<%BX%A`5B3mJfZ?zXGSTPyR!g&4Pj zHR2*70h|M0l>HS!*Xj)sOCgwd*$)--=UFlENEvOkeoy#paO)M_tc~hTEdCF!!g&Um z))yecz;y%tA?u@>oBUn2bE*suc=aQ&gY!NsrY(uYZlv3peq1S2ZCbr!SHKF^2eT%9 zLp$x*kJ?`8`~M&>bD4tk6<}M|fmo)K7wLljY2^!w0|MA|@rX~y-f{d=w%B@}qtdU? z*Q2Y+{9Lul3isz=&ot$w&+B#GaHg=dvg|VLupgMiPyx{s4+vVAuvqy0XUnV7P;KY6 z@;`bo2i%fpRR<9kCX~JH!ZRYLUN>i>wG)+5wByutY-GnJw4&O037!^(CA}fxMh;C# zH9W#pxCv32PA~IAD_o^4)o0>^XL0Byus5eN*>cSs#LXglK^V#0_^3+fO%2pe_G&qI zn_~^N8Y#^LU~r)>Vjr9nyPCn8V&b>E#S(2j-(TvbDg<1**0}*P z^J8#FeirBop~mmPBb+Wz(?}~ej)}JxhymY`8E4>Z1$nm)C!Ex?Rox z_1Uf(ZJC_M>UCWD1HwV#)&m!$70$XQH@PRgki4wHhdJCH#`EI@qgL_l5c+OOFfH)c zbD2Y-D%NHj>Z7cTcWC8bxeDt)={um+7Y-niv3&_FvF&NJ4(cgZc=T;ARAp6#fMN?X zee%Z|bZIr(L%v0}W0yf|ydq+Ge)$L(S+(HuO>Yi=Rn@UK%ChW#VUMf(8qLn1o!_%@ zFFXO?Yv!y(F0BDZdX5~zPIP=kJ^NbZ+@T5NktxrHl_|2ms8?pJUM`I^>DGvQA6+kZ zEA{A>e}4zi`hoiw{CVXJAQ-v@0nOc&i+BeU8;^@b_EyGb^ujWBIj?s#FO=b)h~^N& z-sMS{*lTMGo5MR6Tx|PG5=I6+bZy#+RLt%v*N16ga(vEoM7=xsx#Z`U$+U}2cF8f_ z3l$bP-d%3c^b>*XD^AxKZUO^YV{W}4rTbxRY;34d866rl z{{j!~Jev*0^o}+Gl-|3uu$;}cBB*eOq(#W zN=LV7`gFYpUKu^xBU@dTa-OcF&s%A^JPE^^q&^QHq_9vD(~?n~>P&-1ZO5zjxxG^$ zbvg6sDdMsPZ{nLfb4U$z+H;~@%>1=IR%&#)<4z8o_@Dt^q z%yg?33~SS5?m9~NI6yG^KUAGlcxBPnrgxl*ZL8vB$F?fAZQHh8v2ELC#kNzi?dqKK zclXnMv#$2tT6;cYes~8o#*W%zbBFy>qhEORjElfx8TLzt7YVv7ULPJt`^RMd_>$nD zY?qd?0(y>Ggwf*w#&*;k7=eN^qwZP=xk2KqnBsZ6R!8bn5HRCbzht!i7m8)wmfId1 zOc2@>`*uDmIcBmB0#SNixyqBI`H;if`V}cyXm^t(e$mC>JHbnQQsB&~{pq%U=83lx z|M&Etp19Vv;t)?%3mpwU1TDX01LxVMH2-q^u6QBO!6#AbG1@w$C-JyA)rG&qfNX%z zM)Xl}rFYBxb<1El*(Op85`@L3idfaSj*+aRAVnJtP;a>_)&3Kht$B1vz8|O9cZqPV z+Ch0WTq;DxA-hd7#122rX z5}796GU(e8J}jqpu0%l6KfWrNYtl#V(Ya`-_?Lg;_vQ~CGwIzU_&*k7r`&hKQ;Ul! zJBSJ?8~N32mmrIF;TAjzo;wmv7jod&FRN*;c5v9Yc=J_DPmG{65lJ-SvqOboKWF0zbZ)EHvB8+dN3a(79k2KPa_mJKKAV@OE>$vw*Ax>$b6u#A~5dcAF=O< z9V;9_XEaPazby#R2yM}Uo!1m3dDGnp+nFpORaK7Qn)TM-!feabZ)TLD>l+UgXhxQr z<&kZ@TPeFS3^Xj>Q~h&Du0zlTSP?Dze`E7IYBpETSb7_I_Q~69!jr3OlI zxQ(EKX=Odjy+#|P$UTSr^6SFCK0FOQpk2l#;BoXizMCE#)ehy`yf}Uv9U>rL9N9KJ zufvng$R5V9`3LCx{C*tp(Vgw54VVV-kA6I2|5*MyNV`0Xn^}nJGk^2*FsB+p?2@@W z@cs5#O2Pu7Kt1`)N{k6|nKu83>&1+8i?&{VIUb$x{Z!XpCwjwk&>dSn>gCwW@6wwa zfmK)Ayk)>Qz3_F&az23R=KH#LT`atRGWqW4LOI=M6fD}79;6xVuT;MNnI@IxwzUNC zhcWoR&(34DsJd}C${xnHMf>f5eszc=ex(!M=rVZx*2^)%|H-WOSyh5`Ncxgx%l&AMv{bQ#!b0#sHSX<=KLde2>vhkq(#J9>@H4D z@-`~l=ZwKan%pLi4ZfdM%=f62Y4&Q*xS2h>&Rh?}{eui=sN^+;h`T=1I;~-^cw{ma zVP_mi77w{^gDcj4w;<_#I0K)CJ*)$KfB$gMh5I%~!UC&u1#O-=7gjU8e4wz`Ng*(89{UU0=3^@kuZL;pr^;5+w^4TNVHwdl2)DGsQfUtkZRr^Yimlr}f} zk&>kA%qZbBYRgn$`s)M6XCOf< z&E)bJ%Z-f?`xbQYG^^a>y~qCcW`8ZL(g|~wfE9!3yY{{ATwQ~~Q&VQ#fH ztB+v604FDmF(~h^BfCZw@(&}#_;Eij$Im+-=tgl}<1G{{;y?zaO<|ip8=5Y6snDX- zIlL`Zrtg2kzJre47ietVc#IWd7$Z-k)IG0Wp*nTL3_7T{SMY{@Mh}utyOaHyr0-@( zr6T+7aa+O^WCuT_D!Zt;|!ec znPA>2%iS{y8mLzXPZ@+LJ!$yrUj$9}__{x+fp{p%NP-_ul6Xbhlk5j3p!FVN~ zDA+%s{Ed|6%lHnKc3>nx)o5;8%@~e2%qU1z!*mcBcef7|&6}%mqQ63}AH>NTdN>UWe$>FVQRP&^uOA`0w#@V4O7J?7#0jh+s zG);`5AZP2!im%bum!Ux??}_v@)pgRvTn5%lFRu>$Z2fD`^rr_VXG1NLPwK>%Ve8u9@)a6#1c!_o|>F6PNYWIWffzf4;4} zB(w0?Z{-h45yOa5WHm_sU3)q#dys|#jm94`74PQYG~n7f9Xt3<;$ju~x5tg>Wd5*) z%-lJw*V>^6N=|uZKywJ>4pU1z@aMRxx5zc*J*gsW&2rb|1?VdTi+kq2A>3j;4lx5( zlMPlTfEB*qNJriZscn&Xg-)VNw$i$u5z>*UW$gJqt+{BT=~a*KI4)MBRmdWraDl8f zB{(e9N(~QsPaod#3q>HgdkHabn$u&&nBxT4M@VIz61@9t`nKH{^rH)g#gF`(A|o>Q z4-mcPP{F~LnG+BWD~_o3*eD!Z*?L$2Ug~lLR58vY1IyoG;;O6^TxZ!_yg&Nmyxsa~ z9Md5L+u`N|o)QKQ%Hd z6q-X_t8E<_T=)+VzY#ew&g{R!R|8&%<a=T?!>(x~rs(i8$c+bT^rYhlTLoY}GPW zILg4Pw8cfHPke1=>OI<+NRD{;j2F;5I_yd8KmAuUG)8%<`+&?FZx~C`kj9Rh*DElE zUo`plA#z8Dy(|TA5!P@&a zZlmRPxRAq`)1Ac|lbf}%4rT}cFqnJ=)j80{8UEv5GmlKLv~Lt`9($@vP!j>xN$D+r zm1qY`j-8!~;*GOr`BH*RXnuE?O&Z3|(?Jm;fmlS4jf1^Ckj4N;E|y2m0!`=#THYuP zDmxl`vKtggizE`*au8wNp75PaEd{56m+TyuK_26o&XLEi|46Xrx;P|OXI*Kb1Z#jv zHqI((V^qF;zSP@$ylq7n&*x!josBR5w9fker|W(g@P}GJo%-1%Nyy_KrMJiP2KLA3{ zigSejo4u=V87o)Yb!9Y#s60Q#Wc)Zyz9yo<)z9v2Jhy~oB?oP9WWws~9TIxDEo;$G z%ZvPA`D3NL5xn`I9PkAn0A+d_iFl2|wdQT?xZ`fE`0jHAjlGms^@Iz)bb<1^j~UhO`RRf{b~ z#{AEzTS(_df9Ko2)SK^u2QLd^9f0yE|5ALiUm;+j*?@9BB@0;*TI z!wN-$vUw3#%%`5J?`BovnP`RPVxkGxPWLNYpk)CeLvIr;a&xVhzb zZRiCgJ0Ip}_l+T8?5|e{{RM}I?~{Ek?Qet8s*j}QtE>n(x+f5>(3(&Ndmoj@5X@qc zsv-%;uD$g`H-ZrgE8d@qABf*XSH=|}I!QC&kI`wUU=U}_nG3ck%4-hf>#%zvdms(% znOO=&?I1#hXn$)lKJPo<3s5*d)hX>oG6X(iB+<((2fXX*r7I%N4mZO{Iw9lsu@s;= zX^#ydvJI+3N1bgAB25{@kBNxm4;6hubIoC#;P#1pa{CP6>@_BnmG)`ubtaosXy>^! zm_o=Q#3CUtuQp8(E%5y67zp2(%=!n&Q$k1F`SsX4);my%xgf?(PnH_`v+!=F2E4@p zV%g>rFMWOwFvEXGLAK}-%sxF`9#y?acEpym`4G+7Fo z5$V^<3Qic^tPpf61wbdb9~2|aD8&Uk9I}?77VL}0#KJeH1PX6N?U3o9d34SkObrwq zHBO^3v=<-9%*P6rOjGuKHBj(cq+S47sTU401+IdPYKX=+dmlse}S_ z=$@y1YQ7e?p&(JdM!P3}EyI4ua0h6Y@2exU(rB^(ElV`j(_S zYq9}j&Hv>;6zU+G19dMDLzrfs{OVE&{M>11Cm!FhJ6VW8~-9JmNI z3jG1NmZR$#L6}>3tQ(zyF8yPiNBmDtwRMgylVUi?cX4C(MBMUq>sI3zgIEpL4=%Vl z(Z>|TFtvN|Sjymmw1{}>Y4Hgjqyq;tWjfD(^gH{=zrUEJu2)>sQNw!DsUwkbiTtV6 ze#CtmAv!QmzA#V;Rto?ILVmP8b8!bKk>R8-QrF*JVSoWr^Vx{nD?B*e8EN+V3kd;a z^ll1^4lfL%NkKHl^eAcZ984Q{`18&90snIVpc`z4w7&b}(iPHgAUV4J+L&k9%dAUL*Xx}4tiYuOoGCY({zbfbu zPc9H%y@Ea&4}JL`!24Vu7HV}Z6tN0p%SgmcMB)bkD4{=+M-v#dj~XRyoU;u#glMU- z3F8jGw%M>31NfObh+TxfMuuq7h;vRW$m82Ns_y95uc#u4ggA=(Y$j&s8rCvv2Zz;M zkjXH4L@Q^Lm0x66JQV!64;1M7d>HbOG1u@CY!9*R?xv=`QEqdFzztXgoUgmV5#&`_ zER|00VObrys$KFyOrVrh_*RCGoFG zhv;`Va^lL_8ly7c6!KEdRHif(yEblZjq{Jz9IbM<=koLc=R&sM0`_h1w$^49EuR;aKX`7P`ix#SOGt<$f5zVxA& zzbs*&s$}!umWJ6umvjQ7c@6f~#|SYT4Ey61KXmp#07KH-C=mou&-?)zOdszT@cr#5 z$(c7=tQ7<|qf7pyv0C-4zD<08tkgRTvq^Zv~2x=iN701W36_ z_kCI#-}PmDPhSM|HiTLQDlEUFu^6jdp84sUbv*8fC-97;M#6N(Uy(3B!xo{7rz8Eb zC_xkLUy6t%1ixV0AHV09CMoM6l3peLL|NtIGvW`I4!ApvdJ`j+0%s$QaueF_1A7G{ zi+)p}tIfc|!)L66&m_+OXsg9(C;a^pZ9blP@%| z72fU_dd3Vos~64mW2BQf)is85^$2O!U+NA4I_jud(bJDaKRTg|%FPfG)w>Q^>kZGl zlFYX3^bt7T>__->S33oZ`;#3cRH`sCv5DB-EAZ31|FLiNAh3Be?c!zGFle4&&z(8l z=BIVQOydUSEXcYc3onaINpLJ|{95gDv9SIH1Lw{#t3UFVtDH$PXq$fCEZ9^i^AA8AiZ*vNzR_P5;y7!8yH%`(i=m zT})=op9(q`zK^Mx;(ToXaRrhD_6T;F$Zq$wsa%05Dh^>FTO0-aVib#&DGq zM@Z)`x9S^_U|?cdtm^CQ>l9=pk_-EqHUkD&l$rNm%v2-)n*7xVc|m4Zin3>Qg6Heo z{bwt*AEdVLwli@=JHgfUrs3kL&We}R6RTg~g476IAF`^`5=7F%xqca%)|$bAqV5Nc z5WE26;zx-`nEEcOApGBLMckr7u&kc$Sa{=0&hbIUhHCO$GJW{y zN{(|oHwdZsQf~t?q*UvYB^R7}A!4R2Mt5%T5SJtgiK*QN@;H`mYafYw{rIS)*SGOX z`($yL5v~JloZ79_kM)-E?i6#B;>Cvh=z{Wj%Hj)DuX>2 zpzRhz_c~yHAcm5jRfm-G*|8fp;V=2W1#(!_)gj~bEN63Pz8DhDG|zlN;b0V-OW8rp zby>lpk;$WFF;W$3-SzEUnCQ(U544Rw8F{`zxp{HyzfI}rWju@rD({Z*yYg>v;c(ta z!n%D2Uc(4L;|&OK^R(LT~K~%B`P$jSVb+ zqF!$ju^Z~N3`BV1dIW$rQ-ax_0MC1I zh+16S4A5B8c&ORjKKGJFc4;VkVqU*L+UI|OrR>Zk^`#HtQ4E=+3{uqX07iGI%0dAz z$ADr~0e&nCMm`mb-z+n2sI8Cu`26RHfALJhuTTE|)hBN0{Cv&%g9Qy{B%{AUNKKz` z^SrqxVzy-#Zo+Ot9j1E}v-PNh@Z-7N^U(|I=Q17fMfiLHCLy9#j>bHdnM68c00QdC z)4{AZ>S1=(HY$=u9;^OWG-K)*auGQ1Xof6zc6_-yLsP3Wbq4|zB369}n}}awi5}+A z+|p0%Dm5x0A~}vJaVMLpgHm5!Jfrscd%vLjulkEf42NAdxE~GH1Ac~l(wdhU3>bCc zpJBY^5FtpMce`xx8Z-tt9rjzcxTeIFt?qJd?t|)($r(P3=*Ycc&U4HW_5fL zTYr~(x}B1^nv&6LTvqnQ!WE7^EAp2+xWM%!fw1xbY9tBy!=IuyMz++b9|82C>-5`& zl7u6EPaXqUdR^@@Dv^Jq{5AQ5081T5`!;GM<;aarf}TEOJeREAi zsh++zzWG`2xSm{xIpScNQSnY!eVQ2R1RcoFl}XPJpdp*Hjrdw{2vcNJhxP(z6|bOE zM)<5Zw-GF^0y6go)sqHkkFzltOrUlk6=~*IcmFe1M-fG+t85A_LT6Cz7Q3SFnk*!q zqiWu}L-{9JH8gxIT7WfsTg@kSBeWdWn--m0n4deLZrh?a4`Tg0k7LIb{?D}!!}cRe zshRx2=|%hk!q@|>x#ulk{-5o>iw!?RGV%A!k>0$Zni;-h2LI=I;O;S(v#WcjV#o16vge`m3l?L}Dg+=A~9LMVnPHE$QVwS1w^ccEh8nSj+9;H}=Sn;ga*gJKCsbd#f`p;~NK$IVCZADStz;AOXiu z*pC^oy}{cgEdrw6*J&+f39{5!WsE<~yhh-U2y;v8m8Vto>LNiLP*GRlX`+Z~rMHTQ zF(2Iem_RL=EqNoJ|Lu{?=-)-oPr4zrLJeNfz|DCES)oMdzdK zwT2(OY0_-IR#oB)rHBk-F>@0?DR7o=o3$i|aTh6Z*La>8I0}u`ix)|eQk_2ooGC?C z+B^B`VUpBxzI8a+IuuqU>rHP(zpxD9K?VPC!{vu+`=@9HCG)AAtC+3#gkZa!W5C7$ zKZgBT#9$kqL%H3u;^O}G?vnWNc_y?DU+z$_v}rhjZ-FXl;B{1-tPNf-i(Mi$kZ+lw{gpz zAUBSV2u`la-+9whuY#*y8vcRYZ$pg^`9DrE*|uXCW4fP7S z9|xI4`MX*rCpCKVVK_(yX$0E&5C*n2Zc35TT6$6hN!ZKNftjdjN$@q*DSDj?YO5u} zy>v9Wgf|uJ2?i@v4B6cABc!#sTbC z;*VWOhhyJIXXhHi;fmm>8jU)s$-Tz{ZztowTHdDGZ)FpOXB%(z!&I4bu$6Sj{K|Dc zA!KW#G9|6&zBV0Y`bJNb%VYXaJWHd3`2nQ+NDsnJ_gCV^7SS$#)YEQZWdcTWvRf!u zg=uF!XH{@+$f49z?9tJA6zXUQekvwU&FLz+GZ@@e%?f-V;doh zC8D!);)l&#Wj#)N^y?pGmCbBzzr{`IhEXF}6Za|yY#^hW9=EDoc9XW7Cai}}#o&EM zdSqDt?u~oI#(ODw#(-8;{G^+oGF~0F{moSQ9u?(;UQ}+lxJu6S^J`T8NW}FnXG>(# zIckI-YO|xx}0ime>nQlE{2Ia*&`<_OpOyV0L093&O~13 zE%h6@gwE!fXGy=_k$m09Ox<1wd_LJRIM|+vH1*~?nhHT`hL&_>Vmj#|Bpok+ z#pWz>J%*G-x>s&`oVA5RFPjFyQLw((U(+R(#uWCOh_syBW!HrYCY}Nq8m5vWDK*~o zi!{^&05gq}Dgluwa%roRVl5fb85F;irh{%>W6)8fXxGl)U*DdL2 zc{u$>PhdWh~k^t zmfWCB2CLIaJSWDV%1kvE4bPM`=}s9bP)$`+s#qt@erzvDBbqbTgt!=B5JDAYR_+EVMtfF}=s3T&{N%9h+#-9}NKp)o)v@hdl zhG{lw)X!qEfcNEv<&%J3qXJpmaYacGL9ADtRToOsEd2B>R-Wx_E5~JJkXLFDnqET8 z4&OJ1qTMz1osF=I*F>07f`T^M#2XgtjuJ!#cQgJ8yVi%76LlHO3Xc8F^_-CU8Fw!)P^97KxO?En%|w|bXd1AN&GA~N zt8`7Bb7%f%F{{f%#EBgBNB3jjp6Fq9R7LFx34~HuhRUKU?FX~Qse_k(f{_P;XVut{ z|G>>DlI>Ai+j^MZB-Bt-0mhfsaG9pjPvJ$A%Gjk|MgjQpm_jG2<&a8l(IhSE{DKU! zonI_99+_B|gc>{;M+hxajoS;W;CXpb3;`-Dqk6eSt|#`q_%oDM^F9x3;_9DH` zRwgDJ5>e!8xU+uUI2f^B)J%@9xzt*f`i6umNB0$)CRd_=uAm&Iu+(H&6K0V=qF7!G zr@wa?9MD2X*yuZ|<42@THXDk1aC?WsD$Z)p_(c(2J?iRCnx#%+y zp`zobd0!2Lzt+@a-6Yc)V1A{rRn)+wjG3#n=?csguz6Fp`;nafC?Zz_m1=FhVN!~+ z_~#@F5+KZs^{Y;tFT;8W%=Y6m_MZT*5&0IY3~qrAwbz1kUPX$@n+Rx-!OfE z=U?LvE7_*mKRv2t%|kLOu_C%=;zF$)g}IM&Uvb;^Yuh(gyxLxhS0t-bmKopk_Y&W? zm6#Pm-B6RAz-bcz%o$WbvWioxH#<-*m)CLyP;8@!MwpPHjf5qiU6R+KZBD2$@(yR5 zW8k(BFOfV}#ITvzAD`uA3RqHkqhhDEJEE9cBPEv`{R0T00l`RDu>S#!I_Lcyw#>fP z9>@6JQdRg?-`3u>cuo9R@qJj|dqh{hTV|goe)THnm@j8rj(%GN3C{s5jPKx&r5`PN z+PSYnXEX1-HQ7(ZE9hTjTodn>*@)LO!tXHW-%|$L_muJ7p#=Lz&_IAe{AUFN2q+jb z0EHL`E~tP?V!(uiCgc!MPehuK-@vTcq-5y$U99}y;|4rG054_w5O38kw5FAFHIY(Z ztFhsrC3(QY1*gFaakq+39yt@~#IcL8b;>8lcfAs-hk%SG-|gcj`|MkMKIfq$>fiqL zV+^qy&LGD1CznMA^Md$-*14`wU^|g)4c6Z<$$TMKLk>^KP&r0X5Bb->%J?^T%CKM0 z!LB>sC?IhJ4nA%pe_>+y86%yq{&vl$Tz{rkaD^FS^W#CEpi5o+(9*9`9x!2YaN&HH z6FlaG9SL@w8lP!R_EG5+8F)!WX^nYY z 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 literal 0 HcmV?d00001 diff --git a/src/components/Card/_test_/Card.test.tsx b/src/components/Card/_test_/Card.test.tsx new file mode 100644 index 00000000..00027222 --- /dev/null +++ b/src/components/Card/_test_/Card.test.tsx @@ -0,0 +1,15 @@ +import { Card } from '../Card.component'; +import React from 'react'; +import { Text } from 'react-native'; +import { shallow } from 'enzyme'; + + +test('Card component component should show children', () => { + const component = shallow( + + Card + + ); + // expect(component).toMatchSnapshot(); + expect(component.childAt(0).text()).toEqual('Card'); +}); diff --git a/src/components/Card/_test_/CardContent.test.tsx b/src/components/Card/_test_/CardContent.test.tsx new file mode 100644 index 00000000..fdda5850 --- /dev/null +++ b/src/components/Card/_test_/CardContent.test.tsx @@ -0,0 +1,15 @@ +import { CardContent } from '../CardBody.component'; +import React from 'react'; +import { Text } from 'react-native'; +import { shallow } from 'enzyme'; + + +test('CardContent component should show children', () => { + const component = shallow( + + CardContent + + ); + // expect(component).toMatchSnapshot(); + expect(component.childAt(0).text()).toEqual('CardContent'); +}); diff --git a/src/components/Card/_test_/CardFooter.test.tsx b/src/components/Card/_test_/CardFooter.test.tsx new file mode 100644 index 00000000..25227d13 --- /dev/null +++ b/src/components/Card/_test_/CardFooter.test.tsx @@ -0,0 +1,15 @@ +import { CardActions } from '../CardFooter.component'; +import React from 'react'; +import { Text } from 'react-native'; +import { shallow } from 'enzyme'; + + +test('CardFooter component should show children', () => { + const component = shallow( + + CardFooter + + ); + // expect(component).toMatchSnapshot(); + expect(component.childAt(0).text()).toEqual('CardFooter'); +}); diff --git a/src/components/Card/_test_/CardHeader.test.tsx b/src/components/Card/_test_/CardHeader.test.tsx new file mode 100644 index 00000000..22caf9b1 --- /dev/null +++ b/src/components/Card/_test_/CardHeader.test.tsx @@ -0,0 +1,13 @@ +import { CardHeader } from '../CardHeader.component'; +import React from 'react'; +import { shallow } from 'enzyme'; + + +test('CardHeader component component should show children', () => { + const component = shallow( + + + ); + // expect(component).toMatchSnapshot(); + expect(component.find('CardHeader').first().prop('title')).toEqual('Foo'); +}); diff --git a/src/components/Card/_test_/CardMedia.test.tsx b/src/components/Card/_test_/CardMedia.test.tsx new file mode 100644 index 00000000..f973c83e --- /dev/null +++ b/src/components/Card/_test_/CardMedia.test.tsx @@ -0,0 +1,13 @@ +import { CardMedia } from '../CardMedia.component'; +import React from 'react'; +import { shallow } from 'enzyme'; + + +test('CardMedia component component should show children', () => { + const component = shallow( + + + ); + // expect(component).toMatchSnapshot(); + expect(component.find('CardHeader').first().prop('source')).toEqual('https://Foo.png'); +}); diff --git a/src/index.ts b/src/index.ts index a1300929..a00bbc29 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,6 +2,11 @@ import { DrawerActions, DrawerLayout } from './components/DrawerLayout'; import { BottomNavigation } from './components/BottomNavigation'; import { BottomNavigationAction } from './components/BottomNavigationAction'; import { Button } from './components/Button'; +import { Card } from './components/Card/Card.component'; +import { CardActions } from './components/Card/CardFooter.component'; +import { CardContent } from './components/Card/CardBody.component'; +import { CardHeader } from './components/Card/CardHeader.component'; +import { CardMedia } from './components/Card/CardMedia.component'; import { Checkbox } from './components/Checkbox'; import { Divider } from './components/Divider'; import { DrawerItem } from './components/DrawerItem'; @@ -31,6 +36,11 @@ export default createPlugin({ BottomNavigation, BottomNavigationAction, Button, + Card, + CardActions, + CardContent, + CardHeader, + CardMedia, Checkbox, Divider, DrawerActions, From 20a8945dcfac086241e5cc21f59221ebf6da26d9 Mon Sep 17 00:00:00 2001 From: adnan1naeem Date: Sun, 14 Apr 2019 19:42:56 +0500 Subject: [PATCH 2/6] fix(fixed cards component): fixed --- .../Button/__stories__/Button.stories.tsx | 158 +++++++++--------- src/components/Card/CardMedia.component.tsx | 12 +- .../Card/_stories_/Card.stories.tsx | 10 +- 3 files changed, 92 insertions(+), 88 deletions(-) diff --git a/src/components/Button/__stories__/Button.stories.tsx b/src/components/Button/__stories__/Button.stories.tsx index bdf827df..a6cc34e6 100644 --- a/src/components/Button/__stories__/Button.stories.tsx +++ b/src/components/Button/__stories__/Button.stories.tsx @@ -1,12 +1,12 @@ -import { ButtonProps } from '@bluebase/components'; +import { Button, /*ButtonProps*/ } from '@bluebase/components'; import React from 'react'; import { action } from '@storybook/addon-actions'; -import { getComponent } from '@bluebase/core'; +// import { getComponent } from '@bluebase/core'; import storiesOf from '@bluebase/storybook-addon'; import { withInfo } from '@storybook/addon-info'; import { withKnobs } from '@storybook/addon-knobs'; -const Button = getComponent('Button'); +// const Button = getComponent('Button'); const stories = storiesOf('Button', module); @@ -15,109 +15,109 @@ stories.addDecorator(withKnobs); stories -.add('Contained Buttons', () => ( - - - - - - - -)) + + )) -.add('Text Buttons', () => ( - - - + - - - - -)) + + )) -.add('Outlined Buttons', () => ( - - - - - - - -)) + + )) -.add('Sizes', () => ( - - - - - - - - - - - -)) + + )) -.add('Width', () => ( - - - - -)) + .add('Width', () => ( + + + + + )) -.add('Title Prop', () => ( - -