From 2f240b3bc62d43678439131d3b3b554b43112978 Mon Sep 17 00:00:00 2001 From: Baja-KS Date: Sat, 7 Sep 2024 23:56:32 +0200 Subject: [PATCH 001/154] add tags to merged pr --- .github/workflows/merge.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml index d89b4ee3f..a21f26b48 100644 --- a/.github/workflows/merge.yaml +++ b/.github/workflows/merge.yaml @@ -162,3 +162,11 @@ jobs: docker load -i '/tmp/image-${{ matrix.name }}-${{ env.ENVIRONMENT }}.tar' rm -rf '/tmp/image-${{ matrix.name }}-${{ env.ENVIRONMENT }}.tar' docker push ${{ steps.image_lowercase.outputs.lowercase }}:${{ env.TAG }} + + - name: Add tag as a PR comment + uses: ubie-oss/comment-to-merged-pr-action@v0.3.3 + id: comment-to-merged-pr + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + message: |- + This PR is in the tag: ${{ env.TAG }} , for ${{ matrix.name }} service From 4be996e78ccd616f07229db9cccbef0004054a53 Mon Sep 17 00:00:00 2001 From: Niraj Date: Mon, 9 Sep 2024 16:48:05 +0545 Subject: [PATCH 002/154] chore: add generate exact length text utils --- .../govtool-frontend/playwright/lib/_mock/index.ts | 6 +++--- .../playwright/lib/helpers/string.ts | 14 ++++++++++++++ .../proposalSubmission.loggedin.spec.ts | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/tests/govtool-frontend/playwright/lib/_mock/index.ts b/tests/govtool-frontend/playwright/lib/_mock/index.ts index c741473e9..cbd20a9c8 100644 --- a/tests/govtool-frontend/playwright/lib/_mock/index.ts +++ b/tests/govtool-frontend/playwright/lib/_mock/index.ts @@ -1,4 +1,5 @@ import { faker } from "@faker-js/faker"; +import { generateExactLengthText } from "@helpers/string"; export const invalid = { url: () => { @@ -74,11 +75,10 @@ export const invalid = { return " "; }, - paragraph: () => { + paragraph: (maxCharacter: number) => { const choice = faker.number.int({ min: 1, max: 2 }); if (choice === 1) { - // maximum 500 words - return faker.lorem.paragraphs(40); + return generateExactLengthText(maxCharacter); } // empty invalid return " "; diff --git a/tests/govtool-frontend/playwright/lib/helpers/string.ts b/tests/govtool-frontend/playwright/lib/helpers/string.ts index 68c20208e..26ec9453c 100644 --- a/tests/govtool-frontend/playwright/lib/helpers/string.ts +++ b/tests/govtool-frontend/playwright/lib/helpers/string.ts @@ -1,3 +1,17 @@ +import { faker } from "@faker-js/faker"; + export function extractProposalIdFromUrl(url: string) { return parseInt(url.split("/").pop()); } + +export function generateExactLengthText(characterLength:number) { + let text = ''; + + // Keep generating paragraphs until we exceed the required length + while (text.length < characterLength) { + text += faker.lorem.paragraphs(10); + } + + // Truncate to the exact number of characters needed + return text.substring(0, characterLength); +} \ No newline at end of file diff --git a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.spec.ts b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.spec.ts index f95e01586..1c4999a26 100644 --- a/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.spec.ts +++ b/tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.spec.ts @@ -39,7 +39,7 @@ test.describe("Proposal created logged state", () => { }) => { await skipIfTreasuryAndBootstrapping(type); - test.slow(); // Brute-force testing with 100 random data + test.slow(); // Brute-force testing with 50 random data const proposalSubmissionPage = new ProposalSubmissionPage(page); @@ -79,7 +79,7 @@ test.describe("Proposal created logged state", () => { }) => { await skipIfTreasuryAndBootstrapping(type); - test.slow(); // Brute-force testing with 100 random data + test.slow(); // Brute-force testing with 50 random data const proposalSubmissionPage = new ProposalSubmissionPage(page); await proposalSubmissionPage.goto(); From c82617978c1b59962291a58d2d1fb9c9f905d844 Mon Sep 17 00:00:00 2001 From: Niraj Date: Mon, 9 Sep 2024 16:49:31 +0545 Subject: [PATCH 003/154] fix: invalid proposal character issue by specifing the max character --- .../playwright/lib/pages/proposalSubmissionPage.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts b/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts index 66ffa3d32..532b4c4ba 100644 --- a/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts +++ b/tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts @@ -297,9 +297,9 @@ export default class ProposalSubmissionPage { generateInValidProposalFormFields(proposalType: ProposalType) { const proposal: ProposalCreateRequest = { prop_name: invalid.proposalTitle(), - prop_abstract: invalid.paragraph(), - prop_motivation: invalid.paragraph(), - prop_rationale: invalid.paragraph(), + prop_abstract: invalid.paragraph(2510), + prop_motivation: invalid.paragraph(12020), + prop_rationale: invalid.paragraph(12020), proposal_links: [ { From 47f34bb70dc798bac9dd5d1ffe6c40d7d67ed9db Mon Sep 17 00:00:00 2001 From: Niraj Date: Tue, 10 Sep 2024 11:53:37 +0545 Subject: [PATCH 004/154] fix: test 2F due to multiple dRep card of delegated dRep --- ...delegationFunctionality.delegation.spec.ts | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts b/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts index e9eddf2d0..3d1ad01c6 100644 --- a/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts +++ b/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts @@ -104,16 +104,28 @@ test.describe("Change delegation", () => { const dRepDirectoryPage = new DRepDirectoryPage(page); await dRepDirectoryPage.goto(); await dRepDirectoryPage.delegateToDRep(dRepIdFirst); - await expect(page.getByTestId(`${dRepIdFirst}-copy-id-button`)).toHaveText( - dRepIdFirst, - { timeout: 20_000 } - ); // verify delegation + // verify delegation + await expect( + page.getByTestId(`${dRepIdFirst}-delegated-card`) + ).toBeVisible(); + + await expect( + page + .getByTestId(`${dRepIdFirst}-delegated-card`) + .getByTestId(`${dRepIdFirst}-copy-id-button`) + ).toHaveText(dRepIdFirst, { timeout: 20_000 }); + + // verify delegation await dRepDirectoryPage.delegateToDRep(dRepIdSecond); - await expect(page.getByTestId(`${dRepIdSecond}-copy-id-button`)).toHaveText( - dRepIdSecond, - { timeout: 20_000 } - ); // verify delegation + await expect( + page.getByTestId(`${dRepIdSecond}-delegated-card`) + ).toBeVisible(); + await expect( + page + .getByTestId(`${dRepIdSecond}-delegated-card`) + .getByTestId(`${dRepIdSecond}-copy-id-button`) + ).toHaveText(dRepIdSecond, { timeout: 20_000 }); }); }); From f94228785df8861b8ca206932ed0cb5be1a6cc78 Mon Sep 17 00:00:00 2001 From: Niraj Date: Tue, 10 Sep 2024 12:17:36 +0545 Subject: [PATCH 005/154] fix: incorrect test id assertion in test 2A and add card assertion --- .../delegationFunctionality.delegation.spec.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts b/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts index 3d1ad01c6..4090e3894 100644 --- a/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts +++ b/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts @@ -48,10 +48,15 @@ test.describe("Delegate to others", () => { // Verify dRepId in dRep directory await expect( - page.getByTestId(`${dRepId}-delegate-button')`) + page.getByTestId(`${dRepId}-delegate-button`) ).not.toBeVisible(); - await expect(page.getByTestId(`${dRepId}-copy-id-button`)).toHaveCount(1, { + await expect(page.getByTestId(`${dRepId}-delegated-card`)).toBeVisible(); + await expect( + page + .getByTestId(`${dRepId}-delegated-card`) + .getByTestId(`${dRepId}-copy-id-button`) + ).toHaveCount(1, { timeout: 20_000, }); From 4e76c9df4baa102d8f85ea5aa450ed2d4842195b Mon Sep 17 00:00:00 2001 From: Joanna Dyczka Date: Tue, 10 Sep 2024 11:13:38 +0200 Subject: [PATCH 006/154] [#1941] fix passing DRep votes to the modal --- CHANGELOG.md | 1 + .../src/components/molecules/VoteActionForm.tsx | 15 ++++++++------- .../organisms/VoteContext/VoteContextModal.tsx | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 030d5f3e3..778e14242 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ changes. - Make testIds for link and identity references in drep form unique [Issue 1928](https://github.com/IntersectMBO/govtool/issues/1928) - Fix saving the Do Not List checkbox value on DRep registration [Issue 1940](https://github.com/IntersectMBO/govtool/issues/1940) +- Fix passing DRep votes to the modal showing vote numbers [Issue 1941](https://github.com/IntersectMBO/govtool/issues/1941) ### Changed diff --git a/govtool/frontend/src/components/molecules/VoteActionForm.tsx b/govtool/frontend/src/components/molecules/VoteActionForm.tsx index 964edcf5c..d0f6fb4ed 100644 --- a/govtool/frontend/src/components/molecules/VoteActionForm.tsx +++ b/govtool/frontend/src/components/molecules/VoteActionForm.tsx @@ -14,6 +14,7 @@ import { } from "@hooks"; import { formatDisplayDate } from "@utils"; import { ProposalVote } from "@/models"; +import { VoteContextModalState, VotingPowerModalState } from "../organisms"; type VoteActionFormProps = { setIsVoteSubmitted: Dispatch>; @@ -59,9 +60,9 @@ export const VoteActionForm = ({ canVote, } = useVoteActionForm({ previousVote, voteContextHash, voteContextUrl }); - const setVoteContextData = (url: string, hash: string) => { + const setVoteContextData = (url: string, hash: string | null) => { setVoteContextUrl(url); - setVoteContextHash(hash); + setVoteContextHash(hash ?? undefined); }; useEffect(() => { @@ -217,11 +218,11 @@ export const VoteActionForm = ({ openModal({ type: "votingPower", state: { - dRepYesVotes, - dRepNoVotes, - dRepAbstainVotes, + yesVotes: dRepYesVotes, + noVotes: dRepNoVotes, + abstainVotes: dRepAbstainVotes, vote: previousVote?.vote, - }, + } satisfies VotingPowerModalState, }); }} > @@ -309,7 +310,7 @@ export const VoteActionForm = ({ type: "voteContext", state: { onSubmit: setVoteContextData, - }, + } satisfies VoteContextModalState, }); }} sx={{ diff --git a/govtool/frontend/src/components/organisms/VoteContext/VoteContextModal.tsx b/govtool/frontend/src/components/organisms/VoteContext/VoteContextModal.tsx index 9694d7d3d..4ceca049a 100644 --- a/govtool/frontend/src/components/organisms/VoteContext/VoteContextModal.tsx +++ b/govtool/frontend/src/components/organisms/VoteContext/VoteContextModal.tsx @@ -11,7 +11,7 @@ import { } from "@organisms"; import { VoteContextFormValues } from "@hooks"; -type VoteContextModalState = { +export type VoteContextModalState = { onSubmit: (url: string, hash: string | null, voteContextText: string) => void; }; From 0b1ac94422b10dc3f1649e7450fec525b99594ef Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Tue, 10 Sep 2024 15:43:34 +0100 Subject: [PATCH 007/154] change base readme for header image and mainnet launch --- .github/images/cardano-govtool-header.png | Bin 0 -> 102165 bytes CHANGELOG.md | 2 +- README.md | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 .github/images/cardano-govtool-header.png diff --git a/.github/images/cardano-govtool-header.png b/.github/images/cardano-govtool-header.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a7ded9c46b521cd17db270f0733bf94553b719 GIT binary patch literal 102165 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 ^ge^|zt`aYufgY6EGm#5I64q`H4175DC> zX>meR(FVI?7#h~=^;G;0Cs46vYMZS4O@g+-5VXM)(|tOPcyrOAvC&yxkXn`;6(cXO zjI>FXy)q_aYFUTY!}zR{41hsxC;*|VzSaeE5OY?`Xx4LQm0$~cFVD+Z-YaM4svSK5 zT)gYlaH9_vue$3fDWfo6{?=@)3!mgxd0d3Y9rJNhAlK#MOUvWdl$c%4ZTtXN)jWWU zCYys~Mkgr+z}lAE@&iul=W_CG+rqbcmbSPo30tcNI>9#`CD}JE`OjFYizAGc{Fhth zpX9sGQfRE|IDk~hov!tf036vwS~eO~rVrl$u^7q&8+;AFFn5>I(E{c3>FuUy4? zKJ1b!?P7*S`;#nsKmY7DpCZp1e3mhP+$PUzoU_H`;v|P(OK*syI>|j|?sn9b-zP@R z-k*M@5FNv)Di!lX>(unw6sBS2s+F9nRuQL|%^r~|N-N@uRX-c}+ml%FH9L)5)XI$$dD2k~nk8+fmdJWKv}YS^d~o20I6V>ikV!}T zXhHb?2U*0))8r|CK|%Gq-ca&|R$rD@h6g3h7J6#y8H<3aSZGVS$|I&%U~Gk$3ascT z$Co~S`VNbBwS!##wDF8&@h+3|u;XENp?z$( zRRN6K+!jV#2-3~t)SMe(m^?oK-!Fx};U9W5%W)%lnW_R;_o) zq1PI;p&|+p{ce3)Yuryt8a-bL=RDl>`UpOV0!5~Q^+bS&z zd=Q=L$_FUY$}-+PZQP9VT@}C?=1%7K=P+TiRO}SP|D!92?=` z!3231h%U={@@{$R`*VD`2d^vsm-P^rI9%aA>71;1Z`Fq*$LB)04VGw7Rn`znn zpBa$ei4WI1xSI*__HFFAjb&3T`8-_P`4H}qa@j8-vLq|)GRA^SYa;*)J}9C;^vN^o zyOPAuTR34HC5O~6$tHqsxhlE{%w`~=tXf`CwQsor!V;<|jMadg-&Hk>?dcht0!+qg z*CA7$@50Td1ZLv&HZ9+!n7Uo1itLpj=L@%oB_cv}jBpYY<{OfmGp$%LrO8yHSp-U| z6WJl>Vi)M^D*CQfCDS7D)W$RFfaVvR2R!v~)n@4_Dh&Bx9jGS-2w@Caltt7a9VLbjcoa zY$YAbv$V6Qni+AK)WP*4KRCQiUKg>*n_}Gdp_^a4;}-c(Pp3~eev3R(`Xrw_e7VF= zqPc=zDo9dq3;pLe5&g~1r2ecbJFJIgNOgX4n!+6hdL9t+I0D7 z`CrP`W3f(M{7aNhj)m$pacaGOD-PC^Orx>-y{-*HC5o7e#W!}xlW;tcP$|w5@A$yW z9(Ig{V`i(Pr|ZTu-BH(wwv*QJcC;%*s8o$by?Dfx0kCT}q21St=&(FjIH!dryxJ3VagstbufPD5Eia)D8alpJzL$gl;p6G) zt2|jeTzQwL%Ij_N9(TI2S(ZT7lp&V?_EII z(&&HsgCCuq^jGei-mYHwQLaA!>ep8v=B@#9f7lhY8_Z8!)yD)xpA!+Zm8(+U%iuoL z2l~)jR)Ax*l&o?10cugtPJ^Pt0CPUX0VgY}g=x&$zGCUc9ZA@lb*L}>P8ls>EN2*! z1~wTBcpSa(C=BIENQkO+oP^%Up-S~C7UkhwaUbEYSKk8fb^TYv>^Lj(8 zmZu$8(`8fG8`y{*9kyd$MVzgn0MD7uS*_-=P{48nS0>YqeYVx9kebc)4h5eJ>3*y@ z!i9|U^GUoJh`P>9q1DnZ#5j()#tE9&I%Q3z$}q5h(p5#p(2mGusmnJV?_b^eMZGT0 zyeb-v!St2H;`OUsiPS*760eFt!Q(247qb~run#=r%#cw}qj65H9QGln;ETZtgZZjV z_z(p#`sBF}0U&(yJpFLvSr%|chj=ePZ~%f+mwV#R$hML$(TKvr!5?WzEgiKh6f4PA z0jL|9yiMM5@X7_d=je)FzSsWKPp21olKic2$XEXRC+OdLHhuBqHu=k4ZO>yw^|7&a zy{T6~#Hl<5@i1DezzzilL}|EpfDX}j&xJjm2JgobwthDlz7|KvKMy|dm&;h1I%Ul= zH$PQR-d9;$aZ>w`N&OE7F{mB_pS24BRidxfZb$9atvWk?e{ZcPh8xE6k1sY^w-5W3a2OcR*fl zn)Nm10%W4bm^C;PkM?6q&PJG?PXeKYg}lmWXmr71eYJHmy@D_Gb#a0xe{!{5ec%HN zqr14`4w=e*Hg*h2YmvQgOM8>hSbbnpmu*lKqQtZE1#JhbNE@b*yxNZ2C{i*WM{Z{;(TZwAD`GWND?E7tT?5I00Y8zJ`S1%r%mCr}yFcEy3><0W$z{IX63 z9Sa58Uz^F<&3^FH)G7;$wmFmWmmv(dThZ8LWbRwU1y*KM_gl5C3dCO>F7vzAZ38tz zXeQmXTMMZuCt^F^qA8fx3{bXTHL43>&WP$-xn#~NN2&K+QcREW(W{d#4gqzzhon&f zR+Clss$@4TFDf#NGR_Ok2))vqFWwNS%?GLCYP-Mi>oUi?0hIh77j?Rz^d1yfRJf^* zsT&SvP~~Rt-4F2^{l%VVjS1pfhNHb)O(5e(38@`=^r(w#%Mb~mR4(zcg^KSesf%iY zXg#EZzS6!GTGIs%_>jx@+n-)#L8E=}!1NENQ_8<2$rX53UZYERR@cghX_MoHNfd`0sr>uZoPPtPdk3}x8)Xje5&*gHZ0t~zq&>2J1Fc>3Y?E<-^aWf zO8;h*IZl%Sdvl_MktSmjwrQpZwWh{dg-A8zJ>!}AlxkMu6@7?eAqZs=zi4+Xvk+3z zVXt1%*f5EM_g&JF@QOiTbPR@)Mkg1gXIM*ViPMBD8F*gRZXv*_)tR<}qXH`nrah4% zU0^I25wanQN*Og{lR3UI_% z;>SWz-X!wfK^Knt<{^v8u)ASF>939}yjYpI>t?5*(K@kMgK+#}t0Kyw4t+G> zDWQ$yJJ|`h$>R?xb4?0$`NZVbqMdzrg&mUu zica~{AIML?$rbnauwk4($e%tz|2-tskpr%_Uq`-}Pr8Tss4d-*$et>GKS;t^!)Lg( zUDLmL`Cy{?@RsuTkb}r2q&Dx0#)_e|17495WU6peMk@hziW&Dp9fEVj6@7$Iga|a_ zqM8vHl3K2%Zp!t&rm$#H^iyP}=2ex2Kw|0+3&!2bodKn4%ie^)MUD}*A&N>FRkoRk zE5j{y%f3pQqr3s+0oBnctUf9@=W5>4`j2#ZED;+ej5F^?j0ZJWfxX9aE{ZtPo%URC zLR}U}_@~#7J>M;*-3*FLd_SW&v9P#=KJ4Z1NiLG=4uMO^SagLy##E>kSh6`7*U|5L zgGqJZz$Z41&kIytUm#F%`a+&>*;NzQ;aBZp7sN{70}G2L6=C1YRZ1na3GETRE=0Vt z?)0D!r)WVq`t2FZb1AIym5CSCz21d8#{hwnW(yv+&<{l935(ok`IHEEVEmxJ-wv*m z$Wor9+#dh=^zz%c{nKw+6aS*$^}e&G$$ygBd>s$s!_J2}rhB6umdnu$=W-ETsb_aA z*c4m=qQKhZV%69m?^W;Y&R3)BQ$XA{k3K7}<&!Sh7g$5cUCK%9aRAcm2kS@)%(}YQ zu>On@!Pr8S6(j2!;~H7+*YC07lxc*j45Nfz+1^Kt5e9!ApV zYFHQNf+=lu0ZRUSd}^)G{v8%##tYKJgS2ez^Tk7^DsGVua|?+N5VWt#DV->yMy!*e zK`N%_ITh%_QEuZRdU}!dD4r&-a;FD%Y}dDNw*_}Grh|~klaAB#tSEVtE6+N8^+^!}g25yaIJ=ajoJM!TXrOC!FAo{YYmvr06GvKrtC? z$@guAooU%_^kum{bk$c?P@7&p26yJ;U5~^C-G6RXNNjGZD^?xQJElTk zKGcp;iyfFW9}6?WEP)5A8)4=sCXiVdV#+iQ?Xsj}PUftlkMRNAUM9xOHbzsYMs({a z*Dc{#Y_ITGp7c9rwa``=#_q<8-+Ko)Tm`p=Do~*)hzp}T}`-PNL}Bu z3kR4exNZC^ueR$%@DoVnFTeZo^y&BC$HVAYEadwlcl`h22Xfwji-!;5!Gniv;ouP_ z;300#0;)TQ*Jw)Ak2~2}!rsrxPJ!W6x~*2?kcZNR+vJ5(0L9SG!B^b1qT(p8T;6xFL_Nyc z2DxDvlK2TrCmj~;!j*)-ew9{u?)G@6`SR_{>GL0aCi=T+@A5Wzxx?VF2l44q!Ofqr z)9R!%d(utJ9uu$b0@BBRV%Rs4#&nQwzn?b0HA9T+8B>O<%~Of-uEtKq`k*AStgF|7 z)+FAMYgPkaL#xUyvP&m^;}CrxhO^HY*0$_`1`fHbvlEwrvdt!GVAtH06uQFhQmT0! z;1BpgE>uTb%5CA9iZom(1V(@hL=g26vvz&xMr%D6qkKao$ErW%af^Ozr+EvtKE4X0 zRl5s)?(ceDC>@^bg}6I+_&2IF9bs?I<70P86Vop zEb%SR>%pD=3>=;&4>0#%rF^IJZ8AbT{9CRH!2TS4RRM2nymb zwf`iy$>VCf{-!re0N)BkZJ7ZZ&!67}!v1qrcTDoM{#~X`%&8Iy_NrFv+Nqw$i zCZ?v-XP5di=7F?0mJSLP!s%A>xa^AC9Hk@Ni;0t^ylEb9z4>WVw#TjT}051o8cK!55n3vO!m?0 zpOd+tZ}W&KfU+fj-#T5$DFdlO(;9oH=@``e@Ik&Q;GZn+O}(R_yQ+}WBDUQ*aQ&!Ly@SzS?2nss5{lTu!K^m~V{ zvrai2`?>2*xP{tK$aD@A&@^ravlLnw4QQ#N?C@d@)^vkWn^=63-&UWJ#uDjiO*e*3 zx7(D$CB0W6hPJX*QxC{j27dk|r^K8@ zKvF%k14yCSRRCg;seO4#TKE!%g27e9h%7a5aq#t7zW4k3#bY@;irBs|CuI=B=SihS z+meTf#A;2irjXnDe$Iviz0JZ0=xA!a%EJ9s2OAHj!}j6Z52w$6_@j5bXh)8pJ_BBx2S^VDe~pYsG3z0^VkpU32=Jw@#V z)AXJAsKuTr894A+2TL23oLoTBK3A;uJN?wm!FMt20Mv34WNy*E$UDeWqE{~#KD9r# z7YD09&NQMvyXYsi&U?_SAd-z1Y75nZ58C8zYW-3D3Qhu(bSegu?CsEnnhnLmLD-7Z zaN2^V`-XX0G;LUh>*BT&=>oX0Qln;^h_{~NIV-$Z&Ey;yYc9f(z%m=>%x*1BsTo6_ zJ8LV6>x1Z^CptQgutz}zLw?Kr=~b>i%dO-3d4LMw7jkUodcWu89>KOeSZSY3MG+q2 z@tQ&I2`4fJR3J+gfGiv7Oh@aYa@9&-h$A0RoaDiDPhWA%bYP~sl2CfZJru*}kp~RY zMqDJTdR0LYMww!gTDhJZI7$jFCX~ediU}m*m*4p)52BOrv{!0T58$>WxcdAZo@sC= z+ab5f+uC6gVFGby1dWZY>%EUxr1q}%4?kAdJUZtJ5#w6%)esF;E=-?_p9oe^uq;al zqm(%{O{a`P07U{(=@o*4wC2v)qz25cX0sT)5=aW^OaR!Uo7-Mv-xSA?Ly@-aIts;l zdarFfr<9ot#k*AIOj$~jSdz|C_bNF|tvhxaTxB+mpgQJR!+K0~t2OG#(#{jm?>NCF$mtaYis7&D>mC$4R4l^5@zrpp@jS1gats!(xVu}ZKmOk5 zclVQTF5C1Kx5?wHAiG|DPF-AGk6#VgFR*mRg&nB0Bk4ZE`M6&MmqW^O?+s+qtQY>F zH&cN)C}En;zzo=^pEZ5%E^MJsI)=Q4vY#A5Z}1!5a|a?S)v3fIBxP)spLD2MXqg+^ zTqQr-vGSUY)yZfL3wF);CV(?PNw*4D6(r_qrxAP+uE-2?8fBmc>1JutUcZeHEOE)$6bdQE+?hEM`3xXQR$zKv$q$sDNd?r&N!u_Re(*3sSxj zX6MO{?e<6xm#pF>!^&O?17N6Fu0B7@q6P~&HKC1k(AQ0PV56@(j_c%>;rWE{UDtRF z?RbTt=L!A_9rJ{4t`quB7*q{EMkGvq?=?aI>Kz8_-}`k7ccA54iANpE*peSAw-5x4 zKv)&fzHiyojkm*7>TZFjTw57zoe+NF;1>i?hmU{jo70EilJ5-M!S-23^WJWg$2j8y zs$DnTm*hncAik|SQ01z09|7n63>s_)VjNVTiRfW-bOp?OF=WdtW=N-M3uZ+o9yk@* z(xU3TDxl@NZey8_8liFA7}HGYH;m_y>4@@*?uxit1+l~JqPAX^uG%#Pv%xe$+d|_q z#2<*Z>5#MwlS&KnFX#xL8%%8c=o+%o=#?|O@tQ}n3PNybJxD);8lV&7XNO(IJ= z&X-jVt8b5~>fS~gPz;56SrZF|JoG_)fU-DN2~W^}U4OE8`HDM%SVKlee$wW`yl<3q zk?9*UF>nJKrEw7tHFpIbHzha?ygKURH&3T;|HU7jzC$7IWW&|xd%I0O?(lmLvY&G` z2Y%mm^DT7t4npvJ96+{5i6KwGSc}p4>BXKf>4m;aJq}UNa8(PG4vIqN^Cs_Cu_gqm z`!)dc9IMW8=4UQ0OC^%MO1QZpL53MMxVys7EG!kI}CDdd@-$RGMiJbW2d9lyI0z-T(k3M zjvg1T5NrA5C6p0_@Za=y+8^}Szfu^Ztb$-^Kw8Cb>F2W8XId_Y$VcGpu?^m7HAl?94jB#+{1=Bj_mL4Hu-&@CZEj|om^ptMIl&WB5NngcBSn6 z-wF(@TCAC$mg?3p9`(THR~jGbl@&2Qq6Ll zUxa3Q8+pCbo8nkLp;%A(`M2=EIQdi#I&MuHwUfGgyHwBlSyo=O z-2Wg7NA!&E6u@*2gi5x&A11?6;PXk$V@JLg@PwzycWm*Bdo4c&@f9f^nKLiBYSwRk zm=G82z;pqD7snYqTxF+Ecg3B$8043qems5qvrnhzk58vBzog##Z}0Ioc|6DAH+$bE zpHCItS%swV?#p&OXr|r@+}0%Fh-N!5=A;p4vGGy#o?x;QsZt3W!2Wir9q)TwUsjh z6eLyHrmz%9-A_r|@tCC7NV>$!BP73$T9izh6|pKzxX7bb)vCY%72+#m8Ivv&Cv3X_ z!JAFQ1-u(H;k%OBQ_1GE1=rPM3&L&KGS9)0r`Zun?lpu*#CA=XVWsZJPU?pHrIV4A z&Kthlj_<(g;tvV%VQ(n3Ep}q5>Y6Utq84snR~u&uXI`wHGXymc7_ldm(~RDUVh{|O znD%sV#r;d)lf~V_9g$Qw3fX3g%)*L6XMNkv5M&`vDO+l|z7t2;+uN%vyb2uu`J3m{ z=bwFZdj9c;)2C1O`H;5n`#!8;ac{cC{=8)$8BSiE#W^@^-)+$0qm+1unG2y?u^jP6 z^D^jzn^pitwu8)~*LaktDBV548i=gh4dXBhu@k!lOc}gbxuyFfIJ2e=e%`gFDlcfU zv30%i*QUJ+2jV7}wC>c248&z|z(=1gzDmUGtR12{5q8W*_F3R=HQAE_C+VfXT#iOdCfoEA{mad#4}?BQexN91SoF zI>~z+E1EOd3_lERO)mQN3i_mHQtaFx5U z{e?0ZxkBDA8ZDVHE2Y&92V=Y*7ix*6sk|io1Y|JUraZ`$~@mj_FJSm`5`?11C%h>UlXA;v7qD z*#W-S1F5E_58mvCtL=K5y!BNF6YX5FGZ3oLoPF_S$f9SrKFL>^(Mk)CPam-9f*l8I zx8Z6#w-30w{)cjv{gYq0iU12bY{xI^oS$oW{Ui^~{~|wicuyNXtT^WT?O~=#Ipdsk zwS_F_p-&s9HT;?{*a?ukBEQv^LTu?jWLH&z((sXIXBlT5r-+s9nUKSEADR-k=!=0+ z2`z&JZH=hQ7V^b@rOfJ!g{~^)0vkgvLm%=arjio$dXy@*mhI!g?(g37(lS}qzQ9t8 zq{om4V~-^RK)XOuH}QN>hY4+gpTpRkCrg=xp2t#DN-SEPZtL9b0(4bjVbNsRz=omY zd0^8Ah1M5&c{?0~0Vv?t=0tTv$0`+}9ReB~KW>1xXzV^wiLArE`N^r3q03dA|Z znZ(vclJnSSYjro#0E{7pPSsDMn|Ur7L7zU@rVcZZa<>Fs)*R%9nAYsN6;mJ+IKR)% zW0|(CdZtKoJ>r`!CU6)A|g`G?~$gs%nMA@#E`A+~#C!mQ! zvqR)+jT_d^h6oMC84+s?C%KDiu#>gO@n_<#*<`V1-Gx;t-Jq1m$-W0gcMU&aJqT9; z)^PWF5V$ZRS36LQdG})M4~VPJyiI-voo}e4wuRvwg_zOT+vIT|G#8~EPJJ@Dg*(q6 z7DrJZMrq7FFNe0O>4W8fg++SQpd58}Y=TOQB5K#$NFS`1-~K4K#eY6M$>KfVfb&r@ zx~Hq{_-X(u@xvWmamQU1$6Rg4j6yXzN7-7QrJ=uNBmN2o)Zq59y|W6q@xRE>a!#?e zl?_we#b-qcy&?{})B|q77MlE^crXEfJ;k;$<{^bE)-L#7$OJ}=^gR#Ztj06tA#oQw zE@tf;a=j+2K}HvARF+QGjn-9{Ht?uEM~!1u!x{-7fVBMwwGr%sZpq6!cFC#$KFb1p zDToTcq&n+*H#-w+Z+y^ORCdAGEyDW+deqd6{Sn0gX78*wq4bbujo71p^E!H)eC;XQ z(0O%s#^z*6+4x!LuW9xeEm5Xw_P>*t2U{OwAh6hD-{U;Fk9{Y#ilH20t zyX;S&<8AQ~&r!Th{_rP_=Z-Jf#|IVncAGrL`TM?yFHVdMCLZP_=VMM!K-Ns?q9)(M zw_$I=dDy<+3UL0hO)@Pq6OExxbw2Lwr!%N(IJAcXH-u>Wu!qWY^! zL_TY~Xd*wYm((`}|QJ#P_R) z(X!4jShVZnotFS|bGs85+K`DwT&QDFo`|I5ckNy;^TqSV(}?i_t~BU;#Hb_{vM^+R{9 z0&ZZ|k7{c;lk(==*m2STib>`^!-vG<{w(ZB1sDo!@^Gp+!H8bR;|%}Seg*RRz9AzEWofRKl$Qv)o%O#fbVIsD9DxxQX+VVcG#{@$40t`OzVK?&R6WyY zITC+?xjK>~BkMN6P27f5gW=dcK#tS!em|lM6@^o?IUy*# zP>lH`kZ>4LE?VouZX}CYKWlM3dKWo^v{> zWU1>5?~f$b*!Ot3So@T*O_iR%k%!Lxp4<-qW4T>o zV8IR)Ea>o|!9CqJj-2o5g9?uGv3D3?ZgK}G&C?POkzMJARBkNfE3M>?VO{Hh92D0A z_Ck}AyR{j~BoZsPw9yZw2_UQ=EdX~ld z^EU`)Zu^XnAjH*i4=tOE>qsm74BS0Eh!3?K{5)r({5s2xUEVh$-2rU>K-%p_2Re8_ zpRWROPTkkABHIgYQ^hVD>DyQ(70Sw%6(h2BYIN3#(})gsptX>fa%uFfk_ALCJKW~`Z({Bih3=?N$ZKP_>H^PpZFTya4LLElohxO^x zgfWb9V+KgMCtY{Wd}GO7BHZ4B?j9RPkrUW}=Yv~NG1@myW;L+6cjoPW2Cnvywi_=` zDSX@}kDdFi=ZZT3VvS#v#%ky_R+IS1-^8FK*GU zu?yITZ{_cA$YT8`<5$)dqwsQXSD!H^_!+ogd{-#OJ7wXw+t2^CfVf|zW%YABWggp$ z`|YuQ-UWJX+^#RV>loJCsn^~k=-#1fsLTC)!C5dIR)wv?^)ZKaWlRX1fsm~Zl8%Qe zL6-DFgi4IR~)oe(}tsbC;``k`HFLm;lt6*E|<*#`F-n3N-3?e2EH^H+RbTcAGr81NP~N{WG;S zw;iQ%5lUfnoq48sFYM;+NfvPUz51ce6;q!2=8qg)ymL~CoWHrQ3wW*RtK+E*#~TpN ztG$K(>Dlw8!S?h~uB?Ci>=x@kh5?A=_hY- zcJ4cWi!SzLuBEf5udBdnjonoQxCmlv#M@@%R_}{+3XJ`HY|FI}nrGE_6N$YpT!@fq zPmBw_q(n)l9JFy_NTW*+(pm*eLwn)M*cr4E8K44D(u%xJHE&=7GvpYCP2GURkc!l( z4}i37`h710qHWv5!cNSB1tAtnU}Qou0w>rOZFXc@M~P!B+9}Lp+|hkEln;dwb=x%* z6-!=9>y^i%y-~Q52*teUG)X3JDMH6%jC)R`y0_yc%%^qK2s%ETJokINP5#5|gZSP~ zvT&C|%Ayyy%fEe;10}AO<9qBll0b$gJAypRB42NP4+mA4h^;(S4!67G`{_?|3p{Rv zfBGokz&UWkZSvUe>HF=U?(9K)7+-uiQ+k7gZ2!$q{sj2oiJbVVba((94Tbu&ufX3n z`&}p392#cMVQwlXLRu!wojde_=t$4G7|*ZI4{_OAD@0u4lbL5!)U|+yUSPvG2Q>Qh zX<2PL1IvTU#11Q0YJ2F7X$&+y>sl zB^hHg7+0U4UhnKSc`RrqzuW!t;dh=+uRq8FTNdkYtef8IE<9X0$D$sG5xvg}DvjA7OmaJ-Y-2$5u_vP!3xFfoElSoIdZI!hd9jz}>vrG7l8P8FbTXoHT1d^E< zw&Autmu)LHP)?mlmk1S`8k<qnbuR&%L|3f}vC)3O6-{<&;a4vhDd8bWH{#vJc?M!?V8~2q-)?q& zY+vvP+L@_;)7)+H(b3C? zzxjeSx8EW~&b7Dr-ZRGhyYH_((*5GYq8%Spn8yhV(IYFp)%k( z=09Mxi)uTMj<}#AAimiprY;Z-Eswq<-Y)O~B@==n2LK+b7pcGnrpkJrNA5*enQ&H; zp8RpJ;S7%d&43Y+xZ__=KNmb^^<(Qa(7RYmzlcz z2NhhvUt$oC@QLFJk1-?oH+gn4o9swo_R+mWd5hK2xiK?AM(Y3{$hsKCC|J*$s~>Y{ zFtS<|YzwSyd1o$LiEUc61Gwl5%yL$FEJgEd%=?gXWYZTXxY=(G2N9N|bRME?1|K#{ zyN1uDvPrZ>#yDGAkkubR*N7_zHF5TP&Os*n!Ef|hx!+|1ywfDaP#W7#jECA~DqzO$ zG6B@QHuk+Z)oaET{Frk`y9y|IuuV!20%S4r&{NUZRN`?MYH{siEp)f z3~5K7#vY;q+h`m~GO)}?BPbiIr89)-?h%+Vm`c7;VJGUy#b!qi9Ys`?4!yh}iAiIg zlx?6{NB5<#RPCuTYMy*ZQG%(F$Pj(&=;2aJrojP4X*9a5@AU-ojqSSZkvQ`D7k? zhryQ`a2Nlk7w-3Xn>?PNf1aO2>zY4jQNqG~I%l2@aj}kw$z!WLd70b~VgA@26+i`a z3gz<%{hs%MQVG}Wtj+3s$q1MQ?ucL2Eq+hZsgJyDsdS&7E^>Bql)~8Dx5ru^%6USj$!Ac&+DtwG+T|)wL3v4i#gl#aJ89RxJ{nngjBUau(-kNCs(V zvO8Jz>(UsrnGg6#KW>cX#vzT1Yp~ut=X|cAr!iS=cl-6Y*SbaB7yPP}D$2nX5lG2C`FgRD6pdfDJZE! z$FMd|WRSuq8peP)XJ~C~XK?p$akmvPbN()CVDgvWZ$EvN1TU9P z5MMafbr=;?Zg%00+vGpWmDqdwNia!sy$ucVHIP7-b!?kBV%?1%b5 zI%fsqbU&xp4Zd{357^&af&;nTk?QkDc@W>W+vHKLn_akL5sPh?MV*7X`qz7VC>;jm zgN*a^ZSnxXoATnMK$yxm2Sfkn4U>1XjlMS^aZ{3aQ-_&E*6L8Gt+ERI)cqQ8s(lqb z`_APk002M$NklRJGVpVlTO0V$#5LS5yM`9Hu#+8J@piWVtJ6JJ!t zCaO|s=%$irAOL1ey_qiQh4yRmv;|*~Z~+Y4)3d{eF0R@?>5G%)uf)sw+E2qwRGi2t z7&1{jQwRA!wnqidR{>6V>}1~SViHntzNpUQNsf*BlW6{F@*RA(lXQqGEF!PW{V31>L4&RA!zij6;W z-3+c_m%)s7&s7h5YxQW17t_zn&b}0_KOY+9S#(xj%!v@*O2AX5oRpIGt@hzc2-N}K zbpsIkOHeS?46jO;_LdMeRCp!bYlnt>Dr>#;#qEExXn&G(Djd7ef+_#qu?!ysNatCF z!c;#V+0e;x&x_j)JYZvPDXF3(Ug(zX5k9UN)0F#~!@Q5!%wXtuTcm#v^YTd+G`LNk zn<;~`&RT=qIfEK(OE5kUcbmK@=o`QwZl->d3wOLZ;1=q8`Ym%jJs;aWeNeIe4g>5l zvZL?-5O%6S__Gqz*D4?NlKJuB9p!BpHw$mr{xE|J1h(c9a?Yz#-rhdKL@H6QuoIml zI(yAMt%1Dgo6!oW>K>8IL6{sHwn_YC9^^Z~8b68upwLYe&2uK)foI$X2VOTf333p$ zPneyZmTf7X4A!qp)BUm#Y|BjsnRGP-A4fR%lD=M7_g`BC-~OSK^aYVP;B&LI@{Fw5 zr=f4DZod*ko~oEJ4JA<`KEN(4*1f`$U!-dzJbXRz%`f0jSmX;ZWN-4KwFg6-g4aAY zIyHI4mPF}T=Xix%A1~a2T#FehH@jV^%r{%Fiv{inDjzSMpcf13K*!t>3odL8u04M} zfLDTK9&(%f>D7EtQAoL$b(0HsEZVVcx`o<7+{`P!8t}#6RdO>yZwwS4R(!u{p7WsK z_Z&UT;9exb>3(MV8{=)8SNtG`il~j(DJ6F0m=aK^7Z}$-TrjAfaY1;Mx~7q*y~8V8 ziYpI+IyrwTI04am?Fu>-$(T_i`I0E`JW(0@u^5)x5jHqnDs^xo&YH3go>QU`TX469 zvF1GDGYspy(|>NVbc!ULgLU14HEV!Y{&ca977O-d(Vi{TRoB}XnjVA|x6lEB8`}dT z>L}&p8B@9%6`Hs)S+Ie~9B^5PC$K8=-D5c?Aj^DCpATRASKyt^OpFb5HkxFGcWWa% zj0}5r*@KN`MYRmj!EGHZj`G_g2dL}7#Ghexi0W)N-HQxs)Lcm|{ zpf@zGI&=L6CY^PJE4B)!tt?K_+CN>i`-QqZF;-jY=DugR6~>|=6af5(&VD6GF@o<1-Y2wR&xBJi@U-ud|kLpUkqSFJGRzc)w7A$Md&mQJI%?a z!Mv&LW$ZF7`nIN_7P&Hwq-7pzFE4K4?iT4#(=|EHLnRKS^$Prx-cp}mjRzC1_^19I zAfV#bh$kuyP#IppcC5gbf)*yzj**=mYD*~?Y-!&Q2h5}E zwMPPyNE3!am&=>pCZGLYJya%By}5-uzW0nVf7~X|J>Y$|Sh#PyO&)dO&U5Y>iC^n_ za_7{Y+T!ey#@={)#H1Kk8`y3cCP3#(7jy4izHEZCbKYX?POlWADQ*f~q*R&6y?$Ht z?nMwl2~K+cazaxHIH|wbd4Ld~qCYQ~j z$E)XxB@FjqJE@V-xWM#;#X9&Zld%$>eotPkm8aSJBt&QT&0rd`+l{RYjmYb5VK?KO z{vPe6E5MQ75(hDMm+4Y%`M#V zWc7QyO&(9s-@b@7ljUwm9N}s^YD>1IK;kcV$^Og%mo~)M657?;zJuhL0ARi3Jg0W>{vX?t^lBrU&Ws~N#z1iaKE>QwBZx#7kRVW=eBVU`*pV%<9(l=kG;e0X?AZRZRNA|5sVfLWOO&{;@#P` z3U+JBu8cp@sid1vi;7xbK}Lr){i|>s-b1GIxg7ic(-GH-3ghG6v-fDh zz4|!BQJNfGXb!0;ORFgi<_Vrf2uWFHPOtk=i>i|xuhLKK^;+pdF{lK>t8|7K0CW2w z7$ksG@~xi?3}R8;jENqur4LrRVE4Df*RHOYVj@0sXYA}#-fRV!D_99GEMQ?nJlZ$< z0fM@=ZNyU(AzjKeb#}D1Qm+V>{P`w)UVymt!y&!u?ytDZ!|dD@cz0eW%X#O_H^H&Z zVUX4^2W^6SmR{grGl7^N+r|o9x`@{QrWw4k4hNXa?LO_>~o#T)LI>^uG&^1pgh+$MidzgLd|!Kd*1Yyh%5t)<~1@9*RF5R^QX zL!3N7=PI!OJUZKOb6=~ZKr!obSX^gvgfx>y5fj_9RVQu0?(ejlx)`zzZl#$~*0q{t z+8R{mNMhKLd(dy;m1I+kb_0Z5q^lgffR+;q{ocA?sN-%%oMVLVwyUz^*;1@7Dn(ht zO^ib3OTtb{Z^K2nDrY#n*d2i24;>$GsxC}nKm@*5i453PHj86v#jp(8lLrO)(>T$} zAM(Lppyew3E3UfB#TX&weIE;YT!q(;+G`DnNgti!eOCy)z*>v=rWWqF5_?a-WsWy3{AT?x zzh4{1_anz|x9|V80KA2BZ?p7Hb;Fs+V;ii%qh=^r>*R9#OdY5(1A&QkY-vBj1(ui0 zHF|PBXS!k)^G{-q?1Ft$SkSMqSjUREi;bYSY?;0Lupp_#82Sd&qNBa>icSnu#zYU* z+RD{lX}M?*x5dko)xcjI(h+MRUa+d06_OTg-Pliz!K6YWSagc!3oS4N&nwf0E%`+= zGJ`T19uj=iN#iXkd3}?P)>YV8m#c-m;Ct|IvUt~r=Ap$^c<@CT3wmh6jtlsPC-3n3 z85r{IC=%$3YKbCTBfTu5}c74vWx?6 zRxh>jhMB02Ark9rVF!j)022Gsk^~!DI9JI9LCD!J!1%9!a-|&?rKIyLwSSexJ6g!} zD!eY>;mg@JKj`y*OYSwm(HDtfk>n^wroUTk8E!rwa`B^o%N00m){GSe`@`&p+vN3O zAu|AUd?j`0P2s~wxlMlMyWJDVn44L+<7eQo-P0BKPm=S!eZL)_vWGW+H{=^%v7>XR z2UOlC{KVcv(?>g40XrUprdOvvpUbgtL5;Zbsm?xIQ{#lS*mWS?xV4Hf4Zk#Oxp5gR zZCaVFz2do?qw$~s=JzUu?+%&Ogx z4vX*!@(!Jt-VR^~K`e@Wke_!Ad#yz*OzZ+{XlO>~^bVz&yG?#5E2F$azy@uK)Z64s zSKNV?4M5gi^LH}~cl-<-ZlT_HQMXo}%gS-}`B%TbYz*i0j_Lj{%>fLmvL#YhqpVA@bp43}8vVm9 z*+OH%&P6+Am}BxkZd!DGRGQ&AQWuM=>@8Zsc$rm!Ro>6MN1v;diyM&1J(#i} zuFAb)!FItC2I{u-W0)?iM8&f-4(}~AisyTvQDbd|ev`2Pjk_T5p+0Vz8izvLb?B+l$VfSS3=uO}@3D z$#SWMT}byP7Vh}oGY;C{-O+cwafbnZ5)D@f?q$OV75jg`oz*K9lDxv6L9=UY5iUc& z#`x|crfmbTm~ob|4SK!$z_dtoq7hgj_ z#~0uF<#+%}k#M0#biwD7|Me&2`~n^y^edQ$L=T&?9Xa(1dmGmjNWo}pTm{GnYnKWf zG1|KXCLo1bQ(#rST}^5dv>te?kq!u$RH+b@4Zt0xireH@Kd3;wr94bf1(lmvxMM+w z?YKpq!@s6i++lEcPm`B7Wc|6rLk5C7N4{f|e~8oLKoNGH%5mNv$VmmZ6@D?}at8a` z+$V$2?Q-)tcgso42TdA>%*rbf~(Mr{J6&>AaGbSMKUwA$+n zeWQcg%fGMEN>`p6D7Vey3cS009zP}bjQi+yb9YFr&nd5d=7#B>+3myKY6UodRuwOx z@P1|ue#?C9XW)9u?T!&q^P0vI2P;`#fB7zkSEcei3W`k4Pl=mYxPO+PM8l%}-mX4> zxAIJb!tmZK3!k3r3Dw~lyq|+%IQc=%xMLq)zk7DDbCG+dB6Nn`E)9BIE&MEC7L3i4 zLE{2!Ex@k)%W;(;Bd=^zN+{YCq)j38`~4*7z#TBHhf$X#{*n$H_XjZJLEX_!;+vf` z`BfiYU9ZdvjVtZ$mUuaDz*Tp@U{|#idO7z@>bO-?5yidy=>X|+to zWeT;kJrIu&V(CGIa@BoVP{NPAvQ0abf=vWmm^MTU-6EsluBcZpOrky>PhS9a+_rt) zE(u#Z`66kM6qLa$I`Co{6H1Owi>kvx#6`*2gKug@pP*n3dQXqN(u8Zn8S{AU6Ul`^Z4W zUcI7~%d)R>KXts)4xZCj9hw3d3~6&8o~`0QC&nIxyc~c&TvXl>n7JYWg29qt0GUJ= z=K^z|Wj-ZA|fQxkM>y%?QD>Ct&qpt}Ng!gd?2D~`a{Ci}XV zLp0vxmhq?6@4(uiL60PSNZ8vzahv=PvkzsIH3z!QW{h&t_ z7lMNE46A{wt`V{jxI67l7wxhXG`GpaWs;TPDP#+maRQUHZ7m-P9!ncFFjm12jL`80 zfp38ev{$#1c)i$gJ)XHX?u2w{RNG``P>Iv7?@hMRXT^y=4PI;DtQ1~ebS$lF`dxrK zU5GK}hy%7*xa;@dv3M6*di7lx#6w(Au>CR%nvd;Kfy-AQo2!=(XfOgiUHymF&tqYS z%(uc$nyXxCUvHD=ce4(P@v0Z@xa;YojQKq+VtI$bJ>4dcF+R^774~3|9}V;VL3>;R z+v5{Dr2|_6bYq=c$!Wgs)sd|V%0rk$u%T>4x7;0Y=F3md(CS$*O0B@&bg-0S#NC7o*7Sdm!*>0jFqSEmo+yUOMgZv zq)t(UAcQ+dlEpiogTwE#o7gzD140!+E{I{drAW0Yg?PMumOe z*el*XeA?k>?<&}yebozhE@IEKsB0JMTvGfD+!r|kxu*@cw*BVt@3-d_myK?O`h{jeGys@EGj2Dxqbb|&6-LITZI3NXuSk?fQdr?7TVyqQSTD|K+TJYQg zUUHCg3;g!GG_uJ8-r9pDx*-nqAKRk>Qx(W3mVgvkQ_weTgsac>+vKtHt!0q9+sm$l9JBb!<=Wp^qaBw z?7~IQv2jnI?*i+fqMc#LyUL%WCqd~-2f=Z|Bnn-SR%tlRZUc!c)6Kdej3U3t3?_ys zI*MIBP{r6z5lI*9wYFWVAO1C`~X4)-?AIzp1{ws#Z5Dk zE_kG)6jabw0v`xCypc?e?d+NEHhGCRfAiR_pbqG27w$N) z;uh+AdPtkz)+OU|Prp~McNm=QYJ2SfP~&&*Z8%T^;<0sB;F^myAKMY{*NdsOU=&JT zNTD7Zlqn@$04TWGjYYQrthqLM8?qw=56Bc(EouRj4ZC5>=KFJPExXanITv#~_=Kbt zvbvT~(PGi=7VcQIJ6;IQ25#vbTx7(gC{!X4l$fcxkS!R|$Wm5KXzd~fqmzdVSO8)h^tz zXvcQ`Td1AiOT6CWZSwf3zwbwXHDP*icotw=fIZ%|r%U=UyuJ!>dUr)eWwfNb4EIxl z+qG@r1R%oU&HgsGm;>YQ%w=gvfPGrvmqOXWZwo?)U;Oe)yIZ)sMLSk!UDE?`dncL# zUX<{Sr%|X{nvgApO>H$PzA$0wtnJi^1$`&XN@oZ-VoaJvfIFu4tli#kGS#^zL1(_w zE|N0Fdd8jcHV%2}uM>+JC%q@^n3Golp| z7PN+H-tRD{3ScVcE-v@#{K=Jg`f7~`NSK$ExKN%EJ9_^z7a}~gZJJ+OwuPfZ%opdFqxeB>b z#I>;Tur6$OeZ^fqQn;t9?YK=I)AOD_sKCPq&y#Oy$G3Z7Nv^x#*b87R?5Z`Cck;dJ z>lze>igOJCcgIj2#j2niT4%_ja>TU)@;r3b6)rg5AQ4)S{q*a|A z0WoBNToASfDqJuYCaVnZn2XnzK2$@R444e*C-N*K`M5)&Rh>4$nXwEC(L$6HsznySOKe(J`b-13bKF$BdaMQ(r~$;+{v~pNAmD)%hgR=#_T?z^S%d zzAK?V9xsmyj8_0NjT44xKMEpbo=%si`LcOtB+OKLS5w*cib|L zH?VtJxMLA}Z%>o|B;$O!I}8pwc&x!fKD137X(mjDLVEAYtl#ih9aosOX%)_5eF)3Y zkrcQ_qGz!l83$Z%w5cSOLhy60|NtSs=Dn&AZ@p z;pnlXYRzi2e_q>C%+;_;=!NZ4eZgTsFfp`}@}i4m8Q6$ulsp(Y3+xm!e0=~RM?7Z* z4Au%>@xhPtDiXPSH_%wQn_K4*bIZR&f4n{_P^y5P^d)1(t1gATvA}8} zEDjD$HlV@~Sxp2pm)$yi%o~yAe#bsMOLI0i}#D{91_qXbKP~~3F{sH3- z7o}qpT_-N7SQ1i}7~EjzhVmE;wKQsH9iT!01(t*aE|O!*D1E}ZN+R#NT1Lzk(dm`R z%2+YWb7X;-X18_QWrC|VS@K!egu28w!Z1@TFVL$&1kGter=x_(EA9GSWj;ARM>X*z z(-`*9g`6~PRp8~8r&tgg&`^z>4?_o3k`T7pikl}5+WIS4RK)7HAX|+`6yo9?+OidJ za<&H zyaUI8(eBYcD$rd4&R@>HZo_w_`1UN{^?vP^aL3i>d%D_=+vHzl+<$Slr>nOo#W|#SDBXE~<}W{x=KY(+@}l2q*S=gM^?a3?V`Q*1 z@Q9k5(`Qdw;7CI|BQXMt01ftyWpZ^oqEHi@q7O2usC|R0P_}RB=!aBITH`xACv~p~ zK&ZBXn&qK0hV|C_u!_Qpc%DKGy2%pS*H>9ogbZ}hQ|0iYhc@=Sj#H2Ldi7nqj;DQm ziXrDD{F-Vw#t`e#J}NL&0ZcwW=Z5U4Z0#*g`AA!{ukl;hoi^2Tj2`!nSF5Mi#`3tCHea{ynC4xW3iOZzj#z&rk(u!vfNgRAFyR#IKzyTjDY6)! z29qT|6JVBS+1IF_ihky+6>d3>)Iz<;iyqSD1&emj_B-u7+*?bv1H%(mM`=0-mNiUh zBLPX9M8|hZ_hyU8AOtJ&0H?4*V4231Ap0f>B40=7$t6R8#_7UCHZSs=yJ>6k|d5Skn`-U0j?hwI=4nX-^pYKEH zXHhmOgfj~`CO>b_64X{F40Twkk@d4Fs3K3_@+iFpdsWeuFXvSFLPTv#cg^Tw1 z^mscx3UPTB-%}C|;8r6s64cIgnD%Pj1|~5>rzauk7#I2h6byZ^E%=s9V=4Hjt2JBd6(AOQ6?K@u2Z9bUH8y$SQ`+M- zZZENbB{~CA7308=F4jz+{|XeY96tfn=6k zVSINGk{;~zc9u%AW?!pl1h($Xp?8&pyG_3Keg3tOd9Yd2OXXL!aL4za@9{Qy++DyE z)O2{>XAd7#e3|}0P9{3%x*i~;!xrVz9sLIO_IEk79GELkt`;Kr7o9e>z}mG8Ay>`I zf?((2^FG)tN#3?2+DYmILK7Bs+7SlZom_2!VQqRad`g*W9G|j0Q}5}Tpi<1}s}0ku z*G7Rf^Ew?~NEl({u3l#+1p|-Hg85suS zvju@lPknOewLV?9u&wW!p6b-T?sR7ttW8Drygl3ZwzFr{PoB>iybnz2ts zZ|?NL6u;7VO7%4od3lABUvIeE?4RU(6#5QKUmY3!kWvuoSUGs?Tbed`+oQ9^W)wfy zNB<@^6#Zs`y@`r;2Z^iCt2^fk8uytMwW|^9ZSphU?OvOslrIZ%RSS1KSsmM5-6k)0 zSlrvw!x{brXO}?@K^^1WqBT*th%%PBn)E?F($bUr|v!0BKoRp zM@h7cyiuw_91i37)7zIlO`pJW-%VC!W%ID_TE9>ylZG>`b2eicZAutAktKe= zwdxbJyi!Y-czH{VHCxparIH@Y8DxQo-XaT>_saKZ;ZPo>j4Wb|QamOwzBT)(FHvYf zVK!;Vx=@#}blonXZ?7&|y@ei&cNo#M^g+d@+vH2{(s)PayK++XZ97H+_2{fr;09{l3UQA&jFk$t#f{()8{@Mr={B&D z@}^J2I)rTG(&LYLNvpdx`>+LFf(MU!Xh{pHTZubzwK_^~Q0p(o`| zI$2nPgG0JL)f>0O%U`l+U-)qhyrv?5{no!fIJwu*#&Htw_C3SWRN@?BOMY+b-A8o+ zD!qS2g_O$bwt!2un?1EHxjvYe5rYsUsYvCkBt%MiTP&d326pLee@~I?R}r8pcV1ev6*6eHs1)7 zwSbD!mf`IJXagq~HEbH993|@)V#_o(bxmOI0~;{Ld>V)}6v9*$Qg!XoJzF1*TcqQ* zWGs^0)y{Behac~QE|G%Lrga<#9P}81@kf@nRIJGpW#8%1&2--6DQNmEI_1-83Ec3Y z+t`3Ib8f75z+J(IO3+28XIo%)=9*z^naJ~)+6Y_=(YjACh$Ss*7BGYk-?I-)qbwxm zp?<@g4yl(L>{aS@gPA-+-njyJNZZp7y^C1CKQV@^OZHHEiMjbC zS0Z0WZ<8O&s;GQb3-^1wO&(XDzngicL2)RrpNYFF!im{bxB`F;4T1C>`4W4qMzZZi z^VkOQu-;GsKb|@%RzE(z>E#tR+((yEPpBT@9vfKU;ijYPPHfxqje6M1c=`J8v zaaY`C_|x4iFxSOvUtaK=L8PH{zy$kJO}sr0-Qm__zi8Kow?Xc87zn#K-YYFHY!Mu2 z`y1Wh>Bd0VW^C;$kQbn#ZqA3y^78i_*r{A%G#E-!rmMUNl6B!B`ggs>!o=86W^FraQjB@wmsTe1YC(xE-to7rwE*qf=+@w&+k5U9tnIVmgT|XDi-co(Bb>-zZx0ynf$NF28(tKx899) zMR6S&3UZ!*nmi(tisd^j7w|Ul!R~~t}D9t8%<-5G(-o~W5YoorVRF-%p;~V zU+6|Xo8YM(%h@zRkf~WQ>=a{Zkjje?!%T;{^wkE+^s{c;wjiawNsxyz?YOYo0 zg=pAk>NzAnRw-gxW1!?pS)X0Mo=)6Q#s|qISP0N>swXdj1%~e!Qnl@E^J)jxVCd-A z5RA8$0PwW=XAA=V)6n~GHpFJzQtr{Q_AULE%wp8&t@btCL-;op>>(An2O<%7#rEZni6!?tZv=P+*N^>Lg0hLOSnBD}j|Vq-7%t5G^FaPB97k~C=SCz?s^q>5_)4%;k|4xYMKlu0l{nO8X{`1f;5#N6M?dc!< zxBu|;lW%`g60h@guCJ>>V?ebJu&6cvZmRK_-M9$9%B(CNXvgqOF&s$&6}S=iN5KRea{|@lGppO0iSgA8jqW|3J7l{KKCpJT$Tt@4v||piu{@>eq#4Ol z=y8^USTRkL?={wq3QCq%$;u7ikg8F|a`qJ4aLI!P;n+H>bbk+5o+-4g1+#piQEN@# z^I3bVX5+H_gjOG2n$gV0m6@tYUJ^E#V6YXMdJ3u?r(;M_a&te)Em3fFz|Rz>4shii zPMk7L)Ys$Xf)z++#RcQIFV}jTJRZ_Eym6-;HoUxn-eGX$L)j`v6=7e+!W};YcaINg z`@Z+{RC~a-^gbRBM?r0FFzmzYk~#R_|LH%yxkVzBooNV8XiCO`HXlrC3{jxoNKq2};MF^f=0486&KgnP` zi-No5KHAaMqdj*8!b~`~Klye%2WjeDMzT_=qXD)iuB-yeoTbw{7NNxK$L z|IhzB?YZuAK!U~GZ~YDTkhXidRUS{z|Mr{H>HquHK%s726%QZ88y`NPncujB10kRI zd7nD--nLoVSO<|dm=1c{N&S2Q|C|5Xzkd4pU;p(^aqk23v!DI!^gsWv|BHhC{I7q0 z`ZpxT-tF6;{N(hH|HuE~^s~S9vtE-9z4CbINq?{O zrmK!z+&xe8?}A!UDvSGa)EN6zn|Uu{07GzjhM@~}IsUt=?dg?v=vaGa<8)9-hDR)| zu5`e+cFIp)jE0XV=m#P(nCf`wU~9*nu?Kg72F(#d&Tk)oEN^6A z<%#lZIoq*e{Vb2=>>LYkdhsjnyiNX|p018N48Gv^M($|C8{Ix%g}}_^4qyvtc{LrY zKSB$3b-ya@guu3Z8(W88nhu(EAm6mgU;NphFBa|lE_mn4^B?}b|2P=_Be~i>vi;(p z|MSy-@%R7!=^y+z|8T@C)$N_`S2&*-x=wj^((G1xGfBZ)FPk?xLg~R;1JW`+H&Er zRNa(^9vsPk#GMKkcx0%WH&vTLtP~Rz@NSC~IjgOhXqiPZgcyj3nz5Xq#4Pa|K_u$v zAO$jgI_v^wnW1pJf;Q4kbaG?gPjmn*Ti~gVo3qNNz_;Onb##aT@SS&Qn_o*%FYOoI zUj$B}+o})g-B)1iEE%o?g(s4quY{|^cy^P=IIm&JGPIBZTW!L@aja9W~;b2sDLZk z|0MffJ8m)myMO%0Q`yvqkb^u9`&WPYm#6AhK?hv7no38mTifj5=vEs^Znn7m_drd4P-wt)+n=x@5(yY-G-c&yvd|iAlr(u-gJJ zGeoRB4N#H1gvGm!v*gAC$C-<5I7s0Z>U+BSjIRb@9Pa7&>bE~lo>SBuEXdMohR(hO z-%WGWB#fk!Ynnbr9e;z{q}iaCt5^R=fBL7%)%HJ-+tdH8Kl-DoxF<%T%g=xQpZ;fE zdL^a*>QDZp#2(`vl~`94z59U!BiEeoobbSwmDt1EpgE}5%> z*9&816#-DeQS2bso>~SRi3Q={?^Wg~zy600qtM5PR7t#Q-G1RzhZbqJZOe!BJ}VIC z<>m4>G2Gi^eU=X@-ew-e$I&viBdgX{R4=-4=WX)8*;0dA!dJ?_w+|{X3>fEqKB%y> zm^9u(N$)u5YX>8^eQal`0Is&

%e`mG+;=_rpiG17?bbfGh2Yb9Vcyzx=DyU;O!> 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 - +

@@ -24,7 +24,7 @@ The Cardano GovTool enables ada holders to experience the governance features de #### Mainnet -- _Coming soon_ +- [gov.tools](https://gov.tools/) #### SanchoNet From 3f5b8d156ec5f54c749abdd4bd2a7da116a03457 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Fri, 6 Sep 2024 21:37:02 +0100 Subject: [PATCH 008/154] fix terms and conditions link --- govtool/frontend/src/components/organisms/Footer.tsx | 2 +- govtool/frontend/src/i18n/locales/en.ts | 2 +- tests/govtool-frontend/playwright/lib/constants/docsUrl.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/govtool/frontend/src/components/organisms/Footer.tsx b/govtool/frontend/src/components/organisms/Footer.tsx index d758cbd0f..c6a3bead3 100644 --- a/govtool/frontend/src/components/organisms/Footer.tsx +++ b/govtool/frontend/src/components/organisms/Footer.tsx @@ -41,7 +41,7 @@ export const Footer = () => { openInNewTab("https://docs.gov.tools/legal/privacy-policy"); const onClickTermOfService = () => - openInNewTab("https://docs.gov.tools/legal/terms-and-conditions"); + openInNewTab("https://docs.intersectmbo.org/legal/policies-and-conditions/terms-of-use"); const onClickFeedback = () => openFeedbackWindow(); diff --git a/govtool/frontend/src/i18n/locales/en.ts b/govtool/frontend/src/i18n/locales/en.ts index 1ec149052..033b583dc 100644 --- a/govtool/frontend/src/i18n/locales/en.ts +++ b/govtool/frontend/src/i18n/locales/en.ts @@ -350,7 +350,7 @@ export const en = { footer: { copyright: "© 2024 Intersect MBO", privacyPolicy: "Privacy policy", - termOfService: "Terms and Conditions", + termOfService: "Terms of Use", }, forms: { link: "Link", diff --git a/tests/govtool-frontend/playwright/lib/constants/docsUrl.ts b/tests/govtool-frontend/playwright/lib/constants/docsUrl.ts index 9a589861a..b76f8893f 100644 --- a/tests/govtool-frontend/playwright/lib/constants/docsUrl.ts +++ b/tests/govtool-frontend/playwright/lib/constants/docsUrl.ts @@ -10,6 +10,6 @@ export const SIGNAL_NO_CONFIDENCE_VOTE_DOC_URL = `${environments.docsUrl}/using- export const FAQS_DOC_URL = `${environments.docsUrl}/faqs`; export const GUIDES_DOC_URL = `${environments.docsUrl}`; export const PRIVACY_POLICY = `${environments.docsUrl}/legal/privacy-policy`; -export const TERMS_AND_CONDITIONS = `${environments.docsUrl}/legal/terms-and-conditions`; +export const TERMS_AND_CONDITIONS = `https://docs.intersectmbo.org/legal/policies-and-conditions/terms-of-use`; export const HELP_DOC_URL = `${environments.docsUrl}/support/get-help-in-discord`; export const BOOTSTRAP_DOC_URL = `${environments.docsUrl}/about/bootstrapping-phase`; From 3856733f91744e16c1f4209b9fdd12c6ac908c34 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Fri, 6 Sep 2024 21:39:47 +0100 Subject: [PATCH 009/154] fix: broken terms and conditions link --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 382912734..e6bbce6f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ changes. ### Fixed -- +- Fixed terms and conditions link [Issue 1968](https://github.com/IntersectMBO/govtool/issues/1968) ### Changed From 5cb570e1b07ba1b55699ec5fc17317d0d68912f6 Mon Sep 17 00:00:00 2001 From: Joanna Dyczka Date: Wed, 11 Sep 2024 16:54:29 +0200 Subject: [PATCH 010/154] fix failing storybook test --- govtool/frontend/src/stories/Footer.stories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/govtool/frontend/src/stories/Footer.stories.ts b/govtool/frontend/src/stories/Footer.stories.ts index 9d93a2489..5b2d604cf 100644 --- a/govtool/frontend/src/stories/Footer.stories.ts +++ b/govtool/frontend/src/stories/Footer.stories.ts @@ -27,7 +27,7 @@ export const FooterComponent: Story = { await expect(window.open).toHaveBeenCalledTimes(1); await userEvent.click( - canvas.getByTestId("terms-and-conditions-footer-link"), + canvas.getByTestId("terms-of-use-footer-link"), ); await expect(window.open).toHaveBeenCalledTimes(2); From 823ca6f2afccc8bec01fef8a606bf7a29df30e19 Mon Sep 17 00:00:00 2001 From: Joanna Dyczka Date: Wed, 11 Sep 2024 17:48:43 +0200 Subject: [PATCH 011/154] [#1817] add Matomo Analytics script --- CHANGELOG.md | 2 +- govtool/frontend/index.html | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6bbce6f2..f5c64e0d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ changes. ### Added -- +- Add script for Matomo Analytics [Issue 1817](https://github.com/IntersectMBO/govtool/issues/1817) ### Fixed diff --git a/govtool/frontend/index.html b/govtool/frontend/index.html index 8032b4a36..cb8734a1b 100644 --- a/govtool/frontend/index.html +++ b/govtool/frontend/index.html @@ -24,6 +24,21 @@ +

From aead00dd79999df8ffab84dbfb57af7b187c271f Mon Sep 17 00:00:00 2001 From: Joanna Dyczka Date: Wed, 11 Sep 2024 16:39:13 +0200 Subject: [PATCH 012/154] chore / bump pdf-ui to v0.3.9 --- CHANGELOG.md | 2 +- govtool/frontend/package-lock.json | 8 ++++---- govtool/frontend/package.json | 2 +- govtool/frontend/yarn.lock | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6bbce6f2..052bc0dd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ changes. ### Changed -- +- Bump @intersect.mbo/pdf-ui to v0.3.9 ### Removed diff --git a/govtool/frontend/package-lock.json b/govtool/frontend/package-lock.json index fdb9a75d1..9fd6038bc 100644 --- a/govtool/frontend/package-lock.json +++ b/govtool/frontend/package-lock.json @@ -14,7 +14,7 @@ "@emurgo/cardano-serialization-lib-asmjs": "12.0.0-beta.2", "@hookform/resolvers": "^3.3.1", "@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8", - "@intersect.mbo/pdf-ui": "^0.3.8", + "@intersect.mbo/pdf-ui": "^0.3.9", "@mui/icons-material": "^5.14.3", "@mui/material": "^5.14.4", "@rollup/plugin-babel": "^6.0.4", @@ -3551,9 +3551,9 @@ "license": "ISC" }, "node_modules/@intersect.mbo/pdf-ui": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@intersect.mbo/pdf-ui/-/pdf-ui-0.3.8.tgz", - "integrity": "sha512-eI8Uo2b6Byi7kQKOYA7TGCj3h96P4WP+kv0ZHKCPs/yVR6w1IGQHrXmBM9B0SlXh/gAQvW/kzTeZyL+nnL5ZOg==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@intersect.mbo/pdf-ui/-/pdf-ui-0.3.9.tgz", + "integrity": "sha512-KL2bd3Q7EuG0iYCdw19k8uABfr0NYmEaFkgwiXxNOAubGmUeZW/uognbfSl5hWdJIbJ3XZ68GCIW1JhrskgCHg==", "dependencies": { "@emurgo/cardano-serialization-lib-asmjs": "^12.0.0-beta.2", "@fontsource/poppins": "^5.0.14", diff --git a/govtool/frontend/package.json b/govtool/frontend/package.json index 541024da5..da61b73f8 100644 --- a/govtool/frontend/package.json +++ b/govtool/frontend/package.json @@ -28,7 +28,7 @@ "@emurgo/cardano-serialization-lib-asmjs": "12.0.0-beta.2", "@hookform/resolvers": "^3.3.1", "@intersect.mbo/intersectmbo.org-icons-set": "^1.0.8", - "@intersect.mbo/pdf-ui": "^0.3.8", + "@intersect.mbo/pdf-ui": "^0.3.9", "@mui/icons-material": "^5.14.3", "@mui/material": "^5.14.4", "@rollup/plugin-babel": "^6.0.4", diff --git a/govtool/frontend/yarn.lock b/govtool/frontend/yarn.lock index 0b29b8e72..913850445 100644 --- a/govtool/frontend/yarn.lock +++ b/govtool/frontend/yarn.lock @@ -1693,10 +1693,10 @@ resolved "https://registry.npmjs.org/@intersect.mbo/intersectmbo.org-icons-set/-/intersectmbo.org-icons-set-1.1.0.tgz" integrity sha512-sjKEtnK9eLYH/8kCD0YRQCms3byFA/tnSsei9NHTZbBYX9sBpeX6ErfR0sKYjOSxQOxl4FumX9D0X+vHIqxo8g== -"@intersect.mbo/pdf-ui@^0.3.8": - version "0.3.8" - resolved "https://registry.npmjs.org/@intersect.mbo/pdf-ui/-/pdf-ui-0.3.8.tgz" - integrity sha512-eI8Uo2b6Byi7kQKOYA7TGCj3h96P4WP+kv0ZHKCPs/yVR6w1IGQHrXmBM9B0SlXh/gAQvW/kzTeZyL+nnL5ZOg== +"@intersect.mbo/pdf-ui@^0.3.9": + version "0.3.9" + resolved "https://registry.npmjs.org/@intersect.mbo/pdf-ui/-/pdf-ui-0.3.9.tgz" + integrity sha512-KL2bd3Q7EuG0iYCdw19k8uABfr0NYmEaFkgwiXxNOAubGmUeZW/uognbfSl5hWdJIbJ3XZ68GCIW1JhrskgCHg== dependencies: "@emurgo/cardano-serialization-lib-asmjs" "^12.0.0-beta.2" "@fontsource/poppins" "^5.0.14" From eaa03dfe5d0724ce6f997e13386c1cc3325cae6d Mon Sep 17 00:00:00 2001 From: Joanna Dyczka Date: Wed, 11 Sep 2024 19:01:35 +0200 Subject: [PATCH 013/154] [#1941] show all kinds of votes in the modal showing vote numbers --- CHANGELOG.md | 2 +- .../components/atoms/modal/ModalWrapper.tsx | 2 + .../GovernanceActionDetailsCardVotes.tsx | 35 +------ .../components/molecules/VoteActionForm.tsx | 25 ++--- .../components/molecules/VotesSubmitted.tsx | 31 +++--- .../organisms/Modal/SubmittedVotesModal.tsx | 31 ++++++ .../organisms/Modal/VotingPowerModal.tsx | 99 ------------------- .../src/components/organisms/Modal/index.ts | 2 +- govtool/frontend/src/context/modal.tsx | 8 +- govtool/frontend/src/models/api.ts | 23 +++-- ...es.tsx => SubmittedVotesModal.stories.tsx} | 44 ++++----- 11 files changed, 99 insertions(+), 203 deletions(-) create mode 100644 govtool/frontend/src/components/organisms/Modal/SubmittedVotesModal.tsx delete mode 100644 govtool/frontend/src/components/organisms/Modal/VotingPowerModal.tsx rename govtool/frontend/src/stories/modals/{VotingPowerModal.stories.tsx => SubmittedVotesModal.stories.tsx} (65%) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6bbce6f2..3e6a5106b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ changes. ### Fixed +- Correctly show all kinds of votes in the modal showing vote numbers [Issue 1941](https://github.com/IntersectMBO/govtool/issues/1941) - Fixed terms and conditions link [Issue 1968](https://github.com/IntersectMBO/govtool/issues/1968) ### Changed @@ -36,7 +37,6 @@ changes. - Make testIds for link and identity references in drep form unique [Issue 1928](https://github.com/IntersectMBO/govtool/issues/1928) - Fix saving the Do Not List checkbox value on DRep registration [Issue 1940](https://github.com/IntersectMBO/govtool/issues/1940) -- Fix passing DRep votes to the modal showing vote numbers [Issue 1941](https://github.com/IntersectMBO/govtool/issues/1941) ### Changed diff --git a/govtool/frontend/src/components/atoms/modal/ModalWrapper.tsx b/govtool/frontend/src/components/atoms/modal/ModalWrapper.tsx index 807cded95..772063fc5 100644 --- a/govtool/frontend/src/components/atoms/modal/ModalWrapper.tsx +++ b/govtool/frontend/src/components/atoms/modal/ModalWrapper.tsx @@ -32,6 +32,8 @@ export const BaseWrapper = styled("div")>` width: 80vw; max-width: 510px; padding: 52px 24px 34px 24px; + max-height: 80vh; + overflow: auto; `; } if (variant === "popup") { diff --git a/govtool/frontend/src/components/molecules/GovernanceActionDetailsCardVotes.tsx b/govtool/frontend/src/components/molecules/GovernanceActionDetailsCardVotes.tsx index f56c6d8d9..985b0c3da 100644 --- a/govtool/frontend/src/components/molecules/GovernanceActionDetailsCardVotes.tsx +++ b/govtool/frontend/src/components/molecules/GovernanceActionDetailsCardVotes.tsx @@ -23,20 +23,7 @@ export const GovernanceActionDetailsCardVotes = ({ vote, isDashboard, isInProgress, - proposal: { - dRepAbstainVotes, - dRepNoVotes, - dRepYesVotes, - poolAbstainVotes, - poolNoVotes, - poolYesVotes, - ccAbstainVotes, - ccNoVotes, - ccYesVotes, - expiryDate, - expiryEpochNo, - type, - }, + proposal, }: GovernanceActionCardVotesProps) => { const { isVotingOnGovernanceActionEnabled } = useFeatureFlag(); const { screenWidth } = useScreenDimension(); @@ -52,29 +39,15 @@ export const GovernanceActionDetailsCardVotes = ({ p: `40px ${isModifiedPadding ? "24px" : "80px"}`, }} > - {isVoter && isVotingOnGovernanceActionEnabled(type) ? ( + {isVoter && isVotingOnGovernanceActionEnabled(proposal.type) ? ( ) : ( - + )} ); diff --git a/govtool/frontend/src/components/molecules/VoteActionForm.tsx b/govtool/frontend/src/components/molecules/VoteActionForm.tsx index d0f6fb4ed..79e13120b 100644 --- a/govtool/frontend/src/components/molecules/VoteActionForm.tsx +++ b/govtool/frontend/src/components/molecules/VoteActionForm.tsx @@ -13,29 +13,22 @@ import { useGetVoteContextTextFromFile, } from "@hooks"; import { formatDisplayDate } from "@utils"; -import { ProposalVote } from "@/models"; -import { VoteContextModalState, VotingPowerModalState } from "../organisms"; +import { ProposalData, ProposalVote } from "@/models"; +import { VoteContextModalState, SubmittedVotesModalState } from "../organisms"; type VoteActionFormProps = { setIsVoteSubmitted: Dispatch>; - expiryDate: string | undefined; - expiryEpochNo: number | undefined; isInProgress?: boolean; previousVote?: ProposalVote; - dRepYesVotes: number; - dRepNoVotes: number; - dRepAbstainVotes: number; + proposal: ProposalData; }; export const VoteActionForm = ({ setIsVoteSubmitted, - expiryDate, - expiryEpochNo, previousVote, - dRepAbstainVotes, - dRepNoVotes, - dRepYesVotes, isInProgress, + proposal, + proposal: { expiryDate, expiryEpochNo }, }: VoteActionFormProps) => { const [voteContextHash, setVoteContextHash] = useState(); const [voteContextUrl, setVoteContextUrl] = useState(); @@ -216,13 +209,11 @@ export const VoteActionForm = ({ }} onClick={() => { openModal({ - type: "votingPower", + type: "submittedVotes", state: { - yesVotes: dRepYesVotes, - noVotes: dRepNoVotes, - abstainVotes: dRepAbstainVotes, + ...proposal, vote: previousVote?.vote, - } satisfies VotingPowerModalState, + } satisfies SubmittedVotesModalState, }); }} > diff --git a/govtool/frontend/src/components/molecules/VotesSubmitted.tsx b/govtool/frontend/src/components/molecules/VotesSubmitted.tsx index d148a49a9..8edd31219 100644 --- a/govtool/frontend/src/components/molecules/VotesSubmitted.tsx +++ b/govtool/frontend/src/components/molecules/VotesSubmitted.tsx @@ -4,17 +4,10 @@ import { IMAGES } from "@consts"; import { VotePill } from "@atoms"; import { useTranslation } from "@hooks"; import { correctAdaFormat } from "@utils"; +import { SubmittedVotesData } from "@models"; type Props = { - dRepYesVotes: number; - dRepNoVotes: number; - dRepAbstainVotes: number; - poolYesVotes: number; - poolNoVotes: number; - poolAbstainVotes: number; - ccYesVotes: number; - ccNoVotes: number; - ccAbstainVotes: number; + votes: SubmittedVotesData; }; const Vote = ({ @@ -39,15 +32,17 @@ const Vote = ({ ); export const VotesSubmitted = ({ - dRepAbstainVotes, - dRepNoVotes, - dRepYesVotes, - poolAbstainVotes, - poolNoVotes, - poolYesVotes, - ccAbstainVotes, - ccNoVotes, - ccYesVotes, + votes: { + dRepYesVotes, + dRepAbstainVotes, + dRepNoVotes, + poolYesVotes, + poolAbstainVotes, + poolNoVotes, + ccYesVotes, + ccAbstainVotes, + ccNoVotes, + }, }: Props) => { const { t } = useTranslation(); diff --git a/govtool/frontend/src/components/organisms/Modal/SubmittedVotesModal.tsx b/govtool/frontend/src/components/organisms/Modal/SubmittedVotesModal.tsx new file mode 100644 index 000000000..1f3f7b6f5 --- /dev/null +++ b/govtool/frontend/src/components/organisms/Modal/SubmittedVotesModal.tsx @@ -0,0 +1,31 @@ +import { forwardRef } from "react"; +import { Box } from "@mui/material"; + +import { ModalContents, ModalWrapper } from "@atoms"; +import { useModal } from "@context"; +import { SubmittedVotesData } from "@/models"; +import { VotesSubmitted } from "@/components/molecules"; + +export interface SubmittedVotesModalState extends SubmittedVotesData { + vote?: string; +} + +export const SubmittedVotesModal = forwardRef((_, ref) => { + const { state } = useModal(); + + if (!state) return null; + + return ( + + + + + + + + ); +}); diff --git a/govtool/frontend/src/components/organisms/Modal/VotingPowerModal.tsx b/govtool/frontend/src/components/organisms/Modal/VotingPowerModal.tsx deleted file mode 100644 index 524f9bda4..000000000 --- a/govtool/frontend/src/components/organisms/Modal/VotingPowerModal.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { forwardRef } from "react"; -import { Box } from "@mui/material"; - -import { ModalContents, ModalWrapper, Typography, VotePill } from "@atoms"; -import { useModal } from "@context"; -import { correctAdaFormat } from "@utils"; -import { useScreenDimension, useTranslation } from "@hooks"; -import { Vote } from "@/models"; - -export interface VotingPowerModalState { - yesVotes: number; - noVotes: number; - abstainVotes: number; - vote?: string; -} - -export const VotingPowerModal = forwardRef((_, ref) => { - const { state } = useModal(); - const { isMobile } = useScreenDimension(); - const { t } = useTranslation(); - - const VOTES = [ - { title: "yes", vote: state?.yesVotes }, - { title: "abstain", vote: state?.abstainVotes }, - { title: "no", vote: state?.noVotes }, - ]; - - return ( - - - - - {t("modals.votingPower.govActionsVotes")} - - - {t("modals.votingPower.votesSubmittedByDReps")} - - {VOTES.map((vote, index) => ( - - {state?.vote?.toLocaleLowerCase() === vote.title ? ( - - {t("modals.votingPower.yourVote")} - - ) : null} - - - ₳ {correctAdaFormat(vote.vote)} - - - ))} - - - - ); -}); diff --git a/govtool/frontend/src/components/organisms/Modal/index.ts b/govtool/frontend/src/components/organisms/Modal/index.ts index 8f342f95d..4eb9eb8ce 100644 --- a/govtool/frontend/src/components/organisms/Modal/index.ts +++ b/govtool/frontend/src/components/organisms/Modal/index.ts @@ -2,4 +2,4 @@ export * from "./ChooseWalletModal"; export * from "./ExternalLinkModal"; export * from "./LoadingModal"; export * from "./StatusModal"; -export * from "./VotingPowerModal"; +export * from "./SubmittedVotesModal"; diff --git a/govtool/frontend/src/context/modal.tsx b/govtool/frontend/src/context/modal.tsx index bedfb2515..df08ea98d 100644 --- a/govtool/frontend/src/context/modal.tsx +++ b/govtool/frontend/src/context/modal.tsx @@ -6,7 +6,7 @@ import { ExternalLinkModal, StatusModal, VoteContextModal, - VotingPowerModal, + SubmittedVotesModal, LoadingModal, } from "@organisms"; import { basicReducer, callAll, BasicReducer } from "@utils"; @@ -28,7 +28,7 @@ export type ModalType = | "chooseWallet" | "statusModal" | "externalLink" - | "votingPower" + | "submittedVotes" | "voteContext"; const modals: Record = { @@ -47,8 +47,8 @@ const modals: Record = { externalLink: { component: , }, - votingPower: { - component: , + submittedVotes: { + component: , }, voteContext: { component: , diff --git a/govtool/frontend/src/models/api.ts b/govtool/frontend/src/models/api.ts index dd4e80073..4988fed43 100644 --- a/govtool/frontend/src/models/api.ts +++ b/govtool/frontend/src/models/api.ts @@ -145,6 +145,18 @@ export type ProposalVote = { vote: Vote; }; +export type SubmittedVotesData = { + dRepYesVotes: number; + dRepNoVotes: number; + dRepAbstainVotes: number; + ccYesVotes: number; + ccNoVotes: number; + ccAbstainVotes: number; + poolYesVotes: number; + poolNoVotes: number; + poolAbstainVotes: number; +}; + export type ProposalDataDTO = { createdDate: string; createdEpochNo: number; @@ -157,15 +169,6 @@ export type ProposalDataDTO = { txHash: string; type: GovernanceActionType; url: string; - dRepYesVotes: number; - dRepNoVotes: number; - dRepAbstainVotes: number; - ccYesVotes: number; - ccNoVotes: number; - ccAbstainVotes: number; - poolYesVotes: number; - poolNoVotes: number; - poolAbstainVotes: number; prevGovActionIndex: number | null; prevGovActionTxHash: string | null; abstract?: string; @@ -174,7 +177,7 @@ export type ProposalDataDTO = { references?: string[]; title?: string; protocolParams: EpochParams | null; -}; +} & SubmittedVotesData; export type ProposalData = ProposalDataDTO & { metadataStatus: MetadataValidationStatus | null; diff --git a/govtool/frontend/src/stories/modals/VotingPowerModal.stories.tsx b/govtool/frontend/src/stories/modals/SubmittedVotesModal.stories.tsx similarity index 65% rename from govtool/frontend/src/stories/modals/VotingPowerModal.stories.tsx rename to govtool/frontend/src/stories/modals/SubmittedVotesModal.stories.tsx index 4fdf4ae84..cd9af6c87 100644 --- a/govtool/frontend/src/stories/modals/VotingPowerModal.stories.tsx +++ b/govtool/frontend/src/stories/modals/SubmittedVotesModal.stories.tsx @@ -3,24 +3,24 @@ import { Meta, StoryFn } from "@storybook/react"; import { Modal } from "@atoms"; import { useModal } from "@context"; -import { StatusModal, VotingPowerModalState } from "@organisms"; +import { StatusModal, SubmittedVotesModalState } from "@organisms"; import { screen, waitFor, within } from "@storybook/testing-library"; import { callAll, correctAdaFormat } from "@utils"; import { useEffect } from "react"; const meta = { - title: "Example/Modals/VotingPowerModal", + title: "Example/Modals/SubmittedVotesModal", component: StatusModal, } satisfies Meta; export default meta; -const Template: StoryFn = (args) => { +const Template: StoryFn = (args) => { const { openModal, modal, modals } = useModal(); const open = () => { openModal({ - type: "votingPower", + type: "submittedVotes", state: { ...args, }, @@ -52,22 +52,22 @@ const Template: StoryFn = (args) => { async function assertVotes( canvas: ReturnType, - args: VotingPowerModalState, + args: SubmittedVotesModalState, ) { - const yesVotesText = `₳ ${correctAdaFormat(args.yesVotes)}`; - const noVotesText = `₳ ${correctAdaFormat(args.noVotes)}`; - const abstainVotesText = `₳ ${correctAdaFormat(args.abstainVotes)}`; + const dRepYesVotesText = `₳ ${correctAdaFormat(args.dRepYesVotes)}`; + const dRepNoVotesText = `₳ ${correctAdaFormat(args.dRepNoVotes)}`; + const dRepAbstainVotesText = `₳ ${correctAdaFormat(args.dRepAbstainVotes)}`; - await expect(canvas.getByText(yesVotesText)).toBeVisible(); - await expect(canvas.getByText(noVotesText)).toBeVisible(); - await expect(canvas.getByText(abstainVotesText)).toBeVisible(); + await expect(canvas.getByText(dRepYesVotesText)).toBeVisible(); + await expect(canvas.getByText(dRepNoVotesText)).toBeVisible(); + await expect(canvas.getByText(dRepAbstainVotesText)).toBeVisible(); } export const YesVoted = Template.bind({}); YesVoted.args = { - yesVotes: 1000000000000, - noVotes: 10000000000, - abstainVotes: 324000000, + dRepYesVotes: 1000000000000, + dRepNoVotes: 10000000000, + dRepAbstainVotes: 324000000, vote: "yes", }; YesVoted.play = async ({ args }) => { @@ -81,14 +81,14 @@ YesVoted.play = async ({ args }) => { export const AbstainVoted = Template.bind({}); AbstainVoted.args = { - yesVotes: 1000000000000, - noVotes: 10000000000, - abstainVotes: 324000000, + dRepYesVotes: 1000000000000, + dRepNoVotes: 10000000000, + dRepAbstainVotes: 324000000, vote: "abstain", }; AbstainVoted.play = async ({ args }) => { waitFor(async () => { - const modalScreen = screen.getAllByTestId("external-link-modal")[0]; + const modalScreen = screen.getAllByTestId("submitted-votes-modal")[0]; const loadingModalCanvas = within(modalScreen); await assertVotes(loadingModalCanvas, args); @@ -97,14 +97,14 @@ AbstainVoted.play = async ({ args }) => { export const NoVoted = Template.bind({}); NoVoted.args = { - yesVotes: 1000000000000, - noVotes: 10000000000, - abstainVotes: 324000000, + dRepYesVotes: 1000000000000, + dRepNoVotes: 10000000000, + dRepAbstainVotes: 324000000, vote: "no", }; NoVoted.play = async ({ args }) => { waitFor(async () => { - const modalScreen = screen.getAllByTestId("external-link-modal")[0]; + const modalScreen = screen.getAllByTestId("submitted-votes-modal")[0]; const loadingModalCanvas = within(modalScreen); await assertVotes(loadingModalCanvas, args); From a6991e89af4c6d20872f1b06258789fc18448b37 Mon Sep 17 00:00:00 2001 From: Joanna Dyczka Date: Wed, 11 Sep 2024 15:35:52 +0200 Subject: [PATCH 014/154] [#1982] hide Delegate button if already delegated to this DRep --- CHANGELOG.md | 1 + .../src/components/organisms/DRepCard.tsx | 3 +++ .../components/organisms/DRepDetailsCard.tsx | 18 +++++++++------ .../organisms/DRepDetailsCardHeader.tsx | 13 ++++++----- govtool/frontend/src/i18n/locales/en.ts | 2 ++ govtool/frontend/src/pages/DRepDetails.tsx | 22 +++++-------------- .../src/pages/DRepDirectoryContent.tsx | 1 + .../src/stories/DRepDetailsCard.stories.ts | 20 ++++++++++------- 8 files changed, 43 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6bbce6f2..e73182735 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ changes. ### Fixed - Fixed terms and conditions link [Issue 1968](https://github.com/IntersectMBO/govtool/issues/1968) +- Hide Delegate button in DRep list and details if user has already delegated to this DRep [Issue 1982](https://github.com/IntersectMBO/govtool/issues/1982) ### Changed diff --git a/govtool/frontend/src/components/organisms/DRepCard.tsx b/govtool/frontend/src/components/organisms/DRepCard.tsx index 8391f3f1c..95e611c2e 100644 --- a/govtool/frontend/src/components/organisms/DRepCard.tsx +++ b/govtool/frontend/src/components/organisms/DRepCard.tsx @@ -19,6 +19,7 @@ type DRepCardProps = { isDelegationLoading?: boolean; isInProgress?: boolean; isMe?: boolean; + isMyDrep?: boolean; onDelegate?: () => void; }; @@ -28,6 +29,7 @@ export const DRepCard = ({ isDelegationLoading, isInProgress, isMe, + isMyDrep, onDelegate, }: DRepCardProps) => { const navigate = useNavigate(); @@ -209,6 +211,7 @@ export const DRepCard = ({ {status === "Active" && isConnected && onDelegate && + !isMyDrep && !isInProgress && (