From e201f252830a9f76c2a6f631fc52934e76083878 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 20:36:47 +0100 Subject: [PATCH 01/33] chore(deps): bump follow-redirects from 1.15.2 to 1.15.4 (#3211) Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.2&new-version=1.15.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dnbexperience/eufemia/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a551a2abf2b..85f872eb104 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16566,12 +16566,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" + version: 1.15.4 + resolution: "follow-redirects@npm:1.15.4" peerDependenciesMeta: debug: optional: true - checksum: 8be0d39919770054812537d376850ccde0b4762b0501c440bd08724971a078123b55f57704f2984e0664fecc0c86adea85add63295804d9dce401cd9604c91d3 + checksum: 2e8f5f259a6b02dfa8dc199e08431848a7c3beed32eb4c19945966164a52c89f07b86c3afcc32ebe4279cf0a960520e45a63013d6350309c5ec90133c5d9351a languageName: node linkType: hard From 1791fe80df33481ec3f44c4c19d4804dea88447c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 20:37:00 +0100 Subject: [PATCH 02/33] chore(deps): bump msgpackr from 1.9.5 to 1.10.1 (#3155) Bumps [msgpackr](https://github.com/kriszyp/msgpackr) from 1.9.5 to 1.10.1.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=msgpackr&package-manager=npm_and_yarn&previous-version=1.9.5&new-version=1.10.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dnbexperience/eufemia/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85f872eb104..af26a4b552c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24750,14 +24750,14 @@ __metadata: linkType: hard "msgpackr@npm:^1.5.4": - version: 1.9.5 - resolution: "msgpackr@npm:1.9.5" + version: 1.10.1 + resolution: "msgpackr@npm:1.10.1" dependencies: msgpackr-extract: "npm:^3.0.2" dependenciesMeta: msgpackr-extract: optional: true - checksum: d95fbee39b6046bdee06c59af43efda7068c6d1b0406d82b345b2ffd31f917b58829f925ceb56bbd686374ae52c952d3106747c41097021a8218c023715c948a + checksum: 9fc78c78435a773ed919720ab4f276f6781c6feac0e88233783d00deb64ef1c1caf75781f4a5c675bb535292bb9a67f2262ffc15b64cdc16b176b5220997d564 languageName: node linkType: hard From ee5014fd7eadfa0635cc2abd07ba5cc138bd4b92 Mon Sep 17 00:00:00 2001 From: Joakim Bjerknes Date: Wed, 17 Jan 2024 07:07:25 +0100 Subject: [PATCH 03/33] fix(Table.Accordion): prevent accordion from opening on label click (#3228) --- .../src/components/table/TableAccordion.tsx | 1 + .../table/__tests__/TableAccordion.test.tsx | 28 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/dnb-eufemia/src/components/table/TableAccordion.tsx b/packages/dnb-eufemia/src/components/table/TableAccordion.tsx index 9985e3a3d84..122a5a8b4c3 100644 --- a/packages/dnb-eufemia/src/components/table/TableAccordion.tsx +++ b/packages/dnb-eufemia/src/components/table/TableAccordion.tsx @@ -171,6 +171,7 @@ export function useTableAccordion({ * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement */ target.tagName !== 'INPUT' && + target.tagName !== 'LABEL' && /** * Let the user select text, * without triggering the accordion. diff --git a/packages/dnb-eufemia/src/components/table/__tests__/TableAccordion.test.tsx b/packages/dnb-eufemia/src/components/table/__tests__/TableAccordion.test.tsx index 5f992223bba..47c4f130850 100644 --- a/packages/dnb-eufemia/src/components/table/__tests__/TableAccordion.test.tsx +++ b/packages/dnb-eufemia/src/components/table/__tests__/TableAccordion.test.tsx @@ -311,7 +311,10 @@ describe('TableAccordion', () => { - + accordion content @@ -321,6 +324,7 @@ describe('TableAccordion', () => { ) const trElement = document.querySelector('tr') + const labelElement = document.querySelector('label') const inputElem = trElement.querySelector('input') const buttonElem = trElement.querySelector('button') @@ -350,6 +354,12 @@ describe('TableAccordion', () => { 'dnb-table__tr--expanded' ) + fireEvent.click(labelElement) + + expect(Array.from(trElement.classList)).not.toContain( + 'dnb-table__tr--expanded' + ) + fireEvent.click(buttonElem) expect(Array.from(trElement.classList)).toContain( @@ -390,6 +400,22 @@ describe('TableAccordion', () => { 'dnb-table__tr--expanded' ) + jest + .spyOn(document, 'activeElement', 'get') + .mockReturnValue(labelElement) + + fireEvent.keyDown(labelElement, { keyCode: 13 }) // enter + + expect(Array.from(trElement.classList)).not.toContain( + 'dnb-table__tr--expanded' + ) + + fireEvent.keyDown(labelElement, { keyCode: 32 }) // space + + expect(Array.from(trElement.classList)).not.toContain( + 'dnb-table__tr--expanded' + ) + jest.spyOn(document, 'activeElement', 'get').mockReturnValue(null) }) From b886ad9560308533978c455074a93e429c3b981c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B8egh?= Date: Wed, 17 Jan 2024 10:54:06 +0100 Subject: [PATCH 04/33] chore(Field.Number): use default size for when showStepControls is used (#3233) Following up of PR #3229 --- .../forms/base-fields/Number/Examples.tsx | 20 ++++++++++++++---- ...o-match-all-components-horizontal.snap.png | Bin 17403 -> 17382 bytes ...buttons-matches-the-default-state.snap.png | Bin 4183 -> 4038 bytes .../extensions/forms/Field/Number/Number.tsx | 13 ++---------- .../fieldnumber-have-to-match-widths.snap.png | Bin 49305 -> 55563 bytes ...es-the-control-button-hover-state.snap.png | Bin 2162 -> 2054 bytes ...buttons-matches-the-default-state.snap.png | Bin 1954 -> 1853 bytes ...uttons-matches-the-disabled-state.snap.png | Bin 1185 -> 1018 bytes ...l-buttons-matches-the-error-state.snap.png | Bin 6492 -> 6385 bytes ...l-buttons-matches-the-focus-state.snap.png | Bin 2057 -> 1953 bytes ...l-buttons-matches-the-hover-state.snap.png | Bin 2057 -> 1953 bytes .../forms/Field/Number/style/dnb-number.scss | 1 - .../themes/dnb-number-theme-sbanken.scss | 7 ++++++ .../style/themes/dnb-number-theme-ui.scss | 9 ++++++++ 14 files changed, 34 insertions(+), 16 deletions(-) diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/base-fields/Number/Examples.tsx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/base-fields/Number/Examples.tsx index ae2426a9ace..5bc9adc7ef1 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/base-fields/Number/Examples.tsx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/base-fields/Number/Examples.tsx @@ -115,8 +115,18 @@ export const Widths = () => { value={1234} /> - - + + With step controls { /> 4n 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 SAN>6eh}s=3rBVg6r~eIDloQ|p literal 17403 zcmeIaXH=8z*Dsia06_&p5s_X5L`6UZ>7XdRD4_HrC`bvt*PtjJL`0A(0zrE3RcR_x zq(gup9YXJ&bH(TR&zbYioVCu!S!-UufP{VBd+%$P-!3;H57iaO&oP{XKp^BwiuW}k z5TYgs1WJS;0Y5nuMty-m*dR*x?`nG(uOx@KVMVDQWVgN>%7|G!JNqW>*lYaEW@|m< zsluZxuqzO12!Gd)3?5iOj=|(+k@_HhN8#>E2>cye5q2dkE^g1PeuA!aBrje)OKCVF z8X2722xo@{+-GYmkSvTTUfLb7XNBvtw7zPOi4Lb z#{IV z@O1^Tv4fK%n-QW8#1k#mR;BbmsnUFu{xNKytm3=7ZAOXIpfDn;9_NEoV^11mwCwR0v+d9=O^PXsX0&FI{ETISC}J@ zac|Y`_tdqLIYn8#-=gSG!IJ&=)Bz{P_<+mA>bw>uI~$Lf*Hle3`0R$yLv>(>k%KH0 zR}h9ANL7fyO)LFrZi7lu6oFk%u z$~Z5|oJn5N(b+aT%v82QzEChN9ij6-^Tn-lI8myj7rS2tL5SD{5YP_=7hXzbE5AZa zDjyff9(#|~|Ij`$Bin-7c4){MlRN?unt2LuCb}PrMsq^t zX_%lCF4Z559s7UFu4mK1h^Tw0lt!E0!UI&`b>~eZkkZo1$G29#>y$E@-97U%TIoey z_tEf;MGjI7jV>niC!;MMy=8+0{2_ZGLcz-ila%QTy)<~Qi3gf8B5gIN^T8eZ>wUUF zL`LBv6Lp<_rICiC+m1XlyMD(n?knSpo6w;MMxDD&cc9W39~yEKmhSHL@N6ion0oRf zv(2-qq7Gmldfv0)Mw)D}QYV_;qa%lOq|3j>PbL z$Vu~S@PVS|o5vSA;(FPULVyoJ1xpWX9hqqay|h%lv!O~;ytUUsbMvk5+fE@9Sv+S` zm2GJeC97+$by~8rm+3l54d2{t&AdXkE*NV(?BR#GBy{5qnja=v>Kpy5l*t|zKdpag z#g-O1-J@69fRQrcNL%a?*NAzhfu#}=xH&Hr@2ck;atpCsTZ!hwIUn|ba;C`%qObFXRVAo@J%v8YB<48&M?cNvD` zho-i36TlHMN?8`mt(uT*Xl=&bTG_m zmO_=Tzj%Y?hDaUGNmKNqztF;@XeNzUFMH@Q|36vsKibticNy*gSkhssI^Mx2Yn98X z`WKMz3X+QxJ1!hT)W0fZ$$xJ}Dh5LKoX!GXdY=8trh-)?9en*}zCmSRWTqlb3>d2e zUDD&j8eWmarls zX|hEN-=FS{rZ#C96Ma11KGGO>VcU`0;oMZu4m9aylzPP5|2;Kz6Rxo^d_D(;lYu7p z?GKsQ!8~3#&K^22jQS;hiTtX-NHG&2yY%-;*#3+B0g$d7ayE1r44U*frtLD~zFO0c z`L);ck8Po7Pg|<5EQky_f)PY!>5jfeZ;3TUMX3g?!X|bYFtVIzBP?=A4g%YS8_Hmi zO}lycBmw*G@arHlgn}z4iu9y$pliZ4)PJaz)!4$&rn%d`d<}^#(leummvBuU3ciNe z;clBwq+HgKg}@M|qv(%lQs^&1MT=jj&KZ6edY#1h3kv7eO*QvF%@B3*wisRrc=6XD z&ixmIn3jZELXX!P?H^RL(qvo0Vw4{F9J;J%5o%=-A>-&W*7B($n_$|QJ@pszub|+URZ=iK@)ryTNoj)wcr!Sbp zA0NM2Xj*5VcwRedoZL^A9`O~^*YQ~&kKuVfo72dfZT?9q$>iGnSR-z1#(!`leofAY zl@dA>l|4N_z-1kmV(wLOTMDafymQRUpz*xOQ~mT>?tz|_7Opr|zoM_qFm!(2W0gzt zwJa;#Fm=RtSdqDz3h3`vvTM@`i9;hU&Ju$2%62Iq{lH9b!2f)NuH>)tRW5c{xMrqA zJxcHA3_htQ#KL;T&0|%53*8G)6S#-P5ywYMF_0>!r&UHIq&i|A1{$yI)oMa;p2e!1 zFb$0pHS-}vYjbnCBkf?A^JUs^q=qDSTVCHl5JDln=YI`_{4kH&0sY>}wrm~GDLn4F z+Ey&u#Yo26_TcEK!owSHNvq3fVs$9;BND>u;Fk2AIG_iG((#@KTH?nf7E8z;~UsBzddj6otirIdho?-RsAzp|3-w~1Gnc}&^RMS$E%M( zbj`dZnv%NMdLfK`G7QpfYjS1lMtdUUgNK)wmnE&Jsl;z?_Ec%By=Q0hH-l2n<&zth zZIxOP<)HW9-8kIXC^s~ol$lWa*7O2#;Xa#o`?Tz8IA(MWXVT$L(cS$U&ZNM;9@Es` z-T+{XjQ1==SOYczFIs=WupLRB_Nx57UiGiT(}|UZbnfY&_2m?T+rD|REo)Fw^-gU{0{(^d z=S=^Y$>j+|w9U8asL?4OH`MJXQsn<$s;wpFY-CO(-qTWWFeHIS!4JJoy>5T}Oo8M4 z^(l>A)-)U*UoO=4rE+Ve7V>0gyQbp&OWsOMod3z_nl=S0JX6L<;g#@!UZPR)pIF|S z&PMynS|@G4&R*D^a6|HdE_m6-r`?gggg|V;`Erkfr*vwP#ZA9r`8YZ9+?1s!t7#I_p@v`;!fgbwaD}uluOmTNp>TCJvK* z*;?~Is|}mF%p{SkyOP`R;K^N)sPF;H<(EymWM7&$JK_vdM$AzVzGDh*v<;)N@dV|! zkYwAH^v~tz!&;Y%9BIj591lBldLEevo9e^ihipaTb{&-2wRbIW+kbHJOAkp`qgY+O zNAb?>i%Y}wZ(%OSlx3s=$jYKQRGwb!SEd0df- zOUm!?Yyy%{X4j0b0S7+%1qVhfr`&g&KFIRJszfYGf9rkCeN{Exe4-P){U>vK-Jz4* z7VGqb6p8>*6N!ev*&yKCPh0`U#OuYV#~RCrJv6yry9CM1$c$0f%5_ycIzN}yUafz^ zhvge#C;aaJBrD?r(Y- z@36`|$=rX=DRkZR*-P1P@G>H&@?#}l(VVuuJf0IY-vwvcaZuG0)(xT72uO{oQSyzubpX{A?R-rUnJH2FWylO5e zvph{GvwtIV{8BuzyzNKrW4Le>Yp}6w$ zb*XZ-DV;N2V2ND-@-Omdf%vXp6Yf3QEVd0|{=RsQbHWj)iW)LF5gn=6 z8`+cLgLpBsxA>!RKcCEMZ~f?qi}UNj?aPt@K=QZDP`HB|`_5VqC_PTkgNQ53Mg~ij zG2wa2BR@*j<3~XNusM(V(#rjk;Q!b|a5Mxa+Vb!!hyLOO7l;9h&SJYUC7OKT5w{chgnj%6DT=W~8Cz%}R(sMjrvY##j_OBcM zwlL1GX!RQJUa%*BS{#4r&YhD;n2n_k*NWn}`@2bBKR@>g!@N;d+YrR61e$pXYwI?9 zFmi+wmt2Yr&&{=}4!GL>-L>f_7ZRZk9>C;yc##d=7sbvZ`{_D(fR2-+(cW6)ACZQd zne4!^ER8=yZ*5!*I18{V4YZuKuf(WXwhp!hK3|hKR4gn^lsnmBuo)QVW;WqD3Swxr zGvCtPy4JO0`-+={x|!j(0wStBbJ9Hzo(Gc8~W4_mGvq4*;Rpy zO|b!tM5W*eFZpq9h*H;#$v?ap2}?t?oF2cudOFg+aPjUJr&{_&hF9zunIXS7NhC(+ zqgB#v+tXcq5lGyca$*&wa0%;F3f{>+zM%N&i)+*Sd*&OtkH)>)zGmKv+$ux8S{f6y z*XN1O?`rN~mNXJ)Qcb2WZ)6vzA8mP6hg?vGK*wSY?+sNqKztheY3>DOBk83AhErM7 z0NayCT8Jsfss|Ytx(AJr3-YA;nD5eHH#vc6^JDxyW)9JtCz`BKC&NHl5xAMZUm$f( z+Rv3<0Ymd10%$)z2S9uMNWYI=qxzF?&uhnt#|?k}`>a#=dSBns-R;rv;}reJCgu|5 zMnjzFT1mcY5||qt+2oe=uIu?0HOi@HPesZqo}Mxwnkx9@fJ*txn`@OSTOm>;+^L2u zGJK76rKm`~oTvb6&IC2TgXu~KK)PLsq==-O*elGoc3)BQ)flbR@7cm5w$7hNbJm1l}yycr|~*!ste&D!`Za6JuhP8ufdmF zSe{H00a@KFn_)l_0r+3oS-2 zM9408M?JhJtX*vcn`d}6zMAgg=eMR=z9qc3*Wpxe=c!woHN#BW(k*(R-@6qIc^eu*SU$$z+4^7O?t zX*(M`8Z}Dh*~<>H5YLljK38ApzF)SxTi|(iNWcUcaB>8fwp=Wh3tb@iFnLF;%9rfY zhK;j&Azxf&C5m0Jcjqc6yohhH2nomU+-db>zHoBF)<&P`@}P}d1wBe+GW>54{Ry) zaRrN=nv&-dDdx1ISRwI4k{uHVqs-4UtDLnY);o7}+USL!%R(gnOq(IDfC8GRcaE7| zc0R?^UwXc~o^xApG<;ZlxB5`6+pW)eOnW|a{-D~+DD_Xf%b_TZhe#sb-rgy(Mg7OP zu&M$H=&#_rEdKT<7R{drynYtJVxW2wqwDAHLmNl3ax!^ zqgw(K53j@96d+K^hWN@|dgvI#wUdIPp46zj1fA1C?v@ zJ&6Sxf?M)n_h!HG$J3L^p~JypBv8_SmXLQ_nt7$z1Y)Rxsk`4yhCf1uQuQ%e-iy&QYw>;#FpX5hZW_p zR@?PQi}dlPM1OfZR)RoPa|Nh9z)V2KOSjz&{(uDWOy0B+7t7h?{?YTb#DCCz_(urL znm6l zvDpa9r`L4>x+eiM2BVFg>*%7R!S4vtckK;;yU$vsKNOnIQk_>W5jW&J(7WLeD|l|F6tQ zQgFjej!owX&#k8#w%ePnF2u|63}#5SxP~X|QlE;SxfREMupF^28R(fo4wRlxB(dryI&B23;|U;@$z}U|6IWw$KI#VKU7%R5SCd-h5V#- zEro4w{Nsb=>0n=+V^p(E-V1`I_!7$0?}1H~_Wa?;B;lFTpTRWfye`p$d3m&Y_CCj` zjwM}j)b(B8R;inX#dFk9xB!Y!nE>lcNyUX~rbfePdVXz!qN=IHT!N7F7%4JtQ1y5V~q*hC&wh5v$bCIEWwj9Ppj~ydUh2jeTh)m za69ACTgRv&n;R0KF2kr1xKm7Onw~yCf4ocIeB!6$bMQ@jfhC$p=VG$vM$ipy0(%m> zX;UnfL%Kl_4EbMqf}21~GV-)R@DOXRx&zI$>e)KTXxGmMLD@w)lPVtx^e%lm92D$* zY;68V5Gs$hq9j-(OGhW|>^K*3u{`(MnqJl}I#(;{b=Nc<+U{650TFF&(e#HOSV@vBHS~H{8 z-`WA+E938mRr4qxrNs*y$QTgqB{^0nedv~}R1c5GmRTAahvA(XN9ZTLG;%1!Gi?>y zW7_{36c0w^!+vv<^Irj;cyrn%olwn3^^xhQ@uO0D~C?fZhMQ1Cv09Qd2S8Cfg!~U zGLkp)uSTjtn)kXb{*3yW)15b3wbEh96E5@GhIeGl&&ToKQJ-xe!z44E_i>Cn>TJ8R z=lzbn$X2xdL%V_{9rL^52LrZIK(RLL3gICB5k1JncVKsB4QmaePOV3+>kBIRLJ#$^ zk0u4lO!rgl)e2VbSQPinrnt>+oE-hEDz(QRB^>X<%V;MH8^MgD<#=}4>EdPE)&J}Q zG>-JI{vXL!Fh0<48B%sLz0vjZPWhn$$ME~ME9gIA5Rq}p!|@$Ic~HGj#F0XoBJ;Cn z3f3NKRgcAR-}5|Ooi?8HOftr3|8iPAj=Vk0Fp56HU@j=it+egCKY0lL-{qIzqP>d`kZEOL* z{ZO3q%1teoZc>(pr}hY)2Enk`H}}e}M}cwq^=?-RMj_=!)u#5#?*uCs4TJ15?%|-xbExT-Uvm2$s?MAIs?AR(nb;;M2Swp?Bl2Gg~I-=4TRT zJVo4y+nPG`TGjUag&O@)+;qvk8fUBORL`^cz9fywgoTw5yc?<#ZfsJyYcU_Q@POJ= z)^YK0)6G|GXw^wogFb)+H^=z1{N!KHl)Rs4<=zaShR;|We`QxJ!H|>B>&g<8z%=w% z2|qXfDq(p#EcXWotK*%4uWOD3=s_FzR|i|gwL7;LZYr=33=OYB^1a&2$UYpuUQ4|b zXLB?_+LoEod4qd4BGVhMnUi(?&g}2<+Hr;IYHhi@&r|vim8G=bw_D%A^f}qv{b~>T z$nq#EivM}Nkd}zwo+<$z!uGqWwTDDd*wu1ucFK^N(sSl{!Ew@>)X0u}Ti&QRfpJrr zh=+ce)8daYr{i;{Hk<8lI;y?L+X=C43-#Lu+8|!~>~`^*u#0-^L3nKpyP+fkjOsw_ z|DZ5%zT}{}XZzh_u`GViqyEPQVErRGbE?M-45T@O0vT5Yz9eGVPdYJBRFY!dO0 zCJ%`+ENrbq+7);fk4-|JCf*i-Uckv1yv~JGSXr8Pl#cs>gl0eZ+1%FW-v0I9d+QD; zS}XP?%&&d29^Q-o;gNjX10OSQh4_jW?_J(=scY*^03n{_`6zs1qN4TaXm>KOQ*j+c zS}lb(ZgeYcLnDqAF)7e}Uc`i~c}FuloN2p5qI`7Wy)utkg9Hd;48?oQd$;S_ewq`; zm(BJZDE+QK{ry4_A6TPmY-S8OcMjLJtgrjIcDmK_-@Z2b{!J1gYDX3g`LTperX4&H zOg2o)@wOZMTJ3Qnb}}Sce~Z?{?y1_y1S@6?t1k6g&mCrc1U6a>I=PpO8Fetq0Q%hK zxb&HTM_7-Lj!`(98-!$k%EtEeTAD=yN&aH@=uW@esL+?|u=Px?K<-agJrW{;6cN?5 z4G$ds{h8}nt|=x$077Z!|6dS_yE2-}bhO1Dex+X|@nnQ*GB=m^+fZ?R(-0L~+#PDu z6TM-QZwbXkKF-&Z37ClCf5Aj@fCmDOdZvmtQf!9nq>Gz0*06fhwuvi8#Db?e%44Fs zZkVx}EFT4X`xu-57K4TV3%#D*m+h-<@b~A-S{hyHN{PmQH5`d`?l?Qd4|;?@6d<}P zY6YNC>%|6Xg2p9_*MwF#JR-Q_5Nv2GMglat#rcW(CMzq|SLts#Q5b#`yJ6E`q`#s+ z+|AOK3|J%JqIRmIhG~|dA>H5iLAi277@54~4FF46_u8YZ_8c`OV53|v#qk&2-8z~0_-j9Q%au$Xek+w(x#;IhWhOQC>5caawk*@WHdePasNz!D#+437DaiPU0aGZ zMOwc1y#dmqUL5>jQ~~&Jk46KlX%6Kyun-^9bYG$61K`D zu|5F{YISPuW)0E}s2K6gl+*!UVdhz>7aiHC22e;WytQR~?0iZ)Ww-m1$rq%Oy$1c?-+7faBJkpoM zQPWnWwwYCpb#PRVD?fH%VPRlkd0oNALM~HfYOlA^hR;4&jSNpdSmw5GSaZd#Idt;R zG|jcu_vfLA@F>8(k6`T9ubYXzr< z!}|grWo38My>xSpXFU%r8S2!pp}`6l!qnsnFDZ=Bz_mLrQz;qjtT>_TkubzR&oz2~ zk|8psBizuqR;T9OFcW~0X&xGtdR6Nj!E!@o9iVw}q1`)zX)v9_TC%=Z z3_q=ZGK22bI(>R%w;)Kz?opvF16y0(d$6C^*VaygCq=YUW8H6kjMYj#5{m?@RyE6P z!{rPcI~&Y2T0Th(WS0m7LQy%kFOVmci$_No*R|D$(VB&uPM!n9)8g+@{pSM`Ah7rf zNPs9%er@a5psF03UG|qK1^??C61)oecLv*;TsgP#*E+Rp8%>zHs4JK^TrV~ix3c(bYC@n={iElHYuvQ#a7Rpy$bEymKU=Br-m3ltp$n1fM zR_vEW@Ej0&I>X5IYv>)0-_ejP{)LqahK+#@k_0o`nA@)U3M`5bZSJ(NYf9~WcNPDQ ztZ3Ke`Ia9VidVS8WNte?d|Mvoi|bfCKdH1a-F{6`>)`kRbE9&cN(t3c7@neTIlJI0 z13)`F*oQUpqg;W7O;%0OWTZX33XBcv%3Uyoce4*Cu}$c5m0Z!gr%P$e{G3NnPs6=} ztFR=8*LWZ-3s1{~J?xr|>GZ?+R_jK$mm}`L9a#7-^Ro&3s!ytc3@#TA4b5c=7-0uj zRzB~9P-MZXl#n`&onEP@hFd+i7o3WR{W+UNIKQGK*382+hANs|3E@T+UPm^$#MGGM zUZPH2beO)VbW^D>(`77Rkc2Y2OwPr1mF>rC;K}h(7IE>8e834mLO7dN^xN_HIRTm* z_j|*Ou?9zbF4*5Dv$z%R*=)K*jQ#(zO` z`2dn@zU`v_79)kn?PzXBZ};{)`+r&NDPR?srq3`Yfzd;gycpa35KJ@Sw z&C&a`ksxLiKdpI-xk8x^nN33#%1^5p?xG}4^bQIOmKEaV%Jw=foRN(v`2hb}zH|AU zcFJ#>$B;e zCMMk~RLdepzTe|=DM@_aKRr|w8bKa%wra~Xf(UalpkeJf+`+j+s5LzTQb4@9fh$Is zJ}P1+mWOPW5w;}Oc>o;u@iMKEXDFwcUewELn6$aCEmbAQq>*7BT}F4Hc@J_&;qo7m zUkas#-ce4#MR8>D@VF2itfko!%wvJKVuyCYSwTry&Hq%G_^_sDvw;2G2mkyh0~Gyg z=}q&PyEc<(-X6L85#k`V=#q(^pX^)g9`I}!sPHsks5~Nxr(G{B(LIuA5tERL6qNYPw)zzV5yYqa{H$RrmEX}p~jXXAh`Xrs5 zoJ?1$`=|ODUQzFM(QLx^?x^doMG%yd2ib(#8eWsxp|Mr$?3aGPzlzA$%R#_i1hQL*~M% z>$m%gP$oGa+i68<0#G(0+_$sVr(EHt-TGowxK6jDE3M|4B~*yGMlIv?myI}wvP9^e zm6H6DEByxxM+#~mNYl_F$F;R z;GGB1Kcv3`FS6mBIV6nuS3IH_!F~iAdi=Zcv--Na$`p$HM~-Ue?Ggn0pMA`Q6u_s- zhHby4komX@U-!*Z9}%7Sozbrw{1KV3puz^kOR3SMY{>m=;evcbWOjWQ?3$viJ&r%hMi*wt6czI<-4Us(s5 zhv&LCgy$H3qq}vG$7BU+PHEP)eZ#On0=2TKVU}kb8^3d|{%xt#fFP0gO~d^qg)80q zTT4iyNE0OIHt@+uHuNQR3D) zmHCh-dh?O;37r&tLbp<{khP^3Bjj1p>8I3H3oDz&A`E z?7#G?!K&!$;<|{WPwNkFe)LSF;ER??UOlBhsCPMCs}}OpIO{xRnta&8dxc4e|FO^9*{&$`R;JZ+79-Hq*i|h%{YeJIu4Xj@Q^^C>iWz{`B>( zz3Lusd{Q~F=aOHz1f2f?Br2_SiWAN@nTWmvBtB;tQZRnkqnaf|o7wj^@7V<~@RaxW zC4I9AATI$DLjOX->0mj7>*~Y~eAZDNf)S@FG~W_7L{j-XggbZdRf*3nb!% ztGT^$kc5z~z{(>lXCL?xoU)o~of}O&ci?$~t4Us({Y1`DmXeiFG3F*-W=uleGpb=D zo-Bs)`Yr6B@9*MoaeOAW5g-*@7BSXi(< zE+FMYv#3#T?owV_8d%b`J09m9bnG`_*N3o=xmvJdcIaG#qV51$;1uC;vB~SQB0SX& z0bZk6n(fDhJ=hW-9d$){xPsAWo#>l{-8|kQO3DsgB4ys6KtbUxRdHJ;!T=cJ}+4)7$9}ZG(u7O2P`Agz?N9 z*{eYChtHbhY&f5QWX(@DQ^8_5ITfafRtUNVtMa>CS7+;&NMR(G z7kTH4d>|M4dU5W~w^-T1HGRB9i&$fMM9JdnYG^br$-wVh13Q|Af(2ssELA6N9N^}E_1~I13jue%3H}%}q=#dJ?{`Q{MU2pZtlyiEF0k+rf ztXzF6MF2o&@R#Q%51()BR`A{N`a6wb8LAGwEvR%-5S=p@fO9?N1qrgDYKZS$dZ#{h%m+UyA1;Kg#&^zFK3%A1Eka zS;0Q5gU_lt6}%U)p$^vBlR!V!;m{Fv9Ub*xb+LcmoMHZ_ltQl6_-gk4z)l6;r+ZdK zM&AQuY1t-95cXIj-@^hXfGWJ@)E*#TfQ81c^niWj*YMO@n=e%CQVxZ}3ff`Djep}Yw9z(7khL^d)c#KYcoHMyK|Ic{=u-Nld)3+S7*Z+Qpg|vgQZ^90~yElTtti zxx>0VmXVKTyg~6%$eT3U$7ke;=`^+F5f-Pz`bUTCRvHAxf z$w<#r4-24(kHp(q5;r;aDPW;F;;6la%#Ks4tyzj1>hqTF$0=#Nm{ozp3{O;(-A`I+_K;YvTvDGZ-*H6 ztx-H?y(t`G(6?5w<4my807JlybHok5=Rp1>)CL{VsfK;!^8_%p0| z3;q&_K>AfV4f#S1D49WT^HSNx$_6I+{X-5VF+yeZlZzX_b4Y{)$>JZgJ*Tq84Gc=6 zL2Y7(E0C&T8fESQvVI`2Rf_fx@7R%`VIzuoa_+UP4PbZhdr2+Zd!+on#gMiG0)`9@ z2A_U5H9ZHn1@?)$8choO1H^0=QqO-=@RI&(qJBm($V`erp`x=3PmivG4;3!EB}Ec! z>)R*Of43k0S-%L7H3M>l5MOXE1*7RMkup(2lMw>D48nmWlc8Zp3?S;RntJR7e(mr3 z69gCe`^F6zEEAmThG~2v!8|I`S_KK8Aiu{0lIh7Q{S-jr*>7AaQhXYbSgn%Lax9li{zzY&-!o^Otq%ltGhB zv_Af+;9pAM6snBq|GwJ)zFJ^3|LwIcu>Ws*Ew=}qIru{XIfTCp@ZTQ%-@zGV$N#_P zT}i2WuxO@`()H&eoSI!ASv@o;=sCxr8TY^W3?@v-q)?Dabqn2Ft;>~uS^s)1YYexu zD+p~h`w*u^K)D2TK@SBW4)HQP?0^a^)bqPZ$OmkN-C)U-H5Eyu-P;R4#UQWS5;~8%}{YQ%A7smn;Qm};GI`Dq%?7L{(_UE8~GkHL0(;3v1Ofi?# T{*NyN{8M_Me!t+J>C68C--=QU diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Currency/__tests__/__image_snapshots__/currency-field-for-ui-with-step-control-buttons-matches-the-default-state.snap.png b/packages/dnb-eufemia/src/extensions/forms/Field/Currency/__tests__/__image_snapshots__/currency-field-for-ui-with-step-control-buttons-matches-the-default-state.snap.png index a7cccc8d33c588dd72ab29b968f4322a742405d6..5bb5d809aa237e0bb6f4bea8d966129757585764 100644 GIT binary patch literal 4038 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 literal 4183 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 h(ErB$4<5RuIsb2!mbc#r4DiDMWT_aAEVq{jdN diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/Number.tsx b/packages/dnb-eufemia/src/extensions/forms/Field/Number/Number.tsx index 7f14facfa2b..f6a362d59db 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Field/Number/Number.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Field/Number/Number.tsx @@ -247,7 +247,7 @@ function NumberComponent(props: Props) { className: 'dnb-button--control-after', variant: 'secondary', icon: 'add', - size: convertInputSizeToButtonSize(size), + size: (size || 'small') as ButtonSize, tabIndex: -1, disabled: disabled || value >= maximum, onClick: () => { @@ -265,6 +265,7 @@ function NumberComponent(props: Props) { ...increaseProps, className: 'dnb-button--control-before', icon: 'subtract', + size: (size || 'small') as ButtonSize, disabled: disabled || value <= minimum, onClick: () => { handleChange({ @@ -325,15 +326,5 @@ function NumberComponent(props: Props) { ) } -const convertInputSizeToButtonSize = ( - inputSize: InputSize -): ButtonSize => { - const buttonSize = - ['small', 'medium', 'large'].indexOf(inputSize as string) > -1 - ? inputSize - : 'medium' - return buttonSize as ButtonSize -} - NumberComponent._supportsSpacingProps = true export default NumberComponent diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/fieldnumber-have-to-match-widths.snap.png b/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/fieldnumber-have-to-match-widths.snap.png index 7163158810951133b146feacc06de8da73df12dc..8e6f2870f729ebf5ce1f9168aa6694d25b3ab3c8 100644 GIT binary patch literal 55563 zcmd?RcT`ke*C$97g;Wuw$Ob}@Gl&W*u}DhJU?Ct$1VIpx9E+TDR7oO9G9o#HWFJ8# z2}nkeAc7=`eXc%VcYi%SYu5DqF{@|Rs`q^?)~y@PJ!kLz3;Tp?s^1|exkN%hKtQgf zD6dUG02?A8Agn{41Aj5MEMOuazz`_O%jmk_U(Y}_sp*}awT?;fJ>b^vmY?cBNb6^# zx*B|)#&=RgJzUnRcYA`557LLVB3PDtJ6}%aG9~;iQoQ@uX$=OM6W)XmhjmB>NYZ%B4Eh5KjYVW zcocp4#<1U`&-uw-KkB)(F6!i~#@9bx?(d|K=07{x^wS}~{_gBko=TDTFr|wK8wWdk z;bW(7?|GhGvl3-f8Ca&|<rjaFO+@C6xrHD-xG7$_W zq1A59lJu%k%@ETw$j|aUe1s!enQr#VGj4P(vd{86tzR5S9ZZVXuXnPn_c^K|V-(ZP z^!RpBXZx)u=Sy>0SoNWz*@+Uy9SoSJ?nYkf{RFwt^E|0*N1Lsig&W<`m#I;_CI4u> zx_!%6+V9lcV>!c(otIa+<#=1A@3~0vRD+Ak&uO3iuUxSb+hGd^B-}*9zq4RO*WDB0 zPdQ;!KV$Gba1t$}2ItpQSR@OA5_%7BtUt2$Wl6WTEv0a2Fc~zumcDxUqv){4f8<9N)?B-NG+wzBuM5B5qrF_+A3IEXBo8bl>V$VH4uEw679zD6`ciObr z8!sp9tkx3NCDeMHGf{ek$rClMbCCJba%8Ur#!NYu^S9*9SJM@5b$BW0u1ipP{Q9a~cvC^jwhI?I+^c-G$>j}aZw`+HmKfr?rPW{e~vM$Y>{`^IP zUAmU%wmUJsRfAG| zPg;KGds=mdkgs~=GK#wvD(!zS$Z{psYz*3EvVN_dw>WclTKoRlwLA9HO|Lm!nj(*l zg1^6tmD09klyKL)Vvx$MC2KQW$O3+wbp6q%!foHf?_7_*yvaK}n(vCtv;LS9cC}oWAi#~AnpDdMlN4=GNbYDx1n#bUe09}! zl>bY!S8euVf}|}|?9-FhlYIBCo}OYUl`N^| zBmqPH=hq)4JSeHB)@+h~`2NCDe$Tl7L5E?$1p>)EouFP~5JmVk+Gt>szQ=VFXY!ZC zT}wBwc zgB&NoO+N~wg1@*@|2;_Q9`R+FiYrQI2Me(_S4&J2%9=1weMk`EGH zCGuahHmG_SO~xdFOV%qhx@E~BGh`;h#!WIRcKVb&%|EZfv>l$zScfMxTCpacS~(E+ z%@lXD=lHNc?N#onPs&|#BaFC2M)d&q4x@Q4;GBvHv3>pJuhwjb+N8^Y6jI#M$3Fv$ z#Q9BzNi)yombV-#*Z=(3gI3=my(x!pV?3Ik*dB9{Gak&8C8`bN)MNxezj&c6`lBSF9~2T^z0ipfV`xc(A-Jg$kN z;n%@ADyBJC=PmMPPh8sR4vuUx{nB(WAK8EJqOf_;^A!w#A;qatt$hX=!%fX(Qu<%i z8WJy0&y%8dyC1}QTFCAzVBaEZ2>PY|9fG{!A!c%daztB56znR)6SyY0!s7$Iu3VlI%3#V#Ywmf3VWn)4wTzXs* zB!tzAIOo}L-yb8zsjJldHWlOe72Wdt#vA_PW8{O_6^tqxjE|{6XHKTDMaZjrnPAYY zYaV~moz+X`)k{haM+jEPv+P~7`ko{@UO|ROS@*XnoCMPUP|U zmG(g`Ax@Ajz0hE^{7I;}jl#lu8Kr%joZ`*2WrqcfO7C58p%Iv}9VhIvVN8jji^L*m z=!m9!a$^vDgoz@bB53(^O%tZwT)1c)x;n0QvLl5_YVfk$rom=g_;4l{r_=;$&AP(M z*aEJnCsO>p0v)rYA13+(gXzZ74{Ea;Wmkw5#w-(p>GYhj#f6Wcn#6 zL08CU^vmaH&t)-mRwRsNsvA6TVvXHo(F|CGb%~TR=l5_I+CEu-`FzR{z5GNS^_L^zTJ#9;3PnC+1FtLIKNV z!8;h5Af#7-iT748_Da)NLItUod)aBdm7yds`2a=ij%NO^%u=pOtoRTUd!1Bub=hRl zOs7}?Mkej8;;qeFYgT5#vRG5$RjH>Z%LKMeKU9#+ta*||)3cK6;T8-MhbymaT8D47 z=L}o%vgBL#Cpiw2y9Ch|Q#VmpI2#iVHBo9>Q4nquK0$IPNQo{Pm7ks*6`$P2l^pWF z5r=(!V;Si*&}kPPT~yWuJ>5P@GfhxDGB#f5;FgzjJ$PiIXuGc3QBH@G7erVIyE=G5Oi7Z zPKhTKX`NF0#n(0?Mdxqitz8McOe1skA&Q&s0$LMyoSD!HkHE68YdvSlrsh)DJz5ug z#*y7i5y@2NX(nUwG9W0JfDWMw3Z6ZT>2ti8VH)zP|Hz!DgeAy_%KR0}q0Q0^LJlsH z=M1qvj&ov-{FNqq;})^6wdNj|dQfTBT{hD?Ou&RW@UbElXWj?xSL0=q(2I-d4wdjd z+OJ>XOZQxz1dZzKT(XmI2u>*_a`Jo}Mfsp2b%}=#);f0eu*T1BZu&QnaIe~gkd7tu zNeGO0U>%Zb3Vpu2NvXiuP1V3)75-Wbl4L;^t^Fg9RzrMPnOR`G`*Mptd%_2KgCoEq zeSby5cxm|qe3v5(xqOVFsvxP%3Tar_WcEFHIngQSM5iflzFJIHiNmW1)$jasW2X1* zqtCjgkugaMNmnP9oBRqCsOXw(<%RatrH|IHEoJ&{Ht#d!L`!NSROTMCGjit<(YSQX zxS%On9lUl{SZ4grn#W}1(Jpn0ENSD??~bfKq-zP@uZuh(XWiDvN(w6}VSUJ1i}Z?9 zj2d0lHWn+8*4`l4<(RnT*(;wq}xnK?7{% z3^G2@orSx|`THkcUOF%LA5{EOIIlwnmK*~LhMU=(kE}>3C^L}(va;EfMg=0=Q2C;=lZTr)b(lXt0?t5!yUhz3z6r^SiQNo06zPy1NXfV^#u`4ur)+cVP;uUUx*cj{S~3Ba$lB^gM0;?Wg*4@8WIOOVHAbgvCheTP4m6%(6pts|AU4nqf48jXhf_1F1s9-tln6#dg!eT3hzY za(W(jzU<62Q^(|Vd_b@eJr9QW@=5IF7tXVk-H5}5$tSIPq?EY{94fqgw4*nuQE_-l zWEyYwOKiT7BEFi4Qt>-UebQ=>1!={wc0)hKpiE&?GlnUVKXZTY`Hi}!kD|!81)^s2 zJ@PTGUWdG-CEoHs8;+W*@T*uxqpr}aC-o76X?K6;4L>>DpT43bSe{h2-Pw47c{ZlS zE!w%egE)n&jPL;zE$LwcsKVxko~h9WYR#uAruGm@F=YmT>u9HX;X-8bi{abIaa{;` zU5N(Z?RwH&7G>E&>9DyQ)+;x24kKi{DDg2Y2d)_jKTcGzj#ms;6Z8e z7NtLU(9{B)`?8zV3-v!=XQct`J6k{C`~&;&(I`!<-PG^LVt>D$0d#j-weaHaRYW>Y%j)xsgr-e&y4X`1cMU2IK7)= zw>+4Yde_89?*{-TSw4Hua#d14MAjaJ8KX?ouiH)Nf-0V;%4#qrfQWR0mS|E9ZXSW} z?&|7`VHBtN074f8IrAQWd83`HNV$9FpL=q&Kd?Gd%)!DUbKh%2#ADW<7~UuNvGMW^ z`=o;dcaMeW8}PD%8_5l>8_(x;n>}6n(u6JEl&??K>x`D02tg^j@khhJLKVHBQ5-;< z{hu|Y1pt<*yD_4;qZ-R3`QT`8ebz+7r~kgZX{!0U8r?pH5XwXaW_5;)$tFHt=Q&~`wVX0d*0u1w&$eEpuUI0jIA@*CEu{4tp?9d%)?xE z_uoGksGJ`EPF85J8R7j6rbhCM3!CN|=ZekPk6(qDc1}Ea(k_O=K45oNPbmN4IGYqej~- zVkJ47J$I>aE8Nsa(G#@M3g@=JfZ~fm${VL3+QC5@Dck7acQ8ksd}Ggl&SrF!Zz5pD zKw_rR?aA&Dgp10I>RFfilM|(U4i#U@22aJ954ZZAo!U?V9-(OA8Nk8@o_p&&7Tr-= zWd|D4C%WgEBnnscUfm`i5z^AqTJ>00>*R>`%uxf7UuzR!IfE15@1OGCc>H?UF6BDc z5v(WeuL0)q$fgeu>0lu3A)TOWR8}aHry{5iIE7jca$c!(Gh3XSJU5=zIZy6w_N;zw z5}kK?boo5 zMjtV=clIh^l`e{mw$UuWv`V=t3^6O$HtZakgnq8OU&^v3-1{}R>(9jk?sfZTCk5Yr zQSH>uQ=Vvr<_!GuZmS)?b4E{-A?}z3C6DpXCS5V{JIUi*0mRa+y&o7F2a9=Twmn;C z1UKR-n5)X{!j5dbG;seu3KaZ!qjrY35-t54do6R=<_|~)E%UN%{_U-kUILE&I z^P}LGjj|mpE4?YF z_>q1VPeh{K>U)w@XHL0O?suXhtl&VC`E;yycC6XUE!hoBOa_J&z_0;k!ZoMG>2#lB zYkl~2B2|f1mXE&EV(-g-d=FytWlV$Ag;$S0B7_5K!tOM zM13AjrYwt(yv@_iN+6D|n)Y!;Z^umY(zgwqGo2>lmf6byqO0#R!V&AYF)MJA>@<1d zcI<4N=_B)iK!+9XuamV;ibswBFHpz{XLl1cQkAH<2ZHPOm100gz8*ONnI?&7Ef&9u zVSO^?op$qzjQM<tW3V%!To1reD4zVA$z2qm00? zgh|4#cOh0T0lP%)M5K0v#r2c4wL@F`ADH*xT?@?=X{kE{&+w_6*sUBk-XaL%T%R|1~=@Y(PoQfW6*K@;P;X{TQ<{5G5yh;id$`>kI&wQ9y%5VEY<&)x0%lQ5Jwq%HL2FKSmo-Ra93CN7 zYd5KHP>JTjbyeKPa90drcyT8dZ$hid`OtkXvIq(!0jJT}uT)`SVdb!9S_n8PeMb}% zCmy%?6OKp~*nWyiCu~h8qJiZRrH1EcT7+#og%@i@DfiK^)AAf+p~2wxSrVba4o5f#i9 zK-k`U>*`d?XC6cQ8*mwVO;u4e^}3d46Y3n5IXwkiI5YiFlkORTz*B(6pDN5zJsBhyfJl7 ztZ=0lUv^m!u43$*%FO32I=lKg4V;PCBQ3cM6VLB??7IOksP%bDL^wm-Eb8L6ua$k(ttARCL!EPy`ZP*hV0Ml8rKlRhW0Hn3U3we zoSM&t)LeAV7O4rCcU5r?>X?#SS9k| z;Y^0>_es0$2VP2;LO99G4n#m35}8HEQ&)BhSW9`Y>=hE+c_j8@kFgOE&5>Tk!?|s_ z7BQJ9EiftVjBm}9JzX0WkYQ)%4_ZXf96d@qo;#=ds%o0d|fzaL8PEp4T0aHsj@iA_i}*wb}zZMOqs- zTMUVYZW3R3M9+3eW$&&5CmFjol~sYH#Jr-0KQSH2Iny)|$evEhdlh2LCiSs=MZ+gj z+X?>MXlAtq|FiyFSp5r5)7Px+_gv2FcAAq2;ub?&t{P$`t6_A~-K_jd>sf1yf2R0$ z=p@~JSW-J5hKJLY-LwdA-WB7gIG!3593pu|-qO6oWx6&%(|k9^0_l*!a&XRGP<62) z#Plnsz6#62ik878BAxx)OglpKvK0_;1X!$;M|k8nycd~tC@r825}Ens>r|M1cC_?3 z18g*JsLDE2u{__(^!ni_E~?3dpaO%Wm0{XG8+MNFJT7Am3=`T6Nj^1Lfk!8Y6Rw4)cbNb>&ecY#rndX?lwb7F3&UvfcA4jR9NfU%((=o~3NhA+;bmY7G^G;mZH^2F#F5J0LK^)PmGUXoRb3F{je}_Gcq6CHH3!*E2s=C;#L&}YyJ<>({ zAPO<<{lQ)r;?vWj(8kESC5;Hjz_j+FPeEm?;DgSQ{K=RZmay)xdcM<0?ui1zDD+AY+tqu+7=6>wtc56kel33PA@#3W zAXtzM-9UTSIaX%N=JL|fnC1*t9%`q203nK74_6iD9HNM=aDEGonD)$S?}I1%I~9d( zbVR2?1ahkFpKnCpBM3zFxPc;@fMwv@U&%)2?hT?moiY(iFdH>+nG`U`Y zDTkY5QyH;4Oa1LHRpBF+pEdV0`+JU7OzuVs#=VK-f_oqT#`zbt z1dEWK!>!~xkK{ZxoVy)zuwu)9@}1aZM#bzdh42#)RtNB^qA z6?Q}h+L6{(JX37@0GI&RA3g;&ogzp+$)p^*{x=dX*Nldd+3nNUj5@+Px=ybqTERU_ z;wVw$8GwKI!Pb^{;t<#=8OlfEC}Mg=hkIaq_4h9vLDSIQ-A_(9fQ7WUwG=lusp5I7?cU%2PgHF+A0*8^VST5*1uq4D%o&1Lv zAbQiMrWB{upkK=SJ6h<$m3V9&Rh#*f2uGKhrVMe*@~w++jSSud+3FbxQDOYAaG@*k zH3oH>{TEZ8>|br6?URS=gZIAGJkCZh*gK_PTB2<^nut)uyhkGVvwvGyEMZln7DbIL zRM|~w;T7_)dZH79SmgfGQCiJj0~uQjoh1e(=TW(;c#9jBx4i?v9bW@Jfjgmg5Xm#S z`}ig*O%@NgA-Vm~Tmg_me0!JHRN-@S;B83xv_B65EYkINZ3YY|`3qnigIu^@EJy;f zXusru9TkVw2ET|QnWW0bPt>e^aiF>qj2%aO#n>I3JzrghhOeOwE`BCfk-M)5!;E}jvYyYdIsB0@@fzWHsA7=Q@} zqAp%b8lc|u-)yOWFKQsl$-4;3K!4m5&hmrnOvq4v}ypMS42YAuc3q zRp9dBOyW7X5)H4iO-3H-V4Lyp?tld^K~?b< z&pJ!&m5i2igUMvxiH!VE(7sgj#KUVBHdTu63BCy>i`CWZuwR~Jm&1I zj;NqdB2P4po)eIY)*}XJ@7SfWhJt13beJH(;y;WrRf2UmU9aFFX#cfzaAbj?(FMRE@si##abOSOaRMeCwgRCqR8)%O za5I+dx|?Qz-zqw(bD~IP#N4Axy@(kpH<@XF2)K?yK zzWhkc#cQ|gP2-6Ljc{+RN))X9KzY01Ukp3u~o zU?Q8(?nb~xa|(IMTpy3g)2My2jVeX_S`gO ziOC9xcXEU290^!<%53~??I&*pq`*H8gCZ#aLtY2GNKT65DIjOn7!QUd;(5TD&o_O* zsSol+wRw5v2X?d+WEncHtb8+eFzej%paoAQ^^c{R;_Ml<;*}34w=Yvppt|pR|IG@_ zP*za+wX9;W@VqhYUiC3g)@B^G2z`N$o=f`Ta=>zpO)~FNl_p3^Yt%>_cJNZ|f$r6^ zZd<#liO*Gl#T_^@FO}wHts^RkrYO@8mAX{nFv#>}thRjWWUyz9t*-C!B@ln(pmb0; zc1uoPT)=>JQX?}d^2U>MuZ!LTdlOe2m#zNm$5XKq#R{Z-gLa{9{#S{qDuiJ=h~e(z zapynz5cUF!-ESAZJpP*=+rUg9T-uTi z)V-7bj1(S`z-1bNpRRM13#WU>2l(CXHbRPCw;3NUzvHdY!{1K_CFv7<(?BTj-uZZ^ zhzSsoi4Y}Qbhlg(5yJj#K@TJcI1`tOSi z1eL9r>pITh&4cg~qk8Rn2T6|gI~`YjR$mt^0tzY)kkrc0u3F|kUH+i`=7Ewwf&FBS zTA4|!AV?BP5Dg1-5j|IMSGDh-i>TB*nJJrYT+Z}b1fC~-ef#dHizC-SMe*qGt!Y9w z6EFyOJhr;%_1ZK+OiIQ+1iluf%aBe$e4Zf=aNUZ4Moco?Ux<}X0hFd5is#+#Gpo$_ zKw^r1AOYxMJ^|EOy!{Ngg{Zy*m8BnW*g}T2_Q??6o9TDz!SNPkUGj@5a(|>S0^r`_ zzAC%3k;J3(04M=ew6q+MTyouZR5kpyI$Be{Up?*0pTO>Wyp(Ff3kzC;Xz*P@?ehE0 zKt&Kx=Dr5fFA9ZPZCzQhzT>+wS$lVsdmF?T>|ZG^C;`l$BEIG)Gg4ogJgWFjT8zr> zHy6pj1=RHF7+N!Ip5DZJ&Y|%>(3gSqpU3J#Sy}u!l-akiM14`GP?M!+(5$p$Ucuqh za+Y5i;xhcXfT3uEgWN4A937zmqZgR1qM3UN`;;)nl) z_w}mZkl=@wh1_jWvU~dNJ>+4N*PD6!D3R)8?X;)LrR&z{IJ|i|H7km*8qmc>=^&dG z`)HC_Bkzz!{w>EfAsb=cqZij7LCm}k-K*(N`EOwj3UO#w`z;Ny7BQ{nv|RsXyqv<(QZ+`MFb=uu40LrR9AS6tx5SBud{tW1E~rMP(a zm{t>4OMY22=?=4x?tQ-#7yquvFe8MZj1gsJde=vUU?c_Fpd?Mlnh zMZfJ_qb84Q*(3^w0{~WS{8v~d$c%~Isj2e$GuM=$ggek(Fwh^v$Y%!vNSR)-^6B~) zw(!{RcJ1aC{iCHXvLx zUKZ_*C#8R2U#$NcM@pymSNIn4#}i%mdtAa079KwpVw=$C_21A`lV7;TUoAa|96GGX z?MeMLU+?kjy~?yK;(WVwYs%0`!a-r7<0udQk5VcU8bp5r@E1bFh2AxqA?(VQF*I0; z#$e=h7d2pN3J3ha6@o{ApTfw|rkHXaEaA%@H|W)1T%c3MOA}qEovX5jeuj+upW&%* zU;pQLO5^_$Pvult5Na0G7pFDOrnt^b`;v`@*TY9surC`=u-qM_Z=6 zGw>jOs&lkR9>guAKOTC7ZiloBw`O9SF&{QLoeq&ymI5dit#ws0SQt()5y$YSQ4c#tF&l5GZ&_ zR;eIGL`s(gV4OBq?%H{SKX!Ip420bP#vn2u0}67z_wP4UH#Oi5-oKre5;AT*eaJcv zd1!(6w=bFRE<1>Ct8O4R#sOhc>2tms;~=Xau2{HxLkZ*?TS zCUy_S7xNJVobifa^66G+0a+mrIEE8Ia?@!H?ZK&b^}UCJGbR_o&zC)3EMK7o*%tt= zv406Ht2h#RLH>)^9;)sfff=X_k}=|A>o`SM9;(7LQKiDjak%@vJWM2!^B0te{D-J2 za`E#>6(C6`@7}WPr-_|6XmEbCG|DLEY@K6;b_g1{1k7z1NV$W_g|)e;gClk51<5X5 zS4<9mC3KU@;$aT{xl*D>JoJFpsGwl{{CrTUVQo>$LcgSuE8g0`=pkOW)z^nO8B|?L zV2DQqd$~Lvk|8piP5X<6BT}_bxeV_tq1B>@>QiqWTG0kv5 zLp;m@Sgmid(aFu-#09@Nei0=N+nKwkWSXXnM~kusQAd^cUV*MbfWpOM+u(KO?3Dm#c{F z2mkOUM<01uRa>+C{=WAO_ow${fC`kL0+XKl>3{Me=u81&dzYHQJpqpVWk z{RH9qXClCl8V=ske-3V&24lDP!>{Jg;3~Fh0J2QFeMm zj96tTwT*&7ky$?lmX85YG4Zc0Ep$B504q8RZ4?ITTTzx zivFp%D*MdnSEI?_8pomujAykhX7~nA?Hp7bApd_O2KiFCr83fKD(+TBCJ$?)@ zFRMbPs{yuHiFsyP>gm-_d65jaoaCi|CA;t0wF1;F&#d4P#10sOq-L*uWq`iaeyO@^ z3^Z~D8uy$XFH3I&k+#_HGN=T8m1%oNfKkyy0Z2KqDyK5r9gM%lwGK0PA-{1U;aSS< zn-N_Q`3eep5Voly^P22*`&{q4ivh(%mz=O>xa>U~*=12x;CQ1C5qXddR)Z0AGF*m* z_VHNjX`cQ^fUpul>(LC*E60IJ43viApg`f+2Cj86-&no&KysrV!neqVi>|AyKY3gyj z)x&7X8VkywqJ1W>bzy^M&+7LX;&-P#mKiO1UI~KoLib2#+~fpks+IuAH~|wJk5*35 z&X2E#%7EE%mGA26;<-DOtCX0qzGhtSq#$r5PI`~G9kuJ0dELZgiB``I!6*QrUksBZ zFKE)D!c~Kj(a_Dmp=!i;(b`bRq@@J6F;T5jJ@@ervmRZmEt+g1VtMFng??Sj4REdb zYA;fHgGrgtaSD-iuZ#B9#xzbrztcr=*T*?UJ@4Lelez%1banapXQ*`s?x-oWBRt)s z-~KL~T95JC!}o;;u0N)}SYXD$tk7k);Gb#o&>5i>bdS2jJ|Kx!jqE8t_e&i21v*o-^qs=?; zONYR^^qP$s-FNh(QDdoKU)kj%pllPtJ0j(@YI*^Ru4=#heJo`J#v<(&FK0h|75%pxFA)cL z)|nJwgXjgWs*z0LiI8wVkhGQgceLo=QouCP{$R|M4|l#3`QIqe$VveyR;ALsi{{>w zXLaX0u@ez{ZmYve;Um`uCD}n2e4QNE=#uUGv2ENgbTk4{lM(Uqq!>^un_MI=}xRQ?mGwlJs&E#c{a8WqGoW zux7`MP(JD?wVw(ZAB8Twx_I?L9MDVnKDw3y#^^FFVaBYnL4~RRrA`2@b*1-QAFoLa zor~f^bP0o886*wZJDQJyVhqdyh)BXjUQSlkY~+f67^HHbHcAYtk`&G09lviNCQJi9 z0b8Pla*&y0we6U?S_lwpi;??dlucu0#yYK`E1+$l_j1Q*@m(Q3+9cAu{O_pjf)pYE z#l+0B)}0X?KEt+3r;of@$7Bq#^@|@e3iJDT<;Yh2j+PmuAU^kWO~=(_83@OMGsN{lHqB`UzVve9w)5tZl-*zn|JlGL|C zsuHL|X}c~s8*pMNv8Fp-Byc|lIV%~kI5>kd>!Y3TpA&!jFNJj_Uxb7HO)ZxoWiI5+ z?r}hSBn1~yOHhT;nE*{}(k~fD&^CbYLQO4}-N^>+KK#g8rL=2SF%mmNa=d;|dTO3p zzIE&PLd0;YgS1tI?{NT_Ez6I&a4MTJw+i z6^jg07jr+l%{JvwK6V28lD+-;a2}M+}E*H7!{qI!RRGtt-(z>{CWsmQ_gOmO+Y2JMOYYVL8Wy+}F zu7@CNkGK+pb_47IHK;CypP6qGQ`XeU&jIzr=4u^4jJid-N<@S#kIX*)FrMlNXjWT3 z;f*E}ywXH^mpO7sFR`8tTX(`Sx4_O zsbzx5H=P;&&A?y6s`}i)?1(kH<%+Nl)@-9)xwE6ogMy~r5Dk+rXO+>cmmmFCb2y~I2Qo(xfc5^=w#Rw$vstzWcZv?eO{`w#V!g9;BfW`n z@{qBae4fFS{`503GzU4s95mMs&O_O1aFxtfTA>_+#mT;dsUMeW;%l&BHNS^pS7o>< z1|Oixc>xGCjw@nA3U~5tw*1lNPu8G*+UMzWpSpel%La_SA_VgdxzmOq8z3$-siO=u z^UpDM=xl%E+R{z28+6mug!YHjFl^(FVTB2@y*-}vtq=!&Srw+>-8)qn(Ve>YbKSuz z^j=?(^Bo^)!oET_T7FTVbfhKQ&2z8^IMbIvV(;qcP9%yraoXYPCOHmGZrs?Z__KM6zTB!E|sTv4NHwRSHI)5ZSDT> zyV1nIFO@FYruRR*05hIz0@Y{XCtMj0W#owhIf^dB>wtXDvn>_Nrke!isQ_HXJ$1K&3KDOD?JRi?0BwxtdPe)3idOF_P^~JcZBqK2Y zXC5Vg%xuG*Al@Kq^9a+cVFg^UU?PeEMnNO@Yga-l4rI>eNZL#dvaP9O49%iu4@l`a z52*X}u$67?^Y2Ai;1@@Wg)A<^)W=VM(u^>ke*P19*uhJG9(+ELU;m8fYhvUJUv$ah zTJVlLg-2&UsX_qO)DbptPIf*W{dV5l@g{=)DErj6vde_i->J=!e5_4yOoHWl1(Q#6 z&Ut;o2_paVda{!7+Lr=bMteSwcROZNvfbvUh-$%fj5Yn1083{TjpT!=F(TRpXh*38 zJ+b(Ng5HtYQG9*qHP~ahHm^V;{X#m|x%YuCY%o5c^Mz#BI#32S3JnKkThp1r;0(-k zEA0C5h$%?;!~MGj!T+lp8RR3a0~{$mi5Fgd+2YdZ?|N}VDH+j`f@NB0%+MpDPr3Nd z3l-Qx;Gd2@_F0Iy+~1_C5>{K?wtCJj}o9 zCRG@u7b4d*MSHx!?>7y$lmMTQ3x2^sTf+eaS-Y{SId)SL0KR!HJPW4<*tvAvw&WTr zhytA9V28+-${d^kO=#uFjy3~7qa1ztIA$OGW4dZS5j@!xA+$pU*zAIvm=HVy2GQ{W zF6p&b0%1?{Xg>I_rGe!dJE)u#Fs$hXn%yEu*xIkPIUd=28^6+gDXWy(3Nd>IRk!ua z?+bul0qv2xpDn-$kia4r@}Qm^v^5LfZ{h~^0JKj7q9biH1jwb+7|!UZ7VI;KldEi5bG>LI`{poHwx@% z<^P^#rPcxLDGf3Utoo5J6=re<^-g&ZWUdUz!!@}(^62D8QQgisM|J@NIM8@V(Hr#> zY|IjKDRN#LRRj8)0FWKkIxd+C0fdeLiM~Cy##M{>k28$H7BHaf8 z??E|~;Jggv|J+(fnNv`{=K^pAX2#{8AO3lXzwNO6<`Fv@4n5q54bTbz*jC^rqAwE{ zl#3eF1_F>O%3<$;)M~TuiRWv>+A^s52g2vv#cSPMWdJ?q?xdfRu4L?)+cK<<`))-;KoI|JO)kfl@Rp&SOv7k z6hJ+4rwUDjyXxiMA0i{Mey}fOcn99j36Zz^n_zbYOR#wdZ~v$WG_eim5A_@R01dVGwgcSoUy#GwZP* zQ11*=1dWU2-+&E4t~xC$_WW{~WF`0xm1t5vo+O1McWUT&3-F$>@K_Mv+}TYZ!4%pk z_IO!Be!v4HsxNtEgJ(|wM2rd;H$;yW*dHaiV*UcTwybOba23lDU9NsIbDxBU8w0TY zf@TCH{vcOXMS~IA{&-6w8n0xe=<3H;p9ByxxQN`pqP@1VaPb4Y*m zvhF&J?y(apg)e5}io$uY3Kn-b41xParY!*;!Nw1;mHy~5;PxdVtbn$iZ0NQ!^fEkC zrj1h2w$5QL06^&5L}V=Rv0D%dGp@S=_G;0ii)oovB-2?0(fhW#$r}##xJ!r*S*)XD z2PmTSjvSYm1jVs$`30|Gi@+`of&YM&nhT6q+F&~dm&Zh7zit%(N12#WX;=}!!ck7` ztQ4UA9Bew`5$H~7acik=y$O%5zzx1G2O0T2r98Z*hcU^+nhQ)};4El~s%V%L3(3?+;= z_)}+r5H1l7o$A8PNH%{Y8#q{(kGYMh`W+aIy;W5IeMrRaaOAPW7HC1e?`;nOu- zMEg+9!UcE_{mmR5w-X(2Yy(qc*dPDqG3y^fx8;F$-+=_qc42@+viNRl)A7T66UO#b zS-IJrWWK9k4jc|U06$|g)8gdz?fpxhv^+4U=w{k#*uxAJrG%zpCOqrcx$e z4g(sqw7(qOUN4~&V3)3CWG%3O{7pna*|p{!exdMJ*#n*&pq%FO`qKUFgf-OzPhY&p zu=ZCUj4J{;<8?$<@L%N~mkb7?NV3QC@7G*jFqw!>R0Uv!RGuaGQPXGP-8Vu+2 zq634Qf4gY)pd>Z%wB*L0um9UzHg6di2W}Wtng>gOtuypDbPUIifX{FnxF}SB3TXF_ ze>Al30WjGXQZIm3qyeB>3vO*~ZEy83tHiS^1k4cfx9h?|bV!A0Ucle7X-I4Zz4o|v z4I;iBAgu6j|7)(><}{Q72B^SxC}n^#RWQi%Iov@#67P;>7J@nvLqOvt&pue;%IG5f z(o4cQ6`(P!FH^G7rs~;ufGy(b1n%_$et-jPbM$)3Wz6{D!@(wqQE!t0lvUSatHYe^ z@9hC04nWzYyo(I41>ze7XQ2j#UV3;%ip^*V5AdBTbx_zZ0S;0Hz^Oby-=-|C8GQ#d zwsExxpkMoq?OpHvyLSoXO9ei{8{%Hy?m%-Of`Diz%l{|ni5vhGgC)py+h9wDU~l(v zB`jz7!{A#GK`v-rPb#{CQaK5%61qWKvyF7F-WdbK?2MhBgbOU0PA^Q)%al>`@ zw~2jU?BSOl_kvr|JNg1-#6%#p5;flZrUB$`IXDaTQ0v*LA!y~}0B;}_WbA&){V6tp zG2VjIdHX6L`-UvCD1J2GtF}S$%SsTF!jFo8K_x&^dA+(L?>FEuA;ae)*sMx-vt_IM za?FoTai9n$L;GWaq|F6+V}A?+ZMI=!9vrCz+GiKRhCT6sG3E5^PW8NDKZUDy1U}p% z{<@%eE0AItJfLn9$l3Y(+lwdcKnE?dPg}Ws-Fh~WbS%{~_&L`lub;Cr2EfS*T#*VJ zF8ToSR#V&EUY)A1f;Q^{KHA(glW3X5qhEem{9{W0KD?cvdzY=*Rg%Br>c}cemq0H;*Vl*4oq$0mHlWx*+q9 zBo1gjLC`dt)daTdvELVUT!;N`*&Q`3l2~4}YlgZ}Y3l+|m#M{9D}lnvu|6odpWeS+ zkmZ{IsyyzoC1}qlpa&)c84kFu=og1y>uiHw*~v9Y%_nQgmn1%#K-xRNshZ)FO9QEv zfK2)H_L0ta;MFmI=?5j&-LqNzvhyKev@Jo=R77znhJgpjC|V~G_-eqc7M}*knO6oi zf4JZ5$??0^zcN_TgCErH&@y-o=87gR?m$RPY~tg&FxHau2xb-;tZ+PQTs|0?m}Q6S zFmqCsT%bh9WN83h9aMXztU4^&X?Vv|ij<9^mvW4QKqXgIc-UcX2Z%(f5N>8VG=eTA z;pukXbRk#&?SOHMZ6SjeEVe*!)mfhYm*6tiA1PN z9urf6jvpGVxapEqQ;Zk87RtxS6bKP~Qim&S9DnwI+1Z%9TiMYlW~L?Txntcm?(ukT zA8pI88bDe2U)XySXsG-DZ@3wQv5zH7$i9?aizPHf31taQvJBEf){-q5`<6n8%330% zAzMU9DixBQ>{^H-OO$%vAFk`SJ^%ZEp8G!cInQ&RbDwjaa~(1Bo%t@G&-?v)zm^kA zdv(!c2aFH+T5)vOLt(@Ux5)fpAR9`Qc_t|RnHV8p>4Tw;06rL z$4>z#$!Fx9ErUnk%H(xU&+zgffVjlRoBjV79dm@f#zUN-j0x9&ow?U8S}cs&&H9Vx zR+zvXU&?1 zIafL4E5!W{20|ym7OC`9+t$fC!ClTtUfSwXWhGEJxA-r1V;3uJvqz#UfEBiVs!F254u<^6u%}@YZQ)4#}SD zcM^$kFv=VT*PD0G+&FZYI43aZMIw5uVmdVf9e(bXoEbJL7?ioq)HvQAZ z!LJB85f4+u_FvXtuoYgsz}*hC`F!OOgDcU|2hHi0ev+MjIt0_1Js^KS?n|A-bijZ?$noow{Yj!SEo_^CUrAnyQE_?z(nIZ52H^itWb6ydseAjrE4OOh`z2 zesTA&-o_wri`#9V*xiP+atEDOy2z5pqz>+u*g1Pm$Dp3$7?v{Ih7Zx??O#ISR=s`2 zGm1ZBBzTjfY>2f@mH#j&dw1{hdGD3RbHRq}gmR`=W>S~Ma7mAB2k0|KV)EacCa}Y|q&ok_2E{xk_}6tNk;wP=`%pb^zWB7O+mO z?HoCdH1{eCDUETlwU!=~-0<5xfbI+s&8fp5Tf<{D^*Z@oug1k$Jom-kJ4*F)(8kH| z|4hV->IB^mYIk4lO@Nn<{hGLDoK$ED*cV$po_m`vpW~+ILDVNP&veu+a|Y9W-`Zdfnw7JQT{C)Qt4~0d zx^Wb~i02lKp16!Io^#t0OG(hDvz}wWL_`&oN<@J&{@mPpd8^HItTf2W2jgJSYW{@v z&JcLE{qk7AHYicsshN=%>I)i!kcrxH%(DQnys}K`yXjtcuU}BVHr|fvr&HxoD>hh4 zI9&C-guXzp6#y+&V!AaaHlp6Bhwo<^FFi=Xlc2bfIjSj|pMLvciT=|as#7#`>%d7c z8QFLR-s82d@Mt^3Bbg)ZnM89f`@v`MjA-EqwV)3^e<+aN)QqgPSh)HMKws1mLVoqI&}9Z$)MZN6@{ehPtO&GEwVB6CiRXKepvu+XH; zy=9biK~xY0{^7f_;0;)|OY2WpSCy5*lXpBuMR5`3>x_Gv@l5YMW2} z@Z!t7aH3Qm+K#fgxi`(Fa#>oMQO!n>R@rTg>q}}%69Qf(cHyENTZE z4&SC&J$cuQh0=Q(dcplfp&=zR;Ws0~_zltyRR+_V-u>0D+T;Fk9pNr(hu7b^=m5NPt=75wN;Xy9U-wm@r8flHChjjg(c7F^f15>k8?h|5&yD4m zq}D%TH`KZ1wwZ6?ZL}QG2Nb2CFOklBAt38iTShW4hYgG7(vWY&BZ-SZwnxSv$o>;p zb#matm-wNXXNYO@_N0jws7PNz9ga3V#MZWmyLzb-CZ4eA$DjTBA4nYONnRg(`(P^K zz!uJaD^#|Z$ojeb_4@v}EiVyu1u7gwT(67^$$|;~K_D+mxDP!pb$hS=GJQ|w>O-hj zulN96d%Io?7dze!Tp%W3q7EP|>phd~5Dv1jXtl#LM({8#X*mTIM#u9XUK$%!=|MP6 zl5aX+%7CN`ioTYPfk)@^CSIo<5e8i*mnE_QMNEQ@ENvP+mJ|o%0|Y&g0k8KKMKT2$ zfFh>Au|F##%kXN{l_&=+okc7@jw!2wH95f1aHchN!zZ0S5fDj z?0jVT7EVsFb;e`p2IKKSql#<4xJ7|^HpMFF@wMG<0zYUb zs>P=py?Yt~4Shkif10!juIYQRFc{3EuF(lDCJ;cb>9*N`;qAZUaEoU&=Ir7ARDe6C z7Pqq|%aL#L(R_=HZZvt@Q(&lTY@QUeE7z1Z##$*(` z7~WP} z@iF1RR@9~%Ae!!sCS(30y~=S|SdD<=*jhVo^Bz#W+Cpct@%w)wan!*dyU}8f+Yf)l z`^3X{U^jLPEA<#X0xa6$X73haLZ3qf-bkFR4WEhW!VSaZZCU@Z`oY2W#L2;Hs7Qj0 zTgYZlTMZH^zEl<&TEAhxUB84=^|1=Vx1&|?-EZRovj`^P#sPV9*!& z+C*7ipYR|!&u-~UcU}WJXgm>*7v~)oy0W{DD_QY`KHk8Qy#c{=bvuLVlH^Q?4$fVS zmV#*t=rrkaZD4wHfn$&ETj`nCeCbYw+0>VE7qc^Cx@T;%Ll%l`ZRStDI;j$IcKsE; zdh3{;-z)B8Rj00gnI1Sg+j^_7aQTOcF9&SNZ;Q@FL|w2d)vd_X*v8{N#N3ur3Nk#b zcznwSOOuHw<(Qn6{w247TrYQ=?PE~e`|e7GK@NO!IAgJ}kyx!g>;H?p&w%DG=W&JF zXh#(%%fab$S>$m614?unB+=s4!CpkS{%T4&JP-G~?26>pe?0vd7f0CfxcTOzg_ zc8zk&ppuG>AMJJEEK3SDIRF3Zz>0^6?!$F*h+Bxv=YR{3m~@DB`3Uf!#yj^i3g=q) zeANfAKNs+Ad%L5S@#{66um+Nn0TvXmGUU4t#v~H|rI;JV3U;=z4?9_w1p6NOcAR1{vf~1mAu;PjL-0u7ln6_AQt|Alr6eY+XlG zp8X&rE++w&eB%TlI#YpB7lD^{2b#ndY%A==1qIwDNs$+RfqR>?aT!dA3RwTL zd=wus0AO?7K*HO3WjT0aLCzxkgthRKeRe;sBg=AEp`(K}CmuNId6_9&wb zNQL^uz?69Xubcp}LTKDyfx{aIt)$v@7)S~7sh`h(ei8YRt2#Uc;rEGv!6O7yFo^HG z^cgH))Exdgo%I))xVXuHCrbd_7p>eQ--#4==|7ELV!gp~%A36}R`@nRI{shOjaSC3 zrDW|VJi*0X!X>zR54{0q@(DNEy@WBwIBW%R^se5>AsD@y3lo<1dWURs2>K4tw8@hv zpo!_{40noN(@S62nqNo}^~KK)gMH#b*ir@ChQZ1o0i@XYc#TP>QSfFUCoZ#rWu7Rq zceqz{+$!rA{YK!#hzy#{&^lzY{|u|DdjL;0(hIGCrY(8$D7e_A!LZhmjYC@vK&PX# zHrB z4-m#2sy~mB_)D|LL8XCBSY?WdB7~X&*myI1;2Ob?++LGDyI$6SyXu;fzb$#fOom8`I``O~* zN#f?wR~y@`IDrxC?%peW018m3Flf!K>#;ZX?zUuYYSIUF$6-Me*B{F3`vuf&sIUIy zIWBJhBA#Nv_zz+Vy*WeOhI*8U%@!v|Tref>>vNQi-PpKf(SS6EpTw|nHVc6`VRipG zXu*ABNB{m+#A}9-;%eOiPZk*l55TY*Qe_Ea#Z~rg3BZIQ0`6k)oZFbe? z55mnWhPICUeCd16)=TZhHhW&ii|i{+SM?YnKJuN*LF+KAK%Crytp*zfM(RG{vH#lc zgzJBw-AThb^+%kbh7;XSgb_flY;Ah;qQQSn8CjH+eFiBLh9LP)Qk>cei4D+IUJ=mr zH!uBt?(Nh6XjBv5Zu(bcp4i7>Cg1_UMP|jai~YBJkq8~wkdZH{*JR7)m*AYa`W|cz z#X-D)W+TrZz7XnmzU&zQHZZpnne(73Ip{v_6$KV32LUROhE-{OILEFp>;N6A`(5Kq zXi(u2gijYMMDiY0{+lTxUj|ePq*XZzk3INt>^zv%{xFi3>>&g?LiTn28&@%b2Q~643VxeBLm6*dw0rx{pJtg!^i^f-b8-*&+{Qa%0bh! z?tiG_3HkWM1ZjQN5K%P)OH*BKqINjbcI#4IdyMu$Y+`bj@WBLOysW4xL*l~_ymXqL z*YDN)f9|iGj7)PnSuN%IWKrX%^p5vk7EcQ9Rkq$c(p43Sb^bZbi-9{v+yp+~pIx$p zPmr@N>{a>F$9u|v3bW0w?(r&b_qL)om~lRT^aTKn#Jxe6l8upGR{vgpH^L%7RkSKmov{&m0@QoyjdiRH(hqd<}sU(MS zH*$PLj3B6flH-4JPOk%D6(VF8%rh(Ka*^VI4~7~8`}g{O%R=x;A|%9o{0V)x0o)_B zZ=aCZo@ImPZyYp#C0!AJSwzh<^jZ>2!clrp%c=mBXVBo9=f`_ZFM*P=br&?a_AI9^ zt0W%K)4R9P;0FC(IUrco4xRI&?AgGE6y6Q-cJK?ScruQQUaIJL<>7MtmBFX>^ie6# z?CJEO`0_6622^7Lq&LavmT{F)&1h2tsO06Svz|E`o+UGJ`;F9xgZ^j#j9B<9o?<)W zXl>nuKQ#6%XmP3M491E5ZI4pp(>7<3q2V|2ZS?8Z2VHK*tUbV)Zv|9E2tIKRV4B}% zb|>mFgxr83@+;o}ZrY^10Q3TnqYB4ynL>9vTHdZs7POETZkcgiJ~hv`v6_wo4z(p? zrqK-5$FLZyq4r3H5WD__h!Zkk*BR}Tm)*QkfTtqHh#yUf@82&*%#|azM;FHD z9%Cdl=1R;retALMqoa4(Zm>7ov%@#`dRo$p-u}5i%TYfPjy!zuBqgU=$p=V^i{oxX ze}_^vNGOt@F|IsSNfP}4*nTVD~@c0>sO4H;dFeZbHXhko(OS4T(3T|6Fm{RZ@YeH;G)iz#uo{`>P z)vNieN7Aws(GVuU`#c$0LL4gIn5+okQ@PuxdmbP|G7z}znFr?y{Ytm@0*fIdokhpq z&3%P6-vHIVf6y?v418eM0)G9NGXuh$>W0J)7QL=zlv8r?_sYi>WgCED+iB0kO4Lzc zA+tCLtj-tEb!}yx;ptFrf)B!d8S5-@=z|_?ADc1nurVQMn}X+(E?0}q%4Kz zJYwW%iVoMuH#hTe1RcD#ZpZ*j_ddwRnwWTb4Uth^!fGLqgbY-`q$~xdSFeEBF_!x= zmNHc1V+`LyXmUQ_Q+DKIx6M`J;0a@g_S@U6t0(Pb+kxwe{|(6Pc-KSIA!uK=9sVtD zq&~vxNMy_Y4(VpH&+P`$sNZ50u)+0F6}B%axTCAT!l(S1l6t!{liwgHC_ zSr)Ws@!%$tA7EK*eXsZca3ro-`JgNCe!gAazLw4kE(79-Tm(n}l?)OgRXi)&gPOUB z8v_K%Nss~_xsIgg8G%d3KEJQ26gNyUvi1Kgu>$<1*&4yNEy^dN#?KkCnxJ5{?S`u$ zX-xu6sZ7s<40GgnfUNIlSAc_&Oj`%`FA{@**R+;Y+GNGQqLvi(dvP`UG??1?fto(!jZR40pL1OzID;Xfk{P zON37G89*hbtU85UzEx$eZ-v-H^&A*YuZbwDKf0?h&qajV?IZMm!o6utFM>r3ZI8CJ zNGhsc;TbFZbLq!uq`{qdu!>Ew0Q%~CI(GZ`2jH4_8q-CkYDIs{fWAL4OnWotFrFnNl;MmrmQc;+PczDxC2NX)ci#vD`v39=fSE<$Zdjn_=Id$ zo5uIc9OW>9K&Es_`~r z^g_}JjVH3eBcQ;|UuQ(%N3I@Qx1^+Sm5}8e02CH|N=hMln_Pcp?SAW*E$5*LKDXo; z25b{oAl89-G>o{W`fe;?({`aGhm! z4sK6rI#; zys|GmLI@{o84K;AiB&w9C|;oPyR82 zepkkS1B3N8SaoQZ^AC1zJjnX!OfljsMXZYN@E9kSKPC}nTp)JgJeV9no#%WcfjP>xkJ=;!Zv36(2;$qgZFPXOJxzH@yQvo zs(Wcf%V5$nX?Yf&Bmqo#a@g1OYup-m72QUgjy9Sdq?}fl`ySDuO5Ix$$k~p8Z!O~O zKkJCw^W|7eXFmMY5CT)Mq86IVBQedo!~nuY&~86?_-YwYCQDoV9f0KwK%FYsH3&gX zPidKgBMSS{DN{2?2)6ibl2WtX#xyJA_K4jH3a2!RLo5TG25y9Wh>J#=FMk8So^B5G4)=oT*m@vBZtp1^ywVgIj`B^&!$_^g?*~FDLJTZ%bB$-7OMY(n@Ou=D= z+}uobpAKyG(+w-7hF|~BtUAs5{#{e-lP0v^nx%ZyxnnZY+D*A)gGtIdG5eY-MDUnjq!i_o+(&w zgxk8_W5uC^&KSRr7~m2qPS~ll_KnJ^07M2392s#Am58E<-IAusZtTz3iqnscILB42 zAaA_`TOi_S!=BJ6%_D12^t8bY(xLE_?R(I=Am4^s7 z;aJiUDcoWEJyC~$S9{QG%d)KUuvux`92aHnySGeF@P!cT_jOyOS2!-|MRFWb0D`Js zLQqxJrp4u|=N6YWj%8Wh5zdD|zJ0eegEFqne{aTyXW0v~jzx}0iJy&aKfuv=qxrYN z$2LWF=uIPTFOTdY^-!zq4><;0v3;l4C(Nsw%@C|KN6Vi57*ADA*m}LM=P8LW-SNtjavTg1g_N;{#)60x(1qxL{h_KiXT5TQDSKXb`Az`oa(iKI* zn;5y7LoQQuk>i>3dk)jv9@C;~?moe)4w<5K3$U0Lel>M7V)YP|#Q)ejU;r!CZBcTG zWwfvutV-Y5mV&C?9JNQ7tsl+_Vn-jx(Q5CLW~z8IveIiC>SbR#+P0g!^Ep36y&l>s zo>h0&(NoL)5p;?zn~QIIuzOy%F2osv8N0&^~JPCT4NU z9`4~hTQ(W&0^w5U_V{v`$eB^O7cUuo5ez>Kx6uSscIZ#Gfy0WM#O&X&y?xp`Yoc4# zIMv|4EwS+CW_o@yIkJYQk=8U6Kkk7QtcOj9RJgC5pgKyW31T%%1-h}-pM8(m>%%p( z2)rLd#V%^oe{zcHBsdN{HdnlrCvn$82>7{CB5_i3S+4ma?bu{moc;xeGes8-q zRL1)N&3{9PO$_;)lUbd%&f<0^O^*KM(fA8^6^mDI4*QrA*Y-bOM*xM30Nx566d>_; zDF{Ee%KdK7qAkxTw9)X9LjZKdX$-B8KE%n;*qHpR&~*8W4gY_B30L)h`Xtoe{s8Df z9&3l0*7q1O2HO2d^2&cveO$JBM;WLyW&75e$NuW#ZSZ%`z#>QGIk?Q%&$E?yR}W8KES`Y;+Plmfit zgRt$cg>32>1DBB^UCzDTfW7HM$Fir?`K}bSjKGFFVkKy0%;AkJZ6uyI$s}q2Z z&VyaSL12`OzuBtMum}UU>(ECQxcvD!{Ko)>CE!jaeIf23^Kr3WM~f z!PIZ~#nf#{C(N<^=mp%c08wC6b|iiX4|Z31>+G ztuApu9XjeJrJ(}E{q@W!aCAe&jR_#LtY=1n?U>zt$c##&nXUttcsVjbn39Rouy%vO zj*Aqd-mnF=L5TBD&K^%Axpx+yHd2mng9l;~T(q~BvdbSMarKASfc0jwO7})))D&b! zSq}rRdvOi2%4ADQO3aE#N3kgu=6lm6yIHR9Y>8G!GQaoBuXnWNe}!gT3XCAwiyS`!U|G)jV@K4?Q$V*{-7w2mT;-4;p{p*zGzc&6#mkE7XamsLg(!u8#V8uzUvOf=QK_mAm>0 zjSVQ+te^Kk3#;p|$tsHes$NoQ%Ta zXlVF2boVhmbPI}-DB6ub17xVKzY?R`4s^Iwf%{Mj2!IOG{2>Xhi;R#KZx%YW&dmvN zyp&P1XVs^G1J;Sd{0RaSs;}C+(0?mk&rw@Hz4uIafe~eijlpnhANOqqmS2}HhUVV1 zxK0m7pq_@4{ag3Jny>^ZIw$7Kgn+8CCo3QL7g1ysys8*QM!9Z8M)6+uu5G`9BBM}} z=&rfB$zz|ysCD&KfL6uq2;*|au%>1S0}Om9T1HYER>mVn>;mD_gXMBRkdSf`)WNRX zW`Yj>%>|&3MEV*!Rsr6;`?rGr5Zb`=_b7uUBu|UO=wXWQTk42blIeB&z?~4MUd|%P zHgW+?t?zvDA)HxI`_>>%GZQi~Xs5_N-?{f~Tl-P1Kflgd9HlmhGyVB0r{exI=OIP( z1q0`1qj-^7$O%xvVt7n8Jrj<>&|xEShMY74VfzkzM%MgqhR_(DZaqDU8PcOuGwNOTyf*WKjw{K?$k=~3FeG=HZ@DO2{6E~sm7idUgK`cXLN zM>kQ4I%<_p4%GH&&^aE~n$FKHhI^|(hF8 zR11Vh1wwcf)RPb%rL`U&<*QZXrfYJ$ZF-)Z6a12wL)OqpNAYt#ZvXLxR9ro0w$!Cr zN$a|54+!3JvFkKyXHzWkb_=Ru$tije$bi!$mULSJva;C-cXYFCGO!3_?7=!EQqHPO zpG7gX!+vb4yuWMoXn4c08l(&M3x{e|W#x zyFO*q^%5jB&|oQ;9`8R+(9k9mASlU0r7^LC!IF(`1z2kZ-iLec@Tt*Xf=Urdix8;y3;JeWSOeB>AM-emu2dZ3w|P zm~|C9*laQ$+hN~`+l2`YUxpCI?MGEL#7@&h)w+aG8|VFDi|fif*Wq?ZF11>Npj>+^ zOHKths`_B>(;b)#slE+kWx$j}=SDYO$y3)um{;vU#DI^g)0>(7ur$Op&^d(cGKgaB zeyRAWe!g>u`_WIlsplqMjKbKZj=o1YjC(yjDkFL=*zFsc`IDTXm6Yp6NJ( zX;0We*4Y6dvv_$rHjch|SkLGZm%-{^FU~UEMUbt!DH2iq@*2fqhA_lN3MbPQa?He@ zK3mmbbB+6;QId7#>Cccw&K)GpCP^ZkPag?v&~5YXpmE^|$@8-k$%1&Xa)lgu^?4pn zmCo?>T(%Kxflai3Edh%+os%3KN~cA5VSWSNC6Y88k_%|DnbXV}43r2(rRLW6Ws3GX zn0QsvO~o?tq~nUMjPT?~s(T`mP>+;Meaz-IaeuVZ&(mP^XSU36*ez6Q z+7OG`Y=YlRN5JhT{wULL@b-p^Pt_&s^hS8p01A(q{%3g9oUB|{f3=sE%}2oZL-h4Y z_&EmY?stkmp0e-`mt61=air*GPN$WkM~5w4FCkea^S zsf=Y&M2c{Shl~R}>H;2DN6(Q=t%yoL8g#;H%Ai`9O2Zdu_bK8V-b9>kX693_n&J2T zXLuAjmQIp2^?w{5b?hJEQBb1~X6P;m^T@Z{xt*9UwZ*El%#d4$)rFZ`#=7ft8+cgB zyc)hn$+7*0r?6P}t2z+g7Jp+TD`S?Wo1R@iC1PCkag0}u^wXnHG>YEM;q3R|J%VrR z=NL|3bdA+Ng?mbN2!3G|m6az!M-9!5UbJ4YUpP2O!^C$@VTQ5U+mh+@MQ_Rh+%@@y zZAE`XXX_zfZAmZiR_3&Nu^_!^cV8VsBgkQ|SY1x^?up(AkE&vISr3mY`3m7t$dnJl zqedV+s`o=MhW9uxl@7wAZuy3J|9g1U!*k4kg-1>QTX+=jzlTRn->QP}DAkSds2dyM zQKg>X%>4|5WsaaqLK@!~+tHiFd+PQP;%aXHg2eYuV|reZc8238%JQ{~>RB@#uR?Z| zk+g~N`;7JMsNE<#N+}z%qa?Y=Im;!h^RnquxC?;Wkc?(IP7d)BtiSGi^i6G+ z#WIBa%*W%g{NLG8hnY)LDI=7BWJg(NWL*9Ewyu~vJq<21?#GYsrC4KECKqmI#kYR# zrm?Nw;rx7Kx388gRyXSNyi^;CcJ=ZG@Litx1S z(_W8nVL7_ndY0riS(=r-quiz#_0BVxB;c9H@j40%nfNOmXZjfl&el|?Z%&>Q#H z(pPl~xp`E5^w1T#LdSf9@xw!nE}EY{C3jGFR~0@Ya!hoVGQ?DA~#)ys~%noB>xszdng_cgGNu zua^3a?mWQ&*6FhW*vdGS9~#{?l})SyrvtcgWMg=*ou+w*z1({h0}>tY1JfzYanqjQ zbU3jygR4b*7*gRh?P7?pJg^h!1G*|gOvc!3G%}Y9($Xvg3PJW{Ti!LIE?k%W=f9VH zlSKS9?8J;X8TkS2snnW2jByeY#@r-;^x$EWZH=VhcFVG&W-gOgCd#)rGP?FZEO>D( z?%j!aEB-uvKLb#c#v`GJkJ8{cPA$Q+`TR9i}M9=+bFl62Fj03PTX1zP25@l)ZGck znos)roB@6@axg!5bN79i1RvSW&;1%GCQ0oe&NhIQDuGHC7|wy0q!{ug2x)$~6LtH& zy(Gkc+6f(!>u(ftF|ni70*2iMh*HF`>&OTIaWv0U)CQ1G@W~mi6E6sS8oty);8m_^ z55g2mwgrq5^FSI-qcwyReIBqE&Y z_!iAiuO4zvmH)KLyI&MB zKUw}f%CO*IM~jk%TV`U3BKZ6ob5P=xYsG|Z%0&!nWN~oa!L=NQXU=c9L}PW~Aff9A z38_e;oP6oEeh^dQeb+r7xR0Um*@STE(Ufi;jHciG9V;dnv!yt4tAtV|!xxX>aB<-3 zLuEM$3MGL8Yv|Pr7mgdkyv4Kvzgyk? z@gGlc5Nh#XkaQiaGJSM9l3&4ge>+D-+eBNYT}z6b478J8Con$p^AL2Fb7#kp+)a^v zbnc}ecWJ>oxQf4g{aQT@+?K9`dawsZodP6o5@>tQdzhAdt0m9w(-xO+daKr8a}x&G z!N+}IS7AzDD_xqs6=T^Qh-6kF@g=$uZ-bJ-4jG$1D&@Yrq&cxh(?i%~Z$99C^f zYW+9YAC#-_!a(+S-#Jb*1KI8%B3{tbkk08u^Xm_gKTH*SMn6!EKEe@6BHoc49 z3(x(LJO&Yw-aNP?w|*weFb$Tf+t+eNZbLaOw5$ke+rA|-Nzl*~P2_NrH_OU~i@L+x6g&pk@oSW6S zD=Lx@RfF4^KDS!%y*W1RHiv}4CTS8aj7{wDgG#os*Xw-Tqj%Z9Zq>y?0IC78wGW4baX6$^50-FtDzfv^O-qSZ*1iKFU@gVFY*Eae6pI`p#Nq~_p zVs0Rm8M1RE0Lol9AxDPBU^&9Fr7ty=7Z@>icL1|YRP}UtK#4?4t4h05I(6kAkyH{`)NQ|jeZdK=C|bg&x7llQ zq@01B`UFT%=3yv+jL8u7a~=pUj5rT?#=Ss-gpBUa&kh~~xyOUj8lWP9k=eoBZiD%= zui`~Qk=;>C%OT)0RYzc3v^M;pHdspFuyF?%9oxzIuo@W%0}m?DP7o!K1T1|?06zB_ zh%WJ(ZUrR?%5@6k8nXhSM;~xrUf)zPrWK9bs%bU3!?{yhqT}o1?^h;XB$e$MVe{Bw@CTQ&XjABbcTo`DGH<>&>ldpbdj-|hl zg719g?>s6vm>%XI)paX>yXWl1d*(2HyX^!`RsI(1e!&15&md?PW?K}q-cU|hz zv^%3TBd%_g@FqATCh5U4g}NU(T##dV?6N-#XBs$PYwJW+JzM^5m8F`W4LiZQofXt% z77d;)CgAF5(IiisRJ#$9B;1SMgYlnvRQIJI4bfv?_~5CU8$i)pCpHyRo;Ej$nA zvC^{IMV@1LP2JW;m@T*-N44qp!YA06#luyhCGypvLH7eHjm7z|$b-whb}=R9^|RHF z2=Cs_Bk+L==2wfakqMXJ*Pc9MA&adWjAk@T28Kle(?%TCrjX6y>v2?Hgr3=&iGLBS z_4%4%6{?3^@4Tk(!dTFgza=!_mhr*TYU|fm(KSH3i7byvz^J3^#vQd0IF)j$cH>7Q z&{N!Ke17x)&0oS@lK$je-sK%bbsUb52X92$7qVq=nd_pJOQ;Y0?7x)s{q5T_t+g=sT8UNSrZQ&*}ZKwPB#~@b{Zh~56ZfE_8@iKus-Obw!GdcjE zIst+`4lok{^7=J++z*1^!PlB!8J-^Xup*(AyVP}HH$*R8Z>fZE-nk3Gu*ANk8&B1> z?g6zw!RLC_)#qAd@f|-^w`JLP-H~O6Du4|R)~aJ$Ye543Hs0p zQ=;bk3ouLrzqfLtfc=~1>n(f_7OKIr6`U=`>t0RqMi$vYIP-`kuvI}ea{1Cu+4ZO` z3ef~o3U0i+yw}d`X=C^yJs$wejC)qave4iLO$B$gf*0NU>$_xMp-dF;#5)07w6bF} z^F3(CZ%q^8&1?O=B{B$oCQSKxO9O5=7`?RJSgiB+AGpLUTAGum%mzq{2>~BNxw5l+ zj{8ghpaz7R0N9d+rX_;kiO6)rK$+HJQGxk2gVT4T)EQ7K;^YU{1VX{sA=OAU@M(Z#OZ29dl|`Gz%Pp z%mKC>ZS;CQw%`1G8ud~P1$k5BD;iKL1Y)PxMdueNWXHc{!L|FwnjbUpib4BQ>|2w5|Oj>`fppkXt)HzV6S{`m%#g*Ksz zaNr}(#}#E>xV?u@^a{K-Ixltn;8;opHxYH&YA)KHvNwXm;n~NtgBXzk6YlHqKx(iO z>1myRh>V}Wh z#jr$LlKEg$(9xq{r*yXFF{C4kaLj+-xjFa#KkVEXy$K06d6H7u~mGeh?G-a0O@kNRXSzT<7j*m4MSNSNiNb3BCwIu+O6Pow5e|5z+WnBe3pl=f23ogg0NmdQcxX%ljbCa2UY2Eei6dP>~X>FNXRzHjj<|&Gt$(?xKXpLL==N zrE_hzT(85e@f%T=r(f{zNM!WrQEjG{d1Bwy_m}5Z+#F{U zyC*Lzv))yua+nBD*Fl`??=_#5-}fuULp@&$ynnRxMSrM!^@_-?JO!IXx+8b>?_+7j z`w1o+o0l&3E-hDbhP%Ki6}P8!(Q4eoi^7!jf;ZKP#1JG$CGW@p5#10Z3p|4I3?W}2 zsN<;5Q<~NnCkP7OUu_1pSuRK)5=gWuX}Gh7s7eNdb0aX3M%H&o9C08O_+Hm&=viNY z#9A5}i&C7rt}`&fAjwv98*s>>qdI`%un@IOW2x6MMdRtP5fb1bD};+Mj@K3xuu1!I z{5SD^T+P~N|Tq_ffgNB zsBF1%dO^gAR3<2b7%ZH;?LI^Nku0!r9$UlKj+!Gj&4qZ0T^b0oBxbIG?C~m0rf>eD^)oJ^0RQ?`-U_MVY4X(mv!XRUHuE@@JYbHxEFM)CF$i& z*^o|A^|<0b0OQVV16F#hg(#-sJ>l;WPMAkEu+%hJPNi+ zV0P7ld?TPcX7i_s6yrRFFXleojtL*7DSz%zPr;ahockah|MM2Vd+Kbz;YfRNa zQ`o|`_ZMoDlTnI;A)gbd>Tg^$Tzfu;PXiUapaB|4AB zz&5~pxZ3vY*`ga{;h-Xm5YCpb8mA$y$2wV1`@nGEa{4czw1^3cJ;J=5n|rd?-pZ41|85KVEe7N4*zrbMHv9{f;fuFp z5R&}}AOK`<;Tbbj?sC*Ao0U%)*zRg@(;T85%d$T0ICwQT1Rl-;Wl7@<>p545)qYMa zhRn?T-TUq8peoufWBu*ZRsCWo-Jkpn2X`{ywU5S3lnV*DU^ z>J*}gq15(*WnNUGCaP-*zUO}Z@I+n?$Qq6Dex;FhO?Fy!&TpVI6>}6q-T_MP z%Wer)C-#;_>4XWB5JU1YJgm-*W!}@4$I6|Py@qeQ`Ll3w@)@aj7uyuZ#JpsC%suky z*0+uLEX9}DOu#~3fami4es)g&1-4&2*LFwohOxVhtFs-I{B(09R{6F~`+;i`hLVUH z%i-Fi+zg>-bm|Q?%CK{HMS|SANNcIWeOkkWe&L_-S+LyvBR(s1JDn)=dVCf_bs1)$ zE`<23O^v@%d={nSGd%d~@mXL~!x91G>W%m;5Zpdk-J0VPP7!s-ABTm`!t|SUm4ir1 zzL>1p9mG^UrZOvQbn$BbagxZ$2)LaAN{#eiyR?ZN4Hl`y5iL1p-`$cN{n(D_*Sw#U zUi@rqD(BZZ@$0@!OB4f6l8qYU9a6Z(Qe4&nzoolz^bGMhcyIN33U-HyDB`(Gb%;uQ z!9VVTExsnrHQ}Plr(>Nd0+RBl4hruYfk?msKeX%T#N#l#3#|9M+7F&7aIy&h9~;aJF6Bvn=SZ9P5<2rM~8 z4^L$VTDqzP=Q2*ClzPw8BHQP{UCUIb9Hvgen+wBxR&Zn2ymiZ2W zCVgr4ec@naDsz3;)D4qUq=Qs{4cf5!Tm~LtIwR&O>K(F;GbY@Hr~B$*-U%R{-6=A! zx)W$Wc96JsPezg#FuKPIjeL<9%5&g`ArEG=?!8l5mwx^D`J>*eX`+P@^9GU~`*m_T zaRPx~U_H0wE;#&6U)bs*@CV(3l2cK9)=Lzhbv$c~)5Hkkvwpy?fs$n*J`2u){a^7} z`|yVA@mV0A{5w8t1md$klK7tvnG`Wh5gBHR!wMN`it=da6r=3pyLuWrDEaDARit6a z1bl_-^bX|q)?O(aAhdN4To9i3_*yMFf$_QPVq3+^EWGOB*C^UJ3=^FRU@TjtT;nz& z-6C1Wm@r(2ahgoLZj|0MvNTzv2hrt zFEr^GcPxBN%@5uo={K8b`yjkfVAe@?GsFhBDwX_Y?srYEle5@4{qf8|s}n|Hfj%ky zpI2C$nb$u^%K9pTm}sP}Gd=hq4*hsE-C!y2W$L8}Z*knkdaMj+;}2M^sz)VGYqQ`> z`BXi!4q&=4MjkT_A@3NtX<9}f(=k@weULMDm{?x3`5K+B&@`@)bNXQwy`{SKBmI%E za%($WCy%5hgLDgviWIhLgfB{AR9)PN+nUpQDK!bc@U0H6-kEXZQ(2{GQW=M%*-&tVwS!i6`vp5<|Z`IMg)vbg?=Nqd$YFJd-HxF zv}2dErFe>MjRS%3JqC8a_gw%Q#-RKxQz^*LdT(kA`C0Ef{e)zTM4A82&nhw7$j@qe z=Ew3c`B_8JE*tq-%|HcoVeJ{EU;>pPKWnj*_^z7lT5To~PZks2mWc3=Nm7Ni^0rSpxwmz>a z)f<;0p}P$1DNF2a8k_Sc3b=*vBHa~eQbu>G>bz&I6h?0oLy<_78dg(r)6@CjX&$#G zA}K4MXV8OMlzw$?pPC3O>1cQjn-g)(l&6SC$AdbFT?~k4>NyrK)YN3~&-^SGl%LfN z`B^~TPkMH@l5?~Ve?@x}pCl62kZP|FN-KQ zE*fy;i1H^lM(UqkP&&$FZcG@t(mkD#FM}OiNC<<=8YMRs{ZaKn`9Q#Fhna&L`y(2| zO=psVIv9TTEB1=Um>+oa8(glOv+8Y$RiDp?>A6q;yurgB9EGkym%rU+)_W zolBGqc0YCK1Nb}(9mX|knG8lY2(s6cI78!U4T$W51@CJ-9G!jSu%W^PUqhy*O^Z$S z(epq?yPj2vos#2}q2=-u(b;TTk-CZe?fI(Q(rlyCjKI!tl{m5&u18bUT;vwv2=1D; zh9(T_eMz%`1l$bP3VX@c&vsxFT?ue0yIp5-w;tPkRKUwFzJUiGzlK-#vzC4`Dcm3B|7A;d2GS5?n zNJ7ZaO6DOlWXf2|Je4wAqSBy{A(@k+B=eLq6beaY3dxXUN)(CI?|v-b{oQ+?-#+JD z=eo{c=XCj}yuI&Q?|Rqs-1q1H454aqd_M$ztb!VK33$Vuj_-)N=`3dtr!#K7FyhSH z{XwyErTv-I7SBFkhFSlYEE<$Eult0j9Vc$t6FxhNCbCTJ59{h%44fY9-wK&N0uzz1 zw`i{1RD1~S6&`ZQnY+3K@Uv!4(xcg1aNAcUscN-{ zIYtCwgXL^noqd0tzbT-4^I8lAc9x&1OIJ#WrW!IwT&kda-}u=FXy7`j#g^Q60bJOo zPKK>vR0+e&RZMIZn%JQqs>HC3<_r$~1zpS%C6^C*L?i%7OlzA50gMXB!4~;{xI}C- zS>C)9^VcXOB#D?j$XVqS^^D^}B@!!&cw&35q^OlE*pGBQ4_xQom>s%d=Dh1vRaye0 znuW%xUUOct^cUS@Kluzw;<#NfnjB6%IS{z8Uu|5ipaP=eUB@3+0g1*EK-p6Z!;cr^ z7v79J#P-Q*9a5SbxM1bO&0Ot)chehR@`;-1KBR#LnP{lGgL~fd*F9)nj@PAK-yExQ z&98aMdL*O9+@AG>m)=MO!ewhS)h0qu$v-eYEyi3d7&+Ktd!A3u-ke{>H=DuZmE?6& zj0DCA{Kkg3_gvwDp4C&Ibd+Soo!N63Aq~KY`RBRswk}*(Od*yg8saA8%|HGe@D|4-4@-3!?-)%!%`)E zMS2%5u}a@pr0U+C*ddOk>B7b~kO@4B?gABihHsBcWGMM*u*uj<$;!$mK&E?vc|igQ ztiL{KpXa=A+2?(&1%!8qz+B@x3?d6cFK?4z_VK%Gl(wDwisk5NEv$aF77Cxn&r@_3 zX_qd}+R%zWx{3HmUj3^eFiCM8ryq}O;k-k}eOxgL{momX@+NH~8v8QK17Jf*@6F)k%~N<$UxgPzaR4NJzNqC-iC`5?%#XeMFhX zU@WSipNa*uV=kr2j(6yu?(z76{B1#5G66m6G~*a3qn!>VgT5(YyOAU^cLL>%geiFB zgBV~(9w466Wk}NUWvC_(%S7qA96ovP1KcC6B4`8tU0{oa$YXt|Za|PF=}on*SGdTlw=mUzaQYOKx4?-T=H0F9Aq-_&7fp<0X1g^Hr z@wkr)Ty0R{=bwkZ;2NPyn=dAXCa*vWp?k*E>lum$#mH0PUCGhbu#_HI`)8pGV_K1E zO3)0zn(_Srtt&y`8&jnaff=JEKO#T=Dy6&F*U2DvOIXlpjmN$G7;sc5l84BU2Y$Wx zEN0Z@i=`O()uj*^0koJl5FFh`GM1tPL{sRRlL9r4fwk)LF5~)#bJ|1>(}hCo`H<}T zdKqda>%r3<(xv!lO`;Chj6L1yxy6g!bS+$|Nuxj1)l?(xXYZ5vAgrP$j7c1a2}p78 z&d=%9i6>;s0}URyO|j#qg%6S?E%YCxY8;CPJJi$Ui*zM3cS%`)*|-R8euY=-kkDnK zE>6CbAUgEs-$3Bwgx=f#D-ak4x(_2>pW{~T4NXvkui)J4PH&H?2P8;lY}7{e3YgVO z&b&@5_Z!!qxW%g;T1{)yw44flh6XS!aRK9{t5PGKTA3j5PXz2l?>s$c-HXh=6#4^Iyzrv4wLHqvz1RiL4z+8RL>~CIL=3J5cI!Ltt6$sAjxur!nQTiSpE1nsq zyUYp@7+2%ZR6&=cm045(F5Sq6sj)z_z%uggfA2Q~o#{gZNcuT=5&9#Qo<_QJvEr_iiI52`0UEAVe6Pe4fMy;M4NK}z z!qdJxZ1ogS1@ipY#)6S)63}k8b&dFbGMhaBm&&R$q1%!2MU zj$2G&!xfclZVcIu}v6 zlvacw3Fk72pFH^#@N9V=n@AUdNIc-Av0dknmPo@%D{#Vcf|w9E#X#A6>zO~m>2ong za5W-G!PHF_L->0{$ebj82uo~~MAy=Q9{*7S;sWt1b)^gjO4EpNAl}Xik51PC^HT1I z+0IZ&7qds^vhUQroGRx6bI0X-N*)H-KL~YB`7$W>_{xE&RUGrdhJVw67Vg!)X|X*` z-CHDG@xE@XbB}=4A+Y!n%@*hjd%mYC3$m0U{Z?Iq!s_R8uSwzwV8&RRU?NaLC=THr-vAq>tfbrx3P6{1x{c`}{ zL?Ab4bU0ipi!So>XIJZL-yB2-lC&%`RELT~gs=-L)Xy+8ItI+dHz1J=0$(8P;eO%? zRdAL?F1MxXpx@#7+}iviqQBS)xyZo)?|0a%$G|LNjz$P@V+@Mq69v8Ez0Si(xP`n# zC*T`j3QqHSDLXTg-pR?JO4655tO?SHS2q<5(Bu>rl1sXE9D#uDXaxbTH~~=}G^?5v zy~r32nFQ5d;~#2+WU4p-@XX*Au*ZjH(1oq923Yg~uqkn-re_N5N)n;v)(5i8ZLpI) zeB#wFRHYJOiu3!Supvauqhv9(tO7_${Wt`Lbe#dtPy(zGRcuwPUy+Wu4Mc~>U;}4T zDJVNj`3+tvo(Dtw`A`DQAPGsz;Dg@G6z{uxj%hhL7R&xS&IN;w}Z9SgP|-KnFkC$Lt6@9#QN~U zCg4KXPR7bigpZzMH|ISwH;|V}m9lH`%B4&GAHj+ald2X{`3s;tG(ND{L;oFi+;1<= z%^1|2eaVspulQjoxTB(2!-`((N>6JG<8ICZU{aw94h1}}D)y$o9xkHsVoce~Jbh(Z zn}47_q8Lr}!xcmdf+|D8QZjl11jBD?13W~F2uEVxLRpt&BB=YZq?PYFB%GO-Ab6i^ zR~8y-0A7kj_n-q6LJ?a~pw!w8KC9gFaS+%*ODLeL=EvONU99CU$D@uq%9Wn)Zbh#H zAMUUN|K>y#Vypf*TC1tf1VwJHU$ZfI`x8j!v-o7>!2; zFre$^t0JGAQwTELjORkP1;ukAqE_x!f|eC8UR~oX$yq>4zzF8_ynRj{*k^3XNE*+Z z1r`I7i_Po~`OnS4X~l8&Pn63b?9QzLNbDM)T5M%o;U2($K=to@t|4);%vfAW>&PGA z!R@8?jiK4TrTBKhDe>qWh~8^+*3Nj$Aheiwr12A?)CSEwsKSlm>6mEd=r5b;xILoH zmpfVgW>gmRuJ@3?jXn;XWyD}>zU+K1B%tZG=kqwhOC={iG(kR>p&=IXxt18?e?o(% z$p?>rzIN1pCT~M}&tm$LjQu+E8pP4Xs3gpcp_tW9U`d>;Ui>~uFpNoL>w?rOi1Ny`WS@o+0c z#1iBWU)hhWl!vO21P>*2buR#DZ_#_diY>o>f|lC2o54`b@J6;Ott(@-wbT01G?P$l zEmSZ+!PsHE`iY-fui+^3kM2sVr>B?qj_?)gfzH}a`x+nb)q1sL1ot)3;Eae)PCz~} zMW$B$Jzn{QZQ6=sV_?Nkd9kR{lC=_ghCH^|}OF{4DeK|F{i~Eq_ zr{5PjGw&0aSV)F?McPpV-ll$;kxS}U@19s?A8%uI&FoA%@OYGy^yo2InYF2m=n)%p z;F~wyfVax&q`@3_jWExf<>4g2EAtw6hw$Xpn-rm_ELV(xmaZ(>`A~Ix)?i<i0Wu|RvJBc8)` z)(lq&ELMB=(y~)df-{7<<__ExLhC%PD-E(8rtcMeFX~x)L7;wlz{8!FmF9KH@wPe1 zY~OL`2dq4fZcZ~))6sK#2&{!aYEF(i8!=62zlTNUe&xaq3CrvtXAMZ`nn4L&A-Q2) z-ob+#30>e{@x;GpI>5Lb!_g>oPCS>kIjUxS#m-br9>}7NjM~QIsZWkUBxJ& zYtZ~iAD>&c;Hj>5h8+a4Mpr839oFhB62kt26ufMUI;I6a`Wbm%#YOB6|{ zwtorY`vLBVlJPjkO{7C7_7`QkOBNzSo^*N=+#7E5Ce?4 z^m95I28>y0FQ!5!8!uT9f?rRiO1t}FY&A4Q!)G7lj#2|#goL82wO$I|#D8xbVDD6Z z35bBr2mjM$)X^qbi0fi;eOhV*)!lw!f-IIxUMQ4+o^kYTM7SH3i2YygtVIZUVnKBv zVxU1-dOm+wAl>G{03>ZewG{kp2HPxbI?SUshmm~7I1)dcBb+!cy?GWGYpHfBUJe?GpN)Ze{j}o>=A6E+)eEZ<8{`vI zfGJ|n#ImQP@3GIZ4*L}tl;i7kanCTX*Y;HAuIBT;r){cDmbvD`4L$3YqW^J;3{ctC zef!m-64P4uJ)wKg@Qyj3-J;n^tyhy|K=w5RPAzMp!(>+^xI1FLUpqL1PIU5Ezc0%8 z@M_OL2$-h^S7WmjH^W8FQWSQ5ZyBs}-m>-k+QQ$exqAN2P4{(O0dri3I|tx&(yf!5 z|0@xiyxS{3eK!EqNL|$EbtfOKAyZW}5TnTSS136*n0OmuaPI9TL*!d1h*WkG;p*ud zcMjM!fc8~PSb39A6$b~O-?opRY~MscY_s?Qf2qyPVO==*z@;okGSvo;i!4Y}G=Q9z zH#yGD#A6Q^Zk=IZH2y*ySBo;b!rlp;Lc3Q+FQitYE&#NC`cM$K zlrhQsLBxmXDJc3AfQ;W7hKzT>EL0a5F1KM>FZF!4`(kWtl5z`OBw&Fb_x!1c@LUvg zi;`fWe3#5Q{!g8}UV{+!e}m*HO48Mkf}&Ld1XN~O8EPSi{UCUxa$e zd~DNDo__=$WE(b*WYhh;W4kzfQu`Y_F2q5?_GhT5h7^WRp=>S*nEHXntoZ?{Dfn3h zygxH<+l;IH`*s37ZKJjMAC-F0-nIQ_mgm#EX~iP;0Ovw1d`cWqLlkUcwqL_e7j*v5 zK)wPqot^e|;=U~4WRrruX`*6{En=sV&unSl{?4r>i?slh=$QAO9$K8K7uNAB|IYK= z!jL=xCUVF$ycAgID548OTlRGZ;C1iWKdxmqj*+734iA$V@|b!MQHQqYVG?i`_mR89x>tW;^YmI180sN|8>m@!?4D7 z9HZADf^ooo2OXNbG&0S(YCXm&|KA{c`gE7efoO?hURWayFbeNt>ePq(6(hDB+!Xc*>}n-ozH7S; z%u7sm4nhb@YYCs9>6oNaWBw<|i!oC>x$kYAQK?4eaOv3R`{EjFq?W zpak3`FrN*(sp#{iWTd|hTUB__YW|rMEy}TrJOD66;-!`l=2otUp-mf#ywSJ&teEFv zv3q=?c?T@2bt1l>IykAZK`$<)XzheI@v)NEU~`Go0N{<#G?`0YdxcUcw%QVDKME?V z>I(X=ZTXK!QOWxcUKQP3NCn}P_|b2#$tz;K0j%FOUabk_koahX4n}|d=}KOqpQFWo zsPgEG&BY!tTrQ23Q2C8*mG}`Y_TGafA2%0!1Vjpks^26p_Wm@{=ES#4vl5fJxuQTA zeJ=WZ^CJCM8+hyDo>K*6~coX)iNI zIqB@c)n6GZE<@)Tm`{F=D`?vEb%!loB+~uoq8<{>A9{W34*$`Mq?PNn9O;K=DRR<#T$iI)-1)n0`V;5Tr`9`S%u=+HY*NXQ4<^K#8waDBFtlxCr zfg#|tmX($r@<1fGffE9$W~Z_0 zLbT_HCw72$<)}wM^K9Yu3Klr90?e#~{sl2c+wnJER)G~3n4`O)NO|cUEOKOxm2N*y zim3~-eQX??l`l`gKAs2EcI1?V%;J$38dyb(LfMeSsJ=oR4jgA_e}4023fA4)Y?mzr@hlE=S6^2D9`vRml8R{r_;TSnY><{9yS^_q za)B>cm(_w!Jo7^EFR-$5H!6o};2!;7qOJ{Mrkd{viCG>;kJQm9{6TdMtoq{dPt^!baPS7q32+s&!;?UD zTrh-uA#-tk09TOt-R_9rp-B;^PL&@ZGU2G4S_25Zpld^!r%5Zo07_H)E5m9GwNdfH zw|rW!a0)}rs7109V6lnM_ZtQ*esqUe^)XMN-Xftf%@s zV4RNXK=A+n@>-z|Hk+w|iu*`s37UCku@9g^*x?rjfNqkKFnA7*H77s;62N;l+osA} z8iFzI0F&wJ`@eF#uqd|+=7nvjU;=FCI=BT$GR;AF-0JFnEG_2r>C`4kJHV}x(|dxv zo2gD?0O<_^fsT}9E}m22=$%BSejqP5RcZe2%w`KiWGU{z z257<4YvHo)Mf2AXE6&?k(Piyddy2^ea zXzmzh`>{>ayu#h0!hSELm@RW`tUd7T4r9+z-4N2Eg@L0{dPfCa1t?tHKTJkJP#ET% zEqnZ9{BC_vnYP~fmMF6v(8R3Ghaj~+Y(N!bBDT$e+;EY^uy>?Qs@<3Z&A^?*R$iR@FBhc*wli8IpJ=o zU^?)?>*jxho!&j&4+sdbt|}+~q$CqDz9x~}FwK-DoiPC#JRdAeoVE0_)E^^*Z|iV? zJCosYQRx+6N`#4==)`dIC~d#+v>tJOs3sTp6%bDgHmM_(gjtktg6K*BDVces=zdvj zUMDzK$1~xhOC5ct0dDI)&BpVaz{;wHS*qv*YnhE@yhM{&5hLWj4Bq_Lp`IvsAV7Ew zU&DKIf_wMVx5jectt=N9V~u|ZZahC6LtcP`s0)Cih&%jOY8QvYlhxk{R)%pvPbH*w zfwZ{0U^BH#l-!f9=p(f&gim%&k37LKo~pJ#rX> z)&D8A%m3d~yKGVe$m?ZsIe9QJ+T{=9&-Q;y?MkxNA-~~vC{d*UEw$_L zabEHkCk3Ls3Z8#W?fTCbh4u9(d`pzZ=XS`pq#fMwfQHsw;0TR*dy4Tu@(!`sOKb{u zn&iIvqH>@K8|VCwjyTCAk<-Ea`BQIXLEf^l*A~Y#WQ6?qSiZ3LW$<+|gSoR*8+*5M z8no6emkahGX`{!5t;|}Z@;!vQO$DqH?hBWOjsJ=-=Z3;D;<^Opf$HhP(4O*wV`~v} z@7-M4ba+}9B7|tiSan(IZUvf~Ua?US-^M8KUhFJ{(=?%X{gAk#!BpXxd+XvDorjkG zp&jzn+pcNM>_5Amc^hl_SnSzbI5_%B%$eAXKV7(^nPOq3Ydnu$edEP{9_K5|3i_Jz zE+f@Q&o4N9`2Yn5M<5DJV=I=HOd(;kdmF2=dewajBkLN|X#@SwVS7KF(19Z;BCYVh z-u8<-Y-2Y#;8rmH_7QE@?L32t@jFIWjXSU61xOTF{4@Oquk%dVCGN_dm*KAh1Tzd) z{?4y-9(0X{hge*`gYDH|;f+JhNffaX`^0q6^}pVyz)bfggAF=5%~h)KeP<4G+1DpG zvusyVr^Za*xXQ~EQ`q2hyn;pgL#jpX*(8XeZig-@ueR1^b$MvD={hQgFGmtgU}5hgN7ER0Q_t#OgFW*mSA9DD24W1LR=gl_zOtZ&r^=Se+8X0GK%#y zF(bsV!~LpYbuz<} z!b0!h!K>@DU>Up{^3SXv2Ukcb)XRFjKI$P;4*RgFtu1$#Lr6ZFY=XtX0G~LftxrA^ zhwln>H!7mS2p2^nJE5_MVdk1rW$TqVy_p*VQ>XG>ke6ckS2Es%FOEzE=M1%%MleD)dx zAdn?HRC)ZMfD_hS#~>*+YdP^(p_FCr{ehD^E42ieu?MlIU_U{D-fLIn6cwv1D#}j; zLFlU?gF2ibmd!&9)zBij1~wQkhE_FC?7A!ot>j=%M9kg(@*?4D95Doo z{Nb0a^M{*yGLOzv{E?8iyQ#jf2eTiZIkpVyli*o2)%P%K{lr}SPS7cV3BYlk5$0^Z zRSlD*Vp@?7>7n9#e!Fm?LIiixw74y=r@7CtaUhI72Se!dU`E|Cd~5wh9S6YpQ{Ph& z-wIR{F2E0cd7*2tCb$D8+6I?`&iL5a*oa>^!HrXuCX#|{gYtQ>UvR*MV|WFRR6A&U zW>2wYjQ-B5@He?{!rzgzuURgJy-=c#wk#HQWxqwIpsWd34zw0?XiwslDLe_tKqhuLyx%1 zgF9ZeLw?CIn4jFb&m1r}(6e)hxW8c@mWmIyajU{#Q%ObJ%`GiY?CVj^1o>+UJTrs! z9*m_^H6NiT_6oFr68dguU7U+{MuZKNB%*+1mGZmIoBvT07Cs)L}h1<`WSK?$15F#yOsX5BSxP8GibE>V=tlsVgD=|S`F zL3elF@r7+u#aCQS&2IY*t?~%jnaJs^K}npeMuh12@>syBA~wY`1&(vvRSt|h=_4Dk z*ZB7x7a%xn#We{KN#`-~2R0T*kxUBA%|NeC){XTqdOwMRfl}xK5v_l^s;~|$45aVS zMt{Rc5e+Hjo9pZghU=7+lqDqSQ88 zzh-fjUvKd&J8L=heQLK_!(wVq?=uV1v|hN9zoxtQ`-FN>p~;sSa#Wo>kat35V=Hi_ z4c*mf{bTIh$GIVin$%QNXKc5TA8&T>;=T_5WA&Np(mjekwFPu*LTITMARLP1`F68@ z{-x~|+K%06-Ue3KZZFY({>_(4L&y&Ike%MxF-BF( zVmQ2su{>qc#+?8%4`#ZGE%(XBmXS#iAgaBlH^-t=Hu#{Y$L7lF#?=EgNEAz&awat7 f`|^L`Vt=qz_9|!Wb)+OH;E$fxLCqo!$Fu(h#&lG& literal 49305 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 diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-control-button-hover-state.snap.png b/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-control-button-hover-state.snap.png index 8921070562629beec28df0709a4041c7ffd4cd21..8cc63db16a99f17775c01ca36559e8f99df315f3 100644 GIT binary patch literal 2054 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 diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-disabled-state.snap.png b/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-disabled-state.snap.png index d39bab6cf14fd14f26113b82a946bdabd662c06a..643fb50aa714706731324cd1e3ad11bd4bcdc950 100644 GIT binary patch literal 1018 zcmeAS@N?(olHy`uVBq!ia0y~yU{nCI9XQy4d~q^{QfP%{G~6DNxmlSbpNNh};XEG!e69U2^r7#XMZ#3eET zxyDrHHZEnkkYm>UvPA0hPn(+xT*3+;>REQ(&EsKfe)0YHRPHdo1t(L4zJLF|arbWN z?Ck8R(w|sZIG*T!`1Vcg`Sa%+w{8_Z{BT3i=BZ3CzI`*x%gam3&)2t_>$lV`#;3ud zmZfWdvV~lKvWb-I`s> z$Gkt6FJJDT7W$|Cdg{LF|BD~(o9WQY^6%@fUq60C_-x#?>C<(S)cE+VHNw9>el(1W zkFVcyX_JG!)}z^+CJqnc*XuK0X?QBt=n%{Lhb!#**_X2&m|0i?n5Sj1FqMi5IF#O< zvk$1yfx$GP(@h~DoRKjEs;JBVc-L{G|CZjm_HFqG^m-i{4s35=DB|G|@K94|m~>Iw zrvb=iL*hDIVkk;>VxQnp&AM;jKC$ntK4r;H+tc#iKQy*%oIZW}jy-#P%Cn#C-o1Or zzI|~f55Aq@Q)&FhA+kMHuK&29RPUneucylGximMhd)4HVD$hPwzIpTJ$g5YY6twno zi3^>GU%)XBm^yas*b%{UzQAJ5m6E3nTC2{dZJyz`yj$Uug2RHFOn39l*_s`{{Qi5Y zSx>b=tNbA+hd{>C28OJsw|IRO_<@Q0xLk?jf~ibQE2d_fn>5-0!$Pk50&8O!7srCI zb$2hYd=e0FsC?rn&Jv}m&=9q=%vtz^vjfA^jqI`H8}vb1j?Xs!=@a!9V4i01boFyt I=akR{0GZyRg#Z8m literal 1185 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 nAC6p*1ErcU8Kf^^5gkRqw1AksZ_ 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 diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-focus-state.snap.png b/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-focus-state.snap.png index 1c240b0d1443421e77c8059e0cd0faf374313f17..939dc5ba5a11d5523afb3e0e675e7eda1c07f4b2 100644 GIT binary patch literal 1953 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 NP;DHotE_xt{{>&8kfs0t diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-hover-state.snap.png b/packages/dnb-eufemia/src/extensions/forms/Field/Number/__tests__/__image_snapshots__/number-field-for-ui-with-step-control-buttons-matches-the-hover-state.snap.png index 1c240b0d1443421e77c8059e0cd0faf374313f17..939dc5ba5a11d5523afb3e0e675e7eda1c07f4b2 100644 GIT binary patch literal 1953 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 NP;DHotE_xt{{>&8kfs0t diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/dnb-number.scss b/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/dnb-number.scss index d39bd5addf6..158a1da4f77 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/dnb-number.scss +++ b/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/dnb-number.scss @@ -1,5 +1,4 @@ @import '../../../../../style/core/utilities.scss'; -@import '../../style/field-sizes.scss'; .dnb-forms-field-number { --number-control-button-border-color: black; diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss b/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss index 76f11785544..22f9a732d4f 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +++ b/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss @@ -18,6 +18,13 @@ &--has-controls { background-color: #1c1b4e; border-radius: 3rem; + + // There is no small size in Sbanken + .dnb-button.dnb-button--size-small { + --button-height--small: 2.5rem; + --button-width--small: 2.5rem; + } + .dnb-input { position: relative; &::before, diff --git a/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss b/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss index 9269297c6dd..7931d4dc964 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +++ b/packages/dnb-eufemia/src/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss @@ -12,4 +12,13 @@ --number-control-button-color--active: var(--color-sea-green); --number-control-button--error: var(--color-fire-red); --number-control-button--error-contrast: var(--color-fire-red-8); + + &__contents { + &--has-controls { + .dnb-button.dnb-button--size-small { + --button-height--small: 2rem; + --button-width--small: 2rem; + } + } + } } From fde9aae5872fb48b5837d7a486c5595f69278327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B8egh?= Date: Wed, 17 Jan 2024 11:34:39 +0100 Subject: [PATCH 05/33] chore(forms): refactor and add "Getting started" to its own page (#3232) --- .../src/docs/uilib/extensions/forms.mdx | 119 ++---------------- .../extensions/forms/create-component.mdx | 20 +-- .../forms/create-component/FieldBlock.mdx | 2 +- .../forms/create-component/useDataValue.mdx | 25 ++++ .../useDataValue/Examples.tsx | 111 ++++++++++++++++ .../create-component/useDataValue/demos.mdx | 23 ++++ .../create-component/useDataValue/info.mdx | 18 +-- .../extended-features/Form/useData/info.mdx | 2 +- .../forms/fields/ListBaseInputComponents.tsx | 1 + .../fields/ListBaseSelectionComponents.tsx | 1 + .../forms/fields/ListBaseToggleComponents.tsx | 1 + .../extensions/forms/getting-started.mdx | 86 +++++++++++++ .../uilib/extensions/forms/quick-start.mdx | 60 +++++++++ .../src/shared/parts/ListSummaryFromEdges.tsx | 18 ++- 14 files changed, 344 insertions(+), 143 deletions(-) create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue.mdx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/Examples.tsx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/demos.mdx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/getting-started.mdx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/quick-start.mdx diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms.mdx index 9b432d23e2b..67368a7fe23 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms.mdx @@ -8,7 +8,7 @@ breadcrumb: href: /uilib/extensions/forms/ --- -import * as Examples from './forms/Examples' +import QuickStart from './forms/quick-start' import InlineImg from 'dnb-design-system-portal/src/shared/tags/Img' import FormDiagram1 from 'Docs/uilib/extensions/forms/form-diagram-1.png' import FormDiagram2 from 'Docs/uilib/extensions/forms/form-diagram-2.png' @@ -21,69 +21,10 @@ import FormDiagram2 from 'Docs/uilib/extensions/forms/form-diagram-2.png' - [Philosophy](#philosophy) - [Features](#features) - [Examples](#examples) -- [Getting started](#getting-started) +- [First steps](#first-steps) - [Create your own components](#create-your-own-components) -## Quick start - -Field components can be used directly as they are, for example `Field.Email`: - -```jsx -import { Field } from '@dnb/eufemia/extensions/forms' -render() -``` - -By building an entire form with components from Eufemia and Eufemia Forms, you save time and code: - -```jsx -import { Card } from '@dnb/eufemia' -import { Form, Field } from '@dnb/eufemia/extensions/forms' -render( - - - - - - - - - - -) -``` - -Use the [useData](/uilib/extensions/forms/extended-features/Form/useData/) hook to access or modify your form data outside of the form context within your application: - -```jsx -import { Form } from '@dnb/eufemia/extensions/forms' -function Component() { - const { data, update } = Form.useData('unique') - - return ( - - ... - - ) -} -``` + ## Philosophy @@ -107,7 +48,7 @@ In summary: - Ready to use data driven form components. - All functionality in all components can be controlled and overridden via props. -- State management using the declarative [JSON Pointer](/uilib/extensions/forms/#what-is-a-json-pointer) directive (i.e `path="/firstName"`). +- State management using the declarative [JSON Pointer](/uilib/extensions/forms/getting-started/#what-is-a-json-pointer) directive (i.e `path="/firstName"`). - State can be handled outside of the Form.Handler (Provider Context) with the [useData](/uilib/extensions/forms/extended-features/Form/useData) hook. - Simple validation (like `minLength` on text fields) as well as advanced and complex [Ajv](https://ajv.js.org/) JSON schema validator (Ajv is like Joi or Yup – check out [some examples](/uilib/extensions/forms/extended-features/#schema-validation)) support on both single fields and the whole data set. - Building blocks for [creating custom field components](/uilib/extensions/forms/create-component). @@ -146,7 +87,7 @@ In this example, all state data, validation process and error handling are done - [General Demos](/uilib/extensions/forms/general-demos/) - [Case Demo 1 (fullscreen)](/uilib/extensions/forms/demo-cases/casedemo1/) -## Getting started +## First steps You import the components from with scopes, such as `Form` and `Field`: @@ -163,55 +104,11 @@ render( ) ``` -The needed styles are included in the Eufemia core package via `dnb-ui-components`. - -### Field components - -The data-driven [base field components](/uilib/extensions/forms/base-fields) are named and structured according to the type of data they can display and produce based on the user's input and action in the interface. - -On top of these, a number of [feature fields](/uilib/extensions/forms/feature-fields) have been built that have special functionality based on given types of data, such as bank account numbers, e-mails and social security numbers. - -### Value components - -Beside the interactive [Field](/uilib/extensions/forms/fields/) components, there are also the static [Value](/uilib/extensions/forms/extended-features/Value/) components. Use these to show summaries or read-only parts of your application with benefits such as linking to source data and standardized formatting based on the type of data to be displayed. - -### Layout - -When building your application forms, preferably use the following layout components. They seamlessly places all the fields and components of Eufemia Forms correctly into place. - -- [Flex](/uilib/layout/flex) layout component for easy and consistent application forms. -- [Card](/uilib/components/card) for the default card outline of forms. - -### Creating forms - -To build an entire form, there are surrounding components such as [Form.Handler](/uilib/extensions/forms/extended-features/Form/Handler) and [StepsLayout](/uilib/extensions/forms/extended-features/StepsLayout) that make data flow and layout easier and save you a lot of extra code, without compromising flexibility. - -### State management - -The state management is done via the [JSON Pointer](/uilib/extensions/forms/#what-is-a-json-pointer) directive (i.e `path="/firstName"`). This is a standardized way of pointing to a specific part of a JavaScript/JSON object. The JSON Pointer is used to both read and write data, and is also used to validate the data. - - - -### What is a JSON Pointer? - -A [JSON Pointer](https://datatracker.ietf.org/doc/html/draft-ietf-appsawg-json-pointer-03) is a string of tokens separated by `/` characters, these tokens either specify keys in objects or indexes into arrays. - -```ts -const data = { - foo: { - bar: [ - { - baz: 'value', - }, - ], - }, -} -const pointer = '/foo/bar/0/baz' // points to 'value' -``` +More details in the [Getting started](/uilib/extensions/forms/getting-started/) section. -### Best Practices +### Best practices -- [Best Practices on Forms](/uilib/extensions/forms/best-practices-on-forms/). +- [Best practices on Forms](/uilib/extensions/forms/best-practices-on-forms/). ## Create your own components diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component.mdx index bc34290091e..f704bdfbe2a 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component.mdx @@ -13,7 +13,6 @@ import { CreateBasicFieldComponent, CreateComposedFieldComponent, } from './Examples' -import UseDataValue from './create-component/useDataValue/info' # Create your own component @@ -24,12 +23,13 @@ By using the building blocks for field components, you save development time, an ```jsx import { FieldBlock, + ValueBlock, useDataValue, - Iterate, - DataContext, } from '@dnb/eufemia/extensions/forms' ``` + + ## FieldBlock and useDataValue The `FieldBlock` component and the `useDataValue` hook are the basis for all field components in Eufemia Forms. @@ -46,9 +46,9 @@ This example shows a custom component. The `useDataValue` hook receives the prop ### The example explained -Using these two form helpers in your field component triggers several automatic processes. These include timely validation checks, syncing value changes with the `DataContext`, coordinating error messages across multiple fields, and preventing premature error displays while the user is editing the field. +Using these two form helpers in your field component triggers several automatic processes. These include timely validation checks, syncing value changes with the [DataContext](/uilib/extensions/forms/extended-features/DataContext/), coordinating error messages across multiple fields, and preventing premature error displays while the user is editing the field. -Keep in mind, you can customize the behavior of `useDataValue` and other helper functions to make the component work exactly as you want. +Keep in mind, you can customize the behavior of [useDataValue](/uilib/extensions/forms/create-component/useDataValue) and other helper functions to make the component work exactly as you want. ### Your own validation @@ -79,13 +79,3 @@ These are the official sizes you can use when [creating your own form fields](/u ``` You can also use a [FieldBlock](/uilib/extensions/forms/create-component/FieldBlock/) and provide a `width` prop with a value of either `small`, `medium` or `large` and use it as a sized wrapper. - -## Components - - - ---- - -## Hooks - - diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/FieldBlock.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/FieldBlock.mdx index 72d8ba2277f..8540de199f2 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/FieldBlock.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/FieldBlock.mdx @@ -1,6 +1,6 @@ --- title: 'FieldBlock' -description: '`FieldBlock` is a reusable wrapper for building Field-components. It shows surrounding elements through properties from `FieldProps` like `label` and `error`, and ensure that spacing between different fields work as required when put into surrounding components like `Flex.Container` or `Card`. It can also be used to group multiple inner FieldBlock component, composing error messages together as one component.' +description: '`FieldBlock` is a reusable wrapper for building Field-components. It shows surrounding elements through properties from `FieldProps` like `label` and `error`.' componentType: 'basis-api' hideInMenu: true showTabs: true diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue.mdx new file mode 100644 index 00000000000..cecbbe379cc --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue.mdx @@ -0,0 +1,25 @@ +--- +title: 'useDataValue' +description: 'The `useDataValue` hook standardize handling of the value flow for a single consumer component representing one data point.' +componentType: 'basis-api' +hideInMenu: true +showTabs: true +tabs: + - title: Info + key: '/info' + - title: Demos + key: '/demos' +breadcrumb: + - text: Forms + href: /uilib/extensions/forms/ + - text: Create your component + href: /uilib/extensions/forms/create-component/ + - text: useDataValue + href: /uilib/extensions/forms/create-component/useDataValue/ +--- + +import Info from 'Docs/uilib/extensions/forms/create-component/useDataValue/info' +import Demos from 'Docs/uilib/extensions/forms/create-component/useDataValue/demos' + + + diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/Examples.tsx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/Examples.tsx new file mode 100644 index 00000000000..4748f2ac66d --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/Examples.tsx @@ -0,0 +1,111 @@ +import React from 'react' +import ComponentBox from '../../../../../../shared/tags/ComponentBox' +import { + Field, + FieldBlock, + Form, + JSONSchema, + useDataValue, +} from '@dnb/eufemia/src/extensions/forms' +import { Flex, Slider } from '@dnb/eufemia/src' + +export const CustomComponentExample = () => { + return ( + + {() => { + const MySliderComponent = (props) => { + const fromInput = React.useCallback( + (event) => + typeof event === 'number' ? event : event?.value || 0, + [], + ) + + const errorMessages = React.useMemo( + () => ({ + required: 'This field is required', + ...props.errorMessages, + }), + [props.errorMessages], + ) + const schema = React.useMemo( + () => + props.schema ?? { + type: 'number', + minimum: props.minimum, + maximum: props.maximum, + }, + [props.schema, props.minimum, props.maximum], + ) + + const preparedProps = { + fromInput, + schema, + ...errorMessages, + label: 'Label', + ...props, + } + + const { + id, + label, + info, + warning, + error, + value, + width = 'medium', + minimum = 0, + maximum = 100, + step = 1, + handleChange, + handleFocus, + handleBlur, + } = useDataValue(preparedProps) + + const steps = { minimum, maximum, step } + + return ( + + + + + + + ) + } + + return ( + + + + ) + }} + + ) +} diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/demos.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/demos.mdx new file mode 100644 index 00000000000..903a39ec3bb --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/demos.mdx @@ -0,0 +1,23 @@ +--- +showTabs: true +--- + +import * as Examples from './Examples' + +## Demos + +On the consumer side, we can use this custom component like so: + +```jsx + + + +``` + + diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/info.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/info.mdx index 5e5e6c736e3..931a537bdad 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/info.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/create-component/useDataValue/info.mdx @@ -2,11 +2,11 @@ draft: true --- -### useDataValue +# Description The `useDataValue` hook standardize handling of the value flow for a single consumer component representing one data point. It holds error state, hides it while the field is in focus, connects to surrounding `DataContext` (if present) and other things that all field or value components needs to do. By implementing custom field or value components and passing the received props through `useDataValue`, all these features work the same way as other field or value components, and you only need to implement the specific unique features of that component. -How to use: +## How to use ```ts const { value } = useDataValue(componentProps) @@ -38,7 +38,7 @@ const { }) ``` -#### Internal Properties +### Internal Properties All properties are optional and can be used as needed. These properties can be provided as part of your component properties. @@ -62,7 +62,7 @@ All properties are optional and can be used as needed. These properties can be p - `error` object like `FormError` that includes the string to display or an object with the key `validationRule`. More info down below. - `errorMessages` object with your custom messages, where each key represents a `validationRule`. More info down below. -#### Return Parameters +### Return Parameters It returns all of the given component properties, in addition to these: @@ -77,7 +77,7 @@ It returns all of the given component properties, in addition to these: - `onBlur` event handler to assign to a form element. - `onChange` event handler to assign to a form element. -#### Custom validateRequired +### Custom validateRequired ```ts const validateRequired = ( @@ -102,7 +102,7 @@ const { error, hasError } = useDataValue({ }) ``` -##### Validation order +#### Validation order During validation, the different APIs do have a prioritization order and will stop processing further when they match: @@ -110,7 +110,7 @@ During validation, the different APIs do have a prioritization order and will st 1. `schema` prop (including `pattern`) 1. `validator` prop -#### Error handling +### Error handling Validation and error-handling is tight coupled together. When a validation fails, you may use the error-object to handle and show the failures/statuses. @@ -151,7 +151,7 @@ const { error, hasError } = useDataValue({ }) ``` -#### Event handlers +### Event handlers - `handleFocus()` to call the `onFocus` event. @@ -167,7 +167,7 @@ handleChange(value, (additionalArgs = null)) - `forceUpdate()` to re-render the React Hook along with the outer component. -#### Value transformers +### Value transformers The transformers are hooks to transform the value on different stages. diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/extended-features/Form/useData/info.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/extended-features/Form/useData/info.mdx index b011ab44ef2..8e79082d94b 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/extended-features/Form/useData/info.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/extended-features/Form/useData/info.mdx @@ -62,7 +62,7 @@ function Component() { If you need to update the data, you can use the `update` method. -It takes a path ([JSON Pointer](/uilib/extensions/forms/#what-is-a-json-pointer)) and a callback function. The callback function receives the existing value as the first argument, and the second argument is the path itself. The callback function must return the new value. +It takes a path ([JSON Pointer](/uilib/extensions/forms/getting-started/#what-is-a-json-pointer)) and a callback function. The callback function receives the existing value as the first argument, and the second argument is the path itself. The callback function must return the new value. ```jsx import { Form } from '@dnb/eufemia/extensions/forms' diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseInputComponents.tsx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseInputComponents.tsx index b5c9aa02319..232d164d2e7 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseInputComponents.tsx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseInputComponents.tsx @@ -44,6 +44,7 @@ export default function ListBaseInputComponents() { diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseSelectionComponents.tsx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseSelectionComponents.tsx index 640e1ba4a47..4039f85a01c 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseSelectionComponents.tsx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseSelectionComponents.tsx @@ -44,6 +44,7 @@ export default function ListBaseSelectionComponents() { diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseToggleComponents.tsx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseToggleComponents.tsx index 05e9a4c09c5..d34387b0452 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseToggleComponents.tsx +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/fields/ListBaseToggleComponents.tsx @@ -44,6 +44,7 @@ export default function ListBaseToggleComponents() { diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/getting-started.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/getting-started.mdx new file mode 100644 index 00000000000..7534e3e7763 --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/getting-started.mdx @@ -0,0 +1,86 @@ +--- +title: 'Getting started' +description: 'Forms is reusable components for data input, data display and surrounding layout for simplified user interface creation in React, built on top of base Eufemia components.' +order: 0 +breadcrumb: + - text: Forms + href: /uilib/extensions/forms/ + - text: Getting started + href: /uilib/extensions/forms/getting-started/ +--- + +import * as Examples from './Examples' +import QuickStart from './quick-start' + +# Getting started + +**Table of Contents** + +- [Quick start](#quick-start) +- [Creating forms](#creating-forms) +- [State management](#state-management) +- [Field components](#field-components) +- [Value components](#value-components) +- [Layout](#layout) +- [Best practices](#best-practices) +- [Create your own components](#create-your-own-components) + + + +The needed styles are included in the Eufemia core package via `dnb-ui-components`. + +### Creating forms + +To build an entire form, there are surrounding components such as [Form.Handler](/uilib/extensions/forms/extended-features/Form/Handler) and [StepsLayout](/uilib/extensions/forms/extended-features/StepsLayout) that make data flow and layout easier and save you a lot of extra code, without compromising flexibility. + +### State management + +The state management is done via the [JSON Pointer](#what-is-a-json-pointer) directive (i.e `path="/firstName"`). This is a standardized way of pointing to a specific part of a JavaScript/JSON object. The JSON Pointer is used to both read and write data, and is also used to validate the data. + + + +You find more details in the [useData](/uilib/extensions/forms/extended-features/Form/useData/) docs. + +### What is a JSON Pointer? + +A [JSON Pointer](https://datatracker.ietf.org/doc/html/draft-ietf-appsawg-json-pointer-03) is a string of tokens separated by `/` characters, these tokens either specify keys in objects or indexes into arrays. + +```ts +const data = { + foo: { + bar: [ + { + baz: 'value', + }, + ], + }, +} +const pointer = '/foo/bar/0/baz' // points to 'value' +``` + +### Field components + +The data-driven [base field components](/uilib/extensions/forms/base-fields) are named and structured according to the type of data they can display and produce based on the user's input and action in the interface. + +On top of these, a number of [feature fields](/uilib/extensions/forms/feature-fields) have been built that have special functionality based on given types of data, such as bank account numbers, e-mails and social security numbers. + +### Value components + +Beside the interactive [Field](/uilib/extensions/forms/fields/) components, there are also the static [Value](/uilib/extensions/forms/extended-features/Value/) components. Use these to show summaries or read-only parts of your application with benefits such as linking to source data and standardized formatting based on the type of data to be displayed. + +### Layout + +When building your application forms, preferably use the following layout components. They seamlessly places all the fields and components of Eufemia Forms correctly into place. + +- [Flex](/uilib/layout/flex) layout component for easy and consistent application forms. +- [Card](/uilib/components/card) for the default card outline of forms. + +### Best practices + +- [Best practices on Forms](/uilib/extensions/forms/best-practices-on-forms/). + +## Create your own components + +Eufemia Forms consists of helper components and tools so you can declaratively create interactive form components that flawlessly integrates between existing data and your custom form components. This ensures a common look and feel, even when ready-made components are combined with your local custom components. + +Read more about on how to [create your own component](/uilib/extensions/forms/create-component). diff --git a/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/quick-start.mdx b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/quick-start.mdx new file mode 100644 index 00000000000..9ac7f910dee --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/extensions/forms/quick-start.mdx @@ -0,0 +1,60 @@ +## Quick start + +Field components can be used directly as they are, for example `Field.Email`: + +```jsx +import { Field } from '@dnb/eufemia/extensions/forms' +render() +``` + +By building an entire form with components from Eufemia and Eufemia Forms, you save time and code: + +```jsx +import { Card } from '@dnb/eufemia' +import { Form, Field } from '@dnb/eufemia/extensions/forms' +render( + + + + + + + + + + +) +``` + +Use the [useData](/uilib/extensions/forms/extended-features/Form/useData/) hook to access or modify your form data outside of the form context within your application: + +```jsx +import { Form } from '@dnb/eufemia/extensions/forms' +function Component() { + const { data, update } = Form.useData('unique') + + return ( + + ... + + ) +} +``` diff --git a/packages/dnb-design-system-portal/src/shared/parts/ListSummaryFromEdges.tsx b/packages/dnb-design-system-portal/src/shared/parts/ListSummaryFromEdges.tsx index 562ec3c45c9..54192183811 100644 --- a/packages/dnb-design-system-portal/src/shared/parts/ListSummaryFromEdges.tsx +++ b/packages/dnb-design-system-portal/src/shared/parts/ListSummaryFromEdges.tsx @@ -2,7 +2,10 @@ import React from 'react' import { Ul, Li } from '@dnb/eufemia/src' import AutoLinkHeader from '../tags/AutoLinkHeader' import Anchor from '../tags/Anchor' -import { resetLevels } from '@dnb/eufemia/src/components/Heading' +import { + HeadingSize, + resetLevels, +} from '@dnb/eufemia/src/components/Heading' import ReactMarkdown from 'react-markdown' import { basicComponents } from '../../shared/tags' import { SpacingProps } from '@dnb/eufemia/src/shared/types' @@ -28,14 +31,16 @@ export type ListEdges = Array type ListSummaryFromEdgesProps = { edges: ListEdges level?: HeadingLevel + size?: HeadingSize description?: string returnListItems?: boolean } & SpacingProps export default function ListSummaryFromEdges({ edges, - level = null, - description: _description = null, + level = undefined, + size = undefined, + description: description = null, returnListItems = false, ...props }: ListSummaryFromEdgesProps) { @@ -47,7 +52,7 @@ export default function ListSummaryFromEdges({ ( { node: { - frontmatter: { title, description }, + frontmatter: { title, description: fmDescription }, fields: { slug }, }, }, @@ -73,15 +78,16 @@ export default function ListSummaryFromEdges({ <> {title} - {(_description !== null ? _description : description) && ( + {(description !== null ? description : fmDescription) && ( - {_description !== null ? _description : description} + {description !== null ? description : fmDescription} )} From 979b3e3306d9e00cabf15cac8ae0c231c86b4c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B8egh?= Date: Wed, 17 Jan 2024 14:39:32 +0100 Subject: [PATCH 06/33] fix(Input): should not clear input value with escape key (#3235) --- .../src/docs/uilib/components/input/demos.mdx | 2 +- .../dnb-eufemia/src/components/input/Input.js | 3 --- .../src/components/input/__tests__/Input.test.tsx | 15 --------------- 3 files changed, 1 insertion(+), 19 deletions(-) diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/input/demos.mdx b/packages/dnb-design-system-portal/src/docs/uilib/components/input/demos.mdx index 24e408fa5a1..759c9f8cbe6 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/components/input/demos.mdx +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/input/demos.mdx @@ -68,7 +68,7 @@ Pressing the enter key will trigger a submit. ### Input with clear button -Pushing the clear button or pressing the ESC key will clear the input. +Pushing the clear button will clear the input. diff --git a/packages/dnb-eufemia/src/components/input/Input.js b/packages/dnb-eufemia/src/components/input/Input.js index b689720bb27..a457df34f1f 100644 --- a/packages/dnb-eufemia/src/components/input/Input.js +++ b/packages/dnb-eufemia/src/components/input/Input.js @@ -316,9 +316,6 @@ export default class Input extends React.PureComponent { if (event.key === 'Enter') { dispatchCustomElementEvent(this, 'on_submit', { value, event }) } - if (isTrue(this.props.clear) && event.key === 'Escape') { - this.clearValue(event) - } } clearValue = (event) => { const previousValue = this.state.value diff --git a/packages/dnb-eufemia/src/components/input/__tests__/Input.test.tsx b/packages/dnb-eufemia/src/components/input/__tests__/Input.test.tsx index 4b716637857..a13f5204d45 100644 --- a/packages/dnb-eufemia/src/components/input/__tests__/Input.test.tsx +++ b/packages/dnb-eufemia/src/components/input/__tests__/Input.test.tsx @@ -513,21 +513,6 @@ describe('Input with clear button', () => { expect(clearButton).toHaveAttribute('disabled') }) - it('should clear the value on escape key press', () => { - render() - - expect(document.querySelector('input').getAttribute('value')).toBe( - 'value' - ) - - fireEvent.keyDown(document.querySelector('input'), { - key: 'Escape', - keyCode: 27, // escape - }) - - expect(document.querySelector('input').getAttribute('value')).toBe('') - }) - it('should set focus on input when clear button is pressed', () => { render() From 7c79a54539f1b31b69dd312fdf066664c357ec3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B8egh?= Date: Wed, 17 Jan 2024 14:40:04 +0100 Subject: [PATCH 07/33] feat(AriaLive): add new component (#3217) --- .../src/docs/EUFEMIA_CHANGELOG.mdx | 7 +- .../src/docs/uilib/components/aria-live.mdx | 15 ++ .../uilib/components/aria-live/Examples.tsx | 154 +++++++++++++++ .../docs/uilib/components/aria-live/demos.mdx | 15 ++ .../docs/uilib/components/aria-live/info.mdx | 52 +++++ .../uilib/components/aria-live/properties.mdx | 17 ++ .../src/docs/uilib/intro/03-accessibility.mdx | 1 + .../uilib/usage/accessibility/checklist.mdx | 1 + .../dnb-eufemia/src/components/AriaLive.ts | 14 ++ .../src/components/aria-live/AriaLive.tsx | 11 ++ .../aria-live/__tests__/AriaLive.test.tsx | 180 ++++++++++++++++++ .../aria-live/__tests__/useAriaLIve.test.ts | 36 ++++ .../src/components/aria-live/index.ts | 8 + .../aria-live/stories/AriaLive.stories.tsx | 147 ++++++++++++++ .../src/components/aria-live/types.ts | 52 +++++ .../src/components/aria-live/useAriaLive.tsx | 84 ++++++++ packages/dnb-eufemia/src/components/index.ts | 2 + packages/dnb-eufemia/src/components/lib.ts | 3 + packages/dnb-eufemia/src/index.ts | 2 + 19 files changed, 799 insertions(+), 2 deletions(-) create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/aria-live.mdx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/Examples.tsx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/demos.mdx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/info.mdx create mode 100644 packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/properties.mdx create mode 100644 packages/dnb-eufemia/src/components/AriaLive.ts create mode 100644 packages/dnb-eufemia/src/components/aria-live/AriaLive.tsx create mode 100644 packages/dnb-eufemia/src/components/aria-live/__tests__/AriaLive.test.tsx create mode 100644 packages/dnb-eufemia/src/components/aria-live/__tests__/useAriaLIve.test.ts create mode 100644 packages/dnb-eufemia/src/components/aria-live/index.ts create mode 100644 packages/dnb-eufemia/src/components/aria-live/stories/AriaLive.stories.tsx create mode 100644 packages/dnb-eufemia/src/components/aria-live/types.ts create mode 100644 packages/dnb-eufemia/src/components/aria-live/useAriaLive.tsx diff --git a/packages/dnb-design-system-portal/src/docs/EUFEMIA_CHANGELOG.mdx b/packages/dnb-design-system-portal/src/docs/EUFEMIA_CHANGELOG.mdx index 84b9a8813a3..900c7e014c2 100644 --- a/packages/dnb-design-system-portal/src/docs/EUFEMIA_CHANGELOG.mdx +++ b/packages/dnb-design-system-portal/src/docs/EUFEMIA_CHANGELOG.mdx @@ -1,8 +1,11 @@ +## January, 18. 2024 + +- New component: [AriaLive](/uilib/components/aria-live) + ## May, 31. 2023 - [New major version 10](/uilib/about-the-lib/releases/eufemia/v10-info/) -- New components released: - - [SkipContent](/uilib/components/skip-content) +- New component: [SkipContent](/uilib/components/skip-content) - [GlobalError](/uilib/components/global-error) got new styles (without illustrations). - New [Icons](/icons/secondary): - `handshake` diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/aria-live.mdx b/packages/dnb-design-system-portal/src/docs/uilib/components/aria-live.mdx new file mode 100644 index 00000000000..d966b2d928b --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/aria-live.mdx @@ -0,0 +1,15 @@ +--- +title: 'AriaLive' +description: 'AriaLive is a React component and hook that helps make your web app more accessible by announcing dynamic changes to screen readers.' +showTabs: true +hideTabs: + - title: Events +theme: 'sbanken' +status: 'new' +--- + +import AriaLiveInfo from 'Docs/uilib/components/aria-live/info' +import AriaLiveDemos from 'Docs/uilib/components/aria-live/demos' + + + diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/Examples.tsx b/packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/Examples.tsx new file mode 100644 index 00000000000..13208a0181e --- /dev/null +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/aria-live/Examples.tsx @@ -0,0 +1,154 @@ +/** + * UI lib Component Example + * + */ + +import React from 'react' +import { Field, FieldBlock, Form } from '@dnb/eufemia/src/extensions/forms' +import ComponentBox from '../../../../shared/tags/ComponentBox' +import { AriaLive, Button, Flex, P } from '@dnb/eufemia/src' + +export const AriaLivePlayground = () => ( + + {() => { + const priorities = ['low', 'high'] + const contents = { + default: 'This is a default announcement', + second: 'And a second one', + third: 'A third one', + fourth: 'And a fourth one', + } + const priority: 'low' | 'high' = 'low' + const defaultData = { + enabled: false, + content: contents.default, + priority, + } + + function AriaLiveExample() { + const { data } = Form.useData('aria-live-playground', defaultData) + + return ( + + + + + {priorities.map((content) => { + return ( + + ) + })} + + + + {Object.entries(contents).map(([key, value]) => { + return ( + + ) + })} + + + + + + Output:{' '} + + Message: {data.content} + + + + + ) + } + + return + }} + +) + +export const AriaLiveAdditions = () => ( + + {() => { + const defaultData = { + enabled: false, + content: [

Line 1

], + } + + function AriaLiveExample() { + const { data, update } = Form.useData( + 'aria-live-additions', + defaultData, + ) + + return ( + + + + + + +