From e90f15f64a68b3dad7d5ad342a8556c607164108 Mon Sep 17 00:00:00 2001 From: stanislav <91570355+stanislavopeida@users.noreply.github.com> Date: Sat, 1 Jun 2024 20:05:40 +0200 Subject: [PATCH 1/8] Add matrix representation --- components/application/applicationField.tsx | 18 ++++++++++++++++++ lib/schemas/tally.ts | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index 62471567..f9940f41 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -139,6 +139,24 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { ))} ); + + case "MATRIX": + return ( +
+ {field.rows.map((row) => ( +
+ {field.columns.map((column) => ( +
+ +
+ ))} +
+ ))} +
+ ); } }; diff --git a/lib/schemas/tally.ts b/lib/schemas/tally.ts index 2344dba3..d17b2a18 100644 --- a/lib/schemas/tally.ts +++ b/lib/schemas/tally.ts @@ -33,6 +33,13 @@ const TallyDropdown = z.object({ options: z.array(z.object({ id: z.string(), text: z.string() })), }); +const TallyMatrix = z.object({ + type: z.literal("MATRIX"), + value: z.record(z.array(z.string())), + columns: z.array(z.object({ id: z.string(), text: z.string() })), + rows: z.array(z.object({ id: z.string(), text: z.string() })), +}); + export const TallyField = z .object({ key: z.string(), @@ -44,6 +51,7 @@ export const TallyField = z TallyMultipleChoice, TallyFileUpload, TallyDropdown, + TallyMatrix, z.object({ type: z .literal("TEXTAREA") From dfe5b29fb172c042c17c24ebb06d3cc0f863fb1e Mon Sep 17 00:00:00 2001 From: Max-vS Date: Fri, 7 Jun 2024 14:49:51 +0200 Subject: [PATCH 2/8] init --- .../review/[review_id]/reviewForm.tsx | 10 +++------- bun.lockb | Bin 286164 -> 287433 bytes components/application/applicationField.tsx | 3 ++- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx index 09b0dc9d..e54df02c 100644 --- a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx +++ b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx @@ -6,7 +6,6 @@ import { Card, CardContent, CardHeader, CardTitle } from "@components/ui/card"; import { ApplicationField } from "@components/application/applicationField"; import { SubmitHandler, useForm } from "react-hook-form"; import { Question, QuestionSchema } from "@lib/schemas/question"; -import { QuestionField } from "./_components/questionField"; import { Form } from "@components/ui/form"; import { api } from "trpc/react"; import { toast } from "sonner"; @@ -15,6 +14,7 @@ import { Tally } from "@lib/types/tally"; import { useRouter } from "next/navigation"; import { DeleteAlertDialog } from "../components/review-altert-dialog"; import Breadcrumbs from "@components/ui/breadcrumbs"; +import { QuestionView } from "../../edit/_components/questionnaire/questionView"; interface ReviewFormProps { application: Application; @@ -100,7 +100,7 @@ export const ReviewForm = ({
- + Application @@ -126,11 +126,7 @@ export const ReviewForm = ({
{questions.map((question, index) => ( - + ))}
diff --git a/bun.lockb b/bun.lockb index 6dd15f50d79a165a6ac8451cb1b4354a9ca741c9..fcfbae40b1d1f218669ad6e56b8261e2a473f490 100755 GIT binary patch delta 54505 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

fC}%u6m%@J7Mkk_(OH< zDIWHCA$|?87S7{&POuCR{>7}V@#;xF3}K7zE`|~xF=Jt4*#)tu7`6)LK}rDL^yqM) zF=iz46a5|5;+`jb^*oalD?3`R;-Zj(Pfwk%+J}y+=NWO)fe{}gY{jir?Jq;S3VQR4 zs8ih9M$bJ+Oezi!e8_b06S+!Q+sldrL{bTq@vw0C(5&}A3u$shMRG|jF)hTDlGv*~ zhn8>{@~&)G!tr|C5VSiKr$3mbJ>um9XNc>a3eS%(R17IK@u-I$^%Y+tt89mlc&d~& z+;J^XhQD0rzAMtjT6AbZ4c#-ZWukW})Kd@7&YV?~`_0H)e|*L;@Vvpv}1mBxTJN|Zz3)jhQHXSo)C0tKF!p}{jn zbZHc19(?+WrKPPU^n%G^PiZ^}))2FCn4mQm)6%U)u$*D(z+N=599EdUWvsxGD1M@Bd28*59143r9hxFCgOInqDAUsFV`J~4MRFBL@M_NT zfY-#>E@l&X(41b@(6InJU%)jw0etoY$Q z_jr!9*kkwUp~iX8wUt|%g$HOt_yqk4185H&MK#1`1Mt4tn?cqx4}8Ln40MOwczcYnR)5fOTZj(TQT(%FFd6UdUL2xGek3hQ z*FcOjo8&7x)WF(sP$br{w$Z*48)~5TOXFo+edpThbEBpw^OFelhD*fH;szA-+%Jfy zLabG~`Me+}=!4VTlQIk%JY5NPP7Q07(YYUr;$a73{Y0d2qfqgD_uyLf#__ag7*g;ny7#KG!*!$E0*guVhaz%c8C*%!{WyfwEe7T6l$HV%@SXQTASF% zPL#Wr$s(vG7NfJOvY<_?N(`u)j$`f_P_U!=el>&AV&h{hBWf31H+{leU3BeDm9kKb zs%dQ#HV@y4W;?@f`zAz(K6P5pUg&nHLSIcT6*Vs3EUcuSB`{6gL9LGMFUckFX8Lc< z+wbY~BYF@DJ7PF`iI7@odaP(gxO?!KOQhGb7A)r(><8`YNijEQMRSGmNam3E45j?R zqmfy@@j|Qj!*0fvzB!H^on%PcHeJ)zx&i-e!6x65*p#Eu+_F! zt&{Inx!-=UeV!CIG<=ca*5-3NYaE>%p=&9SrNqMS2(J{8YBRW>A}U5Nv8rXO4f3#$O{KUKW!#6y@uvC#>a7vh)`u977xgmqL85mZxLQLf@N*7*WWEnyDqE2ID}F@*3aydCxsb5!nbtQmDvm%3HY-e#pTLXl zb*yvH=jgiF{A@L3J?jpB+jmjw$`_%mPE_}c%(}2mfAJ~dj5t>pU6Pe+Cqf&%JcqQ5OV)I%->>%?Gk>XUy=${u1K1Yyyy%f0u4*XCZfmG09JmE)^C zY-tiwIBkx!ZTjw|DW_{8Ma|j~;tI=}Aad9Dw7}O3A0A8-UFxF|t;E}un?c79(ek3W zQ6K8&&Z(vc)Iw$k_yCN_X>KX7Z;1q$`xdo93D72r0xkq1xkvHWu|Fx<)!d&%wSn$F z(V;8A+@J6>jwv0n_IfwAHht`c2kR9}5`7x{nM|@?F*o|pWRl$!vl?2fZ4xvzP^UCiFzJJHk(nSnhUv+V=fV%`lNv!;&7TZYkKYRwbj|0) z0L^?x^bv1$Fpq=rpm={A_Kcs3ztRECsr+a=$mo3c`Eg#?$MW&(f8zO3*-E*=Jrhgx z>TGTKSaIZGgK)1Q#o~8Z%M&z*Ae{!O~zQmXEth5hqNzD{< z-)e8YSniAO?b*H2MfK&6_a}cgsO5~J_f{u^wIkmWc^bDq==+AX-`qAy*VGq=ENUqK zCpA9C(EU{pQ>)5@@#25xZ1>veKLxSJ+eQA3ExO;um0$n)g~9X-HP`P6Yxi%T9)I`u zNLLf>qw$<{Ph>DRx{g1XI^y?eYnk@XEtStbLzk5q^2~=d_UalQh|H&nFOh<8^`_TZ z)~HcI{pBgTwgi$;NPYn31J-)B;n<2nm3rUJgYWex^|SiBeU?d=clTdVZrdwAS?_8* zI`3bp?-BKg+%b5ZG9PD(i0~Mzf4QLdWjF8tr2$Wgc$~`9lhhb|{8TqnEQ+zF7oU(R zpOM$>s{Ty(0(<$h2=#4xXf*DRQ&D+pB&PPa4%AaW5V!kVtJp_>AkSRh6hQ;903Q&| z2H^4Pl$bdHpT4XrFAe(s=&{>soc$b+m^gzn_u3bcjSu9L_5?PnbodResMZVLo#tuE z9&rZ+Irw`fj>Wt}C)~GQ%D))RrULfi@>{Hqoh#)B2XEA=o#(g3$A2@Mi?4^`htR@3 z&>B$t0u&0PgrDYaZ1QsBOZ*fLkF5Oc=QdLKEs(k2&w1J}^7%P;QwpyVdk0!Wi&tAE zYyWA&hkZio$KNnD%rAF0S|y6d;=#KeG+6q=Usvonl>Dma+db$&3(*c=Z+1jMfsfY> z-iq55a4U|dEj(012PTT~v3R6Tf&w4iUAK~|ew6zPf~0w@1qJy9X?@HpaT!$=pAAJi z-#Fj48|!?v`2rOAw%~mvKo#-?Ob?tzH z4;1nr{Pnw)KhJz03jEY8q=x0Bm_G>Pc22AV{HHb*&29d;A@6E&D$eR#qK2jXYI(Zw z>T~h2UiHpIvSNIAgJYm|qW)k!5m#R=x(~Lt*2k?D3kO?6!yfWm8GP-P2NttX6b<@X z!SseTpIg=hzc9d0hLDD@Z{&-^H}>>3@-XD=<&TPOE`5hT`N5Y^X$JdRkv;?;9E71U zvT67{KXI)b!agmc^OpTr7anRVcb>RbOpSwGCw(N1a{9N=mQ}8mZx%E>BV=muOBS*` ze@D%AvZJ5B<+|AL^soFDH^!2c_ZNlYVZimGYCN8<_KM!|@PBpsa8>MpP%pkg{2Gt> zBflhC`yt<9ZHnz$M`9qa; zYx~>Rl;LABzTk{63uJ5+4N{=75gJ7>K$gv;XBP`_7QCy`Wt-TKvTC2$CL8NpBOv*9 zlff@3gThF~K9NykP4_y7XROD&8L~_F)IS*-l~H=0y|qtt=~ZCUT@6o5RV|(l4A?H- zLc_B=Fn&9J<%a@hug?3$l#uUEnFW~hZNYYN6`En|p}~;ieCK@ScbEN^aaW@-rU$>p zo4Rs(-X8vb`rVX6A_CU()cJ@es0tj9E=C#M)7k%MY{#RGt%|y@`?_j_IG%!K@q{Rl zidIV~z8=2InYA;k)_X(VKZS2YdJcw1?GlYsF*_&k64O(yp^k@s9=Bg>xcg2pS@%yg!am zGe_ZE?1LfJV)`??#oi(4&EVal_)vI8=%->XP|FnUhQj0Pe<}tIwN}Y9@l*NXh)fQ} zx7-gP84(Z#2MDiW_|RSUqWGhKx&b>R472vvU)?K?48wX+cAs4R7yRq3a#h;?n{iP6 zB&+s5QGU2JT@{JX12zpueE3-88-Y4M6O~3FKEQ@OM_60ee&{F6rVCFwC=ZtVz5HR< z*pqXwqI`ACtL*>qPp8eVab6dNMxy&(pNncEF^$W8ZoZQ${mb|sm;b-DHQOXY`+C6k zfX9{T2|yKQ*+3Pb%3|Kc(6!0AHzN=#8h|pAKpDgLhG%pRZfZiv%)Byv9Z;|I7O39j z=apx<7R=5=s5m+OAoEg4XS~zum!3BZMnE+ z-0-mXfO`us&YmhRl z7D$7}$=wgcO|KT!E&|6OxRUJv%77~JS|dIAL&D5TKp9|41XZq(WWuC$etJd?vk_=Y zU!Vb)-VCN^*8+VCp3(=+e!Z*##yC_EyjC7G^A1)5mNTCILJ^qewoiXs3#>pIrYqI~ zHA56g=M(}LIsxrwy3pBi@2dm43St*XpPczdk_V&ZF)~V&;j7BGN6j=c0DkHs(}WA8Xfb>_UL9_ zVg-cPLF8-8UgV#6V%G-M;d@-5!8ww4a|OAH(G&1?LhFOZF)c>b3x)Q z7D!fXu`oTuSi$%22XLn-Xx?(hv`IbwB@?%@02?)+n9jGHm$OW#c&ZeT4|0@kplVuF z=bcUJKt8BM|N8pXDlgL}i9DcwP$VvvYdfM)d_~D_x?&TvJaBV?BZNu>QdWO}WeZ5r z?a=Ba;j0xS*-t?%Z4?jX`!8a0PZ-D-0LmY=j1RUiv%0R)4so<$()L|V%*&X#l8f?l za&!}mQWK{uXt9WGPi7PCknzEgaYrxFT>-U~k}pzy*PI;Gm3MenEbDEtUcxMgfzV9G?o|?CFIz%bmCn2#XTVICu@`E1OZ&1Ia*p!r8pqalw;T^~< z1iBcSq6&uMuLfNh^kQHS;Cc99xddQ{q&0>xaUIaq@;GR3i=}_s0VLSq&&VL&j@pq- z^FVDZ@SiGjm2UzAQ6X176Hu56^)4doea`T-diT2lit6u#Mc7JGY--=?1L8+afUZ<4 zC4S)0_+*R4)$I|n2?_mDQZ26Tk5)z$#bo(msvN9E>scBXms&S7GOXUt73d-RkPsi+ zi@5=y*~j=nsr^#>#izt24jhu&FCnFW2`SeVn0+V>IpSi#G~#{KT8bF0BbjysnDv|k zW^eWav#)Wnsqxi&4@%iA^POpf;)kcQ;ndO=3+hgL4%i2{0dPs+DvDnO7;UB9M=Ru? z2d3Od!02h(24FV45||x2T2?BMl$es*D<#D;#$TEv1(^ARVh1Jmi*s5mi&21@&H|== zdk#tInK;5?aVxK!Rq<0(68h2qrYL?g`0V*Q^n`fGkbZDwi{+IHQqiPjm=s-$t0)_u z3O>iPb|q<%0O0&aMK@pPc;rxnRAAcl#8YxQEJMxI2qR~jC@waBVB#Q)#Q+~pk`@n* z1|g?xHQA-&3hw}>trOyhLfT^4p!lyTyb72a$Hm7dRqvPLwB!YYgXD4{*9`hTP*(gP zKq_(q7`;jBpHh89?7##|Y;vEZ*yNP>{oqsaeks+>NqVWKEVm8({N(o;l$acEv8)Hp zhA9-AkYXtqOuCUJ?M)@vyWgO=>O+z&S;%0)eF`U4Pe|+q&jIc?5XRUSBJ<~=9DCZy z7-#p^3K;Y3Px))1G7nQ`D0}}#ZAte|h)qq6kF!iRF4(>6oD7pH#;0JMpxQ9h#1Iq{ zE>(=}m6%N94FJCY_`~Z+ekUU+&r{k_qf4HroNq)(*LxY5E?FP4bkUkhtKP9Gse@5R za{Q2#e!WLndeoC`1Vzd^#{kpp{=n=-5tJ(fe6Om-;tT8=j*SjEw{Cz>*F6gid1u=B z`m(~Kz*KT-1Bugs>1w_WrP6y)fOF*yU^eiyqJOC(%a?2-^TV3T@)LkLp4Y%5!?8=28NF}XUXUEg`pvf#y5 zvchK1$RXMWc~(#`#$xdTUIa|VPe7h{I%p2XSYS`!Au8VnoFDW`lxIiIL*7{siCJK9 z%*QA^KncVE(=vLTjU~RS@JV2{mI=&qTNQuE^Kzh1 z19Q4nRr&LPNgwKAmUE^B#L9lp24+Py5qhcSOkgVTlEScKN<3m9@W9w4bOC&J&kdMn zxP$VvZ(L%p)Z~7H;>V#Ojz=G0j?Xi|lnYnLc-#^v*l z>H~`X>IO`8j-ePGx>rBRzYeT}<{o7rR_FdHiGxDn_@9H%;p?E}8X6b!c{}G;k+#Qv zC^2DZyrm*?vD~G-3%);avw^ad0Zb!A0_(sP2g%k40F&;S9NQ~C#bUXr_>~i-HY0(V zKQKPIPkgY&;tIEcvOZ&2eoz0H!E(gCfZ5;bz!iYG)u6@;j5qW9)tQajSyNeH&WF1& zd0F5dRiqi41Dobmd$mbes%WRthE~Aa*=?A#AtJI_C)VZE5lQiuj>F|3c>=T6vRHmu zN(0UQUPn0&YVb(edKHC_gU`Wh3(RuWfGYv79woI}ZEV%Hvw}%8Y!HR7#Ew;*J9ZSId-!zaB*PQZZHNk z%}^hh_Bu0F(s9$ITp;)ym(>>pMfcG9heo=ut^2f9?X)I zoH#HkHO120SXZ!yGiavlU(W;%n#I!Akn{#%`rUGcTh5ZT^c>Q=H|IgW`1ts+&{~%L z;M2a9P!GFV1lXMYePa^_pguRytml4)G|Nq3Mu}Z>OujX(w-H;&+vo5MsjNO%X7^61 zj?Hj#>`O*QA#dlnkM`VG{<1vt7ag`nJkaYqTkH2CrzdSsEC6cwnSRP515l9 zufnd$^X+1(m>g8sB*gCGNwaQ0G^M#;T`FhiL|`A#g_g;fz7Y9rxZ)c!-wT*MoCH4Q z5>>t{96dVQJ0suQ2=xrG_IS(a=^5$2c9ryxzN=-!&46j*_KL1)?DBL3O!tNdg68n0#$&^s zY_VK>Pqx-!qpZCJFn!T=`*$4q)S^2uJAHbS3~3(#bC|nI>`XiJzN~mW1gY)|n`K1> z(IEZIe~ZM0fax#8AjgJ|J}ngsKsQMzZk2L&rT7CVPXB}7##fK)X}JlSM#}=`;ub#? z_n5f($lhYRw&d#}PzVCA0kgq5z*J<%4%wsllwPq3v2pS5fM$gYfr|kjX*D|uIi{c$ir`M89kM3!^Nr(JvXO&riKE;hM$iX2+R z-nh7a$w_6i*j_11+C?PTqu43@2;(M%B{iVl_N^s@y=th%w04UpYIrYb%%b> zZn0o$q*;xuIpIcnb%&N_Wa4w9p$9sw*Yg-H0wc8mBR$ZePs}St-3-q)K10%H8jLaGiE!@y+I`r2uu2dth5mP-(KMIQFtY$5FF%)dx zW_Z?xbdW<^YeeC*h>?!Z7DgsMCmDLMLq7~7H0L(FB|;G!CI z61LDo9r{P$H3SbfY7HBK)2^_qv5cTF`&3YMjj2HqdL~n@mSB|h+K`14u||wSP?(+p zsxc@F&88n$d3k6Wt*DV6=FkUYGE?5oK;8P=ib78YhPz|N1S898WCVxl&9f!oyq2nuz%t(j*B6yw5#_JeS4u`hNNOw4_*Gd`(9FbZxL$B}9 zw`0dF>!$|agQ5l)7Wim`QWi@PsDegJtuTEJ;(xnrN-JZrbjYSUg6fn_tp=4N$>(z=zzUGm7lS(yORxV@gCpu(gkVPV=_BQpv$K4s)<5s4rY)xx2R$}We=s2!$% z2#P_(RNVdmRJ0M@pso?s(xF$a=5jO!CWMHV4(*7cw{mFSMpP?@-mJPSKLayxf}&tP z%)lLn9_`S70FQG4s)dHxYXqW4#?-(FeF#!ASV0HvZ9{ME&@DAwwP8TqLC~IvkWIt% z(V&t|B^h>p0wpIHr*$x#pWX)-MqYnVbZGcG+EWQ*E$Qe(jm!=XeVyXLj7!7aLEsN9 z!!~+FI2WTMw8F>?0L4659~NGsC^!>5@d7A0-w<51(nfkGhxV+I*~y`=KOZj z27FK#K+zYlTEaamBKES=W<6RrBlB5@z8O5))Xj*2A#N%OEKcx&N>Ke7Bf3?DJ`}00 zkU|?6qfbD!0cA!B&EJUX>d;b*^sWy5je61+FeGB{XNKO*q1S_DWn74v814>&rbAH# z!%sjtWVHyCo=A2u^Du^(Yf;@DIBibv?$A9@p25#Fv9)`BqeaU|-2jvILMKeDZ;@(CpaLuj4e(<)5MFrs=o>?go$XdH@&&;y%E14B*tT~APG z2C^KUrJ$7G!F4Wz!g#SBP^I9`ibD4~k}^Ersq2nJYg33mQX|S@>1?|9i%7MSg|Xxw z1y$3CezUGy3l8B_I8i&K@JDk&k9Fjm;ur@_GxXjLy#rPaN|@10e+!h<4WYt*1r+*& zHM}ZXkt4`OA<2m93tk}7<@wJWc9@MtFJ@bU_|wG*zbVf-Ygr7Ch11zJkz&< zQu4FH-7vmw&7Q14N_9Lq%zlv+3)@R!Y?_e?C`;GHxR8%_S;BFEi<}@>G|Q3olPN7S}!9r!J%&ePuUDorHb$^<2x`kwYz!zF7_wG{yMy4s!wtdv*U^@>U2d}UJo_-dTG!mC5zwWNNg5YJ3C1qOq zb);k$Fe27l-Hm)hBDD}BYKTKmf8OQRh^qGMpb!&a<)?dOuZcs#^s%5+{Bnfp=RwJt zLvLyjn>`+ghs#09JVbhX{hstd*0%sDT3=f6R5rz_RSY+%G>Ob>o}0qnHhs9megr(} zffeIilai}sBB*e)B%|zdP}0y`Wqt((OL7#U<#X{a&t*T?f$D5{L`Ud4%ua8@a9~w= z-N+p2u>RcJ$Tuod@7Tu`IOx?&K{bXTmM}QQ6;RnKYo!c*v_o&-S4v=6hWuPm>@b!q zEM&)w%+U^QzM+qC*zfk^1jTY>uhF0LAi8UWeK1nNG!#_O$2#=0pxGK+2~O@mKx%?W zl!8u!3YMDm#qtHJ8Yt}Xn)1dY%IV+@qtjvMfn`s#lY5Xth0r~tQy5}!R2uwfV79Zu zkk>%bt1wlXh3Pd0N!=0G(brT^%rlob>zYBvfp!jeC6U+2SQ+k~D3wK5;ouWMQC!~q zZ39I^Aw(jk+y;eMQ#(SdVdxVa_TfpG@J4j?2z?Dwh~{eDO&TnB@^Tg44T{r1QtrtX z3%p)YgF&eokF{$ZD7LMeX1fL|6jXk$!S;X@nwU44-H@W!ptIw{-9fMjmUBrkgrlo1 z!rfEl>S{J?9{{SA5skadjYuIP%G(nypP|3#(CZG#9xteo1`7Lvv;yWfZwsiJpybWX zHBc=;$pG@=FxSXtb-)TXT8*S1dj?zr*1jI)hgY8Iw%!> z;NmAiwKYu}F;dowPDO<2Llh;0)Z3ss8i#@-?DkO{8m_;MkfOIp4G)1r_)t{9Xjh=* z^cxHcaarYk2nq|7qP)krW)CG_0EMWb^1cL>V}qJwT~UjY$)MV2OYQ@e(?Tg{?phXt zLL5 z+{#DIaM(MJhjSXyGa~d?k&^mgGhw|m-pH2`sgIq2du_A&tY^b;o0Fd5&`(ax_A$(f zLX%uW$$@GDDjf3I8)HCT07VCs(QjvV9`~R3v&+RC4R?P*7Q?JW(3}UVF^ahvS?`)z zB;e6#&HqJL{cNoZDAq6U9Sl&?sVJEV$|3VmrTa@3OFdZ&f=&}qGS4$9OrM#Z$2yOw zJg9LHnUrdbm7o#Q{?Q% z9st_Lfud_*s)E`LDiW0449MEc*;EhQna{;8ADo7!bQYvHf?`?I1+@G|`aFl;c&c!jnXfqXa?_pTLA zYMKk9uFa9{!TT{$n}Dj1Jd9EX_I9ASgqn9E`Vl25siH!*fH{P{Rt%`xTvzlLk)laZ z16tkzih;&F;M0rFmGxoKLKtWRinBJqIi|Bf$(Cu@W1zy#a;&AmJgKo<2+~2dHrJ7p zNYyr_sJq82vW(QP2`JVldpYT$ylpDa?6du6P;xsEHlG`|Ly-~s2&C9^d1Sf)l(Jak zaCZ<<$ifNf1jM-o(iJ5&1r$dT4xNT=8Yrq@Qg**rxqk6}WHC}*!H1t<7=Hq#1_wLy zRtw=7+=tj_BGu7|URl>2iT+X?mT9{vdpQ8L7F6r(yk9`|$fmk4&JOZ$&K21dqJq82 z681T|eO-4Xaw<6V5as(?b__>TeLywO*7|KwoPt=>M&kGoRKx6s!(Vr)!QIPTP(8ED z{Rm3>I)^!OY4&Oc72gNdQA*+lp~^DY#fW~Zt~(NKvn%)r6g>)l&b{v&*+o#D07b8d zVL=@Sm2FtP;&NF|`gtNKb{pz93DdWMYA?${4bK(1>a_O(We%JDU8K62+xbFoN>jkc zA>T<+Xcf1;?}2J--u=11W$tlXMc7l3YHE1kRAMtyN_&{bZDqFcQBPY?GLOMz0Vrt< z8u43D?3p>Mw3>##-eDiL3cD-AV||2u2T~3*HF`Ci(@gC}D#A=z)+nA&DpI3Ri``;A zbHS&)qKqXQp0eLUZbQSPTZBF6ZQN~`t~wnl4j0z0E_ikUic!_v>gt8p$~l534z0rU zR-hUn&wOy8F9OB6jZ-(w-q{t+Ez|yMvIO&Z-k;y|K<{u_;pT|BmcC zRu&w&>;%PGp3jKs9A^Fg9V6fSk$Tv>a@T;PKP=&WKrt}NctUJSD?e$QyJCDQuyd&cA~k^1u+Wq%RS zv8K!iC4CKkXg$5rXt6a?FSbcK2J{FHv!-k^4s4CIez(cUw+#xsFMA48!f`Vch1f78 zO#cQH*8_QuQG2s=TzO=f0V;dw^&_C_LlP?oLV5Kq*;MZ^>%c8Wz8#VJyI^wt_cd37 zZ$WVc-5GPW+D7IMhjr9eBj3(Q`_`>y;AciWL2LBh=g_75ETaqv2z6sF6L zFg;|a4BDnutOIr$lXpj2*X%S7?2gneyRxSMrgKM7oU)ksb;Gm@M*1FyJ?;Yz+|)f0 z`a4L`Nw6Ekt;Q8lh@#*}?3ROOF8%glpn8yRKZz8Mp&(IXPxe684YN-M)!vlIvln64 zlt@BKP1?E$Is05;1$yWipk!1eb^0O7|3g>cLY_SZRCgnKPhEE;=$_~Zj@%0vnfo2q zcKeNdnUVU8{Zbd$w{MtrXr?h4%uh1qQ6gLgu3r9ttD`u&)4PDGhPn{du$7(540Z8Eh9*^6WAywCuU?9E;sv#&S399B{c{5qa z3=IY-O2QkU@)1xqr6j!jS5VKGwP4eywK4P~4*Ls7&<*q6eGgKNO(oqwc1>o_HsK_K z%nCDbBRv*WphM?u$-IT2Xa%{axdW<&NpT9+ z`@~fXTNnb0?O{qFhQAJqF%eYraP1T0z$cOVcgI}vp3!0Y)5qm=A3R=!M&m%yQ27kc zZDIP?pcoVoZxAqQo{-}Qqc;w-4+7Q9n0lI^(za)sd@c%EFHwGhz%j6ninw}LS!?q zKZ2?FVI@z@`VfN5>v7lvIcK{nfwRCYa9+{5F-`l0;{O?}8THP{8Th3tO`IQa8&C=0 zO`R2{!E1ss3OEn zR#iAa;c8^!B4)BWJ~%=(6&(c3E`%{tVJ5>Bof}idr!{^nOeV|KZD3BgH3Xva!NV6rY&#%@n`6;uCY6TPc3D;sZ+;&BcHiz7PNbR@6on zct#ZRUGcMVg-02nSzs10NBk9FEH>x7W7(g@pjiDK3LJA3WqBkp>QOyJLH-I`5@<;-uH2Xvw^I3S zRDNzuh1#n84!~5bi=w+Kx`)DXz^pGGm=+$uiVGq!0+^;93!E32-!i7xWdO6n*}(X- z2!1>PYewk{esx&OVpVFX!YhE;+!|m{;2pqJV<#{#6C3dt{EX2T3OgD4jvCII zF-x9Sd}11a-}@&2titD1J~8tzD0~T+ntTn+Y0B@9v)p&UynsuZhWG&t@*b!RVtDLD zx$^&_xWp{}D==9a+fta#uK2`s08e0+E23~wV9NUd^CD(GzwXW}7nUo3DV0G? z!P3CAd^yF>jmfHr4_dx9FvqtZFcot!^ASwDH&T3JCY$1e^|!RaW7%LUB|yvq&j6Dj z1I(=U_+SGa72QSA&jC~Zd0$yKCo6io$|oj&25>&$R}@|f%$e~HFfU@t#lNc(>s1CZGd3ui zm1QfjT5*35v(~aoj+k_LVAjqz6qxfFm;+x| z;fBEYvoysA<@sg<($R{3#tj3;0MJP>o&{zFJ%9@VCjzs-Nx=BCq$)fdm=%r!ru;ZX zPgMCY0dxAyRP-ER)+2zqV_ynvPA3i+E7|}C?Xw-YFz{hu^0RjQH|YsCrUjYKbC78nXl4JQCop_hTV z*%!dPh*{BGh35f72g|F9UI@&Km_dxM;VLA76F-*08R)UYi?4E|c znx4Zx<8pfpW`lO{nU!DV6O&&+(FO9L7R`wM+Rxm@76O~q7E#&6bkvf-v}P$_HeVK) z8de16MNEDbMH5p#K;i1Z#X&a$<^*T~%qtgmnhi%IgZi~rxQ!Bg9A*PCDxa8iJ79L8 zBQO zV@jH$i77Z9m?lhD{M?wV=}Im`;3DSc{@;VZe-8rT20Ret4bHy@f&U%^ z%6pK14+8%^2;{-wzXyRh5JYtR_aN}!gFuV_e>@1>IKrwe7+XKY9{p^`@*WYbr;cs& zQsk8{XRdF%uKiD6mQ500yu8M<@6g7r&h)DE*69H!>J2?o_kN*8Kb(u-adYJHFURgL zx1!~6U(3c0;&T}v1BJ0&3A%f-vve$5wi=7`($h&BS2^$fU#m181Wx~QC+Mf zqw@z~cB~G7{|#7 z6aM?a*iXi!ePGlPS!4{~2S(_JU_^*PnuyzE%sl``hmXK$CYF2zM)Qxrupa~?O2ixl z<31T1$Y?3FLtv~p2uA!NFrvjeGCCgu!|N~@ZA9#0Fx(G=v6qY(;dum%O=Ju?0!BNr zi;TWUz^M2!7#+mmkHIMMF&M|m=p_8J@UfqaNm*cY5m{sm&jKU#6EL0=<30hS@+V+i zCZn4OIts=qGG-qI<9Ts`jF*mr(c~Byu_EIb7~#jjxJyPa(cm~3SIAg)9E^Bzn~b@~ z!RT-Tj6Pz?2{4+U0KKcBg0YE=A)kVgB6g9{_fs$`o&jTs7<>kd5@*0TPR20d{}~wj$(ZyR z7$Za$8N)vVBlIj7qr|wgU{pQ}#$__bh@f*|oFZfPIWU~!0vRuz1Ea}#Fvf|D^I(LZ z2jeao6GVg0!MH-kvd_VoByN*2_j52hTma)mvE%|6%`bpqzX(RUh`9*HeKIzXF-2%! zfU)8t81Y|#F;%Q1qw^PFcwGWxx`@35hWjNj_L7kyJTHT>iHsqa!7#)wFtl01=S!g3 zVldGhkx3+k|5p&+|0RSceFfopB8!aSUx5*N1&sM(+!Zh?UjgGX8Lx_tHW_oTfzjbQ7|X?y>tHm$ z4u<^(7;lQ08(`cgV*?p0g?1B+6*s_$zX`@_u?`G-v%*FmOl(HQI~JD8dc`vcmdCo(@@AVC^0FO_^~{( zjx{zA+U@_BBWD9VrpEKPG#ctBe4PtqS{^)WCy(9#J9%tl0!)l&`)SSaMF6x>&}`WC zF9w#1ad%+Q|5qZfrRWjem%ViTlYv@d-CcC(zlXeP;rs8|t(yO00M9|i?eEd*Uq>1D zP<*_&@V`Xa)1UTp{ilIA;r|0v`L80+AGM;+n>Ea@o}{5|i|fA){117~f2v{CZi4*( z3jdoPZ=Ci(8>u;e!Y`K)3``AN|NY>9$de}j2O3r#cFODD%)AD~P{5O=v z{~JK(@V}bmzhL>FE93m98dmK(|K~k^xWjV)_m7!B-uVxWyUPmC{Pn4m?fsmduKzUD zN9=O97R5o~e?rba{pB$OOaBA*|Nr~IJO74(|Gz{oZan_$<4)gl{r^ta5f|G9PZYYX z+5f+AcK2@|{^287FPCT0+j=GRqk~zdh`~h=2meL?n&2Py0_T(&IcLL3$^B9W#^Q%L zt8xxH|I0kN(EgVjN#mS*d>hXHd5<4f#`#||HKUE|zjvK@H)l8><(UiZqfDCXkMP)t z>tBD(c~5TGSoTlwoaX-x`-_GDhO+2CpJx3@t^bCGRlBtRpD@?o*RX2W$$#7S&zT=5 z98WSooy+xK*062{_D_*N`g8rqH5ZRV_t$x_|6ecsHJKD z)q4$$vs61Sqpaz-uqYp34+hWmkbKVH$CHcZ-&kQ9J>ZYmhd0pu7kih6cO=%>c&mcd zZ$iFJZ_u20TD?k)Tw$&2{N-19k=Gwt{E-|2h==ik<~0~R{Fy&3uA_J5m6 zr79j3uBUiI6pwExn4*4NJXG;uV@nOi8)otX%)Oc=STTnyLB0=S`?pFY9GDGo-BW-oPw2N;YqE38G!0=aB09Cbc0r2tST&nbQ5K?C5q<^$;3V`pFsh2BWMex1{ zk3++^D^aczpbB^#hBv{(pXDh)fa0xGa+SfWrg*CquL^j9;5k`%wPIF9I!Fof)lF;! z9%bQ6hd4BED_%9EZQyZe)+%0gr1|nC4$V5n~c|IP>}fc)h21AxOJk^0HC!I2&tFdt93oFBEA%D9sMNuXwfj0Hq+9 z?9pb$#M?d1*Gp0REsDpP{5*iyR`Br0_c~|48FM=r9L1*re4`AN`aqS9KzbU0b?jC= z&iF(C+qdjdOiuYE04v@L9{%_mTgza@`%uX_K&JqB@xKaFu09|Yz_JGvuL05%0c`9b zcr-{uKpKE`90IQ#nT-HL0rdfgm0&nM1y|}u@#Xv0avLYEvDVd`d`Cq!0N>rgS4u?! z_>zPLfL8$v0gC{O0ZRa{0bU0z1uO$h1~7{8#S9Yw69JO|F92Qyj05ns6deG3{|euQ z5eQ(EtCEd)>t5DKUb2m^!z>Hz8j>H!$>9Dw?O27rbDzB^?PU@u@F;6uQE zzyZKVfP;WTfWv?zfR6!LfKLEN?HH|NNE`>80GtGz0-OdghVq3js{pG3e5=e9#9fYE?4fU$r+fWCl!fc}61fF!_RKodY1pd_Gl1$-| ze6tYW#&lW4uCo^PVXV#o%mmB^%mLiSc-|3H*I9kL{EXx;9AAvT20$pb*Z^(-J0K6h z9grX30VoJ41Skyf1QY=j19$<71HMF6UjeQP?H#MP=Vc_{1*`{b0K6}%ykmVz%Mvl~ zSbd%CzqCWqlFoB|tiWKfrkfFdwi0!1s&91Ns2^ z0|o&2Vz+yM3aIZ#;BMgYg(jTTd*W27CdXr(#(6Dx*7qyMXTjv4Ea{ zzJUIKqHY#3{atJ6dIdog0`NCy-*CVH-vaIcxFXyI+yn3}TQ>op0{AMgPXP19)pudr zuITsk0KUhPKY4Erhyt_#v;^?QnoR-q0DMO%-z!=fP!Uibz*m}<0h9%l0Qdk(0fwV5 zjO8~0jBJc#3|tIU3^>l*l?HwIq*2AMy|?hWVz=nLov z;70W;z*WFB$Q=Vd4mbfg3D^Zl1SA8vkHo%FM7(G9ban^9cP;XbvEu;~022YTp$K>H z0x%aa56~U(JRla(6Tnvx{)DmvksbtyhHdytC%zo&E5PT-zX0GH+I|B34B%Vb_5rp7 z@R~cPh40Ga`|sWZybs{J@_Ir6zGZa`D#hDm%{SIg2Q~nF+vr<>w*hMb>j3Wp)&n*G zHUqW*wgL76_5nTw><4554gd}U4gn7HWsFBf^hWDb&Rd{IqcgsM*N|R;wwD2x0~P^Z z0T_T;fR_Qi06#;PYciKsD+b&K_!U+1jk&>qP(W=!0N@g!2IOl3tbi{;Uja-+dOlb6 z1*l{^U?iXpGOhx?23!NY2%&VqWWaO)cfZ{2a(6omkOs>~04|~NuK@;N0)X#${1Ns2 z3b+E;1ULoY#d*=q=mX6!C4*^+#0gxLA7y=jyxPbNt0D1!&g1(2QE&+A{O2L49E#Elg zjX+%^0ZD)XfLMA~_Q&py@1f7aDypvJO~_c44FC0F?k0 z02Kk{RocZPogW?Kjd59|Il*H9ag&>g+#0^AAE5fA~0hfD|H_JFp$Ify}` z1%NABUErqybpS5mMo32kDAOEJ55NIv2w;N^fFl9*0S-V@0LwH1GzK(Nn7k-J7TReA zybWbr^5&2UdI9HdYv8S*p8;+M;KrsiFn#}dU`F4rfNp?Z;IXGvf>vN??*m}C?*-@y zhy(Nn^an7HXAzVmpJkGG@6C+CfJDF`08Kd%K!I#Qq?yk=@*i!;tW5DKN7v@?5ZK#S z0P_G0Kr;au00ssp*9tDYGr*V*;7hQl0Z#?6hc5%a1b6{30Wc0grTKF0p};ivSU_>e zjsYG47!DW)7!4=~xskx56rBcqgbf2@ZVfV5aW>QwFbT|w0D2lS%`i$l1&|J4qogMT z;vnxTHy3ngv$= z1H2Ac3V02`XbgujdFvE@4Zo4YG@=+qj)To&ZvvJp9*c2#=1RnUE^pxCpwSZKv$_)i zj?oH0?j|Y6d^XRzSP#pQ$B@+qytSX;1F_uFblk?kgSJPPckv zSkel$pH{i~npY}VweG=zH3MtH&Z5m}t54`cl%>Go%8lMVd^)8H1cCyC0%4Z*$SH=L zQDe>==~L{(x6GWH%-JtqWzo+d;0=Lhc?VYQ`Lth_5(tw!o+8M3d-mOCEqi`=7&$cq z!`P}_TtiXck~Z@{7Nk|2yu9F=c9#x8AUrS#nptWHzfV#3(-81L4MPe<-x?5cE)@bH zfkDvB+_>RHENw=!d+W#SFTr|P0p@Gv1I!(1;$XbD+md#=Z1^7Z< zEGTLFFXs=f|Lz;NrQWpXapCcq)u;A32o!=q{S|>h^KUP%34yS{(3;Sjn|Z|Iv`DYO zi=D1+zJ#1wut^ZNo1*Jy)>fgsEuh9--+wvfXo&TR~>c;SNS zcM3>aJg&>`4;B_$Y`1Dd!SMoTp76hby59qdzqFuyx35)gTFlL=y#|u=Xg?5s4_OC5YP>ti{WK(HKpjYiZAF3(hpXw+J?ef^-(k0kI9DzQ-Xz ztyU!ltxvewYas+eWL;(@KH7GX|Dx5Wlm|M)in2Pt^>Ng9i!NKWv7E)Vu-)|#^)FgW z_&(MaW>d1qT4OO4HTgDy8?obE_SJ6tb&DUaqeYmM+8+?RAOP)YApDg0_DySXH}HFl zLSI-ztT&2?#$Q-lX*)&67Z4L-C6MoLW}!J-X^jQqJd0t7i(Rq?Yiej4<9Du@XZI13 zNA)m{XLF1J|dS1?Ofih5UI;SJz2fG_O)^a<|NGt@#U<7S)z_Hge>Oh#e3Jty0=N>P?&R&5DCf zhaN1SBhUajEZXYyntx*nJfn-*e*DRjWUK+wJ)^G#?`ZfPCG`OG^yBdU(b(W8D=v z1DzYCrikaih9y$Px@xv!d4l22A>+mBui+6>h1WIYydt8A)`>CKtO52d6);5RxRw7H zNxJ!ON5hp9Cq^XLLPUw{){?%rFt_Le-|QKawBY2yqtKwXoQ44+`Z`psT}g)hR|4Z7 zEdO=PCJ1mMV-QY=ao5qYkz)0Abga2J0&%T}xC*8|tP1WYQ0-h%`UWa_SCQXjuBl$E zTpq+(O!iQQt7G_?wAIIYrHV+nVJ#8*3j`UEFMd<$Y}K&DGY||53<-hc)9@u9CL4&ZMqueZU73cH&#H>5Gcd~r;rxAp9iqm4)F+oH z>-T};%D0GamxS*fa0`miJDA%0&`quo9b-Of9b0()hp1k;Qtg>)@QW1^YWVTR?T zMa1{kI=+ux>&&TnR80RK3QWd0b3f#>KSMt|Y3)i>iG3VZd|90R9({a6-1{D#>mi!l zvqt;+<3UJah);=|wQlRDndhw@)C4uX*>8Gh4JoeRMN)Xd`}t zj1e@gR4k8K$Q+CL+EMY*eOHc8==u6`^0Zls#6&pyUgZRMCmCJajku|DuxGc4 zhzAH%9-_|!1gerE9h4r@1SbP%WsQg_hUzzpED!9|FnasN?FZ2D=QVguv){b@Ira#q z$HK8>V{eNcg|M0Zu$2tn-=ux?Ow~$1yrRUQ>P2ze9ZJg4@VyT?`qY6HFBUpwZ+13E zBX_X{mhvqfE%!K|PS{nV_~F~G_Anl~jivlS3l{aPDAX8*IAw3dUAp@HOQTwuwVJmz z?ZjXRxD4;xAA;P;6mna5@%i9VX{ve5?KH8gxXnkLvf4_jF*DtwxE)6Yh30Fd=Yv{>a0@0QM5>d8ZNFM3WX zpO?767AlAbK)!V#R|2Xg)gQfbr!%6U(gZ;|M%1uldJlj=5eOXpdf2HiO161B$53OC z!~2C|4MH0Z`QQk51`J_vm|0>Biu$fpMeRjWH!Ysu)a43TN4AM|5YP^akBA;}3{fJF zt(I0%`3!r$Fi+>S1}#0rY@-pCjtO6NuMV`HQV@?VVj zx}}lfVd`hD7t=)y1h9_7*2Vo`v_%l*VzhW(zS@58zkEw|MUMF5ychvfA@dd_C$&bH zdgL%nja(isJ0g9@4K>LjRekV12-|p~#m=j`e(Rsm_Lx#GsMf>N7PgBkZTRN;QUULfC+ zn(kLT9HGwHMQ-IwH61tf$|2JQQ|D)V>>af zEW&DGPmI2KPE$-cJZ*NoHL8iHjkb7X(N})CZFYay=MkIDk;HZp&zl%aOZYxv_kyCz6My4D+G#Pa=;QkGkZ#$Is6zd3dTvU4 z+vGU-sFh8Vn~?0na+P}00;Sfb&_g|B@NN)j?VHf&UMUr2Fj!AsAEd=OC)MERnw~fV z$&bZR?ytXQ>#9&t{uoY|AdTxU#wD2}tm|KKug++0eY;8HH-a&7RGOPN8z zwFk;+P99Q}4d&ffH#}{~hn1%JvO#N3`Q^zAGw`+y7MFJnTK0Xxi@tE)Az};e5_~71 zR8f?=n&pJ0=ZK_oVp?fiE#J9Sg>-B!3g&%Ss(+;}nDTc`koj zw1chK(83z}VqS*uF9%_N5drk1vl9gPH$`GO7_p+5KHOGZyk8Fb3=p@+;IPYV6T384 zQ(5FM4>VF#EDzzuq6?7qZjzW*9=jwQculkw6-gCrdGH#}T@;KFL6s2qXH>A26b13| zkc>Qk$y1Ac%3U_6P;1;|pRa%|Gk-I}J@sL)<_(s9*I#aE&D~~{&>Gk{_i9?y!ERX* zTM^1dirE!0P_xC)6`{y)>JNG7nSc)(!UKVT?DK!~!N9{$FU)D>gO`K)_doutf!#XQ4thv^O{rH=4QP- zRD2u@b2InBP*JurELv2oYpQBpFOIawDe&jj@EoO@$cR_$w&KvUsHdA)QrQ+zK53ZT zl>hduF*`@xs*Eku^bD0#*5tuj)2ZJBwWeLj4P*Hty&(5YatyXtSN z_Ye_uR4)A8*{IN6j3}(|kN(=F_xuD(8Ua`DvS#SAH~mV20xB6U5;VTh;PE zLV`2&(XJHMTse5`R119_Fi|#A>8s9xwd#)NSqcwtF(*feHV_D%1_7R%EL+>>=nK{_ z8$y835wUZ5Rpne6{pE>rVpS2dsJXjYC0<2QZL`=|3*E^S_E6h=JVsd(YHOnRenD%dOqLv|pM(bFc>wkAq<}tRju3$WyGYQ}?X0mEFuI_Ub8TYvBau{$h#blq^So+>=U(GTT{vb2~Q zZu9d!GgbOyn>#z#cAhcJ+o~M`ha-Pfd>C#EsPipI&&Lj?D<^K6JhQsL^YZ?hr=~<$ zwNBu8m=Brixio%qUkXf@#eF7qZdBUdT^>1@8^N|>Or0F9mx#-CT%GbMbseRs)|+ig zXDyid$rcz?tzbV-7p zN1q+E``K3a-mHX|qH{vhsm;g68??5fVm(_(=yF5Wx8;*Bd#*@X|DxFg^I&s>%6Tp1 zMC(P%eh4#j%soX*F|{6A+Ao&ZLvK{OyF{T#7^b&qM5K#hk;q#t_JRt1X|9Y;Kb>r0 zZPNbmOF2qEIcKq`?m#2z={9y?ks_9i=3*3(Z-;quZk%Y{bosUE7iytOHEFwxw<*_O zWI9ZJekL_kc-MzMHAQ@V*XVg8I2>6Zr;2lW+Nm;O8|Lu~6?lM$Erz*o3c(A+v3*j{ zHPzlmEu;K;3-&a8N{s!C+N$_qQ<&8N3%1;?l(5R3N-@zR8v7D+Y4E{gGi+6SZ}KPfd2Gvn)({0mbTfF*w~OWRd4YWKk)`_j-IE(nj=NG&jjb9nb2WBp?VERr zJQd!0Z`ltcKJBtv7Djl*JF81K$H<0>u;#WuF*<7dq>NIq~KBYq_XN?nyp@94Evz0 z_j^53t;jy8sfZifEtrv5lg`HciIIG4pOibB&HRa3@W(qKBd+h`?;bf1H;Hkv=!|*y z_-IIWjiidg4-M!e#*m>ID`n0-q?h>VSzC)g5O|OO*&9h^HRTWw%`efs$DeTO$BxOv zv-hEu>o3~zv2*d^rR^^nPTAoP`0+yv?_<^Z&x8Ay)?GhW9RBTg(#$dUocf|S<(~H8 z4m~{KRTuuirs1zd99J-SxJ@}LtUcZmKRxd{Lvig!{#-Zo)v*Sy|<~>@?)pD-YS<|RdVe8A&t=cb;#SMB|GvU_{ z_r&cXzysid&W$A|RvnR$Q?#$jarRzTe)rVxZ8?8I?-?dPBlJWCr>rTSCF^zPYs__d+Wri@>#2S-&R3PAAnn(AaQm8 z_IIxc&jct?PXqv!T8C16+%e_DbFGK3`n*Ole&5afc6z&aM2`f71Nmi3JTzJjdEdbG z^2tSHck9+;x7_h9F!TNv_xlmz0_%+y4}h%k>qYT_w%}4u$n#qd-%on4M^L?i{8oNY zU>$aB&Uz7;hWp{y){C(N(T;hT@8yS60n2(6;;m}^#R-`{_Y-(t!EcgbAs-+<8VIxP zUO#7$twim`_}(nPV;A1yz|G+KC5J(e{vSgtK9`!^_e(keh{~vZC2ajr5!_D=g zHOl%vfCM{U1K)A){!#3ArUY6E!|x!*4MIl>iur?Ju9D&isM<9)$h*s*URpl$)ZxKi zrnq^85{?`yyFC6zM&r{zc0mrFBk`8;_q0Sy__@-1@++YuZf`hs#<6uQit-6fa81jw z_e4UXtwgDUsGO&G zEjCKiO#F4j!UrY12BDxjhv=|TBtfEf*G+O{=6h}Yy5yv-161P}$tS55YWZN3*v_)2 zQI=mh{lPPSz%R89;Vv1q!y2_LXWp0hQ5SwWw5D<`kGW=!IdrEti2{S6*^_FoWqDz< zs1FI>mb0Yp{%2}*f2zCxSEz%(4S>%S5-Ec*CjMgiU^uk8uRkgZCBr8Yw~EHewqW1i z`=(?@GKTWE-`>vHA)R_5a4~f2T10GYW^ij=b*pym@OO5I&y(S-J9da4(TMsMbWzvK zuM+1TDKz$_Rsv6vM3)pC!bXU!A(&lDci|Qg6@HX5_4R=<`Y*gO#5Z&CP<;0;u{H%2 zez{8w8j3#u1W7MQmao=1`gnY&mvbaN#gd_zcq=}T{+e2#+UOZ?zu(8I(beHZ_@!V_ zDn@?b9?>clHM(j(w@0Lb4t=r?Pp(p`Z{56CTpyCF$`gA+od|- zOHSyPImm@X8}ysAzbt!IX`l3y(Nh*qZTpiSPQzS+vW4I2)x#>3dUBJhEoJiT?*CE4 zy2?G;*ZX@#zF`>YKv8cPqJct%#9&a?!~4a{!!Y^I?H8X?C{lO~htQkiso}P0-z)oN ztQcOZ-^UkT>i#X<2*#oRnhy(oLT^KWN13DZbemuAZmH9l63va$^Ex=YjKsw zeJV$O?_PXA+*Z=}S5>}d;*oh7-eW@Pr*ejPh=37r7Vk{;McN;BZ`kVA^A!m2)DU5# zs(2m(TDTZ70-8P{2EeOEiwh$#sa9u-;v;RXN^M7loEcxo^cwZdl*%$vA&}#@Y6ryF zk(kzVy2&}zHvPn!GM!uG%V~1P0rAdATh)B056D=iN{C-ZqAO20Q-lWLB4iXM`9r@q zuwL0O-Wz4>ZM|?vlo^fXWyoQv*Ru4*<*T-SEmE}#Q>Pym38QUkIpyUo zEPP>0qZL0Fd;>qmQ9nB>D-y?`!?*W~rDO1P-F%emW4)Lq3XFv#KY7IDGv5e2gurR~ zQK`*O#jPDy^xQM3SoT4DC*&{?Y+Ld{@SE-5`YtDD=ut5ZE!3V5iSm#*P|i8>PW53E zawN7RhoNC%Mu*kC2A=MmlXLW__>9_JhXlj1+ouV`_gz|)kRy>-6mlZul{zM?I67=m z%Z?wU-pLUNLJphVKd+qso;w$w%gJefOmufbu~bN4olX0y&*;k!4ln;KM`8wY*zAdr zvA49t;gwzIn!dbL58XE^SveqGo#o9E){kuu>`_O~R+}UybRE0WLElh4?EaszZANhp6s8~1= zPuuatd>ouhD+%Wdd?@3;EQ3>@PL& zw5_J)$vU+^C9aRh&<#E%j}G&;9yKhf%1t~;a%pXbpi2Ex%4KvruE%E`}{;RcC4Ox4RUr@%+JOhJ5Er(Bu$cbqC$=dzK zVo&F`o^|jk@!doWtF(rwKgrfQ-;8lKtVQ_6>v%DDk}WBAhnt-36T?FfYQqcua@Jka zbLY%_xlL-uhO3~9V|)|qEKGQ#TFUHSL3@C%7gMqKv+19`QvlDoxN*FD?d!K%gpM!K z4*B$l*UP-Hr)H!Cv-BiZ_hJei8cZNy{WpF diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index f9940f41..0b7ed2f3 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -160,7 +160,8 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { } }; -export const ApplicationField = ({ +export const +ApplicationField = ({ field, className, }: ApplicationFieldProps) => ( From 3cb0dd6ff104bff4681f67ae245003bff7d9dba2 Mon Sep 17 00:00:00 2001 From: Max-vS Date: Tue, 18 Jun 2024 00:03:28 +0200 Subject: [PATCH 3/8] add matrix field ui representation --- components/application/applicationField.tsx | 43 ++++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index 0b7ed2f3..70ed16c4 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -17,6 +17,15 @@ import { Checkbox } from "@components/ui/checkbox"; import { FileText, X } from "lucide-react"; import { FormLabel } from "@components/ui/form"; import { cn } from "@lib/utils"; +import { + Table, + TableBody, + TableCaption, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@components/ui/table"; interface ApplicationFieldProps { field: TallyField; @@ -140,6 +149,36 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => {

); + case "MATRIX": + return ( + + + + + {field.columns.map((col) => ( + {col.text} + ))} + + + + {field.rows.map((row) => ( + + {row.text} + {field.columns.map((col) => ( + + + + ))} + + ))} + +
+ ); + + /** case "MATRIX": return (
@@ -157,11 +196,11 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { ))}
); + **/ } }; -export const -ApplicationField = ({ +export const ApplicationField = ({ field, className, }: ApplicationFieldProps) => ( From 2c850fdbfc5c4524385a8d500ffb0b676fc23840 Mon Sep 17 00:00:00 2001 From: Max-vS Date: Tue, 18 Jun 2024 00:07:08 +0200 Subject: [PATCH 4/8] remove dead code --- components/application/applicationField.tsx | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index 70ed16c4..6f6bd320 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -177,26 +177,6 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { ); - - /** - case "MATRIX": - return ( -
- {field.rows.map((row) => ( -
- {field.columns.map((column) => ( -
- -
- ))} -
- ))} -
- ); - **/ } }; From c535272b882d672076b48f448bfb4b4be8c9bef3 Mon Sep 17 00:00:00 2001 From: Max-vS Date: Tue, 18 Jun 2024 00:16:57 +0200 Subject: [PATCH 5/8] add checkbox spacing --- .../review/[review_id]/reviewForm.tsx | 24 ++++++++----------- components/application/applicationField.tsx | 3 +-- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx index 0d8a6601..ec55ee9e 100644 --- a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx +++ b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx @@ -109,14 +109,12 @@ export const ReviewForm = ({ Application - -
- {applicationFields - .filter((field) => !!field.value) - .map((field) => ( - - ))} -
+ + {applicationFields + .filter((field) => !!field.value) + .map((field) => ( + + ))} @@ -126,12 +124,10 @@ export const ReviewForm = ({ Review - -
- {questions.map((question, index) => ( - - ))} -
+ + {questions.map((question, index) => ( + + ))} diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index 6f6bd320..c2790e1b 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -20,7 +20,6 @@ import { cn } from "@lib/utils"; import { Table, TableBody, - TableCaption, TableCell, TableHead, TableHeader, @@ -45,7 +44,7 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { case "CHECKBOXES": if (Array.isArray(field.value)) { return ( -
+
{field.options!.map((option) => (
Date: Tue, 18 Jun 2024 00:27:34 +0200 Subject: [PATCH 6/8] fix darkmode --- .../[opportunity_id]/review/[review_id]/reviewForm.tsx | 2 +- components/application/applicationField.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx index ec55ee9e..5f960885 100644 --- a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx +++ b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx @@ -103,7 +103,7 @@ export const ReviewForm = ({
- + Application diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index c2790e1b..a4e06ed0 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -183,7 +183,7 @@ export const ApplicationField = ({ field, className, }: ApplicationFieldProps) => ( -
+
{field.label}
From 07a8cb34b66b4391bbabb70a77f60f1c7f622a47 Mon Sep 17 00:00:00 2001 From: Max-vS Date: Tue, 18 Jun 2024 16:15:37 +0200 Subject: [PATCH 7/8] clean up question separation --- .../review/[review_id]/reviewForm.tsx | 4 ++-- components/application/applicationField.tsx | 20 ++++++++++++------- lib/faker/opportunities.ts | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx index 5f960885..f96e46ca 100644 --- a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx +++ b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx @@ -112,8 +112,8 @@ export const ReviewForm = ({ {applicationFields .filter((field) => !!field.value) - .map((field) => ( - + .map((field, index) => ( + ))} diff --git a/components/application/applicationField.tsx b/components/application/applicationField.tsx index a4e06ed0..55c4e392 100644 --- a/components/application/applicationField.tsx +++ b/components/application/applicationField.tsx @@ -25,10 +25,12 @@ import { TableHeader, TableRow, } from "@components/ui/table"; +import { Badge } from "@components/ui/badge"; interface ApplicationFieldProps { field: TallyField; className?: string; + index?: number; } const ApplicationValue = ({ field }: ApplicationFieldProps) => { @@ -44,7 +46,7 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { case "CHECKBOXES": if (Array.isArray(field.value)) { return ( -
+
{field.options!.map((option) => (
{ /> @@ -70,7 +72,7 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { return (
-
@@ -103,7 +105,7 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { (opt) => opt.id === field.value?.at(0), ); if (selected_value) { - return

{selected_value.text}

; + return

{selected_value.text}

; } return

No value

; @@ -182,9 +184,13 @@ const ApplicationValue = ({ field }: ApplicationFieldProps) => { export const ApplicationField = ({ field, className, + index, }: ApplicationFieldProps) => ( -
- {field.label} - +
+ {index && {index}} +
+ {field.label} + +
); diff --git a/lib/faker/opportunities.ts b/lib/faker/opportunities.ts index d4c4749e..31d0249b 100644 --- a/lib/faker/opportunities.ts +++ b/lib/faker/opportunities.ts @@ -113,7 +113,7 @@ function generateQuestionnaire(): Questionnaire { name: faker.color.human(), requiredReviews: faker.number.int({ min: 1, max: 3 }), questions: Array.from( - { length: faker.number.int({ min: 1, max: 5 }) }, + { length: faker.number.int({ min: 3, max: 5 }) }, generateQuestion, ), conditions: [], From b3659e77432406e65b4b382e86e40a8670f5317f Mon Sep 17 00:00:00 2001 From: Max-vS Date: Sat, 22 Jun 2024 23:29:30 +0200 Subject: [PATCH 8/8] fix review questions --- .../review/[review_id]/reviewForm.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx index f96e46ca..82c986d6 100644 --- a/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx +++ b/app/opportunities/[opportunity_id]/review/[review_id]/reviewForm.tsx @@ -15,6 +15,7 @@ import { useRouter } from "next/navigation"; import { DeleteAlertDialog } from "../components/review-altert-dialog"; import Breadcrumbs from "@components/ui/breadcrumbs"; import { QuestionView } from "../../edit/_components/questionnaire/questionView"; +import { QuestionField } from "./_components/questionField"; interface ReviewFormProps { application: Application; @@ -69,6 +70,8 @@ export const ReviewForm = ({ ); }; + console.log(questions); + return (
{/* eslint-disable-next-line @typescript-eslint/no-misused-promises */} @@ -113,7 +116,11 @@ export const ReviewForm = ({ {applicationFields .filter((field) => !!field.value) .map((field, index) => ( - + ))} @@ -126,7 +133,11 @@ export const ReviewForm = ({ {questions.map((question, index) => ( - + ))}