From 3b2c1fd8473411e61d02734e77f46575790acf2a Mon Sep 17 00:00:00 2001 From: Allison King Date: Wed, 29 Jun 2022 15:56:16 -0400 Subject: [PATCH] Delete confirmation (#809) * Fix styling * Add DeleteConfirmation to deleting dataset fields and collections * Update changelog * Fix EditDatasetDrawer to take new props * Address PR feedback --- CHANGELOG.md | 1 + .../cypress/videos/datasets.cy.ts.mp4 | Bin 0 -> 37365 bytes .../src/features/common/ConfirmationModal.tsx | 46 ++++++++++ .../src/features/common/form/inputs.tsx | 1 - .../features/dataset/EditCollectionDrawer.tsx | 12 ++- .../dataset/EditCollectionOrFieldForm.tsx | 42 ++++----- .../features/dataset/EditDatasetDrawer.tsx | 12 ++- .../src/features/dataset/EditDrawer.tsx | 82 +++++++++++------- .../src/features/dataset/EditFieldDrawer.tsx | 11 +++ 9 files changed, 151 insertions(+), 56 deletions(-) create mode 100644 clients/admin-ui/cypress/videos/datasets.cy.ts.mp4 create mode 100644 clients/admin-ui/src/features/common/ConfirmationModal.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index e64632d79b..69f5075aa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ The types of changes are: ## [1.7.1](https://github.com/ethyca/fides/compare/1.6.1...1.7.1) - 2022-07-28 ### Added +* Add delete confirmation when deleting a field or collection from a dataset [808](https://github.com/ethyca/fides/issues/808) ### Fixed diff --git a/clients/admin-ui/cypress/videos/datasets.cy.ts.mp4 b/clients/admin-ui/cypress/videos/datasets.cy.ts.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..d9ad650b13adc77f4d947afcb1eb5badb6588a57 GIT binary patch literal 37365 zcmcF~WmsH6wrw}=?%KG!yK8WFcXxLS8r}6|V>Fi+Y#O&;5&GN@DvyF$N0~q7%;$iFTeSLYfB+EZjiZ+o3o>-G1!z1}+pp1FjkWy^$T{?qF*UCiC|OR*;k1Upg_jbp($T*r%mQnKrhhbbvvjuso4c7C|07%>jz4uFb2lrH zqZwG(KVg9@LLBVOtRUAv!3eQ3bAyX6e;ohiXzC-x%?EC9_po#k;sn{cfJX^@MSuqp z+?S~<_yYJdoPZGURXS@K9RUz{d%a?~pv$Av>i4d`H^tFO%C*q&JsSW6Apid2wYUy( zeJUNo5&cUGYaf756c7afY8RFLr04^bhCp-xP=5jxLLdkLsEq)#5XjoUoBqSc|NjDV zHaI2KVO3QL2i`oB7MX8hTs!0zI2Q2ny;<``HI~jbP8QjZB*hmil$nxB#*9(qmP01 z;ei)ZK>4k^Jv+F-E$5@XWR%-}Z(1c0#vHk+TM|Kb^FdAK%+TE{nx$Boe(*5t4{}Ru zhaM#Cj@K)L--(RM<(xfk1N}y28D71-cjk2ZES+`p`+Tw&phFFW;M>JWi?q?M7d9+R4a16}G zpPy*}fS8-OZ)~poUyIwc@t4@vYXdYa;Jn0tlkCpYGS&I_SFK!)2Orr@m#7T;qloTf zSG|`5I?5W7zd;O2A}bVNy&KEMu$5(r>5%!rUxi-%sOZszzbK3h1wrqCF}$eEq}}El z4wpUhA-Uare2%%^(C6MaBsE3(mL#h9F0graqd=>q|7MGMheKD-va#a)QDcUN01sjB zo$Nq@4=3y;HoTwdsf##^*qolMhdZa?JFS&(ZEsvML@8n->%lR_hWTSM6x9cMnfm)P zQrxb+nnSre4S9Rh^#HRoDfP!PH5xhw)+o=&z^2cxqM}%fpUucxqxKoJo^*0FVik&2 zr~Q@Yb91T&Sz<4|=&F@1ag zw>+bJQ(=}6u?_9w7D`s59&7h&{z6u4F0Oi0aD|9M5Ci}-7lbp^omDH{IA1?7NI;hN z++{kjHGWr>U_id)bx3v0=4El_TDiUqYL#XI-1jsD-X=}bl4Afiq?B`^jU!8M zS-Y3B1c)$2l;PsGyj`r#!wVE&T6k?W>CaOn_^7T7;8(a?b)p@wRP;$j+S0fBN=Ru| zyU^~c$TOtA@M5zqYgnK!$oDGrZH;gw_i0S3%?3P4Y_Rz|5_)O1I)^PiZ^VmfK2kX; z(CzQUBsL>2PlXBDSGZ%KpvmY(sH}b(Wc)p#1LPDx|L8Zgr=qF;StUla^msLFxL!^e z`My_3O1{#3fjIXo=fsNxBO1Zg*d?>APPziYL#Tt+^o)cl5i)hwjPV5>2{;q{b{!Nm z2!t)L)i~w59W!RTc92%V@fp`;?LN40MG>i9nu<*@Z4*Y-G+m!GdI!XsB@rOc3IE%NZbSo?zgp@v{{^ocpr@zDkQb1 zCl+VUDnClbyqah$9@aY?zgEd1n&Z39e}DQtO-Tmut|yS=zd{Vz)&oB9&-fR znXOeYhQ_!kbtEd}ufIFNl^1K?h4632WBkG!3Wo{xhGWxrH*9KdF4PDBp#IL%hyO(i zU$DNpqoqU#FjBY|4p1!bYd2@UYO|W&=H>ViVi|IZDg-mYjR@UY&^NfB=HLiR&>R%N z^ZrMdWQ?sS4p*J{4@}Z}JvgY8BSF@?wBU2#xwJFOY8aLEY6cukXpP*Q{s)d zRY&mG4zx~(B7H^#E{jq-`#K|nVaikd=tjFIZOXq@(a0->(^FC_8rYt{1@L7Oght4I z7t&B@lzr@V4*z&oDcd@>=xlSINf&&M`M3b%wU~`5sT)RWBpd{WgnG!9{)v%$7@klH$LKH*-zGl08Fj*s$T2RO z`*5<2+jPhp{EPURI;qo%f>xoa(j*XcN5D0iwXma@e8%eKIjk;KN-lH<5sEF-rJIi< zEb3~68R!fwQC_5{iALUyJKWx~3DM_TL|)JX(edEfNcp@A-%{Q8IixS};PT3t&i9+#lrx?wtV0nD z0jw(tcETwg@F=}dZTFWi`eJ0L9Z)L=gxpD;`kF8&i*4+N)##ZZrd+&V&$vz1T_;f&A{juEM1SrokvaO( z@MfYRJO*<1j-OhC2-V6^TxQVYf+QXu!Kk{k7v=)FF8tsydjaKX zBwEGYHYo4@f#KwoPJRNS4Ir*qB5X;}^L)6YeW?4=)Zf?^&8tM_NOn3Y~%ECz(=H zRPSCVc}x+##It!+O@$oeO()OEjinF`ejCB<$Cs2PeYj6YZ_sOKpoMggr~RXYH`;=M zX2q$k1)SyIl#$WD9&e3EKjHgw`ZK<7^z9)qua*;!Np%Xgq>q#tsp3kt|Ki=mU}#FI zM~e!W+4~_zrj+oDTNq>;2_RW@yG~*h=~aT#ixg}~h*5mkXy1L4X3(?s+7N&Pz~B_s z$Ne0T>-5B3Q%b0QKGzij@KYpQHF9ZBY$k!Pfy#DU7A!t8StqVYX{x#nw$_QATXHB< z=yKjFVJ;>0?ACuP)4Vds$n#ONg)5vaj=yI#7(g3rg_YXX0oKmT*KVF=^CIM56utU- zejcv9R%i4})PA6R{&>%nP9gekNQ*WGN`k^C6oN-xEeU#nA!^<6ePeq+Q6E#0L1y+_ z(AgJm1MY8S6Ctd)vvbKoow)kn{98LA-^5tLiNf+}lQXsR9&*X{7PN&m;OW}+h!HjO zNFaYvG{vBIj_FyZaWDzityyHgez}gRUq@Y8elk~oR4SE^hWv1HBK4A${m#W{ji6ZW}?~OuvM{l;b=hUfn4U~IJz$L zGLl;4W;{L?jj}B&n!;=yz=%p@BH|DP{2B0QqY|`@gGcjtQ!$lKhhHhZzYT3Ze9ZT!m2~@b!+rDd@H=znG z9jtZ}Qn+a(8RxbsIwBjW@gA-7>vVxliS=nC$4JZW(Fcgy6NS_BC0jnSEC;E2rblJP zvnl7shM^sZlg+B8T#SYwRza!uuew#Ic*1sWr`d7=?faZr6CI%{O07-ZpF+aCEm zzw6S3cu^X?CV8>i?xn6M@f)mh(%Jag1SYVt+1nyb>S}&xGgeN0u9fNAionx6GsTHG zPlumaVapm`Nk^=NqOJLWd1dZo)f5FalYSVvr#1>sYdPdlHiA!)EqF|a9G|7i01*Dj zzX!dWV+U}`##L(BrIz16Hxv$&7E~yHc~{^~s|V~i3~^%_5LS_5O`Be<# z3@Sl}w70Q*QD0^(#9wvdEdI^Dv0L={yc>lsCmB*16re7V1F;7(>54)<%(K*VR&%Vm zlogG!O@U{0SJQ+yn3(mN7aw)W=M!rGBq{v`78XOSZ+T(#JeW1AR$i@%+)!))ViI2JsM=+N%k@~Nptq=14n2nx79prL*tkjIkw>)viM75*>Cr{_xW#kypsKv@Y-*JS;X?@@)Rk(#X`(ce! z#R#twAGgR};0^I(b6&vIVX3@i-{ySzcTC6k>d8?!X*HKj7Yha{?uYiDh_m>RkbzDY zoc-cse$n6QdyB#n;IY8?rm378wh! zXy7Rht!-3eL|cn&l%s{UUPBG7yiN*9fkNw8Rs~in^ll{!Sjgc9C0M0I$3VkmEB1?e z1S-$CRla71QY*+TBBs8J9BGkQ&*VoOzbmr6Xs_@qNT2A1;v)G>*K)!pxw{qR&XpLq z+sq;Nj2wpD3kif&2Ob|IIJC(eXN-}TdKz_P1lATf?6=Zw8%hGBMW+3lQ3Q@nE2)Tv%Z&o*R!qijJ8>C0vcjdq8f@f zLbDY_n;-=0WJgnk2p->zc~og~Ovr8?Ys02+1BqJqa7HM@3|IQPXl#4c>(Z86G{)`(+7ckGpdlz1lHoc5xw$ ze@e%O=-A3|$v@zP`Ka?DsD)zLen(q$sL>?OD%!&+2T8KdL?Ai-)(hGujomm`;k9QZ zP}GB%yNN{@#$$^dv&~gB+nbrD$ch&R7G-bnG5vADW8AD+qf_0uy#vh#!65mbZ>dfj zp?R7u^@vW`;_R9+u)^#uokODMJVX7y7g|mv9O{$vM1E!In0zY|cVus2R}v5qNj=-C ztD$`h+d6lcla3UAdyvDVWg{#PU4nCi5mFL4$lQ;BMbjuu(Bt!(68!lM;*&2! zW(s#VeUNlaCEN|rW{=zAzX7%(Z0NzUCBsEs# zjfTNDW1eoF7D7PMo5n#C^~BDNcmw(FGpl>Ojhu}ncKgj!J3rI+GqDI!b)UQmxE1;; z3~aV9pO=jY^=EGRIEJS$#4n{o(r%FqhgRtgQWKs!a`_S*4C1CS2_Tb_&TmpQ7dx@i z%$TG?RwO(2+UQVZ_XP&~VR#e_{zyq2sfVjKJIww;APo0-R9@862rSCF!$zOtI-MIj=a z`#4jz{1DTSF6FJ9_o5bp<(FeF{dV$!h9fqjW^Ev^?_=^Ep420ZRq3n0d9sLmDvRjcKO_c)NS`z$u%&tjdw$OqDxm2<6!?6+b`Xd<|o z-sK2b{x%=#SW)--F~(K+<{j%71RC!b<9up@>AKQ|zzP>llD1u3vSl_G-_p}$)y}(% zDszYh-V;M{E{F2kqv?#!u{CUvY!z1HA-|YuX+=HE_uZRwkhYIJtIc;p+60a#;Y7)n-cS^*wT z=>8mnO6j4bs1P=a=UffP3Evj?cvH0tyoV1* z2$xAFm4iQ*Tu|DpC)ptBUlrAF=eHN*6U#^wVC8{35~urGgFnT3&@8jur+5-^H?8%h zLXubqcuP30_(RRhS`BD@U+G9Zu|CrBshhA)TJpA=M8pwuCfN9*xx?GZ3}KE>-KsXF zdjP19tM_41jciL5_iK8xW-py#S*f2@GORDnQ z3h!Ha*)7?IOA}pI)`G6}Exgu=nX~;;Gr>DO0d(2LvnTw1LN^*kU7ZNLZ>+9dDJzc; zPU}GGKAR$ri<+*uwg}6X%R~R|v%z!mu;*SqOTepHqbV!KOLgbr zmxUl##s@q;p~PR0cHDCFaPeVF1_TXv+l27R9SYGt#~(d>*O(A^fb5YH0mv+$UjtSZ ziivs=8~j^yuY`?ZS`gO&$f(TpF>;4aXrl2c5%s=q6(&laV|voLUio=25?XAf`ii@E z6YuPE9v~EWHA-F$R0_^->bUpV&H8`pXa4#jd${xt^<~5Q6K7Yy&FG6tz+1nZ;GBlS zw-vFp6Vso^x1f#U2^M39vU{CtCE=aM2qU^kL=x)7Zx-88A~sfdX1h8T+{uruM2NFC zM7FimaTad{9t2VCXT8uA!}29c9&%6LlcR-8UGL-6Z!fj{n2J8U#_mW48XAs#Cr#U7 zAvpRmnTpsG(Hy4Y<^ozFO*6u}Jakv-^M6lu$}zw-c+&22Ekpq$qE9)BZigw)FB!D(XYi0H)J@R{7n^rlFw5fTqVtV$9bUm zlgFL{OkOo%4Jbpgc+!S}LxZG`()dTuuDUzDMgvbpkYP9JkEPHDo64)tcdJ4IXT=E6 zx;jZ$2s+6d!x{CHE^E4?1k`lpenj*v47ARifplwcYO15s<_>lpROP3X%)4oi0!42k z=|yAR-EgTU(TBYdIS|@tnk}oJV_(V?cbREYE}n5e`6i0!c0RM%Yg2WLJH14Hv0~+7 zbjU7}zbYHIs`}acmWD5mt6+j+4nWl=hb6E&%@PpSC2zB8$tzrZZR_U`y5afwytDRm zX(*U50u+KFf;*|>;~qrR39)?=?KLchenZd5W8a)cXrXyjh8;=3H(fjGT|QM?f;### z58qLin8vUXxs=E7s{#WwvTv>@p+l;}BQC-bWEJud?3XBJf>)6{qxCt`R=-T@=d@^H z(uXw~8OmcNxH6zdU#KgG=jhYnL!A;%QB{&1b^G%-#v@_uU1ZVn#(lH3&T^Zm#pK401!%IEPrqo_Pf% zS-TDX?Qzm@T=vkVDg5k(jHGJibGLCD76PCRUrCDH*hbj9{A0A+qr6U28;lGKcgO2~9{Xj{&mdZ}kuIZ~Ys-(?R)=}^#%zA7Iy=tF z_t{OxNihETKGDzwd-`G^N5oBszJ!~5)%}LXq?&t3BMwRADRbIHJa7{d2 zs2QA6FS9j$wNI($+eZz-sI!7O~0&INe>D6$k&cC?;#MzC$N&t zM<-YI8MJaP?24DXb3G?j8o$$*LRFA%q`~OBWo?saE%$yCBIUvl+^zi7OO4iTxSgRk zEcN4(zGW|&xP?0BIo^py`ISp){qp2eTVo#5@S~|G9944c0R^_=-s6I>$2XS}M`QlJ zZ!AXIr`fKt`}v$Nai-P2U+oIKnJd+OVbQ7lKB(wp|EK`wmkTknczm*a@^ahxZg^E@ z0cbKV)fPaG*~zitwtcG?AEcWxN(nBM;WGxI5-+t>wAzOY4zy;b8D$`@wIa?@rTE*!76_&tuB$QJq z^pW=u-jkE+Tp~-S$puSWnMY4%mlA^yKglHPs5ayFH=JBn8pcdxYD!`~UF`eDFl`Ax z5-9t-Z0CgyneOUas zKaBRn(7ZlS30DHpPR4HJQlynN;{masS$74OeDbXU7(9i=Mha57!F|v=IcSEdSoRh_ zAy^Do+2)D_az)`7z7EZgtAk40rrCL4BLFZ>OKA3~)M=z4$Zn=cz+wfv4{JVS@L7j| zcp<7nIKCCflDI@9TdXkv^dvW$ZFT~tTnMZjkIga%&bT0e>|vwSVWcD61z?|Q*&&D3 z9vUSB&u*{Uhh*m17EX>}&^JgKF-B4qg3RyeiVec*4~-GQDi2-RymeuBBsLHN9`5UK zLnMj33RrFwrxs}x9Ylz;_#k5hWvnstH3Q|Tv|U+}<3g9#H}&7X9DJZNg8N|FPe7lD zV<&Eq4nKVO+g7+#ZL9s4eE2GhTL@l95J19~8kbPr$82wydz*2nM02~yvbaHhmMo4S zO+5KKfTBrMD%QwrPQdF>1pxH!a@%ev!zk`42h{6*j56nAc)Hg+{T|E)HOyLRpZ+@L&6FtVdr;?AW9AaL@2lwUq53fF#^RI0owxB2Ge zjVPh?%!a|3XQs?BjZrkX`C=3YO&K79PP%Hs)fPk)dQZIkXjeRZVJ}&VYer(v-%0l% zdAHte&$`CVP*@6nd{$5(?|YRFC~v8Y?r0|n0a*UoDa9{V*e1oPpuOXCKjh}7bPa&0 z=!X@B=Ux+qkL-NE&CNcofY*t^ylb{CE(`!*qRGm-u)x$vp994D{#XMGzj=t09+Y`K zGcj1-&a77TWk5nF_lLkpjE8JtbxznBQI6FT0y&369KhBpY!O+=mx&_~Ajr>PYX)H9 zvLxA?=~sCGwCK09dH{?vYGMeMY&6ne1pIFs-5{L7drcL@a@WDzhFBmpWndsr5Z9E} zk^-16bK?I7#-akq2utM{dVOPG4+sj%@>M2muQqUCWJu9+EcO(>R8bvpHfy0o%BQ5w z_*yTQ{Yi*40VPgWKHc$s8}e6TwjT!FYNY+fy(3Ga{WK~)Z^Y0k@8Taz+AfQ?kGnN_ zG{S_53j{r}v_kQegc4h!Ot&zd_o=PV1!=7v1ulHMxD87JkMA2u8Rn`?E)AH?i11wu z6)hpokpme*w@PYjt6=ei#)U9@GY>c0ovFTl#I;|o)DA_6ZXp&I%jUwe$kO7yyPW3a+(EWjoc%>c6$SaWh1iGkEh73Z&I`& zguh}E7}BlAqZ|P>iVGtyR{1pyTARKKvB0_r`u^gkd&nZ4Gp0WzFL&(K?+Y=dBWooT z@iS>xm0nqdNU46JvbsCtq6qw#2Uq1`Mlox8WL=L)LH!Myo{H*M#_{ojGnbJ2=la)~ zCeofRWdu_ji`yqf)Y+yKxQ?ZiUlaIZ#T1`(PZs^uzZ~;t(-nv|Q%vGoI2TakIKF=1 z?yA6UZah?r#iAmIf9V93>wFiZI5rjUZ>6s;eemrhXzc#hMe^uL_4upDl@0v6#sD!` z3oi!WaG$cYBpw;=LFd`M8-_!(qm%B3->8r5ay342$G8OV!;px=?d8v$nt}QN)v|~P zwbq%t{#S>mB9U3khj>YYPm>7Y+1Vji zt}%}9cKkH7;mSZ6R^;+sX_I=^qrfUae*gK7WY{^A80+O>v3L9zUm%kX#&Xvu!3o`p z&3GT++^hgu^Ei=M01}xS0`}{e>W1~y6=}D38~qhA;u5ZJk~j^9qA1;XwrFK%x7D=L zX>f_Aq~~0waz~{kcH_Z!Ly^Q3NdAv9 zJG`OR#JS%SIh2~(>L#Ei=81nf(<(QkY<2Qnzi8SrecfKkX94jl+781h6W%P&$7x0C z_>LG%=*oH>x7Vi~ddhnQK$ME^((3X)n|fTFv{jjHh4!LT_gp@i=4qacX|$qh@KZN) zjP{cVAH?2>?4-2QnlE_eP}}F>3QfbwP8q^T^(NNp0sO-kvAzM*g_$Z zl(?t=Y6^Q3xiWEW-t$YgdYRv9k6eIJD+3lAC=P%>0LzPNO-VoGr#f4!qen#^>D`EUm!edq}M+dEet%?)02bHy?L5L z50FB4h`LOKdOP9W7X(vzs&ICqUuDpBTKyuG*=`BASlI(pxH9eaD9=8j4lr(si>Wvm zpcz|u`k1vn_Sp%N8ccTIHxu&0+RD0jl9-=6#1us#_<~U1K~t|yaOS$|FrTv7Mz!;* zh@n7zH!7p^In?hpREa7Gr@MAz!xW|Ctv=sMg0`YB*IBY!X!#h6e1Y5eezmEa-%^>1 z=%DWaQRA*a+a3D>Cx4~@8h^>w`Q&SYysxfks=DraFWP95K}}+W?yy`#oX)XNnB}A+ z$-$7paDXGd^Na1N&)%v_axOLEMeL-CfRPWYaEv(PyPGtYofSQD!et}zQ+cPF#;%Ge zrO3wzBssbgnAP9BfQxY`{RH9UqdYH7!NvA>cR#<+k?Bvw;hJ9y!8J!uA#J)NisV%i zj1Ppx(p#6c(DEIScgsRFR&41tz)-%aBA6SrFV1PFATmPq$=R#;DHrPWHSrcLFt_Kj z|Aar`2zGepTCmymOK`bn^?!&=r8G#wCFu7jiD$?TJlnjxBaM^5*);ZeBqogzsp2aS zFjny#xyWXCBtmT?4$)r@$t~{r$Omh5(#eez=l|7)$j2MK%a`ULZutEJJ{8uF<$+!5 z4NM^h1}+jVi}~-msO(#3*X}1OsQ^AVVqSQ*dfEejvgf7t=`dWtklW7J9cRg`o1Y#- z-Gpj4hJAb`2*2B7zY9teydAg_>zJqt&2X_8CTT`G)4mg0tiQr1P;K9oARDQ_wl}h7 z);3>rRePGqk`Q0~sS*LZbVR1rj zE@%}YlOWvOl&D%`oc9?Tb^~L^2S+>d)BbFrPito+vO*CnFxx~h{0#1GT3)b5gyaol zxL@(NgwIF&K2iXt>(+(J_z()+9qKTWge?+~Bm|~YcOgRype6y-lumxz6G*e17$?#* z=TF0Tq?C)!+ElC&?77*uVb@oQ7R)vbl|di)bS|^N%MW?6!YA-1accv#LI71%Ic@|W zehzj0%0(W_osOSouN{SyZO;z6`pH^hI)Gi^T|0wV6-P!uRKNXFOA`_Fhtpg!0@4_H75Uj0~!3k1b5F!lfscZc}%4hN)X*=2%XIOtG9^{T_EzGLPJq5_F?;}N5ncJMv=>YN8~kmMY=B678%Rn4QHmacbUtoETwC)Z}DiKZ@k|Y zxS*_Bs_{|zsL%pm@k;ok2@da(Rw&CkDDV7@ZeEp)@@z0N1_!}{*X{WZvB2Qx!s2}E zXYQ97xfI-&-S7RS^JBxpW261R!l$09Lab;Z6dCi)C!V3^RSUbSBvAMJcg2i?0xlo= za&M<|Pa3dwgLH$w3QLieqNBId#x)fGOxiG7fbf`ZSon&8eXrw2Ub}is*#&35Tm$o- z2YPi_NEpqqtmzDWs%K}q2oaEq>GSqw2pw=*~vDBErcQAx1F2-3@?wXSO3s8GE^x zc$S6<)A-R_K$V&h=8|eQXS%WpMSlYwUTD!4*P+BBzjsa%|MM;Fuf=Z;xGZx_!)n^$ z%UQn{cv*2@g|zF-*9?!}l^R)yaqX~AK9mw!+CWS2r1ry^83o1J(omg;lFjLy{emJ0 zkjq~x@W_9$xRb=cK)WT{;7kHM5zbYGRd5whD=bbn+6K48jJ@lp`T{#uoMZsX z7Ta@OI?ahW2>EV___*?QAjeLjGAFwvA_&5UI{;LAd^LA0KQx^cE@@?qnGQW+I)mY@ zeoRUph^=YKt5iF0esrIoC4RG^cE(G`sR$LkfX0a@zVrZ-+T&CvOk;)_oNLAYA%;1w z+!FbV5NJDq^vKDSCP+3XJs}_0EjHC%Mi0tHsxC6y0sCrp1p2N_nNpxk(uwp)&+M$F zUcQw?Wo*YJ^pf`*>4<(>w2=zhvt*ic$ZrwekZ)d`QKh)4 zDn!|hw8^^W<(pSp`*12vJv&<7KcTz5GxP@{};pBz^}c^CZASV?5p#;ZJ<&TwHj+Eh75F* z#>M6=B(aEZbQsiJzvP^KWw1oON97$tDZp+YYOMoBGsF`N{TRQy=yV);=egonr+th;qTfe zT9=EI^1BSyOBbJ{l*6iam@m9>X{g*@Pjq}%#3jm#=4*be{AuGd#+Lrp|0c|5b*ewKzy2ert)2bnAWfP`HEiwb@5~FEspN(QCpZO#}2dK zl$+yo$LRJaqhi#A(+jts-*(&XLV`Xtc!`TkPRKlLGAIqCFJ->U-#MGM`Fcor0Wvo6 zfB}V7g`#mS`ubW}u8kky?g>|Gj->Y5d|^MpDotg1-CidKu-MHwdQ!{}R7 zJ)m~u>7Qd2yapJb>%YF*`}w}MG}}Y*1>aZyBK-BsqBrx3sf4NxP*f?K@QN@>ClD@@V5<@pBh!3_~kFC#@ot;pak~<;^c! z3dzRfVig#;_{IzV;AKO2+4rhTn~Jd99H#Y0_{&`*@-wmIagwW>!=<&K71aF~3D_TW zhTThOb!oq4d6Al$W4ZCF!`;Yt-7-dC#4Vm4GALBOwYY1Q&b`R&OPKiTkBMSY z#+889z>2II*yRd+gW3mx24^0C2e2RnykN70u}0P$9-v z&!I1U$_*-R!u`AaAHiL2R0mY8a6Yie2WCp13bM&-ix>!yg!W%TwpBZh3D>qcUmCJ| z&zB{TeP*mHm=eNA%?wbzZc#_upvq%DV&=*N0PvmQe!&aHus<1&`B^J61S$1TXUGY~ zqPTSH+lzDma_0-a18h(xmh=AqN@>Ck{GZuaJ%&+JF{P?+^9e6D2VjcCqh0soke}uZ z*}9Afbfy(z5eVo>vuI!0FeyFT=4;z;k$*n21)_7Mx9xwW6&gl1EW4U#@cQ^tp`}@B zR@clhW%m`ci|)Rn57{^*mBQs}*keC~xhXwI^*u@WIC6^cT_T&s^G?3NF*JMMAKw3X zsr*?1Gl~_I|84vr7LFDH9!}Loz+)si)MvoItWY5#U%+@~V8PIz0U&hZ{NoAoIl3Ky z6m@R1@n$aVTm4_o|I!Pj_MaYr1tWi?6P5K61qkzq%>uc<%ep|skcz1M3mjkoW(092 zmNW4`C@1h4KlcF8WYxP=U_AOI?7IX@QQ&&ZZZFW@P<6PL8dg!|BFj7XL7_uFn%(z4 z^lV(H=t+dinDP)x{EcyAARr;>NoR)LcHx94s=>Z5MvPke@`Td<)qGq=6N|}ZbmRufDg@k;_b8-o zLw@AV64@0}ZtHJIDzqOynoSHG<{&EI63=c7jm53?m#NL9`!yHY9RSC4=J}(8+%oSC z3L&U#Ix)2q^HpjgJEbIC+*USJ;ZA#`gNh*VI5|-(ar7`O%p8?^W5kB`HYwv5 zH5ij}ID1yZ2(!IpiP~)6vh#MF2;Iwq8mMmTFy}N>#jmJA21x*HG_^sGZmlF4g70J3 zoS#iD;;y`%WV^z)s?HDzmX56bOY^G83im-5% zDlP@XU_x8$w`5f(3nE2d;|LYsummqt)+ohdg`@M@x!Oab`hWXq~7YXGICQS zYH@I*%%wUqf!5^j;$-570_A+M!W9}Ko%Jh<3SuTsS4g7rP@j41%NIT_JN9YE=OeAd z6;{u78-D_X_Y26v-;4no$g=7+2{BYQ&E6qm`%~+_Q#{x^{o~st73e5$zp{r^`#~zr z-**68+F>#Q;2EMSR&ey!Wm<2xnj9ZX-=BE_9~1X&56=llF*ZnIP z3n@TU4^Sl=6aObWaIef{U{mldeuTfwSSgA|0PzI?crftz6B3!d|Sas*?vj68f(Us;;XIATwKE?erg!72KTbPwTIA{VE$QTg?kc;9u}Gba^A? zKF!a6p`tzLylYnLb8C-1!B4C|C0dW2r-$#S_^i75o5%4E}RKehm%E(bq4Ydjv+>tl{&MMpod?D z^6GR{h0rkD+ctc?ssc54M#mGj0c0fSgGsM4Wf#<09pbLHkaxS@?FLeoFc-NM7}SOG z#fW;8nH{=Mc+M|KdHu9LX8mnb-@De@xmg=Q|D7a+6PO{3SfT5GX~yD1h=d{w z$h-iGfAKYp^ZD=aKjr-punAbOq<;uDAqog~=>q|i4p#O46)p8Q!BYM+!I;6mzl-H& z{*Qv;HP^v6@(ip7fxgfAbt z8ByhwA#1}ij-0jY-KOGkIQc<&*AE4jvk?uW;XEN91sl+rJHliiGgBgFm5mRKmV*RF z2O7Vo$dXlDO;acky*fUSzL->U!#t3Trl~DdgnY zta$;SUN_s*(mVV9$+560*ektQ;p2bB2qujT{bL>=Bo+@J@=ss@f-D$K2Q0w*j{~F! z77+X+!2jpW`*R@~{q=@fFr;;TcQ6`;3zkZElhN7UPXHjn`b&I9YiVrxCPiYedD>8q zxq8204gbMMT&kJkFu`}eeVwWN}|N+qeKYVDF*H7T;Om2OwLm1G+6Hq_svx}l0(!zIq+ zg6&_657GhTK=WU(&|Rs2jTQe>QN{iiRrCK?RI0zmz&KeSScAJAvD zX8jv;{*S@uzjWAt7fNwZCGS6q3JQV<%n$64|3e*?=-)^KcgTG_aX`WTR$u?Of_+Q{ zf`2QoIuPa+8CRdkC033Wd;x&4g>yI3X>p{&u{11?pwNTp($lQj-4Z_PglfurD4s1~ z7T`Sf_YczXgXzC$1pn(^_xA(#UsL@DmH+h!LiP9L{(sWzkjnYf5rCryI{<)*bQnc0 z@_00FOgOs}Zz55uJbdI0<9FffOLv%ALf_y)uuUve;qx9Zzt#LI`D;{dK7&i@iMy&X zJqh7ny(D^j#W^89Z&mR0!Ru%a|P)hPV2eRRttg7bWkDUKpa0C+M9 za0=C6=jfVsk?thO(XF;L;J$d_^eIRNX~hpgo{q+A6eO>py-$Cfx90s-ruMgdLpW-d z8Dn_SlZGQ(@MX4F_QSi|GQLeU?snf-Y?P3si|UGd%tO4(mJ20~`si0>to-zwnYOQ& z)~NLSG1a;8!!-_Cref%&sGUG_eDUHD>-wafpgB$^UETIbqEZ$-EP7J*iTlh~G(Eda z!Ot)2qBX+8K4zCy#Mo&Iqx$;o3+wC)T;Y$U>RMP$3p7i9dfOF}C%wx)-5X&^U zoVi|K-=(vP$DaBz3Var{#>C3}Rj>SdjQh?5$O<=(VYP-|(w@jS3 zLDf6T|oTe8h8WIy15^UP4}m5`qxWVorU}x0`DwlZkkUeqR5w6tw*$Mbr%O(a@-4d-`SUZ z5TmAGS$5j|jHq`-@|SI5?IzOO42FpXx5KxUu%r759B(&#tz7cp4xy`=!(;0UarK-1 zBk}g=^JGGER-+;1g@znngwkC$m!Fz!TXqBtS=zasDy(e~iE52E2-0Qu2>rfsD>*k% zb&i@YChXJRIS_=IL60KY>_;+a3%%b!+EJ^!*p(_+4U;9SmMc5KqmEFYRQ7_Bw&4yTM$UBr~>3 zNEI(N#hdP4INn)CqdeDIxJ6%x&hZ=G}YKcVNrUb$arV!%i!gPbIKTh zGRcmQ%Ns_{^ZX%e>N7OZsA44huq`(E&-NqGmatFWt1dWK@3Uyc-x( z8puf;W|N5+UQ{IE0kF&;{!zt5}x^N|DMqUjv+&o>8&U0`c>%cE>Q~dkzQtedM&1scA{R4eoY;re1Ajane}x@o9V(R95Uw_vxTGO4{bT2-}r*m&h|s_70>Xd+GU5@oJ+$O`oUUg zPCUY7z2Ap&HWT_fK)t%%Klf?Uq6K5yRy)PwvT@DQ8s4g3Po=bf{B0j7eR{YWyBqvFuWB zMRk$fV+OHjNut)+^5=Y6r1S9v_qP4EZj$`Q9>U9*(BNpx*x;^1&| z%+@gXf0}A`BzRCT1;bFxADlGehoOqs86+cub>j;oOf9VG!*?X{gO!^nIa`l$$-IQ= zrs1d0wQo{^B7HY}7JXBdm6|DUsxL2Ej;8cDu#K~ZyjeN?8FAN7#CJ9@fI7VPHRI0J zcfUO18?~F4aC%Pwvp8Q{nFp6pB7v& z;kl^qY&A$Nep+ZF8quM=OYZ0P>&Ybg$Tc3Dqur-L+?{$3j|v^8;C~Xn_*5Sc%~_h9rEAx=pR; zBItVoBVL6)3s4W7vbejsGApuEHVJ1O_veCW!>;b}z5>WYWdgt9v!R{>cdWxg+lR+qziRZ==CWA$EtD zpE~usEI(#JB*wQvXwr7NvS}VLm|p23m%Xs(29N-=pJx58k(xLeA(|2Fpn_7t;yOQO zn46KFmOSBbKl@na7!?~Q#9?p=szx+W{K4-#@-1y{{V{YBqUc>0wb0!*NQYAJN7=Wjo7f&$Hk+QTG8)4-&aLUzpQ=&iBzh4#OcBo=2GJ40~?ERmEjO-rsG zhhjOv$kJA)epm25#6`E0sZJ}N8C$|(%a|n>lK9+Guj1M9$q ztjt#Ub`6XwuO1Sf!G;w!4t@}U6Yw|((~c7L%LW>KXF{>b$);lV1r~H?ghn$Nb@N}k zRBN5{0bKFo&5Q=Wjh*B)VYC-Qb@IXMx&y@GFO6Q8soiM{R=%+p%zajlNI>@0Foz@HC8g)U{Jk|YEKu$&rcbyu0JQojr(&s76S@&jSy+gq& zQ2;5AARe+e5}jF8)(ZWouZ2n9t7@9@<0#szj}2Qs1Kc*gZ&u&&_}XogM9}{LUy%`J z$YJWiL3ewVODAcJhx2h>PTtMoLf^!BL^18Q+vnAX4*xr2XQ%a#nd>Okc#A&*`d<$! zp&F*YumKB#w&KTuC;O;h7%mG}Kzz1k%AqObarHD!vJvR^yO*M`2X?k=YXS7>C7)jxz z{mf?iXO6r9f!tf0viYB!jbn;;1zDs~&8&7_;aj*26{2qet31SUw^ zBPYNbTW=?>c$BEXQqroHpXy3O5aLo5zr)#IvyH>=QOv+Nu-h`&mx*DBkB&3w_ar(O z5A8gf20B*FpD#E16Q}O@ipj;rX~TM-t=}!HcsheJNtEp5!i^Y|~7V9iw&`h$AoW8J|de zdirFNt(uW*L%*DqbmAJbh$vjibe>p8RMceT)Z>r*K$Mi2StkC93^UguLJis2JkA5$ zxY_`xlN6-!UH$;FX3)LiR=o+{&FXe6_ddz1s31O~Kc$*huzc~E(X0RIY^sUqab-rdVXyKEhbOHt0f2(mD|rv@d@F60>> zYytuewmh5M(DQ1IITkD1s5rEgXPzRQLU=m%n18OBfC3tTODKSM z{_M{m%aQ=VcHgL#)zNP(fRz}>QqCt8qRJEj_!hAL&VMOC&+BN(C(jmmTRK*c-NK;H z7ErM^<5BE;uZ^*^I;ED0HYeLcEZnQ%QpY<5)#RZdp_?3heCc&J9<=pYa7biQrfNbJ zWS}kTvHR1nsk20=S<4=FKgm*_=5cxFb&;fFD>|Z|Q{P}e4Yo!p$^?t$*1{T3GWH9x z3fp7XvvyM{iP+(`Bo1!eQ_yVoJ7fRS{LQWQbDfSON8Xo)59_y6CO#9c>H3*{OqSm2 zXeTC4oylt|o0o%6i*iJLLlrV1zG((Yo|MlC%X3%v-(rEd0jnSzBwGr&du#a z(#oUNxtR)!@*cd~$Do==T6B{wpuAgOz-rX*GlUz#WLJ*HI(-3%3Lt#hPXlW95EM=@ zukCAyOGOgFlG+!F5!Qa(bWx7GK}cuq_~t1@J8>{$T?Cz10@T( zzfKUsp+*_?!H)ZC;As*>ea%8NOxMJ(laIf~Kt$)o)#GTRP!KgysYQG@pH!`!$z*9; zLEs>BOW%*EKHUTPIiOkWTg$bPrejxI7#|yVfGMXKp8e?_!;kThY0G7?p#IYHZaJoR z$BR{uzbN5ne3S}WhhnnI<@7JowiH|P$_e~gzSe;I5qWGergO&w-2@u9ir zF82caY2q5_>V2t#UlC#B)!NwZl@bDPHQXE7tj+d#7T1o+uYrJ)@{>~kxfq9?&aH}s z9~f`LYyns?F~3$7hR0T(vl9bd;(AAryeMsRY8Y}f>>K8D&w|%O?C~JJ=reYo&SZN- zuv13mkj{R^p4%i$iCGU%QFp`4I4#kNWpHmiuL^Qfl%;k+;UtQ3>LXiwZ%S{(HP*~E zxK>?WfM6J9a5a7sDO%#_ZBzPX#O&FQmB;aVDOA#6b%KP+4qGuM=IVwmU_dM&cBrJj zP%|%H6!8i=7psLoMqtci>Y@ps2)0U7aA&7+`(}FVIC!uFYjaA7Q2uKX*<=FxLoM}gmo$IFtsfwA0@>z3=p5EO^rYuAYtq+p#5wO^d83KKC7s$OA zau^q*U+Tg;=p7v!15icSGTQoQ>{lx3 zZu4XlEZ*bdH2Sp(#>N8!uCA6}K8sP#&Cj6P!A}Z(HgzV?)OYq2p8kAVI~ZrqiKUHQGH=`cIjdhnO!;lT}0J3Sc-|3f{Z-`R5xX*)Um>`|uY^6dcUQ>M`UWvGkCtMDRk#Dhr=}~q8@M@AtvHBtdMZDZMrahXWADu75U>h(8g%(K=>PM_1wtkGU0?sg}_#9F#F{LX~j zPEmr?NA%1=`TO&N)3G|emFK?vF^3%QEqy5Dlx_uz(=tb_cB&a>O+qDyaBYN8hk=Et z()_x@(uU zPQ+f!GXw`_qo1#T^|OBIpGnnqVvjC1T`P8F}AEMpRC?SlW@lyi(u zxG@Y_Qw=*K{a#9#oJ(sNdzz&_kcgpc0nkU~ln^qf2dC`np$;>Y4>N#ARj>K!A5DN2 z{o?C3kyB7k`D0URq9>X`z!0)gvJ{(s0v77t;RGI|H!ciQ%|bpLR>>H_Cg6>tMDMwy z1IdA(rWf3>x;+|3;!UFRAlE!ceq}n@Gb7%MdCqM0@mDc_yKXwk2~tNZuH^0pY1;PA z@%sDqzG^%&eVq8Paafm0Tgg!^FDy#<;D%DrJy|Ihe-z>W!9y!fMx5FECM$*eB zy_Fr{i2$c*X1)l;1e=5>)rO+`N`?xd_StG%$K*hNiw6nQ^{3pV^n!q`!&xDvVl6v_ zl6#>g{~DWP=pm|mR#zmcYGvUPhRo$;TRx4E%6uu-}OKM-$l3{p5w4)-f z9OmC`@K-Y4Z`dP1zjq3YB7^us`$##Q8+;v-)WBObKS~~{(c{@!DvD!8;DmGkt!0;e zLjlqf3VE$^?wGO~>qBr7lBU8yeG{bi8X`D;wX(73Uol$>T0m1>Y_a*d>b9pvuKqUV z*qle_VYc9Q}N>oz;0e)=#^IOWtg)n90VeD4Avk-@fadD9qn& z7x|KP{9<#VFMfAHpE-J+ImyHI69ZN%=f@-GEpCY0liCG-#P2Kle@SsB5K%}bIuez! z>s|W%sL8J55%A0#<7Uj@^PPz78Y$csmA{atj{?ox9dACL*{Eh;YjNh6f!L=dt?^rV zhD+4RnmenyqYS{e`(F_K&x=#~fBwuQsTI%vJZq^%Is{Ju5fPHwDA-RFd)6^g1pT^T zuVQE&z4z=S=;;}0;Ad!^A1r%es+9p!J+EBzBWpoy21|BI1P{=MV@rIY*?GF}Ct$>; z6H|e>hJ}&QN;U|^><#YpNC#-LDW39PCID(W5cd4(c08ysG^){X*|gJUK5X}WytcyD z61R#hT$ch!4qi?Bx_rN#XBlsbghaR>w>J(1v(wGyBZ(UMG`IwIc0@?sh9$VOciKT) zAxmd@G{b~mg4pJEQyJdz9wZ;8jt7c$wCCMtJC3QR-i-Wk+Zd`-+C%v*VtR?yv-&zb zQW}pM_^io9co84`{926p5wq8k<&J~NRrq1Bx+Ovg;+9W$>LKWDeY6lX0eErx!7rHn zxGVG(C?Zl}SR_b6L4)W%_u8|trDIcH=T4v2K+6Iq+^7g2m%K5Fw?Iw`&_XX)+~l(l z8$)X1err_<<9DG{nOd2P3O)0XQZ?g#c+T*lK zXrO)*CY4Qe8lB8s&2vs8w75Aaye#`}dKBs9>{@x+4jF5oMUP}* z9Qn}NezT+S?6G!a!u7YKauuh~GCatcYr)l1!GsT^5XM@}UGf@qwuzm)JJZ zhe7pVctiXqg{X>KON9;VqY)a)OIKv7#TZG7cISkduZM=n%ip~6w$#)MfER&otk;*$ zX2XSPvSi6l-IO=`36=-tb(e56DzB?TMg=)6k^9hxU&;C$EQ!}esib5lgLg$@yK)3w zzwf)b&6=9^nKUbDyq$lmb+Z{yfN^^qsMM=Iqck$s^d3T;wIGw|?FUkVB6(8b-$Mc@|$LN*2PEz&nqfSF>hW zxa0Ow=Uh3}a-h5oam2CPov%RrlbrYVKqZ_uz9gFa6N2E86Ort1i7L^N0I=u^o`huP zl*SFYR;9t2puxn*3SW}JylWQ(#+aJF>ezPFv##(K!~>)tO53Y^YM0nXpJT@yq{8+q z*J5Q$WQDX5&wd)PJ#M&<(sn4lA%Z5~{650xXJ0oMSM1XW)JWX>j!~VY#A}d(k(Os~ zLT`u){4!0@S7wnjBO5J2Dbc4-$RTTzyZ+;B4n4;&V%RbD=}4Puo-|*w7RLj#gtJ$A z_Dt+6Ig4@_shrm^%L{w0U0Qv8<*w`}w?R-QvXpO{CZ9uNM33nqDVh#vs~sr5UUw*b zS3YRXMCN;HR!o%^J<9Z+FD2m@wfREWsO&+m@Qj^q5Gm8Wa>CDfRR^whCCHo0;!*rz*VR|r+{_g}O z$>h7nd4$`ppM|OlKl>xi!)I^3uLGwXVXYL9`ynSPj@3Zih3dWY<(r`K{PP-v49&G{ zu{t^5jQA@CQ1fq`ULC$eDT_zcMZ--JN4A42?$U;3BHAt4vM3yoR2aLKWW4f_FK1Or znh`TcsZ6*m`WYtZlMEc6P?u(bYAGNEXt)Pl0??&L{p8S7=BpE-&HpEh9uMmsdkm z7=4-z&r=`$8FX;Xr5u;`>l<#CXF}iF)2*v}JWc@RoYxfcS9$d2C5M!Vfn3!sFZ$N2 zoih&I2+&?d+|rPdzt<;R_y7Qy2>$dqEK*+N$`xGyKlKZbY#FcLee&z~=;)GWqT5Y^mRa-@Q? z!LrkrxLg+TNV#(eMgmN~!fhbR2V@YC{^D(JecjV%HiRM?z?VV~*fs(a-==_4FW$e7 z@W0usq#}<5AXXty8CBQBzR~>{CO6`AL&!cyEY%-^^LK8BugvG9{)V}`cO_gt$x*!U!tB_`gO^piG3t{xpitwj=?So48qukKJrwF&rVd>U!JEI$_=r8 zG{9MZT7Z>}{zNg+yyVzRO_O^m1%==p(7x7kpYDtCdHQ%19Er|=^prAxG1SnVEs!ue zO<>&p6=~xs*l{_d9h_)eFp|5@VodRKH$%z%r&;oihym}ZY^nKEG!#$wx{9rRzEfFh zVx`F?!8PY!F)VN4-O`R@;BrD;vjyE>nkaSY<$)!y3 zl`zL8zF~GFFs$E1m604H5tR=47()>I8M$7V9YGC7hWq_2Ssj32dI=sr-HvejBDy!; zIer2mW2!AqMX`K5C5hV6VHB|6L|p<77IPWOrK7j&F_;Xx&yOzS4tWRqev!Uw+8<$X^cSMD+hUYELCTfR{lX*uAb$bW($` zAHJwAVGk*S7%m5f$WFt-GVm++54U-b*r|yXv8PG3N=NUWc?_o;8zg1UE1xUg;Oc>C z8VpM`B}gooXL~vY&({Udj5ckJ6FWwzB$Rv;F7!>*aFst~~ro-zhP!;8O+4N+4qf9;VZH z>(lU;Yo|T?G|zy=7*i2{wRDU3dX_)S9EXz35QsKYx`3eq#Z=p0LvR%Ue5h;7;fQ?b-SVgvh1QL$nQhx$|~rcPOAr>lz~!DLIEaPVlfUd zEyYNE25M*J${UTC)`3iw;mz)6dJv<);5%LK&Ag4N)%GE4i85}L$rK0o4tGolb3aPQ zY9H?HmEb^_r%*J3AV0dM)0!$M_3uiCND(1CBK+6~*^H|W5b(Fo*sH1)0u07)-(uo8 z7bY*Dk1X`%{TrVOq@wl#l2YA4Wqj(X%KoD&5IlFm}M=GJbrVn>{ z5l&`mja@T)B}VE$oqll%-TnPg?utFeH{bT6NbflrjG}*m<$}hE>EmVW@5UFU#naO< zrjGC(`~r#ojJbu5D98?6)%y!}jWbSM+WBYauG@M&UFtQ#!7W?qCTqGqS%CF#qD;zc zZVq>a@0Pc zQi&L+Aa>Up$cy5cy?ud1_J%$!pnaFDzSmR14#IQ{Kv81yFwl0xNi z68RZt_a?$|&P>VtYPLbk-E@*ZaKHY+aj12=p(>JGw7DmN3|6PEgMW+I`6_Row&y~< zkor#wQbpF#k7U!C0g61lXlt!l)#IfVa!?E?A7MBWCu6WhH#UjoRr*YXuz=Ki)G&?} zjVtGE@oWVaR(_HG_zla)Q3h5AhJer8Mxv1SiH%PwmFXQ-G3}tpFrlpFqT3PF-C=P% z6a%bVc=QCibV5p9`0e@`qOnTS??9DQ3}`uy{Ea`o9*Yt{7T2V-MAysh*Z!A>zV8A(R$YP@=b$6 z;J!WB75n-G-yt2GI&Pwo-vo>Tqv2fF*sm^oW)y#~h(5sA0t+k26`qv|)g?NQ3Y~8I z?6Uy>xOH3zxe1?WQHRaL<&1nJFWsu8|wCMq`-L zsJC8d(xvMxi1-AN*sVZfA8z{5Oy#}(Ogh(5eXG_+@K6@p5THEgkVK4%r z-pAJ^dq;5V(|6;-37c+L{V2|Gg_iwF?+(L9Vy@pGzc(OpLwc+Aig1SQrW3* zFfINBXwndCzK2EE#ylf-_#_IdDez-#50~DBA_+l;GPyU?$q7I499qpmQ)iCCypTmC-3t%<5v#ly8=O0uu)I)7S zd6W_G(JopSpYJ8oV1<2}&dFM|f`HG*4u=q>rC?MvWPy)@W@6?0u}G}zgl^LuXcd~8 zV+pi&WD!_G?#;zyxwnZvs@`5t^Q>m;=RD&Mi2j2?bgtUkbVmjoTJ8Xp1LFmAH}HTx z>c~LWB&)pol`&qx>do|WOj2mba|E78H4##dYSjoQRPDV)4(?bUWcJrfsIF8q>2>b1 z9!(04-BT7aH%q}b|5h&>_xG#{0=%Hn1DRb3qQQ3;2IeyG@;cPk4e7@h{-7J;>)ysc z3e>UJx`4M4tFb>*Wy%h>`&_1p12wH3xm4V(Yh`Q$C(l|nAxtK5=mo!*R|<1ruQuKX z$+XL(FCGYxI-y*_5mprkTUV)Mh|nJq!3wUOLudw^L2T4ae-GA7kPdOaKsI+UTanv_Sf(v895(mN-4TX1_f41-k8~O8AF0n@EMag+?8;weNmV(<&RIlD`T*nO|zRF zww$Iae`{^-LM*m^iyK}X!NaShf1DWEadW(ipw4F8+m^M#p6=aL;>nkhLTuW=o=NEO!NiCreZCg_vAXJJ%FokDFiIA-&xtUbM zZ9Kdane!|dFRy8BDs_4ibu_7;!F`mE$2}tHuJxhL%xX+gX?CcaAdPYT5Nf=7c@0FF^g%D+oNTgW~Nl--}tJmY?m2xqLu9z`sy9qZ<%_m1}HOCs&f$< zBzqd}D@**g5YsGy4ZkbOlCdZQ{q}P5!{^Wyn`#)!ID?i=sOm5>3nv(L?l--xtGy|{ z%<*XGL0G6(nT>@QC!_qYbS7<44>B?i!+bYz*TDANfzJ`xlR^9<6(mryFNIyj`q8D~ zi=OUo(w85eyNxM1Hg&T>(Ci1dS z$Y7J=qfzY*93*)@hWH)w$#{Uc-m;F?1QN})Y$K652dN^RI?^f!z`ZsY-o*#y*K2zP zWxc#;36H#G^lGd6y)(%9@NN%Ife!eJ7M!#haTy?3o9STh$Kg-)mEgHPz8K2*L{okW zV12^hC7tYNzyEv(^?PE~Uf58L3tFvlS#A+a;dAonCxsENl8yFEX2{Nhu+-tBY{0sB zUfGZU2{DgC=X5{oc66G^JXPq|h*RqknJHc+4FR-Sc32xEk+RIdy{wiDe*RB3(%es4u11w~v5)WO78$&-Nc`x*jnmnH>m1li;_ zTzvGpc!g@UN21TtlPnqMe-M0q}Q7L7Z#GgUq z+@;UA`g=>{iFzu1^M^1HTxV+NKJ(iA%n003`9s8I@ck6 zTz2QK-t*FcG>+E`POq`UqKPfW>ILj>X8QLI19)=`2V>8*Gm=S*IQ!v}bN! z6Fj3wrzCgL;HI*l(#%a@vOT8qFMTAE?=>}9+Hp(gO>+oU0V5uljdr{Hr6AZsqIL%% zzBDMte4mlki2BiUq;No1#q8TXd);6&HB?L9vh{+|k28~Ge_vD$ia2^Yy15gD9=byE zgmTmTxeJk;Eub1-iq2;Amu8`n{~l6C0ETiI3h&IJw9E9m-egaMYZB*b`YF4Az+ocz zu){|360b2cn$Ki0a_+}>Iu#Jb_M-l;Trt$wWu;4O4KgnX(I&n_e(Iws3fC!pU+eV{ zg)KN3*^nG=tbHD(xH1!a=wO5cd*UV;JCIUzSusx8KV{}gTy2mXElVBss*F#RMG;{v z+&PC;8ZG(~3jtVzvUnu()H*=`Ihh}MYnX66;&@N(< zKQ_e-oNtiZ38v&`yASV|Rey@H?P(LJAE63}BD*`=1Ex{kGq^F&&W@c*P?!K;fe_|sy4gi(yse|VJWl{V z@QgC`ZQDX;JD=;*0U#vH5|v;J?00p(Cfzq?w6!Ol=_Y*@LDz%cqn^{($>O*N(05^P zXrNN>Utc88D0}~y)+o~)X}3BOp_DxP&KMG1eVm2uoBBsp2p*3(kgeyPXF%rUp5 zteY38_-z($Lcows>Vc;KsI*5w? z;QWJ>qW->#omLt53-s6ElEii}Zq5M}KpZKU60hhyMEOsHYO_zpAY1%n!2KEoc6MRo zkiW3}293UJzyNol!1K0Qs_h-ZlZoI|{tw}-e2)6xQkkH?lh-?$D7f9v1tqnN=sriR zO?bFD87xKsB{M=xC>XBtq` z^i=6xHhq&!&XB-j(4KRMvmz}WDRV$=2Q#ejJp9>njpC*=!GV7aopRC4U)@tX?7GD; zE+2jf>!kF(ihn_ycVc@eRdHA7WHbyJ9}qK<*tZga+bT;HYhj&|YM(HFjJI|IGz9Bu z$w8SGZkSnrZBVmk^t!dc^JsT6oX4EVMXNyVeF#N!R3~bfGGJUaFJ_?VU(eXFJQMr9 zJ#sXfzhbLLS3SozIAL~~3kD-NUYKDQ)R9YJdid%0nmf7Jqs;4=U9mz zz#3MB)V?0}?oFA&$o{Isq!i)qN9$uU(AT~K;7MIs1!bZ#@zi&HVhK#5FaW&h6(pq* zAvSNeJG{&unxs8)>Qf|PJ2d>JU=cT9`2Ko}7q@8%6}^b}<9a-#QL6V~N$-{T5!d}4 zitA+Lz4a`IPE6qBlEPliePd-!ei567=@hoFAibvie_6f!vXRBC;<9*slf8M(HnZ*%r=)ivzuhFQJD zJg$<|iK|eyHU*n6iYgT;c+be^b-M){@p}CCIJhfa1LRXt`!Pp$B0PJlge(&i0&K4K zCkNK_I(7R-^M=581jJ^uucY*uuFpE-3XnMQtPjn#p_5V$&3sg9e^P`BTI*m9r+&)Na2Gn(2V?VT4;{;M#exq zoPntx(6AWr2><}kv@$f)1BQvL4F9t}n1SdLfKoru10EA%YG`TyR|t4%+&t)&MkpNBh4k8bmM? z@Bsh-mV@J8jqs8F!CmpMItJzi%JI=SAMOJWgikRB|D9L%Zyd0p{z`-ShyTy`NA$0I z{^9?BoeuTE2iQ4)zrXnYvmF1oeE*Z~|1G`$|Neh(pO5DH*M9P!_5IIwg!tEdz()QH zj|c3d27gibi^gC56xe@1d=Numn)^S}K0F{E^ker1B@oDgK=u!y{s-=V7N`1;^p7~j z-}jPy@NNdew|@ZebP}kK=Rz6?AJ4otu$&)pQy}mG`G0)d!v+YhK=?>60RkfsK1MB| z|Nk^{^(+m-g`gte&lkwJf)Q6zrc?{6%bE4p)Zch5j=*6^Z;7(^bg3) zQv@;335b5w$?Kk8fV}7Q7036%8JGC)Iy-gv&pl%vx$!^ZzCHm81fhHU#bk`1^|v8o zk7#g=Y}_MmaSsa_;KKzU1CNz;waUxf7I8kfII5FRb!MX=Gf*;okHdp38>?|c7;6W_^17F0O!cZR!D8LEu-qtttEv6k$Zs`=ocKo(N5L0SB*(Xgo@-#%7Q z`00hV9HLnAryq~(QuX_U(McU&(&k2Kwaf} void; + onDelete: () => void; + title: string; + message: ReactNode; +} +const ConfirmationModal = ({ + isOpen, + onClose, + onDelete, + title, + message, +}: Props) => ( + + + + {title} + {message} + + + + + + + + +); + +export default ConfirmationModal; diff --git a/clients/admin-ui/src/features/common/form/inputs.tsx b/clients/admin-ui/src/features/common/form/inputs.tsx index 6419525594..d4253c3a6c 100644 --- a/clients/admin-ui/src/features/common/form/inputs.tsx +++ b/clients/admin-ui/src/features/common/form/inputs.tsx @@ -116,7 +116,6 @@ export const CustomSelect = ({ isSearchable={isSearchable ?? false} isClearable={isClearable} /> - {tooltip ? : null} diff --git a/clients/admin-ui/src/features/dataset/EditCollectionDrawer.tsx b/clients/admin-ui/src/features/dataset/EditCollectionDrawer.tsx index c5146cf77f..25fa8c9b49 100644 --- a/clients/admin-ui/src/features/dataset/EditCollectionDrawer.tsx +++ b/clients/admin-ui/src/features/dataset/EditCollectionDrawer.tsx @@ -1,4 +1,4 @@ -import { useToast } from "@fidesui/react"; +import { Text, useToast } from "@fidesui/react"; import { useSelector } from "react-redux"; import { errorToastParams, successToastParams } from "../common/toast"; @@ -78,6 +78,16 @@ const EditCollectionDrawer = ({ collection, isOpen, onClose }: Props) => { description={DESCRIPTION} header={`Collection Name: ${collection.name}`} onDelete={handleDelete} + deleteTitle="Delete Collection" + deleteMessage={ + + You are about to permanently delete the collection named{" "} + + {collection.name} + {" "} + from this dataset. Are you sure you would like to continue? + + } > - - - - - - - - - + + + - - - {header} - } - size="xs" - onClick={onDelete} - /> - - - - {description} - - {children} - - - - -); +}: Props) => { + const { + isOpen: deleteIsOpen, + onOpen: onDeleteOpen, + onClose: onDeleteClose, + } = useDisclosure(); + + return ( + <> + + + + + + + + + {header} + } + size="xs" + onClick={onDeleteOpen} + /> + + + + {description} + + {children} + + + + + + + ); +}; export default EditDrawer; diff --git a/clients/admin-ui/src/features/dataset/EditFieldDrawer.tsx b/clients/admin-ui/src/features/dataset/EditFieldDrawer.tsx index ddb4a8b670..6aed52c396 100644 --- a/clients/admin-ui/src/features/dataset/EditFieldDrawer.tsx +++ b/clients/admin-ui/src/features/dataset/EditFieldDrawer.tsx @@ -1,3 +1,4 @@ +import { Text } from "@fidesui/react"; import { useSelector } from "react-redux"; import { @@ -65,6 +66,16 @@ const EditFieldDrawer = ({ field, isOpen, onClose }: Props) => { header={`Field Name: ${field.name}`} description={DESCRIPTION} onDelete={handleDelete} + deleteTitle="Delete Field" + deleteMessage={ + + You are about to permanently delete the field named{" "} + + {field.name} + {" "} + from this dataset. Are you sure you would like to continue? + + } >